Drupal: создание темы Drupal 7 начинается с описания .info файла

Начинать создание темы Drupal 7 следует с описания параметров этой темы в .info файле. Этот файл представляет собой обычный статический текст, в котором описывается базовый набор параметров темы оформления. В этом посте разбирается набор параметров и приводится описание их значений и правил заполнения конфигурационного файла темы оформления.

Каждая строка .info файла содержит ключ и значение, например:

name = my_theme

Для комментирования строки используется точка с запятой.

Отдельные ключи используют расширенный синтаксис: с двумя квадратными скобками. Такая форма записи используется для создания списка связанных значений подобно массиву. Если вы не знакомы с понятием массивов, в качестве иллюстрации можете посмотреть, как такая запись делается в .info файлах тем, которые поставляются с дистрибутивом Drupal. Дополнительно, ниже по тексту будут даны объяснения форме таких записей.

Если у вас нет подходящего редактора, чтоб открыть .info файл, можете использовать простые системные редакторы:

  • Для Mac OS – TextEdit.
  • Для Microsoft Windows – Notepad.

Примечание: В данной статье приводится описание процесса создания .info файла для темы оформления. Если вам нужно сделать описание для модуля, обратитесь к описанию .info файлов для модулей в разделе документации разработчика модулей.

Пример описания .info файла

Ниже приведен пример описания .info файла в Drupal 6 (от Drupal 7 практически ничем не отличается, в Drupal 7 ключ engine утратил свою силу и отсутствует в файле) для стандартной темы Garland.

name = Garland
description = Tableless, recolorable, multi-column, fluid width theme (default).
version = VERSION
core = 6.x
engine = phptemplate
stylesheets[all][] = style.css
stylesheets[print][] = print.css

Требования к именованию .info файла

Имя .info файла обязательно должно начинаться с буквы латинского алфавита. Имя может содержать буквы, цифры и знаки подчеркивания. Нельзя использовать дефисы, знаки пунктуации и пробелы.

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

Важно! Не используйте имя уже установленного модуля или темы оформления. Все установленные компоненты должны иметь уникальные имена. Действенным способом соблюсти уникальность именования служит использование префиксов. Например у вас сайт example.com, вы можете назвать ваше тему оформления ex_themename.

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

В .info файле могут быть указаны параметры, которые можно будет изменять через административный интерфейс Drupal.

Кодовая страница

Файл параметров темы оформления .info должен быть записан в кодировке UTF-8 без использования служебной метки порядка байтов (BOM – Byte Order Mark).

Состав ключей .info файла, который используется для создание темы Drupal 7

name (обязательное)

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

name = A fantasy name

Назад к списку ключей…

description (рекомендуется)

Краткое текстовое описание вашей темы оформления. Описание показывается на странице выбора темы оформления сайта в административной части.

description = Tableless multi-column theme designed for blogs.

Назад к списку ключей…

screenshot

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

Если ключ не задан в .info файле, Drupal пытается использовать файл “screenshot.png” из каталога темы оформления.

Ключ следует использовать только, если ваш файл скриншота имеет имя отличное от “screenshot.png” или, если вы размещаете этот файл в каталоге за пределами темы оформления, например: “screenshot = images/screenshot.png”.

screenshot = screenshot.png

Подробнее можно прочитать как подготавливать скриншот темы для административной части.

Назад к списку ключей…

version (зависимое значение)

Значение ключа version присваивается автоматически на drupal.org, когда вы публикуете свой пакет для общего доступа. Для тем, которые будут распространяться через drupal.org, этот ключ можно вообще опустить.

Если вы занимаетесь созданием собственного сайта, и не планируете распространять тему оформления для общего использования на drupal.org, можете задать значение ключа непосредственно.

version = 1.0

Назад к списку ключей…

core (обязательное)

Начиная с версии Drupal 6.x, во всех файлах .info нужно обязательно указывать значение последней версии ядра, которое поддерживается темой оформления. Значение ключа core сравнивается со значением константы DRUPAL_CORE_COMPATIBILITY, если значение не совпадает, то тема оформления будет отключена.

core = 6.x

Скрипт управления пакетами drupal.org автоматически использует корректное значение этого ключа для всех пакетов. Поэтому, если вы скачиваете пакеты с drupal.org, вы будете получать пакет именно для вашей версии ядра Drupal. Однако, для сайтов на Drupal, которые развертываются непосредственно с git, эта функция помогает контролировать правильность версий скачиваемых и устанавливаемых пакетов.

Назад к списку ключей…

engine (обязательна для версии Drupal 6.x и ниже)

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

В .info файлах для Drupal 7.x не используется, поскольку движок PHPTemplate принят по-умолчанию.

engine = phptemplate

Назад к списку ключей…

base theme

Под-темы могут создаваться на основе базовой темы. Эта функция позволяет наследовать от родительской темы параметры, ресурсы и пр.

Под-темы создаются на основе не только базовых тем, но и на основании других под-тем. Причем ограничений на уровень вложенности наследования явных не накладывается.

