Вы здесь

Создание темы

Темизация Drupal 5

Темизация Drupal 5

Друпал обладает достаточной мощью и гибкостью для того, чтобы вы могли сделать тему любой сложности. Система даёт бесчисленные способы решения возникающих вопросов, но вы должны знать как Друпал работает с темами, чтобы быть в состоянии выбрать оптимальный вариант. Зная принципы создания тем, вы можете минимизировать свой код и облегчить последующее обслуживание.

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

  • HTML и CSS
  • JavaScript и jQuery (если вы будете делать тему с поддержкой этих скриптов)
  • PHP (это не является необходимым, но во многих ситуациях знание PHP поможет вам лучше понимать о чём идёт речь)
  • Терминологии Друпала

Старайтесь при разработке темы придерживаться стандартов кодирования — это позволит сохранить чистоту кода темы. Перед созданием темы, вам нужно представлять цели и возможности сайта, для которых вы делаете тему. Зная определённые требования значительно легче разрабатывать новую тему, чем проектируя её, исходя из общих представлений.


Это руководство содержит информацию о работе с темами в Друпале 5. В таблице ниже представлен список стандартных тем, движков которые они используют, типов шаблонов и стилей.

Тема Движок (PHP) Шаблон (XHTML) Стиль (CSS)
Garland PHPTemplate .tpl.php .css
Minelli .css
Bluemarine .tpl.php .css
Chameleon Chameleon.theme .css
Marvin .css

Темы и их шаблоны в Друпале 5 размещены в своих папках и подпапках общей папки themes (для дополнительных тем используйте папку sites/all/themes). Движки тем сканируют каждую подпапку в поисках шаблонов (файлов с расширениями .tpl.php и .xtmpl). Если в папке темы находится файл style.css, то он используется автоматически.

Для создания варианта темы, который отличается от базовой темы только оформлением, можно создать подпапку в папке базовой темы и поместить в неё файл style.css. При использовании этой темы, Друпал автоматически добавит этот файл к основному файлу оформления темы. Таким образом работают темы Minelli и Marvin.

Если в папке темы находится файл с названием screenshot.png, то этот файл автоматически используется в качестве изображения темы на странице Управление — Строение сайта — Темы.

При создании своей темы, можно начать с изменения какой-либо существующей темы или приступить к разработке темы с нуля. Для настройки существующий темы, создайте в папке sites/all/themes папку для новой темы и скопируйте в неё все файлы той темы, которую нужно изменить. Как было сказано выше, если вы хотите изменить только оформление какой-либо темы, то просто поместить новый файл style.css в подпапку этой темы.

Отметьте: когда вы создаёте новую тему, её системное название не должно совпадать с системным названием используемого модуля, так как названия модулей и тем используются в названиях функций, а использование функций с одинаковыми названия может вызвать конфликты.

Движок темы PHPTemplate

Стандартным движком тем в Друпале 5 является PHPTemplate. Он написан Adrian Rossouw. Движок использует в качестве шаблонов файлы something.tpl.php, которые позволяют управлять функциями theme_something(). Документацию по функциям оформления можно найти в Drupal API.

Каждый файл состоит из HTML-скелета с включением PHP-сниппетов, которые генерируют необходимую информацию. PHPTemplate позволяет создавать темы любой сложности. Даже если вы не знаете PHP, то вы всё равно сможете создавать свои темы, так как в них используются простые сниппеты, которые вы можете просто скопировать в свои шаблоны из других тем.

Создание новой темы

Для создания новой темы на движке PHPTemplate, создайте новую папку в папке sites/all/themes, например mytheme. Название папки является также и системным названием темы, которое используется в названиях функций. Таким образом на название папки распространяются стандартные для PHP-ограничения: папка должна начинаться с латинской буквы или знака подчёркивания, после которых могут следовать любое количество букв, цифр или подчёркиваний (но не пробелов, дефисов или иных специальных знаков).

После создания папки, создайте в ней файл с названием page.tpl.php. Это единственный файл, который является для темы обязательным. Он переопределяет функцию theme('page'), которая занимается формированием страницы (включая регионы, вкладки, цепочку навигации...). Для переопределения стандартных функций движка, можно создать следующие файлы:

  • block.tpl.php (theme('block')) — формирование блоков
  • box.tpl.php (theme('box')) — формирование контейнеров
  • comment.tpl.php (theme('comment')) — формирование комментариев
  • node.tpl.php (theme('node')) — формирование документов
  • page.tpl.php (theme('page')) — формирование страницы

Эти файлы, если вы их создадите в папке своей темы, будут использоваться вместо включенных в движок по умолчанию (стандартные файлы находятся в папке DRUPAL_ROOT/themes/engines/phptemplate).

Комментарии

Изображение пользователя Анонимно

Проще взять тему и влупить туда свою картинку.