Подскажите пожалуйста, можно ли каким-то образом получить свойство страницы в header.php шаблона и в зависимости от этого значения произвести какое-то действие?
Нужно вывести в шапке сайта разные компоненты,в зависимости от страницы.
В этом случае в файле темы header.php (local/templates/some_theme/header.php) с параметром "SOME_PARAM" условно работать не получится, значения возможно только получить (и вевести) через отложенные функции, например
Если же вам необходимо использовать параметры страницы в условиях PHP, вы можете заменить конструкцию
<? if ($APPLICATION->GetPageProperty('SOME_PARAM') === 'SOME_VALUE'): ?>
Текущая архитектура не позволяет сделать более красивого и простого решения.
Альтернативой, можно создать тип инфоблока "Страницы", добавить необходимые поля с большим вариантом по типам свойства, и привязать элемент к странице (можно так же через например кастомной свойство)
PS: за 10+ лет могли бы сделать сущности страниц и более элегантное решение для подобных задач
Не соглашусь с вами. Зачастую все можно решить стандартными возможностями. Просто все упираются как проверить условие, хотя для многих задач этого не нужно(сам упирался в такое). нужно вывести какой-то контент, а не условия проверять. Примеры:
Цитата
Нужно вывести в шапке сайта разные компоненты,в зависимости от страницы.
для этого вполне подойдут отложенные функции: в хедере устанавливаем в нужное место $APPLICATION->ShowViewContent("top_see");, а на нужных страницах формируем необходимый контент который помечаем что относится к "top_see"
Цитата
Мне нужно фон страницы и цвет шрифта менять
если не подходит вариант в футере подключать, то можно использовать вариант добавления нужных классов через SetPageProperty
пример как на бутстрапе можно одну страницу сделать фиксированно, вторую 100% по ширине. на странице где нужно 100% добавляем $APPLICATION->SetPageProperty('fluid_container', '-fluid');
в хедере <div class="container<?php $APPLICATION->ShowProperty("fluid_container") ?>"> ну и дальше плясать от нужных классов