Привет! Такая ситуация. Мне нужно выводить заголовок страницы только на всех страницах кроме нескольких исключений типа главной страницы. Для них я создаю свойство DontShowTitle со значением yes, в PHP это выглядит как:
Это не будет работать принципиально. Так как сначала постороится шаблон, в котором переменная DontShowTitle будет неопределена, а только потом этой переменной присвоится значение yes.
В данной ситуации необходимо, чтобы переменная была определена перед вызовом header - а это уже ручками определяется и никак не через API.
Поиск по форуму может помочь, потому что данную тему уже не один раз поднимали.
Anton Ezhkov пишет: Необходимо использовать технологию отложенных функций
В данном случае, совет Антона совершенно правильный.
Немного поясню. Функция GetProperty возвращает свойство раздела, которое уже известно на момент сборки страницы, и поэтому может быть проверено в шаблоне.
Свойство страницы так проверить не получится, потому что GetPageProperty не является отложенной функцией, а значение свойства страницы вообще может быть установлено из какого-нибудь компонента на странице.
Использование технологиии отложенных функций позволяет произвести проверку свойства страницы. Пример того как организуется подобная схема можно найти в описании функции:
Во! Вспомнил вчера как я решал такую ситуацию! На самом деле все очень просто!
В хедере пишем в нужном месте где ходим выводить какую-то информацию в зависимости от переменной DontShowTitle: <? $APPLICATION->ShowProperty("pageh1"); ?>
далее идем в самый конец футера (для надежности) и вставляем такой год: <? if ($APPLICATION->GetProperty("DontShowTitle") != 'yes') $APPLICATION->SetPageProperty("pageh1", "<h1>".$APPLICATION->ShowTitle()."</h1>"); else $APPLICATION->SetPageProperty("pageh1", ""); ?>
вот и все. гораздо проще чем делать свои отложенные функции.