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: GetProperty не работает в header.php / Файлы с папки php interface / BPOU - Bitrix blog

Bitrix: GetProperty не работает в header.php

У битрикса есть небольшая беда, его же $APPLICATION->GetProperty не работает в header.php, и все пользовательские свойства страницы считываются или в контенте или в footer.php, что не всегда устраивает.

Например нужно создать кастомный h1, который обычно живет себе спокойно в header.php и мы его получаем через $APPLICATION->GetTitle(). Тогда на помощь придёт совет с предыдущей статьи. Мы просто в контенте сделаем замену и поисковик ничего не узнает о изначальном заголовке. Алгоритм такой же как и в статье «Кросс-линкинг на весь сайт»

А вот и код:
AddEventHandler("main", "OnEndBufferContent", "ChangeMyContent");
function ChangeMyContent($content){
	GLOBAL $APPLICATION;
	$h1 = $APPLICATION->GetProperty("h1");
	if (!empty($h1))
		$content = str_replace("<h1>".$APPLICATION->GetTitle(),"<h1>".$h1,$content);
}
  • 0
  • 26 марта 2011, 13:49
  • admin

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

RSS свернуть / развернуть
Хорошо, но можно попробовать и так:

function myGetProperty($property_id, $default_value=false) 
{ 
    global $APPLICATION; 
	return $APPLICATION->AddBufferContent(Array(&$APPLICATION, "GetProperty"), $property_id, $default_value);
}

$APPLICATION->SetPageProperty('check', '123');

echo myGetProperty('ch');

$APPLICATION->SetPageProperty('check', '456');
+1
[irony]кто здесь?[/irony]
Нужно попробовать, но не уверен :)
Отпишусь после полевых испытаний
0
Только я немного опечатался… должно быть
echo myGetProperty('check');
0
Оно просто выводит в месте вызова функции значение, не работает как «ретёрн»
0
Очень странно. Буквально пару дней назад делал сайт, и не знал, что в header.php нельзя использовать это, но как ни странно, я получил значение свойства страницы с помощью $APPLICATION->GetProperty();
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.