

Эта технология призвана позволить разработчикам без переделки вообще или с минимальными переделками переводить комплексные Компоненты 2.0 в режим работы AJAX.
[spoiler]
Все конечно более масштабно. Выдержка из документации, которая вышла даже раньше обновления

Технология AJAX в системе «1С-Битрикс: Управление сайтом» реализована на двух уровнях: * Локальный уровень – это ситуации, когда AJAX-запросы инициируются клиентскими сценариями на странице или внутри компонента, и обработчик AJAX-запроса самостоятельно обрабатывает полученные данные, например, обновляет некоторую рабочую область страницы. * Уровень компонентов – это ситуация, когда AJAX-запросы инициируются клиентскими сценариями, созданными ядром продукта, и обработчик AJAX-запроса обновляет рабочую область, занимаемую компонентом. |
Документация доступна в разделе Документации:
Прямая ссылка на PDF версию:
В следующих обновлениях мы планируем провести ревизию и корректировку своих компонент и выпустить обновления. Пока же технологию разработчики могут протестировать на своих компонентах.
Знаю, что завтра Максим Сидоренко, разработчик технологии, напишет подробнее в блоге, но как не попробовать самому.

Итак, возьму демо-версию и переведу раздел "Контент-Все новости", которые построен на комплексном Компоненте 2.0 bitrix:news в новый режим работы с AJAX.
В обычно варианте это выглядит так:

Пять новостей на странице. Нажимаем на ссылку новостей, страница перегружается и мы смотрим детально новость уже на новой странице. В общем, все как обычно.
Смотрю документацию по AJAX, что нужно сделать, чтобы компонент заработал.
Уровень компонентов Технология AJAX на уровне компонентов внешне работает очень просто: в параметрах компонента выставляется параметр 'AJAX_MODE' => 'Y', и компонент работает без перезагрузки страницы. |
Я открыл файл .parameters.php и вписал в список параметров:
"AJAX_MODE" => array(), |
После чего, открыл страницу в визуальном редакторе. Редактор уже увидел изменения и показал мне AJAX параметры компонента. Сразу оговорюсь, что руками код мне пришлось вставлять только потому, что этот компонент еще не проверен разработчиком, т.е. нами, на совместимость. Но это будет сделано и пользователи просто увидят параметры AJAX и, если посчитают нужным, поставят работу в этом режиме.

Жму "Сохранить и выйти" и смотрю, что получилось.

Когда нажимаю на детальную новость, появляется затенение области компонента и появляется детальная новость. И мне не пришлось менять компонент вообще. Очень удобно.
Быстрое тестирование показало, что Компонент 2.0 bitrix:news работает, работает постраничка, работает возврат к детальным новостям. Пока только накладки с RSS и в в бета-версии технологии не поддерживается BACK браузера и замена урла. Но я знаю, что это делают, видел, будет в следующем обновлении.

Обратите внимание на параметры AJAX в визуальном редакторе и читайте документацию по технологии, еще раз приведу ссылку:
Если кто-то будет трудиться на праздники, думаю вам будет интересно получить эту технологию для тестирования

