Создание файла схемы позиций
Файл схемы позиций предназначен для удобного визуального расположения виджетов в админке. В нем вы должны визуально отобразить все позиции вашего шаблона.
Введение
Этот файл называется scheme.html и находится в корне дерева категорий шаблона. Внутри файла определен HTML код посредством таблиц HTML, однако вы можете сверстать схему в любом виде по своему усмотрению.
В этом файле можно использовать PHP код, через $this доступны все методы объекта класса cmsTemplate. В частности, если у вашего шаблона есть опции, от которых зависит, например, расположение сайдбара, то схему позиций можно формировать принимая во внимание значение этих опций.
Ключевые выражения
Ключевыми выражениями в этом файле обозначаются логические блоки. Выражения обрамляются фигурными скобками, а внутри разделены знаком двоеточия ( : ). Слева от двоеточия написан тип выражения, справа - его значение. Значения выражений могут содержать буквы английского алфавита, цифры, знаки подчеркивания и дефис. Существуют три типа выражений:
- {position:НАЗВАНИЕ_ПОЗИЦИИ}
- {block:ПОДПИСЬ}
- {cell:ПОДПИСЬ}
Выражением {position:НАЗВАНИЕ_ПОЗИЦИИ} обозначаются блоки, куда будут перетаскиваться виджеты. Названия позиций вам нужно придумать заранее и они должны быть одинаковы при использовании их в этом файле и в файле макета самого шаблона.
Блоки {block:ПОДПИСЬ} и {cell:ПОДПИСЬ} по сути одинаковы, а отличаются лишь их возможным расположением на схеме. {block:ПОДПИСЬ} можно располагать рядом с выводом блоков позиций, {cell:ПОДПИСЬ} располагают изолировано от блоков позиций (сверху или снизу их не должно быть). Подпись - это либо название константы, либо просто некий английский текст. Эти блоки вам необязательно использовать, они сделаны для еще более удобной визуализации схемы позиций шаблона.
Пример
<table> <tr> <td width="30%" class="filled"> {cell:LANG_PAGE_LOGO} </td> <td> {position:header} </td> </tr> </table> <table> <tr> <td colspan="2"> {position:top} </td> </tr> <tr> <?php if($this->options['aside_pos'] == 'left'){ ?> <td width="35%"> {position:right-top} {position:right-center} {position:right-bottom} </td> <?php } ?> <td width="65%"> {position:left-top} {block:LANG_PAGE_BODY} {position:left-bottom} </td> <?php if($this->options['aside_pos'] == 'right'){ ?> <td width="35%"> {position:right-top} {position:right-center} {position:right-bottom} </td> <?php } ?> </tr> </table> <table> <tr> <td width="65%" class="filled"> {cell:LANG_PAGE_FOOTER} </td> <td> {position:footer} </td> </tr> </table>