Пишу компонента по парсингу и записи Rss ленти в инфоблоки, не зная bitrix-а. Здесь результат: https://bitrix.nbrz.ru/imported-news/, код: https://github.com/M0LFAR/test-alterEgo
urlrewrite:
array(
"CONDITION" => "#^/imported-news/#",
"RULE" => "",
"ID" => "bitrix:news",
"PATH" => "/imported-news/index.php",
)
Вопрос: 1. Как обработать ajax запрос из шаблона компонента, какая есть альтернатива? 2.Как при ЧПУ выводить новости только для активной секции, например по адресу https://bitrix.nbrz.ru/imported-news/drugie/ - должны отображатся новости из секции drugie? Как в фильтр передать параметр из uri?
1.1 в запросе передаете параметр, означающий, что это AJAX запрос. По этому параметру необходимо перед контентом, что нужно отправить поставить сброс буфера $APPLICATION->RestartBuffer(), а сразу после die(). Минус решения, тратятся ресурсы на построение кода перед этим компонентом.
1.2 отдельный файл принимающий AJAX запрос, не подключающий header.php. И содержащий подключение компонента. Только надо позаботится, чтоб на странице и в этом скрипте настройки компоненты были соответсвющими.
Получаете текущий URL и разбираете его на значимые для вас части
$request = Bitrix\Main\Context::getCurrent()->getRequest(); $curDir = $request->getRequestedPageDirectory();
А дальше по нему фильтруете, по тем признакам что у вас есть
На мой взгляд практичнее создать агента (или просто скрипт дергаемый cron),который с заданной периодичностью, будет опрашивать фид и записывать в бд. А компоненту останется только выводить накопленные новости (обязательно с использованием кеширования).
Да даже если оставлять ваш подход - продумайте оптимаьный интервал времени, когда нет смысла опрашивать источник, а достаточно просто отдать из кеша.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
глупый недочет, каких бы это плюсов производительности не дало, это в любом случае минус, ключи должны сохранять свою изначальную позицию!