Темизация модального Ctools окна

В предыдущей статье я рассматривал как сделать всплывающее модальное окно с задержкой. В качестве модального окна использовалось Ctools Modal API. Триггером для вызова модального окна служит ссылка, которая имеет класс .ctools-use-modal. Для добавления настроек для модального окна нужно ссылке добавить дополнительный класс .ctools-modal-my-simple-modal-style, где my-simple-modal-style - имя объекта, который нужно добавить в Drupal.settings.

Выносим хуки за пределы файла .module

В некоторых модулях накапливается большое количество имплементаций хуков, из-за чего файл .module очень разрастается. В результате поиск нужного куска кода в файле усложняется. Чтобы разрулить данную ситуацию, на помощь приходит hook_hook_info, который позволяет разнести имплементации хуков по разным файлам и при необходимости сгруппировать их.

Всплывающее модальное окно с задержкой

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

Вставка кода внутрь представления

Порой бывает необходимость вставить какой-либо код внутрь представления. Это может быть код от РСЯ, Адсенса или же просто нужно внутри отрендерить ноду, блок, вьюс и так далее. Самый элементарный способ сделать подобное, это вывести нужный код внутри шаблона представления.

Программное изменение стилей изображения во views

При выводе вьюсом полей изображений в настройках поля можно установить стиль изображения, который будет применяться к этому полю при выводе. Но если есть необходимость выводить множественное поле с разными стилями (к примеру первое изображение выводить со стилем "big", а последующие - со стилем "small"), то придется стили менять программно. Для этого нужно воспользоваться hook_views_pre_render(), который вызывается когда результаты представления уже готовы , но еще не отрендерились.

Темизация формы комментариев в Drupal 7

Форма комментариев в друпале для большинства случаев избыточна. Посетителям сайта не нужны подсказки к форматам ввода, как и сама возможность выбирать какие то ему неизвестные форматы. Когда человек видит кучу полей , которые ему нужно заполнить, чтобы оставить комментарий, у него сразу же отпадает желание что-либо комментировать. Но по-умолчанию форма комментариев в друпал 7 не имеет ни своего шаблона, ни функции темизации. Чтобы это исправить, нужно в hook_theme() добавить темизацию формы комментариев.

Drupal 7 - Темизация файлового поля (file field)

По-умолчанию функция темизации файлового поля theme_file_link() выводит иконку файла, соответствующую mime типу файла, и ссылку на сам файл. Директория расположения иконок - modules/file/icons. Для добавления расширенной разметки вывода файлового поля нужно добавить следующий код в template.php файл используемой темы:

Добавление классов страницам материалов на основе терминов таксономии

Для темизации страниц материалов на основе прикрепленных терминов таксономии можно добавлять тегу body классы с именами терминов. Если же термины имеют русские(кириллические) символы, то можно делать классы на основе tid терминов. Классы будем добавлять в preprocess_html функции используемой темы. Для получения всех терминов ноды в Drupal 7 нужно написать вспомогательную функцию _MYTHEME_taxonomy_node_get_terms(). В Drupal 6 для выполнения данной задачи есть функция taxonomy_node_get_terms().

Изменение стандартной темы для jQuery UI

Библиотека jQuery UI как известно входит в ядро Drupal 7. Но стандартные элементы, создаваемые с помощью этой библиотеки (Dialog, Tabs, Slider, Datepicker), зачастую не сочетаются с дизайном сайта. Для темизации этих элементов не стоит спешить и переопределять стили, описанные в файлах ядра. Проще воспользоваться графическим интерфейсом ThemeRoller для создания своей темы для jQuery UI.

jq-ui1.png

Drupal 7 - Удалить все ноды

При создании функционала сайта приходиться генерировать демо контент, который впоследствии нужно удалить, а возможно и не раз. Чтобы быстро выполнить эту операцию, можно воспользоваться небольшим сниппетом. Выполнить этот сниппет можно как вариант с помощью блока "Выполнить PHP код", который создается модулем devel.