Спасибо за инфу, будем тестировать....
Ошибка
Catchable fatal error: Object of class CComponentAjax could not be converted to string in /home/fathullin/shared/bitrix/modules/main/classes/general/module.php on line 111
Что не так?
похоже ошибка возникает только в php5, а в php4 все нормально
по крайней мере у меня именно так
Catchable fatal error: Object of class CComponentAjax could not be converted to string in /home/fathullin/shared/bitrix/modules/main/classes/general/module.php on line 111
Сделал все, как расписал Сергей, только результата не получил.
- ведущие куда-либо, кроме текущей страницы или на адрес URL, который будет обрабатываться чем-либо, кроме текущего скрипта (для режима ЧПУ)
и так попробовал...
$APPLICATION->GetCurPage() на выходе даст ссылку с теми же GET-параметрами, что и у текущей (в данном случае, текущей будет та страница, на которую пошел аяксовый запрос).
Попробуйте $APPLICATION->GetCurDir() с прикреплением имени файла, если не index.php или $APPLICATION->GetCurPageParam() с вырезанием лишних GET-параметров.
Если не поможет, обратитесь в ТП и укажите сразу параметры административного доступа к сайту и ссылку на страницу с компонентом.
вроде аякс должен работать, но всеравно не пашет, ладно отпишусь в ТП
ситуация абсолютно та же что и не комплексных...
а стало быть дело совсем не в компоненте...
Для того и существуют бета-версии, чтобы вот такие вещи вылавливать... Ошибка локализована и будет исправлена, скорее всего, сегодня. Возникала в поздних версиях PHP5, ранние ее пропускали.
Вот это хотел показать тебе.
Скриншот прислать что из этого выходит ?
А что делать с .parameters.php описано в доке. Если в списке параметров (в .parameters.php) прописать 'AJAX_MODE' => array(), то появятся дополнительные настройки, как на скриншоте у Сергея.
вот давайте напишу весь компонент...
В визуальном редакторе:
"bitrix:photo.detail",
"shankov",
Array(
"IBLOCK_TYPE" => "gallery",
"IBLOCK_ID" => "4",
"SECTION_ID" => "1",
"ELEMENT_ID" => isset($_REQUEST["ELEMENT_ID"])?$_REQUEST["ELEMENT_ID"]:4,
"SECTION_CODE" => "",
"ELEMENT_CODE" => "",
"ELEMENT_SORT_FIELD" => "sort",
"ELEMENT_SORT_ORDER" => "asc",
"FIELD_CODE" => Array("",""),
"PROPERTY_CODE" => Array("desc_eng","desc_rus","show_on_main","[smallsize]","[medsize]","[bigsize]"),
"SECTION_URL" => "index.php",
"DETAIL_URL" => "index.php?ELEMENT_ID=#ELEMENT_ID#",
"META_KEYWORDS" => "-",
"META_DESCRIPTION" => "-",
"DISPLAY_PANEL" => "N",
"SET_TITLE" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600"
)
);?>
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Галерея");
?><?$APPLICATION->IncludeComponent(
"bitrix:photo.detail",
"shankov",
Array(
"AJAX_MODE" => "Y",
"IBLOCK_TYPE" => "gallery",
"IBLOCK_ID" => "4",
"SECTION_ID" => "1",
"ELEMENT_ID" => isset($_REQUEST["ELEMENT_ID"])?$_REQUEST["ELEMENT_ID"]:4,
"SECTION_CODE" => "",
"ELEMENT_CODE" => "",
"ELEMENT_SORT_FIELD" => "sort",
"ELEMENT_SORT_ORDER" => "asc",
"FIELD_CODE" => Array("",""),
"PROPERTY_CODE" => Array("desc_eng","desc_rus","show_on_main","[smallsize]","[medsize]","[bigsize]"),
"SECTION_URL" => "index.php",
"DETAIL_URL" => "index.php?ELEMENT_ID=#ELEMENT_ID#",
"META_KEYWORDS" => "-",
"META_DESCRIPTION" => "-",
"DISPLAY_PANEL" => "N",
"SET_TITLE" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600"
)
);?><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
добавил туда аякс, появилось меню в свойствах компонента... только аякс все-равно не работает... все осталось по-прежнему - полный релоад страницы...
может быть аякс еще не включен в компоненты:
bitrix:news.list
bitrix:photo.detail
?
И еще, проверьте наличие <?$APPLICATION->ShowHeadScripts()?> в шаблоне сайта.
вот задумался над переходом... если в галерее идет переход между элементами, это является переходом на другую страницу?
В строке браузера адрес то меняется...
Шаблоны ссылок:
URL, ведущий на страницу с содержимым раздела: index.php
URL, ведущий на страницу с содержимым элемента раздела: index.php?ELEMENT_ID=#ELEMENT_ID#
не понимаю, почему не работает аякс... вроде должен работать ведь...
И вопросик зачем отправлять обновление в бету ? что сами разработчики не могли тыкнуть на разных серверах и проверить как оно работает?
Сразу вспомнилось обновление номер не вспомню интернет магазина, когда я тыкнул установить его то выдавалась ошибка sql, полез в код оказалось что в 3 sql запроса просто не закрыты, и на это пришлось потерять около 30 мин моего драгоценного времени
И вопросик зачем отправлять обновление в бету ? что сами разработчики не могли тыкнуть на разных серверах и проверить как оно работает?
Жень, все что я написал, я проделал на обычной демо-версии продукта. Все работало и работает. Обновлял через обычный сервер обновлений. Но возможно, я что-то не дописал
Хотя документации должно хватать. Попробуйте по ней сделать. Но я все же проверю по шагам, если что забыл написать, добавлю сейчас в текст.
Сразу вспомнилось обновление номер не вспомню интернет магазина, когда я тыкнул установить его то выдавалась ошибка sql, полез в код оказалось что в 3 sql запроса просто не закрыты, и на это пришлось потерять около 30 мин моего драгоценного времени
Жаль, не помню. Но если и было, то было давно. Производственный цикл сильно изменился.
А причина, почему не работает это обновления думаю есть. Сейчас разберемся.
Извините, пожалуйста!
Свое сообщение я поправил.
а что будут видет поисковики при заходе на /news/?
для них будут скрыты сами новости, а будет только лента?
мы как-то задумывались над изготовлением сайта полностью на аякс, но господа из SEO отдела нас вмиг отговорили.
вобщем-то идея очень интересная и позитивная, главное, чтоб работало не только с функциональной стороны, но и с внешней (поисковики)
эх, протестировать бы это на реальном сайте