Drupal

Статьи, записки и заметки по теме Drupal

Как изменить союз условий в существующем запросе

mbaev 30.09.2016, 11:15

Предположим, вам необходимо выбрать все опубликованные ноды и автор которых - суперадмин. В SQL запрос должен выглядеть так:

  1. SELECT n.*
  2. FROM node n
  3. WHERE (n.STATUS = 1 AND n.uid = 1)

Сформировать такой запрос не составит труда.

Представление Watchdog

mbaev 28.09.2016, 11:27

Для тех кому не нравится стандартный вывод журнала (watchdog) в Drupal 8, представляю вьюху Watchdog. Она похожа на то, что по умолчанию предоставляет стандартный журнал, а также дополнительные плюшки:

  • Поле IP
  • Дата со временем (в стандартном только дата, времени нет)
  • Возможность сортировки по всем полям

Также осталась возможность фильтрации в том же виде. Главное преимущество заключается в том, что представление легко изменить: добавить поля, критерии фильтрации, изменить порядок отображения столбцов в таблице и остальные настройки предоставляемые модулем Views.

Есть и минусы:

  • Нет кнопки "Очистить журнал";
  • Нет столбца "Пользователь"
  • Уровень опасности выглядит менее красиво.

По этой причине представление Watchdog не заменяет текущее представление, а находится рядом с ним.

Как создать дисплей

mbaev 30.05.2016, 11:43

По умолчанию, в Drupal'е есть несколько дисплеев для нод: teaser, full, default, rss,...
Создать дополнительный тип отображения нод очень просто:

Как программно авторизовать пользователя

mbaev 24.05.2016, 12:24

В Drupal'е очень легко авторизовать пользователя. Для этого нужно знать всего лишь User ID.

  1. $uid = 1;
  2. $account['uid'] = $uid;
  3. user_login_submit(array(), $account);

После авторизации таким способом, пользователь будет перенаправлен на страницу пользователя. Иногда этого делать на надо, тогда можно авторизовать более низкоуровневым способом.

Изменение модального окна CTools

mbaev 12.05.2016, 07:52

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

Это описание одной из фич модуля CTools, а именно изменение модального окна.

Простой вариант

Темизируем любое окно, вызванное ссылкой/кнопкой.

Красивая запись в watchdog

mbaev 11.05.2016, 14:53

Когда пишется кастомный модуль, то обычно существует обработка ошибок с помощью watchdog или watchdog_exception. Стандартный вывод такого сообщения выглядит не информативно и мало-симпатично. Следующий пример обработки ошибки можно встретить достаточно часто:

Как вытащить контекстные ссылки

mbaev 28.04.2016, 10:26

Однажды я столкнулся с необходимостью вытащить все action ссылки и табы из нод и сделать из них контекстные ссылки, примерно так, как это делает модуль Contextual links. Этот модуль мне не нравится потому, что он не позволяет настроить отображение контекстных ссылок только в нодах.
Итак, у нас есть какая-то своя тема или модуль и этого достаточно, чтобы вывести красивое контекстное меню для нод.

contextual-links-collapsed contextual-links-expanded