Скины

Материал из GLENN CMS WIKI
Перейти к навигации Перейти к поиску

Основная информация

В проекте есть возможность использования нескольких вариантов оформления(скинов)

Скины располагаются в папке /site/skins для каждого скина своя папка

Пример: /site/skins/skin1 /site/skins/skin2

внутри папки со скином обязательно должны быть файл index.tpl и папка template_c

внутри template_с smarty хранит откомпилированные шаблоны

А файл index.tpl содержит базовое оформление

внутри файла index.tpl, в области контента необходимо вызывать функцию {site::getContent()} которая отрисует в область контента необходимую TPL основываясь на текущем плагине/контроллере/экшне

Также в папке со скином должна быть папка public которая должна содержать JS/CSS/Изображения


Также смотри Автоподключение стилей


Логика использования шаблона в определённом экшне

Функция site::getContent() отрисовывает шаблон, основываясь на текущих параметрах Module(плагин),Controller,Action

т.е. если мы обратились к урл http://site.ru/users/index/list

То будут вызваны

Плагин - users Контроллер - IndexController Экшн - listAction


Для отображения содержимого этого функционала функция getContent будет искать шаблон с именем list.tpl в следующих папках:

/site/skins/<текущий скин>/views/users/index/list.tpl
                                ^^^^^    ^^     ^^^
                                плагин  Кнтрл  Экшн
/site/plugins/users/views/index/list.tpl
              ^^^^^        ^^      ^^^
             плагин    Контроллер  Экшн
/plugins/users/views/index/list.tpl
         ^^^^^        ^^      ^^^
        плагин    Контроллер  Экшн


первый найденный шаблон будет отрисован в область контента

Переключение скина в контроллере

Внутри контроллера выбрать используемый скин можно с помощью метода $this->setSkin(<имя скина>);