Удаление дочерних материалов Node Gallery

Опубликовано 2014.06.17 в разделе Drupal.

Модуль Node Gallery позволяет создавать на сайте галереи. Причём каждое фото одной галереи - это отдельная нода. Пересматривать такую галереи не очень удобно, так как придётся обновлять страницу, а не использовать AJAX. Но зато можно темизировать каждую страницу фото, заполнять мета тэги и повысить кликабельность сайта. Для чего это нужно - решайте сами. и нужно ли вам это вообще. Тем не менее этот модуль имеет право на существование. Однако в нём есть один недостаток, скорее баг, нежели фича.

Проблемы с check_plain

Опубликовано 2014.06.17 в разделе Drupal.

Иногда при работе с сайтом вываливаются подобного рода ошибки:
Warning: htmlspecialchars(): Invalid multibyte sequence in argument в функции check_plain() (строка 1566 в файле /includes/bootstrap.inc).
Это возникает из-за того, что в функцию
  1. htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
передана строка в кодировке, отличной от UTF-8.

Упрощение связки двух материалов в Drupal

Опубликовано 2014.05.14 в разделе Drupal.

Предположим у вас на сайте есть два типа материала. Пусть это будет "Автор" и "Статья". В статье есть поле типа "Ссылка на материал", через которое к статье привязывается автор. Задача следующая: на странице автора нужна ссылка на добавление статьи. При переходе по этой ссылке поле автора должно быть заполнено соответствующим автором. Реализуется это достаточно просто. Для этого понадобятся:
  • собственный модуль
  • знание Form API
  • понимание hook_form_alter
  • немного знаний по PHP

Невидимая капча Drupal

Опубликовано 2014.05.08 в разделе Drupal.

Использование капчи является самым распространенным способом защиты от ботов. Увы, для человека - это крайне неприятный элемент интерфейса, который хочется куда-нибудь спрятать и никому не показывать. В идеале - чтоб реальный человек её вообще не видел, а бот - не мог пройти. И такая капча была придумана, она так и называется - невидимая капча.
 
Суть её в том, что в форму добавляется поле ввода типа text. Затем оно прячется средствами CSS. Такое поле будет невидимо для обычного человека, а парсер бота распознает это поле ввода, и обязательно заполнит.

Свой виджет Fivestar для Drupal

Опубликовано 2014.04.16 в разделе Drupal.

Модуль Fivestar предлагает на выбор 11 типов виджетов. В основном это всё звёздочки. Хуки этого модуля позволяют с лёгкостью добавить свои виджеты, или попросту скины для отображения оценок. Для добавления своих виджетов нужен отдельный модуль. Почитать о его создании можно тут или тут. Далее используем hook_fivestar_widgets. Пусть модуль называется star_widgets Тогда функция будет выглядеть так:
  1. function star_widgets_fivestar_widgets() {

Создание своего скина для jCarousel

Опубликовано 2014.03.30 в разделе Drupal.

В продолжении статьи о программном выводе jCarousel я расскажу как создать свой скин. Это посложнее, чем поправить css в скине Default, но это Друпалвейное решение, так что используйте его. Для начала нужно создать свой модуль. Подробнее об этом тут и тут Далее объявить в нём hook_jcarousel_skin_info
  1. function mymodule_jcarousel_skin_info() {
  2. $skins = array();

Программный вывод jCarousel

Опубликовано 2014.03.30 в разделе Drupal.

Есть один замечательный модуль для вывода карусели из нод. Называется jCarousel. Этот модуль расширяет Views, позволяя выводить материалы каруселью. Но его можно использовать и отдельно, пользуясь его API. Вызов карусели происходит через темизирующую функцию:
  1. theme('jcarousel', array('items' => $images, 'options' => $options));

Drupal hook_form_FORM_ID_alter

Опубликовано 2013.07.16 в разделе Drupal.

Друпальский хук hook_form_FORM_ID_alter бывает нужен очень часто. Данный хук следует применить, если нужно слегка(или не слегка) изменить любую форму на сайте. Это может быть форма добавления материала, форма модуля Webform или любого другого. Для того чтобы реализовать хук - потребуется модуль. Как его написать - смотрите тут. В нём можно сразу же реализовать hook_form_FORM_ID_alter, при условии, что вы знаете id формы. Если не знаете - то узнать его не составит труда.

Drupal settings.php

Опубликовано 2013.06.20 в разделе Drupal.

Это единственный конфигурационный файл в Друпал, до восьмой версии. В нём хранится логин и пароль для доступа к БД, название домена сайта и несколько надстроек над PHP. Вы также можете самостоятельно добавить туда любую информацию, например какие-то конфигурационные данные. Это переменные будут глобальными и их можно будет использовать в любом модуле. Главное не забывать объявлять их в теле функции как глобальные. Например:
  1. $conf['secret_login'] = 'adminko';
  2. $conf['secret_pass'] = 'hGcSD.ujdD';
А затем внутри любой функции просто пишите:
  1. global $conf;

Изменение регистра первой буквы

Опубликовано 2013.06.20 в разделе Drupal.

Если одну и туже запись нужно выводить то с большой, то с маленькой буквы - можно использовать следующую функцию.
  1. function drupal_first_letter($string, $choice = NULL) {
  2. if (!in_array($choice, array('up', 'down'))) {
  3. return $string;
  4. }
  5. if ($choice == 'up') {
  6. $fl = drupal_strtoupper(drupal_substr($string, 0, 1));
  7. }
  8. else {
  9. $fl = drupal_strtolower(drupal_substr($string, 0, 1));
  10. }
  11. return $fl . drupal_substr($string, 1);
  12. }