Как создать новый макет с позициями
Этот урок проведет Вас через процесс создания нового макета материала для шаблона в компоненте ZOO.
Начнем
Макеты материала расположены в папке /media/zoo/applications/APPLICATION/templates/TEMPLATE/renderer/item/. В ней располагается три файла. Файл positions.config неприкосновенен ;-) Он содержит настройки позиций. Файл positions.xml определяет позиции, ассоциированные с макетом. Файл metadata.xml содержит метаданные макета.Разбирая по деталям
Первым шагом здесь будет создание php файла макета материала. Давайте назовем макет demo. Исходя из этого, создадим файл /media/zoo/applications/APPLICATION/templates/TEMPLATE/renderer/item/demo.php Здесь Вы будете отображать позиции. Типичный вызов функции выглядит следующим образом:<?php if ($this->checkPosition('MY_POSITION')) : ?>
<div class="pos-my-position">
<?php echo $this->renderPosition('MY_POSITION'); ?>
</div>
<?php endif; ?>
Сначала мы проверяем наличие существующих позиций. Затем мы отображаем позиции с помощью
$this->renderPosition('MY_POSITION');
В примере, указанном выше, мы отображаем позицию MY_POSITION. Чтобы создать эту позицию, мы должны подправить файл positions.xml, и включить в него следующий код.
<positions layout="demo">
<position name="MY_POSITION">This is my position</position>
</positions>
Он указывает макету demo на то, что в нем должна быть позиция MY_POSITION.
В конце мы добавим метаинформацию для макета. Чтобы сделать это, мы изменим файл metadata.xml,включив в него следующий код:
<layout name="demo">
<name>Demo</name>
<description>This is my demo layout.</description>
</layout>
Здесь мы можем добавить имя и описание макета.Макет элемента "Связанные статьи"
Если мы хотим привязать макет к макету свзяанных статей, мы добавим аттрибутtype="related"
к тегу макета.
<layout name="demo" type="related">
<name>Demo</name>
<description>This is my demo RelatedItems layout.</description>
</layout>
Макет элемента "Карты GOOGLE"
Если вы хотите привязать макет к макету карт GOOGLE, мы добавим аттрибутtype="googlemaps"
к тегу макета.
<layout name="demo" type="googlemaps">
<name>Demo</name>
<description>This is my demo GoogleMaps layout.</description>
</layout>
Макет подачи
Если вы хотите привязать макет к макету подачи материалов, мы добавим аттрибутtype="submission"
к тегу макета.
<layout name="demo" type="submission">
<name>Demo</name>
<description>This is my demo submission layout.</description>
</layout>
Макет редактирования
Если вы хотите привязать макет к макету редактирования на сайте, добавьте аттрибутtype="edit"
к тегу макета.
<layout name="demo" type="edit">
<name>Demo</name>
<description>This is my demo edit layout.</description>
</layout>