Поиск по блогу

пятница, 31 января 2014 г.

Drupal: от установки - до сайта. Доступно и понятно. Часть 7: тема / шаблон

Сегодня, наконец, мы будем устанавливать и корректировать под свои задачи шаблон.
Шаблонов для Друпал великое множество и на офсайте живут они здесь: https://drupal.org/project/project_theme. На момент написания их было более тысячи из них более 500 для 7 ветки. Почти все они (те что на офсайте) бесплатные, поэтому предполагать что в этой куче завалялся и ждет именно вас какой-то нереальный шедевр совершенно не стоит. С другой стороны есть достойные шаблоны с очень неплохим функционалом, как например: https://drupal.org/project/marinelli или https://drupal.org/project/danland
Однако исходя из своего опыта и опыта коллег практически всегда любой шаблон необходимо "допиливать" под конкретную задачу. При таком количестве шаблонов нет особого желания делать свой шаблон с нуля, даже при наличии "нереального мегадизайна" от дизайнера сайта. Поэтому в большинстве случаев поступаем так: ищем из существующих шаблонах что-то более-менее похожее и таки допиливаем. Однако, не стоит забывать указывать авторство хотябы так: Based on Unreal Themplate by Ivan Webmaster http://supersite.com.

Полезную информацию по темизации Друпал, а также созданию собственных тем с нуля можно найти, например, здесь:
Все вновь устанавливаемые темы необходимо располагать в папке /sites/theme/theme_name. Друпал поддерживает несколько движкой тем (theme engine). По умолчанию, да и наиболее распространенным есть движок PHPTemplate.
Обязательные файлы темы:
  • theme_name.info -  файл определений или описания. Здесь содержится информация по внутреннему названию темы, ее версии и кратком описании; расположению файлов CSS, JS; определяются регионы.
  • template.php - файл логики темы. Также здесь находятся перекрываеме или собственные функции и переменные для файлов шаблонов. Этот файл может отсутсвовать.
  • xx.tpl.php - файлы шаблонов. В файлах находится собственно разметка сайта с внедренными PHP-переменными. Если файл шаблона отсутствует, то будет вызван стандартный файл Друпал.
На сайте http://drupalace.ru я нашел очень полезную картинку, на которой понятно какие файлы за что отвечают
Добавить свой регион совершенно не сложно. Сначала определяем его в в массиве regions файле theme-name.info, например так:
regions[mynewreg] = My New Region

Затем в файле шаблона page.tpl.php определяем регион:
<?php if($mynewreg) echo $mynewreg ?>

Не забываем сбросить кеш: Меню/<домик>/Очистить все кеши.

Переменные Drupal 7

Вот ссылки на перевод документации и конкретно по переменным, что используются в шаблонах:

 Вообще очень неплохой сайтик http://iflight.su/

Чтобы создать свою переменную для использования в шаблонах *.tpl.php в template.php используем функции:
function themename_preprocess_XXX(&vars)
{
  $vars['my_variable'] = 'Renault';
}
где XXX:
  • page - для передачи в page.tpl.php
  • html - для передачи в html.tpl.php
  • node - для передачи в node.tpl.php
В этих файлах получаем переменную: $my_variable;

Более того, для передачи переменной из своего модуля в шаблон, действуем подобным образом в файле my_module.module:

function my_module_preprocess_XXX(&$variables) {
   $variables['my_module_variable'] = 'Renault';
}

В принципе информации достаточно для старта чтобы разобраться и подкорректировать любую тему или создать свою.

Кстати, для экономии места можно смело удалить не используемые темы из папки /themes, за исключением папки /themes/engines. Понятно, что удаляемая тема должна быть выключена в админке, иначе беды не избежать.



Комментариев нет :

Отправить комментарий

Есть что сказать - скажи