Отдельный шаблон страницы для разных типов нод в Drupal 7. Drupal где лежат шаблоны
Отдельный шаблон страницы для разных типов нод в Drupal 7
Здравствуйте!Задача такая - создать отдельный шаблон для разных типов страниц.Делаю как здесь http://www.drupal.ru/node/58386. Но, поскольку знание php нулевое, получается... плохоСначала создала файл page--type--mytype.tpl.php вставила в файл template.php
function mytheme_preprocess_page(&$variables, $hook) {//some other stuffif (isset($variables['node'])) {$variables['theme_hook_suggestions'][] = 'page__type__'. $variables['node']->type;$variables['theme_hook_suggestions'][] = "page__node__" . $variables['node']->nid;}}
Получила такое сообщениеFatal error: Cannot redeclare business_preprocess_page() (previously declared in /pub/home/academhost10/lifeswheel/sites/all/themes/business/template.php:51) in /pub/home/academhost10/lifeswheel/sites/all/themes/business/template.php on line 130
Смотрю на строку 51 и действительно нахожу там
Вставляю код тудаfunction business_preprocess_page(&$vars) {if (isset($variables['node'])) {$variables['theme_hook_suggestions'][] = 'page__type__'. $variables['node']->type;$variables['theme_hook_suggestions'][] = "page__node__" . $variables['node']->nid;}...}
Ничего не происходит. Обращаю внимание, что у меня function business_preprocess_page(&$vars), а надоfunction mytheme_preprocess_page(&$variables, $hook)
Скомбинировала таким образомfunction business_preprocess_page(&$variables, $hook, $vars) {if (isset($variables['node'])) {$variables['theme_hook_suggestions'][] = 'page__type__'. $variables['node']->type;$variables['theme_hook_suggestions'][] = "page__node__" . $variables['node']->nid;}...}
Получила то, что хотела, но при этом появляется такое сообщениеWarning: Missing argument 3 for business_preprocess_page(), called in /pub/home/academhost10/lifeswheel/includes/theme.inc on line 1106 and defined in business_preprocess_page() (line 51 of /pub/home/academhost10/lifeswheel/sites/all/themes/business/template.php).
Скажите, пожалуйста, что и где еще нужно исправить?
PS Понимаю, что надо мной, наверное, сейчас все будут ржать. Смейтесь, пожалуйста, только подскажите - как сделать :))
drupal.ru
Описание списка файлов шаблона Drupal 7 на примере «Garland»
Темизация Drupal – не такая сложная задача, как может показаться на первый взгляд. Но что бы вникнуть и понять как внутри всё происходит, вам необходимы хотя бы базовые знания HTML, CSS, PHP не и не помешал бы JAVASCRIPT. Начнём, а рассматривать мы будет на примере стандартного шаблон Drupal (который поставляется у же из коробки) – «garland». Найти её можно по пути
/themes/garlangМногие могут уже догадываться, что вновь созданные шаблоны нужно копировать именно в эту папку - ха, не тут то было (хотя если скопируете –работать всё равно будет) – все шаблоны нужно сохранять по пути
sites/all/themes- именно эту папку советует API. Расcмотрим файлы которые находятся внутри шаблона «garland».
Как мы видим, здесь представлены набор файлов и две папки, начнём по порядку:
- Папка «Color» - необходима нам для настройки цветовой схемы сайта, вы видели в настройках некоторых шаблонов – есть выбор цветовой гаммы:
Вот именно содержание этой папки и отвечает за вывод внесённых изменений. Данная папка не является обязательной. Хочу подчеркнуть, что при создании шаблонов для Drupal – имеются как обязательные так и не обязательные файлы, далее в статье я буду этот момент подчёркивать!
- Папка «images» - думаю это и так понятно, в ней находятся все графические материалы, которые необходимы для шаблона.
- Файл «Comment.tpl.php» - файл отвечает за вывод комментариев на сайте. Как вы заметили файл оканчивается на «tpl.php» - в силу того, что Drupal внутри себя несёт движок «phpTemplate», который является очень гибким в темизации и на мой взгляд является лучшим.
- Файлы «fix-ie.css» и «fix-ie-rtl.css» - как вы наверное догадались по названию,- это стилевые таблицы для корректного отображения в браузерах великого и могучего Microsoft – IE. (Когда же они научатся делать нормальные браузеры).
- Файл «garland.info» - является обязательным файлом (замечу, что название файла и название папки в которой находятся файлы для шаблона должны совпадать) и несёт в себе всю необходимую информацию для шаблона, а именно разметка регионов, подключение стилевых таблиц и скриптов, версия ядра Drupal, для которого написан данный шаблон и так далее. Более подробно о каждом файле темы я рассмотрю в будущих уроках, а пока двигаемся дальше.
- Графический файл «logo.png» - не обязательный файл, - логотип сайта
- Файл «maintenance-page.tpl.php» - шаблон страницы, при переводе сайта в режим обслуживания
- Файл «node.tpl.php» - обязательный файл, отвечает за отображение ноды в анонсе и в полном описание для чего либо (заметка, страница или ваш тип содержимого).
- Файл «page.tpl.php» - обязательный файл, является скажем так – каркасом для всех страниц, несёт в себе основную вёрстку дизайна.
- Файл «print.css» - набор стилей, который Drupal подгружает когда необходимо распечатать страницу (в основном это те же стилевые таблицы, только без эффектов).Не обязательный файл
- Графический файл «screenshot.png» - этот файл отображается у вас при выборе шаблона, в админке сайта. Не обязательный файл.
- Файл «style.css» - стилевые таблицы сайта. Как бы не обязательный, но без него некуда.
- Файл «style-rtl.css» - те же стилевые таблицы, но для тех стран, где читают справа налево. Нужен для сайтов с несколькими языками внутри. Не обязательный файл.
- Файл «template.php» - необязательный файл, но очень нужен. Помогает переопределять процессы.
- Файл «theme-settings» - необязательный файл, применяется разработчиками для добавления новых настроек шаблона.
Более подробно о каждом файле поговорим в следующих уроках.
drupalfly.ru
Темизация блоков в Drupal 7. шаблон block.tpl.php.
Базовым шаблоном для блоков в Drupal 7 является файл block.tpl.php. Оригинальный файл block.tpl.php находится в ./modules/block.block.tpl.php.
В файле block.tpl.php задается шаблон-обертка при выводе заголовка и содержимого блока.Для более гибкой темизации на уровне шаблонов Drupal 7 предоставляет несколько дополнительных шаблонов:
- Шаблон блока вида block--<module>--<delta>.tpl.phpгде<module> - название модуля, в котором определен блок.<delta> - идентификатор блока в рамках блока, в котором блок определен. Шаблон указаный в формате block--<module>--<delta>.tpl.php позволяет указать шаблон для одного блока.Например:Шаблон block--user--login.tpl.php будет отвечать за шаблонизацию для блока пользовательской авторизации.Шаблон block--block--3.tpl.php будет отвечать за шаблонизацию для блока созданного на странице Блоки с id=3.Шаблон block--search--form.tpl.php будет отвечать за шаблонизацию блока формы поиска.
- Шаблон блока вида block--<module>.tpl.phpгде<module> - название модуля, в котором определен блок.Шаблон указаный в формате block--<module>.tpl.php позволяет указать шаблон для всех блоков одного модуля.Например:Шаблон block--user.tpl.php будет отвечать за шаблонизацию блоков модуля user. У модуля user определено три блока: авторизация(login), новые пользователи (new), пользователи онлайн (online).Шаблон block--block.tpl.php будет отвечать за шаблонизацию блоков модуля block.Шаблон block--search.tpl.php будет отвечать за шаблонизацию блоков модуля search.
- Шаблон блока вида block--<region>.tpl.phpгде<region> - название региона, в котором определен блок.Шаблон указаный в формате block--<region>.tpl.php позволяет указать шаблон для всех блоков одного региона.Например:Шаблон block--header.tpl.php будет отвечать за шаблонизацию блоков в регионе header.
В Drupal 7 используется следующий принцип приоритет шаблонов блоков:
- первым ищется шаблон блока вида block--<module>--<delta>.tpl.php в папке текущей темы.
- если не найден block--<module>--<delta>.tpl.php, то ищется block--<module>.tpl.php в папке текущей темы.
- если не найдены предыдущие шаблоны блоков, то ищется шаблон блока вида block--<module>--<delta>.tpl.php в папке текущей темы.
- если не найдены предыдущие шаблоны блоков, то ищется шаблон блока block.tpl.php в папке текущей темы.
- если в папке темы не найдены шаблоны блок, то используется файл ./modules/block.block.tpl.php.
drupal.by
Устанавливаем шаблон (тему) для Drupal 7
Для быстрого изменения оформления сайта на Drupal, есть множество шаблонов, под действиями которых сайт можно изменить до неузнаваемости. Есть платные так и бесплатные шаблоны. Платные естественно нас не интересуют, а вот список бесплатных можно посмотреть и скачать на официальном ресурсе Drupal. Можете скачать любую вам понравившуюся, а я скачаю тему под названием «Crisp» вот ссылка если кому она тоже приглянулась. Замечу, что она подходит только для 7й версии Drupal, но если кому нужно – то думаю под 6й Drupal не так сложно будет переписать.
Для установки шаблона в Drupal 7 есть два варианта:
- Через админку сайта
- Руками
Я рассмотрю оба варианта.
Вариант 1.
1.Скачиваем архив с темой.
2.Заходим в админку сайта в раздел «оформелние» по пути:
Название сайта/admin/appearance3.Кликаем по пункту «Install new theme» (установка новой темы) с изображением плюсика:
4.Выбираем откуда мы будем производить установку шаблона. Нам предлагают на выбор 2 варианта, либо через инет (требуется адрес расположения темы) или локально архивом. Собственно говоря тему мы уже скачали поэтому выбираем второй вариант. Выбираем наш архив и кликаем «Установить»
5. Если всё прошло удачно появится вот такое сообщение, что шаблон установлен удачно.
6.Теперь нам необходимо включить тему, для этого переходим в раздел «Оформление» по пути:
Название_сайта/admin/appearanceВидим, что в доступных темах у нас и доступна наша только что установленная тема
Кликаем по пункту «Enable and set default» (включить и использовать по умолчанию.)
7. И смотрим как наш сайт преобразился
В любом случае любой шаблон требует дальнейшей настройки после установки, но это не в этом уроке.
Вариант 2 (руками).
1.Итак вы скачали архив с шаблоном, далее его лучше распаковать, сто бы у вас осталась одна папка с названием шаблона.
2.Переходим на наш сервер, где располагаются все файлы сайта, а именно идём по пути
Название_сайта/www/sites/all/themes/Если у вас нет папки «themes» - то вам её необходимо создать.
3.Копируем в папку «themes» - папку с темой.
4.И теперь нам нужно просто включить этот шаблон, повторив пункт 6 из 1го варианта.
На этом установка шаблона для Drupal может считаться завершённой.
drupalfly.ru