Чтож, однажды тема поднималась на форуме и как обещался пишу об модуле подобной вещичке.
Идея модуля состоит в том, чтобы навесить Ajax на публичную часть сайта или на его большую часть.
Некоторое описание\обзор был дан и доступен по ссылкам:
Для Word2007 Для Word97-2003 |
Сам модулек версии 0.2.5(ANSI, PHP5) доступен по адресу:
Для его использования потребуется ZendOptimizer, и срок работы слегка ограничен, до 10.08.2008
Что ж, архивчик необходимо распаковать в директорию /bitrix/modules/, затем проинсталлировать как обычной модуль, надеюсь, больших сложностей это не вызовет. С его настройками не все так просто, поэтому я лучше буду отвечать на Ваши вопросы по мере их появления. Также, приветствуются различные пожелания и предложения.
ЗЫ. Конечно, модуль очень любит напильник =) так что прошу сильно не кидать камни в мой огород.
ЗЫЫ. и как же без какого-нибудь маленького примерчика.
Изменение навигационной цепочки после Ajax запроса, аналогично и менюшки обновляются итд итп, все зависит от фантазии и желания.
<? AddEventHandler("ajax", "OnAfterAjaxHeader", "NCP"); AddEventHandler("main", "OnAfterAjaxResponse", "RefreshNC"); function NCP() //get navigation chain parameters { $GLOBALS['__NAV_CHAIN_PARAMS__'] = CGAGetNavChainParam(); } function RefreshNC() //refresh navigation chain { if($GLOBALS['__NAV_CHAIN_PARAMS__']) { global $APPLICATION; $navChain = $APPLICATION->GetNavChain($GLOBALS["__NAV_CHAIN_PARAMS__"][0], $GLOBALS["__NAV_CHAIN_PARAMS__"][1], $GLOBALS["__NAV_CHAIN_PARAMS__"][2], $GLOBALS["__NAV_CHAIN_PARAMS__"][3], $GLOBALS["__NAV_CHAIN_PARAMS__"][4]); ?> <script> try{ document.getElementById('navigation').innerHTML='<?=CUtil::JSEscape(CAllGlobalAjax::MakeAjaxFromCode($navChain))?>'; } catch(e){} </script> <? } } ?> |
ЗЫЫЫ. Любые вопросы по теме приветствуются.
ЗЫЫЫЫ. Также, использовать ТОЛЬКО на локальных тестовых установках!
Накидайте уж пару примеров, если можно, где-нибудь на тестовом сайте. Было бы отлично.
>на тестовом сайте
В онлайн лаборатории тоже не вариант =(
Для такого случая продлим сайту жизнь, например, на неделю.
ЗЫ. сделал только базовые вещи =)
ЗЫЫ. работать будет до 10 августа
Ваш модуль не тоже самое делает?
{
var obNavChain = document.getElementById('navigation');
if (obNavChain)
{
obNavChain.innerHTML = nav_chain;
}
},
Это стандартная функция из библиотеки Ajax, которая пытается всегда выполниться после Ajax запроса.