Разработчику/Управление-темами
Это старая версия Разработчику/Управление-темами за 2012-03-03 18:02:49..

Управление темами


Примечание
Вообще-то есть специальное расширение для работы с темами – VisualTheme. Оно позволяет описывать темы в формате Smarty. Документация по нему будет доступна позже.


Оглавление документа

Общая информация

Темы в VQS находятся в папке /themes/. Каждая тема представляет из себя папку, структура которой такова:

  • имя_темы
    • appearance
      • makehtml.php1
    • css – папка для файлов стилей
      • .htaccess
      • wakka.css
    • elements – папка для элементов темы, которые будут подгружаться через AJAX
    • icons – значки темы
      • .htaccess
    • images – картинки темы
      • .htaccess
    • js – js-скрипты
      • .htaccess
    • lang – языковые файлы темы
      • wakka.ru.php2
      • wakka.en.php

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",

);
?>


 
Подразделы
Раздел не содержит подстраниц.


Комменты