Тема это набор файлов, которые определяют выводимые на страницу данные, оформление и взаимодействие с ними. Всё, что нужно Друпалу для того, чтобы увидеть тему, это .info-файл. Если нужно, здесь могут быть определены метаданные, стили, скрипты, регионы и другие параметры. Все другие файлы, такие как шаблоны, стили, скрипты и другие, являются необязательными и служат для детальной настройки темы.
Название .info-файла определяет и системное название темы. Системное название темы соответствует названию .info-файла. Например, если файл называется drop.info, то Друпал будет считать, что системное название темы это drop.
В связи с тем, что системное название темы используется в названиях функций, на системное название накладываются стандартные для PHP ограничения (us3.php.net/manual/en/language.functions.php):
Все остальные знаки, включая дефис, пробел, знаки пунктуации и так далее, использовать нельзя.
Правила записей в .info-файле похожи на правила для .ini-файлов. Строка начинается с записи ключа, потом используется знак = и затем вводится значение ключа, то есть запись выглядит подобным образом:
key = value
.info-файл — это текстовый файл определяющий статические параметры темы, причём большинство параметров этого файла являются дополнительными.
Содержание .info-файла кешируется в базе данных (не путайте кеш темы с реестром темы). Таким образом, после внесения изменений связанных с добавлением или удалением ключа и его значения, нужно очистить кеш темы.
В разделе управления сайтом различные параметры темы могут быть включены или выключены на странице темы. Например можно выключить вывод миссии сайта, просто сняв отметку с поля «Миссия». Все эти параметры будут доступны или недоступны на этой странице в зависимости от того, определено ли их использование в разделе features[]. Если соответствующая возможность определена, то она будет доступна на странице настройки темы.
Когда в теме не определены параметры которые могут использоваться в .info-файле, то используются параметры по умолчанию.
Параметры, которые определены, применяются группами. Например, если в .info-файле определён 1 регион с использованием группы regions[], то все 5 значений этой группы определённые по умолчанию применяться уже не будут, будет применяться только этот 1 определённый регион. Если .info-файл не содержит ни одной записи для группы regions[], то будет применена вся группа параметров по умолчанию состоящая 5 значений.
Комментарии
Пытаюсь добавить два региона через файл инфо. Прописываю, загружаю сайт - страницу выбора тем (для обновления кеша). Выдает ошибку:
# warning: Invalid argument supplied for foreach() in S:\home\sitename\www\includes\theme.inc on line 463.
# warning: Invalid argument supplied for foreach() in S:\home\sitename\www\includes\theme.inc on line 468.
эти строки:
463: foreach ($theme->info['stylesheets'] as $media => $stylesheets) {
468: foreach ($theme->info['scripts'] as $script => $path) {
Когда ставлю другую тему по умолчанию, эти две ошибки остаются. Стоит убрать в моей теме в файле инфо определения регионов, проблема исчезает.
Более того, когда моя тема стоит по умолчанию и прописаны мои регионыЮ выдает еще три ошибки:
# warning: array_map() [function.array-map]: Argument #2 should be an array in S:\home\sitename\www\modules\system\system.module on line 975.
# warning: array_keys() [function.array-keys]: The first argument should be an array in S:\home\sitename\www\includes\theme.inc on line 1760.
# warning: Invalid argument supplied for foreach() in S:\home\sitename\www\includes\theme.inc on line 1760.
if (!array_key_exists($theme_key, $list)) {
$info = unserialize(db_result(db_query("SELECT info FROM {system} WHERE type = 'theme' AND name = '%s'", $theme_key)));
975: $list[$theme_key] = array_map('t', $info['regions']);
}
1760: foreach (array_keys($regions) as $region) {
Я пхп очень слабо понимаю. Помогите. Что сделать, чтоб мои регионы нормально работали?
Покажите ваш вайл .info
Скорее всего в нем ошибка.
Если в .info файле регионы не указаны, то обязательно укажите стандартные:
А потом уже свои:
2Санхип: Такая ошибка у меня выскакивала когда пытался использовать дескрипшн на русском языке
такая ошибка появляется, если кодировка .info файла не utf-8.