Документация InstantCMS

для администраторов и разработчиков

Инструменты пользователя

Инструменты сайта


dev:templates:scheme

Создание файла схемы позиций

Файл схемы позиций предназначен для удобного визуального расположения виджетов в админке. В нем вы должны визуально отобразить все позиции вашего шаблона.

Введение

Этот файл называется 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>

К оглавлению раздела

dev/templates/scheme.txt · Последнее изменение: 09.05.2016 16:21 — fuze