Управление темами
Примечание
Вообще-то есть специальное расширение для работы с темами – VisualTheme. Оно позволяет описывать темы в формате Smarty. Документация по нему будет доступна позже.
Общая информация
Темы в VQS находятся в папке /themes/. Каждая тема представляет из себя папку, структура которой такова:
- имя_темы
makehtml.php
1Наиболее важным является файл makehtml.php – по сути он и является темой. Именно в этом файле создаётся дизайн сайта.
Общие правила разметки
В самом начале этого файла нужно написать:
<?php
include("themes/standartHeader.php");
?>
Эта конструкция обеспечит подключение всех необходимых системных стилей и js-скриптов. Всё, что находится дальше будет выведено уже внутри тега <body>.
Весь контент страницы находится в переменной $data. В том месте, где необходимо вывести содержимое страницы нужно просто написать:
<? echo $data; ?>
Кроме того, из этого файла доступны все функции ядра. Есть несколько функций, которые полезно применять именно в рамках темы.
- $this->GetPagePath(); – вернёт html-код для «хлебных крошек" (как на этом сайте под линией меню)
В самом конце файла не нужно ставить закрывающие теги </body> и </html> – система сделает это сама.
Работа с блоками ThemeBlocks
Для вывода блока сервиса ThemeBlocks нужно написать следующую конструкцию:
<? if($this->srvIsInstalled('ThemeBlocks')) echo ThemeBlocks_GetBlock($this,'имя_блока');?>
Ссылки редактировать, свойства итд
Для вывода служебных ссылок для редактирования страниц рекомендуется использовать такой код:
<?
echo $this->Format('{{createpage}}')."<br />";
if($this->srvIsInstalled('WikiPatterns')) {
if(Wptrn_IsPageTemplated($this,$this->page["id"])) {
echo "<a href=\"".$this->href('wpatternsedit')."\">".
$this->GRV("PEdit")."</a><br />";
}
}
echo "<a href=\"".$this->href('edit')."\">".
$this->GRV("Edit")."</a><br />";
if($this->srvIsInstalled('SpawHtml')) {
echo "<a href=\"".$this->href('qedit')."\">".
$this->GRV("VEdit")."</a><br />";
}
echo "<a href=\"".$this->href('settings')."\">".
$this->GRV("Settings")."</a><br />";
if ($this->IsAdmin())
echo "<a href=\"/Администрирование/Сервисы\">Сервисы</a><br />";
?>
wakka.ru.php
2Самый обыкновенный языковой файл. К его значениям обращаться как всегда через функцию $this->GRV();
Пример:
<?php
$themeResource = array(
"TextSearchPage" => "TextSearch",
"LoginPage" => "Login",
"Edit" => "Редактировать",
"VEdit" => "Визуально",
"PEdit" => "Редактировать с помощью шаблонов",
"Ext" => "ru",
);
?>