Свойства страницы страницы:
@@title=Страница
@@_ads=1,2
Текст страницы
Код в шаблоне, где требуется вывести баннеры:
<?php
$ads = preg_split('/\s*,\s*/', trim(z_page()->getProperty('_ads', '')), -1, PREG_SPLIT_NO_EMPTY);
if (count($ads)) {
$ads_html = array();
$ads_templates = array(
'1' => '<a href="">...</a>',
'2' => '<a href="">...</a>',
'3' => '<a href="">...</a>',
);
foreach ($ads as $ad) {
if (isset($ads_templates[$ad])) {
$ads_html[] = $ads_templates[$ad];
}
}
echo implode('', $ads_html);
}
?>
Вместо цифр можно использовать кодовые названия. Этот код можно оформить в качестве функции, где основные варианты будут браться из внешнего файла, например.
Если не привязыватья к одному месту, а говорить обо всей странице, то можно сделать иным способом:
Свойства страницы страницы:
@@title=Страница
@@_ads=banner_1,banner_3
<p>Текст страницы</p>
<!--adv!banner_4-->
Часть шаблона:
<div>
<!--adv:banner_1-->
<!--adv:banner_2-->
</div>
<div><?php z_html(); ?></div>
<div>
<!--adv:banner_3-->
<!--adv:banner_4-->
<!--adv:banner_5-->
</div>
Создаем преобразователь от ztransform_interface (как пример, можно посмотреть на ztransform_split), задачей которого будет разбить свойство @@_adv и сохранить его как свойство объекта страницы в виде массива, и прописываем его в настройках движка.
Создаем плагин для лайта и цепляемся к событию ztemplate.postdraw. В вызваемом методе делаем замену всех конструкций <!--adv:****--> на HTML код, если в свойстве страницы указано выводить этот баннер, или на пустую строку в противном случае. Так же все конструкции <!--adv!****--> заменяем в любом случае. Тексты для баннеров HTML берутся из какого-то файла. Прописываем плагин в настройках движка.
После этого баннеры можно выводить как в теле страницы, так и в шаблоне + возможность управлять, какие баннеры выводить в шаблоне. Так же можно выводить какие-то по умолчанию, если на странице не указаны баннеры.
Возможных вариантов реализации может быть много, с разной логикой, поэтому реализовывать какой-то вариант в лайте проблематично. Скорее всего появятся различные расширения для лайта, добавляющую ту или иную функциональность. Например, замена стандартной карты сайта на карту сайта с постраничной навигацией, или вывод меню с картинками для страниц первого уровня, или различные автозамены.
P.S. Приведенные в посте примеры кода не тестировались.