template.php

УрокДелаем popup логин на jquery.ui.dialog

В ядре Drupal 7 появились дополнительные js библиотеки, которые можно подключать по необходимости (по умолчанию они отключены). В частности, библиотка jquery.ui, которая в 6й версии Друпала была отдельным модулем. Теперь же достаточно вызвать функцию drupal_add_library() с нужными параметрами - и необходимые скрипты и стили будут подключены автоматически.

УрокДобавляем регион в ноду или комментарий

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

Добавляем регион в тему

В .info файл темы помимо прочих регионов добавляем регион для ноды:

УрокСкрываем подсказки фильтра по редактированию

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

Метод скрытия подсказок через css-атрибут display: none; конечно работает для пользователей, но вот боты (как спамерские, так и поисковые) всё равно в коде видят их. А поисковые боты ещё и обижаются на скрытый текст, поэтому скрывать через стили я бы не рекомендовал.

УрокКак убрать текст "Не проверено (Not verified)" в комментариях

В Друпале у анонимов рядом с их именем есть такая постоянно мозолящая глаз фраза - Не проверено (Not verified). Убирается она довольно просто - надо всего лишь убрать лишнюю переменную в выводе пользователей.

Для этого в template.php вашей темы добавьте функцию (или дополните, если она уже там есть):

УрокТемизация Drupal 7. Обзор файлов темы (шаблона)

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

Тема представляет из себя набор файлов, которые определяют уровень представления (внешнего вида) сайта. К каждой теме вы можете создать одну или несколько подтем (саб-тем). Для того, чтобы Друпал обнаружил вашу тему, достаточно лишь наличия .info файла (файл с описанием темы), однако в таком случае пользы от вашей темы будет немного :)

УрокПодключение CSS для отдельных браузеров

Как известно, не все браузеры одинаково воспринимают файлы стилей css. В основном, проблемы возникают со старыми версиями мелкософтовского творения Internet Explorer (7 версия и ниже). Кстати, если проблема возникает в современных браузерах (наподобие Opera, Mozilla Firefox, Chrome), то я настоятельно рекомендую пересмотреть вёрстку страницы.

Так вот. Проблема с браузерами есть. И я знаю как минимум три способа решения этой проблемы.

УрокСтандартные функции для создания темы

У каждого программиста, создающего шаблоны на друпал, есть свой каркас, на основе которого он создаёт последующие шаблоны. Это могут быть наброски в css, свои файлы .tpl, свой template.php, с которого удобно программисту начинать, и прочее. Сегодня я расскажу о некоторых функциях из template.php, с которыми мне очень удобно работать.

Функция, которой представилась честь открывать сегодняшную линию - функция обработки кнопок (навешивание дополнительного span-класса) для возможности создания закруглённых кнопок:

function phptemplate_button($element) {
  if (isset($element['#attributes']['class'])) {
    $element['#attributes']['class'] = 'form-'. $element['#button_type'] .' '. $element['#attributes']['class'];
  }
  else {
    $element['#attributes']['class'] = 'form-'. $element['#button_type'];
  }
 
  if (stristr($element['#attributes']['style'], 'display: none;') ||

УрокСоздание отдельного шаблона страницы для разных типов ноды

По умолчанию в друпале все страницы выводятся через шаблон page.tpl.php. Можно создавать шаблоны созданные по такому принципу: если путь выглядит как имясайта/node/10, то шаблон будет выглядеть как page-node-10.tpl.php. Если создать шаблон page-node.tpl.php, то все страницы, лежащие "ниже" урла имясайта/node/ будут автоматически перекрыты этим шаблоном.

То есть, если в корне вашей темы лежит файл page-node-tpl.php и выводит только переменную $content, то на странице абсолютно любой ноды будет выведен тольько контент, без колонок, табов и прочих аттрибутов.

Этот принцип работает для любого адресса, и любого уровня вложенности в него. Однако давайте рассмотрим неординарный вариант: допустим, перекрыть надо только страницы нод определённого типа материала. Для этого потребуется поместить в template.php следующий код:

Страницы