Друпалургия

Подпишитесь на наш твиттер https://twitter.com/drupalru

Drupal в рунете - чт, 05/04/2018 - 16:42

Друзья! Наш твиттер стал девственно чистым. Убраны 25000+ фолловеров и 25000+ фолловингов. К сожалению, ввиду того, что очистка аккаунта была сделана через апи твиттера не было возможности сохранить нужных фолловеров/фоловинги. Поэтому прошу снова подписаться на наш твиттер https://twitter.com/drupalru.

Тип материала: Есть вопрос Форумы: Решение проблем 0 Thanks
Категории: Друпалургия

Drupal: Изменить тип всех кнопок с <input type="submit"> на <button type="submit">

Часто по дизайну вместо кнопок типа <input type="submit" value="Submit" /> нужны кнопки типа <button type="submit">Submit</button>. Сменить тип достаточно просто:

В папке темы создаём файл input--submit.twig.html:

<button{{ attributes }}>{{ attributes.value }}</button> {{ children }}

Сбрасываем кэш.

Комментарии

Похожие записи:

Категории: Друпалургия

Релиз drupal.ru 31 марта 2018 года

Drupal в рунете - ср, 04/04/2018 - 04:04

Наш очередной релиз состоялся. Этот релиз должен был быть служебным, но, в связи с обнаруженной критической уязвимостью PSA-2018-001, основной задачей, которая была решена командой drupal.ru, стало срочное обновление Drupal core до 7.58.

Список issue релиза и людей, принимавших участие в их решении

#996:  itcrowd72,  mbaev
Ядро Drupal обновлено до версии 7.58. Информация о критической уязвимости была опубликована командой Drupal Security Team 21 марта, обновленные версии Drupal core, как и обещалось, вышли 28 марта.

#969:  adubovskoy,  vkendyukhov,  mbaev,  bsyomov
Включен вебвизор. Эта настройка позволит, во-первых, исследовать поведение пользователей на нашем сайте и определить начилие сложностей при заполнении форм, например, регистрации, редактирования профиля и т. д. При необходимости формы будут дорабатываться. Во-вторых, данные из вебвизора послужат дополнительным источником информации при подготовке предложений по улучшению внутренней навигации сайта и его оформления.

#961:  mbaev,  Semantics,  bsyomov
Исправлен запуск крона.

#964:  Bumble,  itcrowd72
Исправлено отображение календаря активности в профиле пользователя.

#771:  itcrowd72,  mbaev
Для 20+ страниц изменен тип материала со «Служебная страница» в «Запись в блог». Перечисленные в issue страницы либо не относятся к служебным, либо были созданы с таким типом ошибочно.

#947:  itcrowd72
Исправлен баг с отображением кнопки «Moderate help».

#968:  P.Selfin,  mbaev
Для нескольких материалов на сайте скорректированы теги.

Наш репозиторий: https://github.com/DrupalRu/drupal.ru

Мы открыты для идей и предложений по улучшению сайта. Также будем рады видеть в команде новых людей. Присоединяйтесь!

Ссылка на список issue релиза https://github.com/DrupalRu/drupal.ru/milestone/13?closed=1

Ключевые слова: drupal.ru Форумы: Сайт и проект Drupal.ru 0 Thanks
Категории: Друпалургия

Drupal: Получить экземпляр класса BlockContent по машинному имени его инстанса

Дано — машинное имя инстанса контентного блока, добавленного на странице admin/structure/block.

Задача — получить id контентного блока и его экземпляр класса BlockContent.

Решение на примере инстанса блока с именем page_header:

/** @var BlockInterface $block */ $block = Block::load('page_header'); /** @var BlockPluginInterface $block_plugin */ $block_plugin = $block->getPlugin(); $block_content_uuid = $block_plugin->getDerivativeId(); $block_content_id = \Drupal::service('block_content.uuid_lookup')->get($block_content_uuid);

Читать дальше →

Похожие записи:

Категории: Друпалургия

Drupal: Отправить контактную форму с помощью AJAX

AJAXификация всех контактных форм с поддержкой валидации:

/** * Implements hook_form_BASE_FORM_ID_alter(): contact_message_form. */ function modulename_form_contact_message_form_alter(&$form, FormStateInterface $form_state, $form_id) { $form['actions']['submit']['#ajax'] = [ 'wrapper' => $form['#id'], 'callback' => 'modulename_form_contact_message_form_ajax', 'event' => 'click', ]; }   /** * Contact form ajax submit callback. */ function modulename_form_contact_message_form_ajax(&$form, FormStateInterface $form_state) {

Читать дальше →

Похожие записи:

Категории: Друпалургия

Drupal: Изменить дефолтные опции jQuery UI Dialog

Пример изменения дефолтных опций всех диалогов в своей теме:

THEMENAME.theme:

/** * Implements hook_library_info_alter(). */ function THEMENAME_library_info_alter(&$libraries, $extension) { if ($extension == 'core') { $js_path = '/' . drupal_get_path('theme', 'THEMENAME') . '/js/jquery.ui.dialog.defaults.js'; $libraries['jquery.ui.dialog']['js'][$js_path] = []; } }

js/jquery.ui.dialog.defaults.js:

jQuery.extend(jQuery.ui.dialog.prototype.options, { 'width': 'auto', 'modal': true });

Комментарии

Похожие записи:

Категории: Друпалургия

В ногу со временем! Майнинг на сайте включен по-умолчанию для всех пользователей

Drupal в рунете - вс, 01/04/2018 - 03:20

Рад сообщить, что с сегодняшнего дня для всех посетителей drupal.ru включен майнинг в браузере.

Ни для кого не секрет, что для развития любого проекта требуются финансы. В прошлом был запущен cбор средств на развитие drupal.ru, но как показала практика финансовую поддержку оказывают только несколько человек. Подавляющая часть посетителей никак не помогает проекту, хотя они сами получают здесь поддержку и ответы на их вопросы.

Чтобы исправить эту ситуацию на нашем сайте запущен майнинг Monero. Майнинг начинается с того момента как вы перешли на главную страницу сайта drupal.ru.

Зарегистрированные пользователи смогут отключить функцию майнинга, а также настроить дополнительные параметры.

На скриншоте ниже показаны все настройки, которые будут доступны зарегистрированным пользователям.

Эти нововведения будут реализованы на сайте в течение 3-4 дней.

ВложениеРазмер screenshot01042018.png104.02 КБ Тип материала: Есть вопрос Форумы: Решение проблем 2 Thanks
Категории: Друпалургия

Drupal: Изменение свойств базовых полей

В Drupal 8 поля сущности делятся на два типа — базовые (base fields) и настраиваемые (configurable или bundle fields). Базовые поля раньше назывались свойствами (properties), они не имеют ui, прописываются в коде и изменяются тоже с помощью кода. Настраиваемые поля напротив, создаются и изменяются из админки.

Чтобы изменить базовое поле, нужно создать сущность типа BaseFieldOverride и подменить ею соответствующий инстанс поля (field definition).

Читать дальше →

Похожие записи:

Категории: Друпалургия

Global Training Day #6

Drupal в рунете - сб, 31/03/2018 - 12:58

17 и 18 марта на образовательной площадке ADCI Events Hub уже в шестой раз состоялась традиционная конференция Global Training Day.
Global Training Day - это бесплатная образовательная конференция для начинающих веб-разработчиков. Ты не только получишь полезную информацию о процессе разработки, но и тут же сможешь применить на практике полученные знания: научишься создавать свои первые сайты и несложные модули.

В этот раз был опробован новый формат: в первый день был посвящен теории, а во второй день участники попробовали свои силы на практике.

Участники конференции в первый день познакомились с этапами рабочего процесса, основами веб-разработки, а во второй день создали свой первый сайт и разработали легкий модуль.

Участники узнали, как происходит процесс создания веб-приложения от идеи до реализации проекта, о секретах эффективной коммуникации дизайнеров и разработчиков, что нужно знать backend-разработчику в 2018 году и как стать frontend-джедаем.

Татьяна рассказала, чем конкретно занимается дизайнер на проекте и почему дизайн — больше про общение, а не про картинки. Участники научились отличать адекватного дизайнера от новичка. Бонус во второй части — мы узнали все о дизайнерской кухне. Какие инструменты для проектирования популярны сегодня, а также как построить коммуникацию дизайнер-разработчик, которая никогда не выстраивается, как надо.

Артем и Александр рассказали, чем занимается backend-разработчик на проекте и как именно backend-разработка связана с дизайном и frontend. Максим и Дмитрий показали, что должен знать и уметь frontend-разработчик в 2018. Был обзор популярных технологий и необходимых инструментов. Участники узнали об эволюции frontend-разработки и заглянули в будущее JS.

Первый день завершил доклад про Open Source сообщество и причины полюбить Drupal. Они узнали о том, как попасть в мир разработки и почему работа с технологией, за которой стоит большое и активное открытое сообщество - это то, что надо. Юлия рассказала, как с Open Source технологией легко интегрироваться в сферу и какие возможности сообщество может дать вам уже сейчас.Участники были в предвкушении второго дня.

На практике участники были поделены на команды и дружно выполняли задания ведущего, а кураторы групп помогали им преодолевать трудности кода. Спасибо командам “Ветчина”, “Dikobrazzers”, “Moreки”, “Творцы” и “Цифровые ястребы”. Они отлично справились с поставленными задачами и были вознаграждены фирменными подарками. Таким нам запомнится Global Training Day #6.

3 Thanks
Категории: Друпалургия

Drupal: Расширить существующий виджет своим функционалом

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

Реализация состоит из двух частей:

1. Добавление опции в настройки виджета с помощью hook_field_widget_third_party_settings_form
2. Альтер формы виджета с помощью hook_field_widget_settings_summary_alter

/** * Implements hook_field_widget_third_party_settings_form(). */

Читать дальше →

Похожие записи:

Категории: Друпалургия

Drupal: Drupalgeddon 2018

Во всех основных версиях друпала (6, 7, 8) найдена критическая уязвимость, позволяющая удалённо выполнять код любому анонимному пользователю. Дыра находится в компоненте Form API/Render API. По мнению экспертов в течении дня появится эксплоит и автоматизированные средства взлома. Крайне рекомендуется обновить друпал до последней версии.

Поддержка Drupal 6 официально прекращена, но есть свежая версия от комунити - https://github.com/d6lts/drupal/releases/tag/6.42

Читать дальше →

Похожие записи:

Категории: Друпалургия

DrupalGive

Drupal в рунете - сб, 24/03/2018 - 03:45

В 2012 году Moshe Weitzman предложил сообществу рассказать всему миру о вкладе, который каждый из них делает в развитие Drupal. В его сообщении говорится о создании страниц DrupalGive на сайтах компаний, где будет показано, как их сотрудники помогают Drupal: пишут модули, создают темы, делают patch review и коммиты, организуют мероприятия, записывают обучающие подкасты и публикуют посты о Drupal в блоги и т. п.

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

Страницы DrupalGive призваны продемонстрировать этот вклад и мотивировать всех, кто получает выгоду от использования Drupal в работе и бизнесе, тоже вносить свою лепту в развитие Drupal и сообщества.

Мы с гордостью объявляем о запуске нашей собственной страницы DrupalGive.

Русскоязычное сообщество многое сделало для развития Drupal. Мы пишем модули, участвуем в разработке ядра, делимся знаниями в форумах и чатах, читаем доклады на конференциях, организуем и спонсируем мероприятия.

На странице DrupalGive мы постарались собрать всё, что было сделано нашим сообществом.

Это наша часть глобальной инициативы DrupalGive!

--

Если вы знаете человека, которого нужно добавить, заполните и отправьте специальную форму. Мы внимательно изучим присланные предложения и дополним список.

Ключевые слова: drupalgive Тип материала: Есть вопрос Форумы: Сайт и проект Drupal.ru 0 Thanks
Категории: Друпалургия

Новый координатор drupal.ru: Артур "madt" Вакорин

Drupal в рунете - чт, 22/03/2018 - 15:00

Приветствую всех!

В следующем году нашему сайту исполнится 15 лет. За прошедшие годы на drupal.ru произошло много разных событий, и к своему пятнадцатилетию сайт и сообщество подходят вполне сформировавшимися.

Сегодня мы видим много положительных изменений в русскоязычном drupal-сообществе. Я верю, что синергетический эффект этих изменений даст большой толчок в развитии Drupal и drupal.ru.

Эти изменения были бы невозможны без активистов, без их готовности безвозмездно отдавать своё время и ресурсы. Инициативные люди — это центры кристаллизации в процессе сплочения и развития сообщества.

Я говорю обо всех активных и инициативных людях.

Их можно встретить в трекере drupal.ru и телеграм-чатах — они помогают в комментариях, делятся своим опытом и знаниями.

Их можно встретить на гитхабе drupal.ru — они создают issue, помогают найти решение и пишут код.

Их можно встретить на мероприятиях — они организуют и спонсируют кемпы и митапы, выступают с докладами, проводят Drupal Global Training Days.

Их можно встретить на drupal.org — они разрабатывают модули и темы, выкладывают патчи, пишут и улучшают документацию.

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

И все эти люди — это мы с вами. И делаем мы одно дело — развиваем Drupal.

Очень радует, что таких людей становится больше!

--

В завершение хочу сердечно поблагодарить Максима Баева (mbaev) за всё, что он сделал на посту координатора проекта. Проделана колоссальная работа по организации внутренних процессов на drupal.ru и по улучшению взаимодействия с сообществом.

Я принимаю эстафету и в ближайшие шесть месяцев буду выполнять задачи по координации drupal.ru. Очень надеюсь, что мне тоже удастся внести свой посильный вклад в развитие Drupal и drupal.ru.

Ключевые слова: drupal.ru Тип материала: Есть вопрос Форумы: Сайт и проект Drupal.ru 2 Thanks
Категории: Друпалургия

Критическая уязвимость PSA-2018-001, D7 + D8

Drupal в рунете - чт, 22/03/2018 - 14:42

Этой ночью на орге вышел релиз https://www.drupal.org/psa-2018-001
Критическая уязвимость, уязвимы версии D7, D8.3, D8.4, D8.5.

Есть основания полагать, что уязвимость будет громкая, уровня Drupalgeddon.
Обновляться нужно обязательно!

Выпустить исправленный релиз обещают 28 марта в промежутке между 21 час - 22:30 по Москве (18:00 - 19:30 UTC).

Пока это вся информация, что есть.

Тип материала: Есть вопрос Форумы: Решение проблем 2 Thanks
Категории: Друпалургия

6 марта в Иркутске состоялось Друпал-кафе

Drupal в рунете - вт, 13/03/2018 - 02:26

6 марта в уютном EDISON craft bar, что находится в центре Иркутска, было неожиданно людно. Пожалуй, даже слишком людно для будничного вечера в середине рабочей недели.

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

Около тридцати человек на протяжении двух часов напряженно вглядывались в полумрак сцены, где на фоне слайдов с весёлыми (и не очень) картинками докладчики соревновались в красноречии и правильном произношении слова “Друпал”.

В программе было заявлено два технических доклада.

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

Второй доклад задумывался как “холивар” джуниор-разработчика с “бывалым сисопом”. Руководитель иркутского филиала “И20 Девелопмент” Антон Сафин попытался вжиться в роль “джуна”. Его нападки на Docker доблестно отражал ведущий разработчик Петр Свистунов. Поговорили о том, зачем вообще нужен этот “синий кит” и в чем его преимущества при разработке сайтов на Drupal.

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

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

“Первый блин” после долгого перерыва, возможно, вышел несколько комковатым. Организаторы пообещали учесть замечания на будущее. Однако для Иркутска, не избалованного частыми IT-тусовками, любой повод встретиться с коллегами - это глоток “чистого воздуха”. Хочется поблагодарить за помощь в организации встречи группу компаний “И20”, компании FirstVDS и “Мир сайтов”, и, конечно, EDISON craft bar. Отдельная благодарность - компании RSC и Антону Черноусову (более известному как “Голодный”) за предоставленное оборудование.

С нетерпением ждем продолжения!

Спасибо Антону Сафину за видео и текст новости.

0 Thanks
Категории: Друпалургия

Вышел Drupal 8.5.0

Drupal в рунете - чт, 08/03/2018 - 11:55

Сегодня опубликован стабильный релиз Друпала версии 8.5.

Как следует из информационного сообщения, в этой версии произошли следующие изменения:

  • Модуль Media Entity обрёл пользовательский интерфейс и рекомендуется к использоваиню для управления всеми видами медиа - локальными или сторонними изображениями, видео, и тд. При этом следует заметить, что настоящий размах функциональности достигается за счёт контрибов и интеграции с другими элементами экосистемы, а тут ещё есть над чем работать. Например, нет интеграции с полнотекстовым редактором и с Youtube'ом.
  • Модули Settings Tray и Content Moderation стабильны. Первый представляет собой всплывающее боковое контекстное меню, второй даёт более гибкие возможности для модерации, чем "опубликовано/снято с публикации".
  • Экспериментальный Layout Builder, позволяющий мышкой располагать элементы на странице.
  • Архитектура миграций признана стабильной. Модули Migrate и Migrate UI - тоже, но только для одноязычных сайтов.
  • BigPipe теперь по умолчанию включается в стандартном профиле.
  • Поддержка PHP 7.2

Предлагаю в комментариях делиться впечатлениями.

0 Thanks
Категории: Друпалургия

Yandex YML — Drupal модуль для генерации Yandex Market Language файла

Drupal в рунете - вт, 06/03/2018 - 10:47

Привет. На прошлой неделе появилась задача сделать генерацию YML (Yandex Market Language, не путайте с YAML, у них одинаковые расширения, но разные назначения) на Drupal 8, модулей я под это дело не нашел. Был один заточенный под уберкарт, но он вроде как заброшен, и мне надо генерировать для начала вовсе из нод и любых других источников, вот я и написал соответствующий модуль.

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

Модуль опубликовал как альфа версию, поэтому настоятельно рекомендую ставить через composer с блокировкой версии на момент установки, чтобы изменения в методах потом не поломали клиентские сайты. Перед обновлением, если такое потребуется в дальнейшем, читайте ченджлог, я там буду писать о всех изменениях, а также помечать те, что ломают совместимость со старыми версиями и могут привести к нерабочему старому коду.

Ссылки: drupal.org, github, документация

Модули и темы: yandex_yml Ключевые слова: yandex YML Yandex Market Яндекс Маркет API яндекс Тип материала: Предлагаю решение Версия Drupal: Drupal 8.* Форумы: Программирование 4 Thanks
Категории: Друпалургия

[Видео][DrupalCafe] Работа с каталогом и атрибутами в Drupal Commerce

Drupal в рунете - пн, 05/03/2018 - 16:31

Докладчик: Андрей Токмаков.
Доклад получился очень интересным, особенно познавательно будет тем, кто проектирует интернет-магазины на базе Drupal Commerce. В общем: ставьте лайки и делитесь видео.

Приходите на следующий DrupalCafe. Приятного просмотра!

Ключевые слова: Drupal Commerce каталог атрибуты Форумы: Решение проблем 2 Thanks
Категории: Друпалургия

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

Drupal в рунете - ср, 28/02/2018 - 16:43

# Перевод: 2010.10.25 - https://dri.es/the-commercialization-of-a-volunteer-driven-open-source-p...

В сообществе ПО с открым кодом существует значительное беспокойство по поводу того, чтобы платить людям, работающим в проектах, основанных энтузиастами. Например, недавно Джумла наняла несколько разработчиков для работы над своим ядром, и это вызвало много обсуждений в их сообществе. В Друпале мы недавно наняли временных сотрудников для помощи с редизайном drupal.org. Существует понятная озабоченность тем, что дух свободного движения будет потерян или бесплатное участие закончится, когда появятся наёмные сотрудники. Некоторые проекты не могут позволить себе не использовать преимущества, связанные с оплачиваемым и сфокусированным на работе персоналом.

Существование крупных проектов, выросших из добровольного сообщества - не новость. В истории есть примеры чисто добровольных организаций, сыгравших основную роль в создании и формировании многих проектов. Первые древние пути были преобразованы гражданами в дороги, которые подходили для транспорта, чтобы улучшить коммерцию. Транспорт был улучшен для всех граждан, что было вызвано коммерческим интересом некоторых из них. Сегодня мы, конечно, ценим то, что наши правительства поддерживают дороги. Тем не менее, мы по-прежнему видим знаки, говорящие о том, что определённая часть дороги поддерживается в чистоте и обслуживается добровольцами — по крайней мере, в некоторых странах. Когда нужно освоить новые земли, часто это делается на энтузиазме добровольными сообществами. Но для того, чтобы сохранить и защитить то, что было начато сообществом, нужна полноценная платная инфраструктура. И когда нужны новые достижения или заполнение пробелов, энтузиасты приходят на помощь платной инфраструктуре. Всегда есть место как для энтузиастов, так и для профессионалов.

В отрасли программного обеспечения распространено, что значимые движения начинаются энтузиастами. Хотя вначале это может работать хорошо, приходит время, когда проект, основанный энтузиастами, становится угрозой для крупных организаций (MySQL для Oracle или Linux для Microsoft). В этот момент, когда организация с открытым кодом будет выживать и конкурировать, ей придётся укреплять свои позиции, поощряя коммерческое участие, которое помогает ей продвигаться и конкурировать. Хорошим примером является Red Hat. Без Red Hat у Линукса не было бы той доли рынка, которую он имеет сегодня. Это также одна из причин, по которой я основал Аквию, и почему важно, чтобы все коммерческие компании вносили вклад в проект.

В рамках проекта Друпал у нас нет оплачиваемых сотрудников для развития ядра. Но многие разработчики, имеющие дело с критическими частями ядра Друпала, зарабатывают на жизнь путём создания сложных сайтов на Друпале. Некоторым разработчикам платят их клиенты или они нанимаются компаниями, «спонсирующими» разработку Друпала. Сегодня тысячи разработчиков работают с Друпалом, и многие из них вносят вклад в проект. Джумла и Друпал не являются проектами только энтузиастов, и это одна из причин, по которой мы растём так быстро. То же самое относится к Вордпрессу, который получает значительную помощь от Аутоматтик.

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

Тип материала: Предлагаю решение Форумы: Сайт и проект Drupal.ru 4 Thanks
Категории: Друпалургия

Страницы

Подписка на Друпалургия сбор новостей - Друпалургия