Drupal 8: делаем поле «Анонс» для body обязательным и ограничиваем его по количеству символов

На одном из сайтов на Drupal 8 возникла задача сделать обязательным ручной ввод анонса для поля Body и дать ему ограничение в 150 символов. Немного погуглив, я не нашел готового модуля для управления этим полем, так что было принято решение пилить свой. После нескольких попыток подойти к задаче с разных сторон я остановился на реализации …

Continue reading ‘Drupal 8: делаем поле «Анонс» для body обязательным и ограничиваем его по количеству символов’ »

Drupal 8 Views: убрать некоторые значения из раскрытого фильтра

Недавно на понадобилось сделать фильтр записей по полю типа «список», у которого может быть очень много возможных значений (список значений и сами записи импортируются из внешней системы). Если делать обычный Exposed Filter, то появляются два неудобства: Из-за большого количества возможных значений фильтр не очень красиво выглядит на экране и пользователю сложно искать нужное значение Если …

Continue reading ‘Drupal 8 Views: убрать некоторые значения из раскрытого фильтра’ »

Раскрытый фильтр по дате в Drupal 8: прошедшие/текущие/будущие события

Небольшой пример того, как я сделал раскрытый фильтр на Drupal 8 Views по полям «Начало мероприятия» и «Конец мероприятия» типа «Дата» для вывода прошедших, текущих и предстоящих мероприятий, используя hook_views_query_alter() для модификации запроса на выборку. Читать тут.

Программное изменение поля типа «Список» с множественным значением в Drupal 8

Если задать значение обычного поля в Drupal 8 можно с помощью метода setValue() ($node->field_name->setValue(«Some value»);), то для выбора значений из списка нужно воспользоваться методом appendItem(). Вот как я сделал это при создании ноды из стороннего XML: foreach($plan->Exams->Exam as $exam) { $node->field_exams->appendItem($exam->ExamName); }foreach($plan->Exams->Exam as $exam) { $node->field_exams->appendItem($exam->ExamName); }

Drupal 8 Views — выводить пустую страницу, если не заполнены раскрытые фильтры

Недавно столкнулся со странным поведением Views в Drupal 8 (а как показал гугл — и в ранних версиях): на сайте есть лента новостей с категориями, выведенная через Views. Пользователь может отметить чекбоксами (с помощью Detter Exposed Filter) интересующие его категории. Так вот, если он отмечает категорию, в которой новостей нет, то в результате получает пустую …

Continue reading ‘Drupal 8 Views — выводить пустую страницу, если не заполнены раскрытые фильтры’ »

Интеграция пользователей Drupal 8 со сторонней системой

На данный момент я занимаюсь разработкой нескольких сайтов на Drupal 8 для одной крупной организации, у которой уже есть свои внутренние ресурсы. Одним из таких ресурсов является что-то вроде  электронной системы учета сотрудников, разработанная силами своих программистов. Соответственно, одной из задач было дать возможность пользователям логинится на сайтах, используя учетные данные этой системы, чтобы не …

Continue reading ‘Интеграция пользователей Drupal 8 со сторонней системой’ »

Получение нод определенного типа в Drupal 8

На днях понадобилось написать модуль, который бы обрабатывал определенные типы нод согласно введенным данным. Отсюда возникла задача: изначально неведомо, какие у этих нод nid, и сразу использовать Node::load($nid) не получится. На Drupal 7 я бы просто обратился к БД, используя db_query(). Но на Drupal 8 все можно сделать гораздо удобнее благодаря Entity Query, а именно: …

Continue reading ‘Получение нод определенного типа в Drupal 8’ »

Drupal 8 загрузка ноды по AJAX

Предлагаю «каркас» модуля для Drupal 8, который позволит вам получать ноды по их ID через AJAX. В приведенном ниже коде реализовано получение ноды с помощью метода Node::load, который пришел на замену функции node_load() и вывод заголовка и содержания ноды в виде JSON-объекта. Аналогично можно добавлять и другие поля ноды. Собственно, код модуля: < ?php namespace …

Continue reading ‘Drupal 8 загрузка ноды по AJAX’ »

RSForm! Pro не работает при включенном кэше Joomla

Некоторое время назад столкнулся со странностями на одном сайтов, сделанных на Joomla. Странность заключалась в следующем: на одной из страниц в текст материала была вставлена форма компонента RSForm. Эта форма прекрасно отображалась, но при попытке ее отправить в браузере клиента просто снова открывалась эта же страница, никакого сообщения об удачной отправки данных не появлялось. Письма …

Continue reading ‘RSForm! Pro не работает при включенном кэше Joomla’ »

Вывод содержание загруженной FB2 книги в Drupal

Продолжаю цикл статей о создании электронной библиотеки на Drupal 7. В прошлой статье я рассказал о модуле, который позволяет загружать на сайт книги в формате FB2 и создает из них ноды. Сегодня же я покажу, как можно вывести содержание загруженной тем модулем книги. Кому интересно, прошу под кат.