В ключе задается внутренний машинный идентификатор темы, на основе которой создается текущая тема. В указанном ниже примере приводится ключи темы Minnelli, которая является под-темой Garland.

base theme = garland

Более подробно о под-темах можно прочитать на странице описывающей структуру подтем и порядок наследования.

Назад к списку ключей…

regions

Блок ключей regions представляет собой массив значений, которые указывают Drupal на список областей размещения блоков на страницах. В квадратных скобках указывается идентификатор блока, значение – краткое описание блока, которое будет показано пользователю в административной части сайта.

Если значения блока regions не заданы, то будут использоваться значения по-умолчанию.

regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer

При необходимости вы можете переопределить значения указанных выше ключей по своему усмотрению.

Если вы переопределяете блок regions в Drupal 7.x, вы обязаны переопределить “regions[content] = Content”. Если вы хотите видеть какие-либо стандартные области из приведенного выше списка, то их необходимо объявить явно в вашем .info файле. За более подробным описанием обратитесь к странице документации с объявлением областей и заполнением значениями.

Назад к списку ключей…

features

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

Если вы не желаете отображать отдельный параметр в административной части сайта, просто опустите его. Однако, если вы не укажете ни одного дополнительного параметра, Drupal будет использовать набор параметров features по-умолчанию.

Например, в приведенном ниже тексте закомментированы параметры “primary_links” и “secondary_links”. Эти элементы не будут отображаться в административной части сайта.

features[] = logo
features[] = name
features[] = slogan
features[] = node_user_picture
features[] = comment_user_picture
features[] = comment_user_verification
features[] = favicon
features[] = main_menu
features[] = secondary_menu
; These last two disabled by redefining the
; above defaults with only the needed features.
; features[] = primary_links
; features[] = secondary_links

Более подробное описание смотрите на странице дополнительных параметров темы оформления.

Назад к списку ключей…

theme settings

Раздел theme settings можно использовать для задания значений параметров features по-умолчанию: «включено» или «отключено».

settings[toggle_logo] = 1
settings[toggle_name] = 1
settings[toggle_slogan] = 1
settings[toggle_node_user_picture] = 1
settings[toggle_comment_user_picture] = 1
settings[toggle_comment_user_verification] = 1
settings[toggle_favicon] = 1
settings[toggle_main_menu] = 1
settings[toggle_secondary_menu] = 1

Подробнее читайте на странице расширенных параметров темы оформления.

Назад к списку ключей…

stylesheets

Обычно темы оформления используют файл style.css автоматически. Дополнительные таблицы стилей могут быть подключены с использованием функции drupal_add_css(), которую вызывают в файле “template.php”.

Начиная с версии Drupal 6.x появилась возможность задавать список стандартных таблиц стилей в .info файле без необходимости подключать их с использованием функции.

stylesheets[all][] = theStyle.css

Подробнее можете прочитать, как подключать таблицы стилей.

Назад к списку ключей…

scripts

В теме оформления подключение скриптов осуществляется с помощью функции drupal_add_js(), которая вызывается в файле “template.php”.

Начиная с версии Drupal 6.x появилась возможность задавать список стандартных для темы скриптов в .info файле без необходимости подключать их с использованием функции.

В версии Drupal 6.x, если файл с именем script.js присутствует в каталоге темы оформления, он будет автоматически подключен.

В версии Drupal 7.x алгоритм снова поменялся и файл script.js будет подключен только, если он будет явно задан в .info файле темы оформления.

scripts[] = myscript.js

Подробнее можно прочитать на странице работы со скриптами.

Назад к списку ключей…

php

Ключ php задает значение минимальной версии PHP интерпретатора, который поддерживается темой оформления. По-умолчанию значение этого ключа берется из константы DRUPAL_MINIMUM_PHP, которая задает минимальное значение версии php для ядра Drupal. Значение может быть переопределено на более новую версию, если этого требуют используемые при создании темы алгоритмы.

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

php = 4.3.3

Назад к списку ключей…

Пример .info файла темы из дистрибутива Drupal

Cоздание темы Drupal 7 начинается с описания .info файла

name = Garland
description = Tableless, recolorable, multi-column, fluid width theme (default).
version = VERSION
core = 6.x
engine = phptemplate
stylesheets[all][] = style.css
stylesheets[print][] = print.css

; Information added by drupal.org packaging script on 2008-02-13
version = "6.0"
project = "drupal"
datestamp = "1202913006"

Текст .info файла под-темы Minnelly, которая использует в качестве базовой темы Garland.

name = Minnelli
description = Tableless, recolorable, multi-column, fixed width theme.
version = VERSION
core = 6.x
base theme = garland
stylesheets[all][] = minnelli.css

; Information added by drupal.org packaging script on 2008-02-13
version = "6.0"
project = "drupal"
datestamp = "1202913006"

Перевод сделан со страницы документации Drupal с некоторыми поправками в пользу версии Drupal 7.x: https://drupal.org/node/171205