/**
 * LiveStreet CMS
 * Copyright © 2013 OOO "ЛС-СОФТ"
 *
 * ------------------------------------------------------
 *
 * Official site: www.livestreetcms.com
 * Contact e-mail: office@livestreetcms.com
 *
 * GNU General Public License, version 2:
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 *
 * ------------------------------------------------------
 *
 * @link http://www.livestreetcms.com
 * @copyright 2013 OOO "ЛС-СОФТ"
 * @author Serge Pustovit (PSNet) <light.feel@gmail.com>
 *
 */

--- Шаблоны ---


--- Вводная информация ---

Говоря "конфиг шаблона" в данном тексте подразумевается конфиг, который может быть добавлен в каждый шаблон и который должен находится по пути

ИМЯ_ШАБЛОНА/settings/config/config.php

структура конфига - такая же как и структура конфига плагина:

  <?php
  $config = array();

  // код

  return $config;
  ?>
  


--- Возможности ---

Для разработчиков шаблонов добавлена возможность добавить информацию о своем шаблоне.

1. Каждый шаблон в своем каталоге может иметь два файла, описывающие его:
  
  - template.xml - файл, который содержит полное имя шаблона, его автора, домашнюю страницу, версию, список зависимостей (минимальная версия лс и плагины), описание и список тем шаблона
  - template_preview.png - превью шаблона, когда он будет показан в списке шаблонов
  
Первый файл должен быть в кодировке utf-8 БЕЗ bom (byte order mask) и может содержать описания для нескольких языков (структура подобна структуре файла plugin.xml из корня каталога плагина)
Второй - информативное превью вашего шаблона размером 200х138px.

2. Работа тем

Смена темы шаблона через админку только меняет значение параметра view.theme из конфига на системное значение из файла template.xml для выбранной темы. Больше админка никаких движений не делает.
Разработчику шаблона следует самому позаботится о функционировании смены темы в шаблоне, это дает больший простор для действий.

В большинстве случаев работа тем связана с подключением отдельных css файлов для каждой темы. Сделать это можно в конфиге вашего шаблона, предварительно проверив выбрана ли тема, используя следующий код:

  $config['head']['default']['css'] = Config::Get('head.default.css');
  if (Config::Get('view.theme')) {
    $config['head']['default']['css'][] = '___path.skin.web___/themes/___view.theme___/style.css';
  }
  
При этом в корне вашего шаблона следует создать папку themes, а в ней подпапки с системными именами тем (которые прописаны в template.xml), а внутри этих папок - файлы style.css с содержимым
для каждой темы.

Также можно смело применять более сложные условия подключения разных файлов шаблонов используя условия проверяющие значение view.theme из конфига.

3. Необходимые правки если ранее шаблоном использовались темы.

По поводу тем шаблонов следует остановится особенно: если раньше в конфиге шаблона вы подключали используемую тему подобным образом:

  $config['view']['theme'] = 'default';

то теперь такую строку следует удалить из конфига шаблона полностью, это значение теперь устанавливается через интерфейс админки.

4. Пример файла template.xml

Полный пример файла template.xml можно посмотреть в папке /example/skins/ админки из коробки LiveStreet, там прописаны две зависимости от плагинов с кодами plugin1 и plugin2,
две темы с системными именами theme1 и theme2.

5. Тех. подробности.

При смене шаблона тема сбрасывается (null). Тему можно менять только у активного шаблона, но список тем доступен в списке для просмотра.
