Strict Standards: Declaration of PluginAceadminpanel_ModuleLang::Get() should be compatible with ModuleLang::Get($sName, $aReplace = Array, $bDelete = true) in /home/deer/pages.org.ua/blog/plugins/aceadminpanel/classes/modules/lang/Lang.class.php on line 21 Strict Standards: Declaration of PluginAceadminpanel_ModuleViewer::_SortBlocks() should be compatible with ModuleViewer::_SortBlocks($a, $b) in /home/deer/pages.org.ua/blog/plugins/aceadminpanel/classes/modules/viewer/Viewer.class.php on line 24 Bitrix: вывод мета заголовков и описаний (meta-title, meta-description) при кешировании компонентов / Компоненты / BPOU - Bitrix blog

Bitrix: вывод мета заголовков и описаний (meta-title, meta-description) при кешировании компонентов

Добрый день мне (все равно никто не читает)

Частенько, при включённом кешировании компонент, с помощью «магик» метода
$APPLICATION->SetPageProperty("description", $desc);
в result_modifier.php и template.php не получается ничего вывести/изменить, потому что кеш просто будет выводить первое закешированное для всех записей.

Что бы этого избежать, нужно завсети друга для result_modifier.php, под именем component_epilog.php, который выполняется мимо кеширования, каждый раз. А для того, что бы ему что-то передать, нужно в result_modifier.php добавить
global $APPLICATION;
$cp = $this->__component; 
if (is_object($cp)){
	$cp->arResult['DESC'] = implode(' ', array_slice(explode(' ', strip_tags($arResult["PREVIEW_TEXT"])), 0, 20));
	$cp->SetResultCacheKeys(array('DESC'));
	$arResult['DESC'] = $cp->arResult['DESC'];
}

а с component_epilog.php уже вывести в нужное место
global $APPLICATION;
$APPLICATION->SetPageProperty("description", $arResult["DESC"]);


зы: читать подробности тут dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2975
  • 0
  • 05 февраля 2014, 22:24
  • admin

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.