Меню Рубрики

Полезные модули drupal 8

Следующие модули используются повсеместно, надёжно работают на Drupal 8 (проверено). Команда «Drupal Security Team» проверяет коды модулей на возможные ошибки безопасности, устанавливая знак щита .

Ниже представлены ссылки на модули и описания, процесс установки модулей. Страница обновляется при портировании других востребованных модулей на 8 версию.

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

Pathauto — модуль для автоматического создания удобных url страниц. Для его работы требуются модули Chaos Tools, Token. С помощью Pathauto можно настроить шаблоны путей страниц, тогда красивые адреса страниц будут автоматически создаваться при добавлении материалов или терминов таксономии. Например, для статей в блог можно задать шаблон адреса: [node:created:html_year]/[node:title] — такой шаблон будет создавать адреса страниц вида: site.ru/2016/мой-первый-пост, site.ru/2016/выбрать-отель-в-сочи. Чтобы транслитерировать буквы адресов, в настройках Pathauto, то есть тут /admin/config/search/path/settings , отметьте чекбокс «Транслитерировать перед созданием синонима».

IMCE — этот модуль делает удобной работу с картинками. При вставке изображений в текстовую область Друпал грузит картинки в одну специальную папку. Этот модуль добавляет свою новую кнопку вставки изображений (иконка этой кнопки совпадает с иконкой стандартной кнопки, не путать). Используя модуль, можно создавать подпапки в папке картинок и грузить файлы в нужные папки, а затем удобно использовать повторно.

Taxonomy menu — следующий востребованный модуль. Он создаёт меню из терминов таксономии. Это же можно сделать с помощью модуля Views. В Друпал 7, говорили, этот модуль тормозит.

Linked Field добавляет в настройки отображения полей возможность отображения в виде ссылки.

Field Group — небольшой полезный модуль для дизайнеров. Позволяет сгруппировать поля сущностей (материалов, пользователей и таксономии) при отображении в div-блоки, выпадающие группы, аккордеоны и т.д.

Meta tags quick — этот модуль работает с мета-тегами, добавляя к поля ввода ключевых слов и описания или создавая их автоматически из содержимого материалов. В настройках модуля можно добавить базовые ключевые слова и описания которые будут добавляться материалам, а также источники для формирования этих мета-тегов из полей материалов.

Video Embed Field — вставка видео YouTube и Vimeo очень удобная с этим модулем. Он добавляет тип поля «Мультимедиа — Video Embed», которое представляет собой строку для адреса видео. Отображение этого поля может быть в виде плеера или в виде тамбнейла (картинки-превью). Для адаптивных сайтов есть готовый css-код адаптивных видео.

ImageMagick — если на хостинге работает расширение Imagick PHP, этот модуль будет работать с картинками, предлагая разработчику набор эффектов и возможности управления форматами, размером и другими параметрами изображений.

Views Slideshow — легковесное слайдшоу для Drupal 8. Добавляет формат отображения представлений Слайдшоу. Приходится отлаживать CSS стрелок прокрутки. Рекомендован.

Jssor Slider — это один из первых модулей, работающих на Drupal 8, для создания адаптивного слайдшоу. Довольно непростая задача установки, настройки модуля и создания блока слайдшоу описана на тлито.ру в разделе Модули Drupal.

Taxonomy Views Integrator — TVI позволяет для Словарей Таксономии и для отдельных Терминов задавать особые параметры отображения при помощи выбора нужного Представления Views.

Domain Access — подключение нескольких доменов к сайту, например, для языковых версий.

Language Icons — готовые иконки языков для блока переключения языка.

Чтобы установить модуль, нажмите в меню Управление — Расширить. Включите модуль Update Manager и пользуйтесь кнопкой «Установить новый модуль». На странице /admin/modules/install вставляйте адрес архива модуля, скачивайте, а затем активируйте. Если модуль требует предварительной установки других — установите другие требуемые и включите нужный модуль.
Если Update Manager выдаёт ошибку на вашем хостинге, тогда распаковывайте папки модулей в папку modules в корне сайта. А затем активируйте по кнопке Расширить в меню Управление.

источник

Admin Toolbar — модернизация меню администратора.

Panels — модуль, добавляющий возможность отображения материалов в виде панелей.

Chaos tool suite (ctools) — компонент для множества модулей редактирования страниц, блоков и прочих элементов.

Media entity — файловый менеджер для сайта drupal. Имеет широкий спект настроек и дополнений.

IMCE — модуль для загрузки изображений.

Display Suite — модуль дающий полный контроль к выводу информации и управляемый при помощи простого drag and drop интерфейса.

Paragraphs — незаменимый модуль для формирования контента страниц. Создав типы параграфа можно легко верстать статичные и контентные страницы любой сложности.

Page Manager — модуль позволяющий создавать и редактировать способы отображения материалов.

Block Visibility Groups — модуль расширяющий возможности размещения блоков. Позволяет создавать группы блоков и настраивать их отображение согласно заданным условиям. Простая альтернатива модуля panels.

Block Exclude Pages — полезный модуль когда нужно одновременно показать блок на определенных страницах и в тоже время скрыть для страниц того же url-шаблона. Позволяет скрывать/показывать блок на страницах, чей url начинается с !.

Superfish — Superfish интегрирует jQuery Superfish плагин в Drupal menus.

Profile — модуль позволяющий создавать профили и выводить в них информацию о пользователях сайта.

Colorbox — позволяет увеличивать изображения при клике по ним.

Views Infinite Scroll — добавляем кнопку «Показать еще» в представлении. Эта кнопка позволяет подгружать без обновления страницы все новые и новые результаты выдачи.

Chosen — модуль для таксономии отображающий термины в виде выпадающего списка тегов, в которых можно производить поиск.

Autocomplete Deluxe — модуль для таксономии отображающий термины в виде тегов.

Rules — модуль правил позволяющий создавать события и реакции (пока еще в сыром состоянии).

Business rulesрабочий аналог модуля Rules. Содержит в себе все необходимое для организации условий и событий. Многокрастно усиливает возможности Drupal 8.

Pathauto — Pathauto модуль генерирует URL/пути. Вместо node/132 вы получаете /hello-world, например.

Webform — неотъемлемый модуль для создания веб-форм и форм обратной связи. Обладает ОЧЕНЬ большими возможностями, выводящими его применение далеко за пределы контактных форм. Модуль постоянно обновляется и развивается.

Video Embed Field — позволяет вставлять видео прямо на страницы сайта через обычный текстовый редактор.

Disqus — система комментирования для вашего сайта. Стандартные формы комментирования очень убого выглядят, поэтому используем Disqus .

OneAll Social Login — позволяем пользоваться регистрироваться и авторизоваться через социальные сети.

Registration role — задаем роль, которая будет выдаваться пользователю при регистрации.

Flex Slider — один из лучших слайдеров для сайта.

Comment limit — ограничиваем количество комментариев для пользователей.

Field Permissions — модуль, позволяющий устанавливать доступ к полям материалов.

Views Field View — модуль, позволяющий вставлять views внутри views.

Fine Image Upload — модуль открывающий возможность загрузки изображений с предварительным просмотром. Файлы загружаются в режиме drag and drop.

Better Formats — удаляем (скрываем) помощь по форматам и надпись «О текстовых форматах» в текстовом редакторе.

Textarea Limit — модуль, устанавливающи лимит на количество символов, вводимых в тектовое поле(Textarea).

Poll — модуль, позволяющий создавать опросы для сайтов и собирать статистику по ним.

Linkit — Enriched linking experience — модуль упрощающий вставку ссылок на внутренние страницы. С его помощью поиск содержимого происходит через поля автозаполнения уже имеющимся контентом на сайте.

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

Taxonomy Move — переносите термины из одного словаря в другой.

Taxonomy Manager — менеджер для терминов и словарей таксономии.

Taxonomy Multi-delete Terms — с помощью этого модуля вы можете удалять сразу несколько терминов таксономии.

Views Slideshow — позволяет представлениям выводить Слайдшоу.

Views Templates — дополнительные шаблоны для представлений.

Editor Advanced link — модуль добавляет опции к окну вставки ссылок на страницу через ckeditor.

Text Field Counter — модуль, добавляющий к полям текст (форматированный), текст (форматированный длинный), текст (обычный), текст (обычный длинный) возможность подсчета количества вводимых в поле символов. Как по мне, очень удобно.

Social Profile Field — люди имеют профили в различных социальных сетях и это поле позволяет собирать ссылки на страницы в социальных сетях и показать им в качестве иконки профиля.

Select (or other) — модуль, который позволяет добавлять вариант «другое» для поля списка.

Asset Injector — добавление css и js к сайту прямо из админки.

Views Photo Grid — добавляет представлениям возможность отображать контент в виде галерей фотографий.

Exclude Node Title — модуль скрывающий заголовки на страницах.

YouTube Block — модуль, который выводит похожие посты из youtube прямо на сайт.

Fancy Login — форма авторизации пользователей теперь выходит во всплывающем окне.

Popup message — вывод сообщения во всплывающем окне.

Auto Purge Users — удаление неактивных пользователей.

CKEditor Letter Spacing — устанавливает разрыв между строками.

CKEditor iFrame — После установки, вы сможете добавить кнопку на панель редактора ckeditor, который позволит пользователю добавить содержимое iframe с YouTube или приложения, такие как календарь Google.

Bootstrap Layouts — макеты для тем созданных на фраймворке bootstrap.

Modal Blocks — Модуль модального блоков показывает блок или набор блоков в качестве всплывающего окна на странице.

Modal Page — модальное всплывающее окно (уведомление) на странице.

Protected File (from download) — показываем файл, защищаем его от скачивания, если у пользователя нет полномочий.

Parameter Message — вывод пользовательских сообщений в окне системных сообщений.

Login Popup — отображаем форму регистрации в диалоговом окне.

Popup Dialog — единовременное попап окно.

Email Registration — Позволяет пользователям зарегистрироваться и войти в систему, используя только адрес электронной почты. Затем пользователи могут войти в систему, используя адрес электронной почты и пароль для проверки подлинности.

Magnific Popup — плагин, добавляющий множество возможностей для вывода форматеров выводов полей видео, фото, текста, форм. Как например: вывод видео или фото в popup окне (подобно галереи colorbox). Подробней здесь.

Redirect — модуль перенаправлений с одной страницы на другую.

Entity Submit Redirect — модуль позволяющий легко управлять редиректом после сохранения любой сущности, будь то блок, страница, комментарий или файл.

Redirect after login — дает возможность перенаправить пользователя на внутреннюю страницу сайта после авторизации.

Simple Redirect — простое перенаправление после входа в систему.

Maintenance Mode Redirect — сайт перенаправляет посетителей на другой URL-адрес, когда режим обслуживания включен.

Paragraphs — незаменимый модуль для формирования контента страниц. Создав типы параграфа можно легко верстать статичные и контентные страницы любой сложности.

Slick Paragraphs — дополнение для paragraph модуля активирующая возможность создания типов параграфа карусель. Отличное решение для слайдера на странице или внутри контента.

Paragraphs Previewer — модуль (дополнение) добавляющий предварительный просмотр созданных параграфов прямо при создании типов материала.

Like & Dislike — модуль для соцсетей: нравиться — не нравиться

Facebook Like Button — внедряем лайки фейсбука на любую страницу через блок «Кнопка «Нравится»»

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

Rate — Этот модуль обеспечивает гибкие виджеты голосования на узлах и комментарии.

Vote Up/Down — Позволяет голосов на некоторых сущностей Drupal и является основой для реализации голосов на других лиц.

Like Button — Добавить кнопку как на Drupal контент и комментарии!

Tweet Button — твиттер кнопка

Facebook Album — альбомы из facebook

Simple social icons — творим иконки соцсетей своими руками

Facebook Comments Block — комментарии фэйсбука в блоке

YouTube Field — поля с видео youtube

Pinterest Hover button — кнопка поделиться пином

источник

Установка с помощью drush:

drush en -y devel ds field_group paragraphs admin_toolbar block_class contact_block contact_storage contact_ajax pathauto token ajax_loader ctools metatag better_exposed_filters advagg imagemagick

Мощнейший модуль для разработки.

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

  • Kint — функция kint ($ array), которая печатает массивы. Полезно во время разработки. Аналогичным образом предлагается функция ddebug_backtrace ().
  • Создание контента — devel позволяет ускорить разработку и тестирование сайта или модуля благодаря быстрому созданию любого количества материалов на сайте (ноды, комментарии, термины, пользователи и т. д.).
  • WebProfiler — добавляет в подвал сайта информацию о использовании ресурсов, эффективности кеша, запросах к базе данных, представлений и многое другое. Позволяет быстро определить «узкое место на сайте».

Данный модуль рекомендуется использовать только при разработке, на «боевом» сервере лучше отключать.

Display Suite позволяет полностью контролировать отображение контента, используя визуальный интерфейс.

Предоставляет возможность вывести поля так как вы хотите, без необходимости менять файлы шаблонов. В модуль включены уже сконфигурированные шаблоны (1 колонка 3 колонки и т.д.).

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

Расширенные опции

  • Экспорт настроек;
  • Добавление собственных полей;
  • Добавление пользовательских макетов в тему;
  • Изменение меток, добавление стилей или переопределение настроек полей (семантические поля);
  • Полная интеграция с views и panels;

Fieldgroup, как следует из названия, позволяет группировать поля для отображения вместе. Fieldgroup поставляется с набором элементов по умолчанию, такими как вертикальные вкладки, горизонтальные вкладки, аккордеоны, или обертки div.

Доступные типы групп

  • Fieldsets
  • Горизонтальные вкладки
  • Вертикальные вкладки
  • Аккордеоны
  • Divs
  • Элементы HTML5
  • Элементы html

В совокупности с Display Suite дает возможность верстать не выходя из админки.

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

Добавляет возможность создания определенных типов контента для создания материалов.

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

Модуль Pathauto автоматически генерирует псевдонимы URL / path для различных видов контента (узлы, термины таксономии, пользователи), не требуя от пользователя вручную указывать псевдоним пути.

Это позволяет вам использовать псевдонимы URL, например / category / my-node-title, вместо / node / 123.

Шаблоны псевдонимов легко настраиваются для любых типов контента с помощью токенов.

Читайте также:  Цветок эдельвейс полезные свойства

Модуль Metatag позволяет автоматически предоставлять структурированные метаданные, о веб-сайте. В основном нужен для поисковой оптимизации сайта.

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

Кроме того, модуль поддерживает метатеги (Open Graph Protocol из Facebook, Twitter Cards из Twitter), которые позволяют контролировать, как контент отображается в социальных сетях.

Модуль «Better Exposed Filters» заменяет стандартный фильтр Views с помощью переключателей (radiobutton), флажков (checkbox) или ссылок. Также к фильтру могут быть добавлены кнопки «Выбрать все» и «Очистить».

В примере ниже, фильтр вместо стандартного select выведен как ссылки, в сочетании со стандартным ajax views позволяет создать более удобный для пользователя интерфейс фильтрации результатов представления.

источник

Я “общаюсь” с Drupal достаточно давно и уже сделал свою сборку на его основе.

Решил поделится набором модулей, которые самые-самые нужные. Не претендую на эталон, но это то, что я выбрал для себя путем естественного отбора 😉

1. Views – без этого модуля сложно представить полноценную работу с Drupal. Позволяет настраивать представление контента на странице.

2. CCK – позволяет добавлять дополнительные поля к материалу.

3. BUEditor / FCKEditor / Wysiwyg (замена TinyMCE) – визуальные редакторы. Сам я использую BUEditor – с ним видно код, для клиентов ставлю FCK – сразу виден результат.

4. Captcha – защита вашего сайта от спама. Стандартные средства модуля captcha, как показала практика, не справляются, поэтому еще нужен модуль:

5. ReCaptcha – дополнительный тест к Captcha, который не проходит практически ни один бот.

6. Token – без него не будут работать некоторые модули.

7. Poormans Cron – автоматизирует запуск Cron (запускает его раз в промежуток времени, который вы укажите)

8. Submenu Tree — вывод дерева подразделов/надразделов.

9. BackUp and Migrate – позволяет легко и быстро забэкапить ваш сайт на drupal и перенести на новую площадку.

10. Comment Subject – автоматически вставляет в тему комментариев привычное “RE:”

11. Email Field, Link Field, FileField – дополнительные модули для CCK, позволяющие добавлять поля типа “электронная почта”, “ссылка” и даже “файл”.

12. IMCE – файловый менеджер для загрузки картинок, легко “приклеивается” к BUEditor’у, FCKEditor’у или Wysiwyg.

13. Image — Модуль работы с изображениями, позволяет делать превью, создавать галереи. Для него много альтернатив, но мне хватает его функционала. Использует Views.

14. Nodewords – Позволяет изменять теги meta к сайту или отдельной странице.

15. Paging – разбиение материала по страницам.

16. Path Auto – автоматические синонимы страниц. Переименуйте i18n-ascii.example.txt в i18n-ascii.txt чтобы в настройках можно было включить транслитерацию.

18. XML Sitemap – XML Карта сайта. Для Google и Яндекса.

19. Transliteration – автоматически переименовывает файлы на русском в транслит при загрузке (Картинки.tar > Kartinki.tar)

20. Webform – любые формы на вашем сайте. Например, форма заказа или альтернативная форма контактов.

21. Page Title – настраиваемые заголовки страниц.

22. Admin Menu – очень удобное меню администрирования с выпадающими списками. Лично я уже не представляю работу в Drupal без этого модуля.

23. Front Page – позволяет создавать главную страницу сайта, отличную от остальных. Просто создайте page-front.tpl.php

24. Global Redirect – делает много полезного (см. на странице проекта) – основная задача убрать продублированные адреса страниц.

25. Guestbook – Гостевая книга.

26. Ajax comments – Комментарии теперь используют Ajax. Приятная мелочь.

27. Finder – поиск с кучей возможностей, напимер, с автозаполнением (а-ля Google).

28. Printer, e-mail and PDF versions – Версия для печати, ссылка “Отправить другу” и версия в виде PDF. Три модуля в одном.

29. Private message – личные сообщения между пользователями.

30. Tagadelic – всеми любимое дерево тегов.

Список можно пополнять, это далеко не все)

Как заявляют сами разработчики CMS – ее возможности безграничны и с помощью нее можно сделать сайт любой сложности. Успевай подключай модули и пиши свои))

Надеюсь, этот список окажется вам полезным и каждый найдет в нем что-то новое и интересное.

спасиб за ценную информацию но она была бы в 10 раз полезней еслиб ты ещо ссылки написал на русифицированные модули)))))
а то у меня с нахождение русификаторв иногда проблемы. )

спасиб за ценную информацию но она была бы в 10 раз полезней еслиб ты ещо ссылки написал на русифицированные модули)))))
а то у меня с нахождение русификаторв иногда проблемы. )

Поставьте модуль live_translation и проблему переводом можно будет практически забыть.

Спасибо! отличная подборка. Узнал для себя несколько новых, полезных модулей.
Кстати, уверен, что если создать страницу с подобным описанием всех модулей, которые реально могут быть полезными, то вопросов типа «подскажите модуль» на форуме было бы намного меньше.

что там страница. есть даже целый сайт. setegnom.com

Спасибо за отзывы!
А про русский — drupaler.ru — я там беру русификации. Далеко не всегда полные, но в основном то, что видит пользователь, переведено.

По поводу руссификации:
Киньте в закладки эту страницу http://drupaler.ru/translate/languages/ru/export
Открываете эту страницу, вписываете название(есть автозаполнение), и усё.

imagecache и lightbox2 к модулям добавил бы, в связке с views и cck, позволяет стройненько построить работу с изображениями на сайте, все будет прозрачно и понятно.

Можно еще views slideshow и imagecache action поставить к этой связке, там вобще комбайн на все случаи жизни по созданию спецэффектов с изображениями.

P.S. По коментам выше видно, что новички есть:). Думал что с переводами проблему решили с появлением drupaler.ru.

🙂 откомментюсь, это не вам конкретно, а просто всем новичкам.

Мастхев не увидел imagecache.
В нужное добавить devel.
Интересное lightbox, panels, quicktabs, contenplate, .

Wysiwyg — это замена всех визивигов, по-крайней мере пытается.

Poormanscron рекомендуется использовать если вы не можете (не умеете) кронить.

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

Captcha + ReCaptcha — есть еще моллом.

Token нужен как зависимый модуль, не мастхев.

imce не очень легко приклеивается через imce_bridge (причём надо включить плагин в кнопках, и когда его выбираешь, надо руками отобрать нужные кнопки, ибо дефолт тут же сбрасывается). Также imce не любят потому что она даёт засорить ваш сервер всякой ерундой, которую вы не проконтролируете через files 🙂

XML Sitemap помоему тот еще тормоз.

image — если есть CCK и filefield, то лучше через imagefield

Backup and migrate — лучже уж sypex dumper 🙂

Path auto — мастхев, если токен.

Admin menu — маст хев при настройке сайта, имхо клиенту его давать нет смысла.

F10, на друпалере с этой ссылкой автоподстановка не сразу срабатывает, я обычно к ссылке сразу дописываю нужный проект (обычно я знаю как он зовется) — ?project=views
За imagecache_action спасибо!

я обычно к ссылке сразу дописываю нужный проект (обычно я знаю как он зовется) — ?project=views

— ну ты прям суровый челябенский друпалер.)

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

то у меня с нахождение русификаторв иногда проблемы. )

Я уже писал то том, как можно упростить поиск перевода для нужного модуля на сайте drupaler.ru: [#30980]Drupaler и закладурки[/#].

Backup and migrate — лучже уж sypex dumper 🙂

Не лучше. Во-первых, проблемы с пользователем «Гость» (если дополнительно не обработать его напильником), во-вторых, B&M умеет бэкапить на почту и еще много всяких вкусностей 🙂

Не лучше. Во-первых, проблемы с пользователем «Гость» (если дополнительно не обработать его напильником), во-вторых, B&M умеет бэкапить на почту и еще много всяких вкусностей 🙂

слава богу не встречал, помоему это были настройки мускула. А вкусности я оставляю для mysql.exe 😀 Сайпекс хорош (по-крайней мере был) тем что предельно прост в отличие от phpmyadmin — export. Всё это касательно для новичков.

Можно, я свой блог тоже порекламирую? 😉
А-а-а, только не бейте ногами. Он же на drupal.ru!
В общем, вот: [#40961]Мои любимые модули :)[/#]. Новички, wellcome!

Во-первых, проблемы с пользователем «Гость»

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

С некоторого времени drupal.org сортирует модули по популярности.

Идем сюда http://drupal.org/project/modules и листаем пейджер. Это и будут самые нужные модули.

Для ТС imagefield и imagecache вы явно упустили. А image пора выпиливать.

+1
— он сегодня по идеологии не подходит к Drupal-у.
Комбайны нынче не в моде. В будущем все галереи наверно будут строить на CCK image field + imagecache + всякие плагины к views.

Комбайны нынче не в моде. В будущем все галереи наверно будут строить на CCK image field + imagecache + всякие плагины к views.

К Views даже плагины не нужны, достаточно порыскать в сети и найти любые jQuery-плюшки. Прикрутить труда не составит -)

Модуль Image сегодня по идеологии не подходит к Drupal-у.

Не соглашусь. Главное отличие Image от связки CCK+ImageField+Imagecache в том, что в Image 1 изображение = 1 материал. И это очень удобно, к примеру, для фотосайтов, где нужно сделать голосование за конкретную фотографию. Или, к примеру, когда конкретную фотографию нужно привязать к термину таксономии.

Да, я понимаю, что можно сделать материал с одним полем CCK для одного изображения, но зачем городить огород из 10 модулей, когда можно обойтись одним?

То есть в конечном счете все зависит от задач.

— этим можно удовлетвориться я думаю.

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

Главное отличие Image от связки CCK+ImageField+Imagecache в том, что в Image 1 изображение = 1 материал.

— это то понятно, просто в семерке CCK уже в ядре, насколько помню хотели imacaсhe даже в ядро вставить. Т.е. картинки в семерке будем через CCK к нодам привязывать, и идти уже отсюда.
Я к тому, что с выходом Drupal 7 можно понять, что эволюция идет в сторону конструктора из узких модулей(как в ООП), а не сборника болших модулей, не работающих друг с другом.

Серьёзно, господа, модуль image уже давно подлежит безоговорочному выпиливанию.

Он не подходит в концепцию друпала. Ну не подходит, и всё. Так же как модуль upload. Та же кривая байда внизу ноды.

Ооооо.. Кстати.. *Тока не бейте* Как блин эту ошибку пофускать при аплоаде?

Нашёл какой-то патч, и даже пропатченный файл form.js. Тока толку ноль.

Интересно было почитать дискуссию)
Спасибо всем кто отписался, советы учту.
Рад, если кому-то было полезным.
Жаль, если кого-то разочаровал — но я повторюсь, я на последнюю инстанцию не претендую.
На троллей которого тут лихорадит вторые сутки обижаться не буду)))

По поводу руссификации:
Киньте в закладки эту страницу http://drupaler.ru/translate/languages/ru/export
Открываете эту страницу, вписываете название(есть автозаполнение), и усё.

ставьте live_translation + патчик к нему, чтоб импортировать все переводы одним нажатием — и не мучайтесь.

Может еще кто предложит «свой» список. Пытаюсь освоить DRUPAL 7. было бы полезно для новичков.

Может еще кто предложит «свой» список. Пытаюсь освоить DRUPAL 7. было бы полезно для новичков.

На хабре писали в этом году джентльменский набор

Отображение анонсов или полей материалов в блоке через Views с использованием КОНТЕКСТНЫЕ ФИЛЬТРЫ и СВЯЗИ

Ваше мнение о seo мультиязычного сайта — один домен site.ru или для каждого языка свой домен site.de , site.eng и т.д. ?

Содержимое сайта публикуется на условиях CreativeCommons Attribution-ShareAlike 3.0 или более поздней версии. Программные коды в тексте статей — на условиях GNU GPL v2 или более поздней версии.

источник

Updated on January 12, 2018

M odules are essential components of Drupal that add extended functionality to the website and turn a simple website into a very powerful beast!

One of the best features of Drupal 8 is that it integrates several essential modules into the core of the CMS. This is a major improvement over Drupal 7! In this article, I will highlight several Drupal 8 ready modules for different use cases.

A responsive admin menu with extra functionality always comes handy when managing a Drupal site. Here are some Drupal 8 modules for your Admin menu.

This module replaces the original admin menu with a responsive version that greatly improves the original menu’s functionality by adding drop-down menus. This speeds up the access to all administration pages. You could extend the functionality further by adding extra links for flushing cache and running Cron jobs.

The field group module allows easier organization of the content by grouping the fields together in either vertical or horizontal tabs, divs, accordions etc. This module greatly enhances the user experience for content editors.

This is an extremely useful module that allows auto-complete feature for all internal and external links. Now, the content producers do not have to remember the exact URL. Adding the URL and the process of hyperlinking is now easy because of the very user-friendly UI of the module.

Relevant and easy to remember URLs are an essential practice for website’s SEO. This module automatically generates relevant and easy to remember URL according to your web page. These URLs ensure that the pages on the website rank better in search engines and that the pages perform well in SERP.

Page load time is one of the most important parameters for both the users and search engines. If the page does not load quickly, the users will abandon the website and search engine might penalize your website! With the use of the right Drupal 8 modules, you will never have to compromise on performance metrics.

This module implements BigPipe caching, originally introduced by Facebook, in order to speed up the website. The module first renders the cached components of the page and then loads up the dynamic components. This way, the page load speed increases dramatically.

Читайте также:  Что полезно для кишечника есть

This module allows you to transfer and use your website’s configurations and components to other websites without any major issues.

The Blog module used to be a core Drupal 7 module, but has been removed from the core of Drupal 8 to a contributed Drupal 8 module. This module, as the name suggests, allows the website administrators to build and maintain a blog.

For a blogger, increasing the online reach is the top priority at all times. Social media remains the most important aspect of any strategy of increasing the reach of the blog. This module allows you to add social sharing buttons that let the visitors on the blog quickly share the content across their social media profiles.

The Newsletter Module for Drupal 7 has, unfortunately, not been ported over to Drupal 8. However, the MailSystem module can be used as a workaround. This module allows you to set the templates and themes for the outgoing mail. You could also send regular newsletters to your subscribers through the module.

The Drupal 8 core includes the responsive_image module into the core of the CMS.

As the name implies, this module allows you to add additional effects to images and the image UI such as the example above.

This module allows images on your website to be displayed in a convenient overlay over the current page. This allows for a distraction-free usage of images within the text.

In this article, I introduced several Drupal 8 ready modules that are essential for setting up and managing various aspects of the website. Drupal 8 is a lot mature now and a lot of new modules are still being introduced on a regular basis. If you think I have missed out an important Drupal 8 module or if you wish to contribute to the discussion, please leave a comment below.

If you wish to try out these Drupal 8 modules without the hassle of setting up a Drupal environment yourself, then try Cloudways Managed Drupal Hosting for an easy 1-Click installation.

If you are looking to speed up your Drupal website, you might be interested in reading our blog post on: Speeding Up Drupal.

источник

Минимальный список модулей, которые я использую при разработке нового сайта:

  • Backup and Migrate — бэкап, восстановление.
  • CKEditor — сам я предпочитаю BUEditor, но людям далёким от веба он слишком сложный.
  • Devel — инструмент разработки и отладки.
  • Search Krumo — js поиск в отладочных сообщениях Krumo.
  • Drupal Helpers — мой набор PHP хэлперов. Модуль постоянно дорабатывается в ходе работы над сайтом.
  • Extended block visibility — управление видимостью блоков из PHP.
  • Field collection — часто бывает нужен, например для создания типа материала под слайдшоу.
  • jQuery Update — под jQuery 1.4.4 крайне сложно найти актуальные плагины, поэтому ставлю 1.8 для фронтэнда и оставляю 1.4.4 для админки. Плюс там свеженький jQuery UI.
  • Localization update — русский язык.
  • Module Filter — javascript фильтр модулей в админке.
  • One Click Upload — заливка картинок и файлов в текст.
  • Path Breadcrumbs — управление хлебными крошками.
  • Pathauto — автоматическое создание ЧПУ.
  • Taxonomy display — настройка страницы терминов таксономии и вывод контента с помощью Views.
  • Transliteration — транслитерация имён файлов и url-ов.
  • Views — вывод контента.
  • Views Bulk Operations — массовое управление контентом.
  • Webform — различные контактные формы.
  • xBlockify — заголовок, табы, крошки в виде блоков. Мой аналог устаревшего модуля Blockify.
  • Colorbox — лайтбокс для картинок.
  • XML Sitemap — карта сайта для поисковиков.
  • Metatag — управление метатегами страниц.
  • IMCE — файловые менеджер для редактора.
  • Multiupload Imagefield Widget — массовая загрузка картинок.
  • Image Resize Filter — текстовый фильтр для уменьшения картинок на сервере по данным из атрибутов width/height.
  • Mail System + Mime Mail — HTML письма.
  • Token Function — вставка в текст динамического контента. Обзорный пост.
  • Drupal Improvements — мой модуль, дополняющий функционал друпала.

Ставится и настраивается всё это разумеется не вручную, а c помощью моего профиля и drush make.

Написанное актуально для Drupal 7 Похожие записи

entity — без комментариев.
features — знаю, что ты их не перевариваешь, но все же=)
filefield_paths — иногда хочется, чтобы файлы тоже были систематизированы
admin_menu — без комментариев.
colorbox — без комментариев.
devel_themer — темизация с модулем одно удовольствие
redirect — различные виды редиректов, в основном для 301
token — постоянно пригождаются, хотя бы для того же pathauto

SEO:
xmlsitemap
metatag
ну и всякие аналитиксы, яндексы и тд

Можно добавить:
password_policy — расширенная настройка требований к паролям
search_config — настройка функции поиска по сайту
captcha — без комментариев
phpmailer — без комментариев
+ по необходимости разные access для подстройки прав групп.

Autodialog — универсальный модуль для попапов 🙂
Context или Panels — Что то одно почти всегда ставлю.
Global Redirect — Отличный модуль для SEO
Webform Ajax — Название говорит за себя 🙂
Simple meta — Для манагеров которым трудно искать мета теги в форме редактирования 🙂
Field Email и Field Link — без комментариев.
Image Block — без комментариев.

Better Formats, Browser class, Node clone — Просто за компанию устанавливаю 🙂

Поделитесь, пожалуйста, как вы используете Field collection для создания типа материала под слайдшоу?

@Антон
Тип материала «слайдшоу»
Составное многозначное поле «слайды»:
— картинка
— адрес
— текст

Можно ли пару слов добавить про Drupal Helpers? Что это и в чем помогает?
На странице проекта описания тоже нет :(.

Конечно, самых хороший способ поставить и проверить, но. хорошо бы услышать описание от отца модуля.

набор функций которые должны быть в друпале, но которых там нет. например:

BlockHelper::getBlockContent()
CommerceHelper::cartIsEmpty()
EntityHelper::fastUpdateFieldValue()
NodeHelper::isPage()
TaxonomyHelper::getParentTermTid()

Считаю, что связка
WYSIWYG
IMCE
WYSIWYG IMCE bridge
гораздо гибче и удобнее, чем просто CKEditor. Загрузка изображений и других файлов, квоты, поддержка кучи разных редакторов, гибкие права и т.п.

m0Ray, сам пользуюсь wysiwig, но стоит признать модуль крайне редко обновляется.

DS — на любом сложном проекте использую.
Google Analytics — нечто большее, чем просто вставка кода счетчика.
entityreference — для связки разных материалов.
imagefield_tokens — токены для альтов и тайтлов изображений
mailsystem и mimemail — для почты в html
navigation404 — чтобы меню не пропадало на 404 странице
diff — чтобы видеть, кто что исправил
entity_delete_log — чтобы видеть, что кто удалил
views_docket — как module_filter, только для вьюс

xandeadx, если есть возможность, сделай рубрику «Разбор сайта». Практика у тебя хорошая, мог бы показывать сделанные сайты и параллельно обьяснять, что и как там сделано, какой набор модулей, как все связано. Было бы круто.

источник


Встроенный в ядро 8й версии редактор CKeditor умеет вставлять картинки. Загрузка картинок, которые пользователь вставляет в область текста, производится в папку sites/default/files/inline-images, а чтобы найти и выбрать ранее загруженные картинки, нужно работать с файлами на странице Содержимое — Файлы. Подробнее о том, как работать с медиа-файлами (картинками) в 8 Друпале, расскажет следующая статья.

Недавно выпущенный Друпал 8 достаточно хорош при работе с картинками.

В эпоху Друпала 5-7 одна из главных претензий редакторов сайтов была жалоба на очень неудобный редактор текста из коробки и отсутствие возможности загружать картинки. Действительно, необходимость установки и настройки редактора WYSIWIG или медиа-библиотеки в виде отдельных модулей представляла большую проблему при выборе Друпала в качестве CMS блога или новостного портала. Конкурирующие CMS, например, WordPress, предлагали это из коробки с ранних релизов, поэтому работа с текстом WordPress стала стандартом современных CMS. Может быть, поэтому так мало блогов с фотографиями котят созданы на Drupal.

Функционал работы с медиа-файлами значительно улучшен в ядре Друпала 8. Редактор WYSIWYG CKeditor теперь встроен в ядро (он был выбран в качестве стандарта, но есть возможность установки других библиотек и модулей редакторов текста).

Кроме того, Drupal 8, наконец, содержит медиа-библиотеку, встроенную в ядро, что даёт редактору сайта некоторый контроль над файлами (изображения, документы, видео и т.д.), загруженными в Друпал. Существует панель управления файлами в разделе Содержимое, где вы можете увидеть загруженные файлы и объекты содержимого, в которых используются эти файлы.
Наконец, и редактор текста CKeditor содержит кнопку на своей панели, по нажатию которой можно загружать и вставлять изображения при редактировании статей.

Управление медиа-файлами в Друпал 8 по-прежнему отстаёт от дружелюбных редакторов, как в качественном WordPress, но сделан большой шаг в правильном направлении.

В выборе дополнительных (контрибных) модулей ситуация ещё лучше. В то время, как встроенные в CMS Drupal 8 инструменты включают минимальный необходимый функционал для редактирования содержимого, администратор сайта может существенно улучшить удобство с помощью нескольких модулей, которые являются результатом скоординированных усилий сообщества Друпала, чтобы усовершенствовать работу с файлами в Друпале 8. Для 8ки написаны модули, которые удовлетворяют все потребности в обработке медиа-файлов: Media Entity, Media Embed и Entity Browser.

Media Entity предоставляет возможность администратору сайта определить свои собственные типы медиа-файлов. Представьте, если, например, Лента Twitter (англ. Twitter Feed) также сможет стать компонентом медиа и будет использована повторно в различных типах материалов.

Media Embed обеспечивает механизм вставки мультимедиа в текст при работе с WYSIWIG и вывода их в нужном режиме отображения. Media Embed может стать полем в любом типе материалов вашего Друпала. Подумайте о возможности вставлять в статью вашего блога профиль пользователя, который будет обновляться автоматически, без необходимости редактирования содержимого статьи после. Или представьте возможность вставки анонса новости в содержание другой страницы. И конечно, вы можете вставить статью саму в себя.

Entity Browser позаботился о предоставлении унифицированного интерфейса для выбора и управления медиа-элементами вашего сайта. Нет разницы, если вы вставили мультимедиа-элемент через WYSIWYG или как элемент отдельного поля. Вы всегда будете видеть один общий интерфейс выбора медиа-файлов для вставки и вкладку загрузки новых файлов, а также другие подключённые источники. Разумеется, Entity Browser будет настраиваться и расширяться в полной мере, учитывая гибкость, которая присуща Друпалу. Этот модуль находится в стадии развития, но должен быть доступен в стабильной версии с выходом стабильного релиза Друпала 8.

Как вы, возможно, заметили, эти 3 модуля содержат термин «Entity» (рус. сущность, объект), а не «файл» или «медиа». Это означает, что для редактора или разработчика сайта в перспективе всё может быть объектом: каждый объект становится компонентом CMS — и это реальная сила, которая предстоит с выходом Друпала 8.

Теперь, возможно, мы будем наблюдать больше сайтов с фотографиями котят, созданных на Друпале. И сообщество друпалеров теперь придумает новый вопрос для Дриса* на мероприятиях Друпала.

источник

Drupal Console

Drupal console это набор инструментов, которые запускаются из командной строки и позволяет генерировать шаблонный код и взаимодействует с Drupal 8. Использование Drupal console кардинально увеличивает скорость разработки.

Консоль очень проста в использовании: У каждой команды есть руководство к использованию и помощь по установке свойств и параметров. Drupal консоль предоставляет большой список команд, которые очень полезны в вашей повседневной работе с Drupal.

  • generate:service: Генерирует код сервиса
  • generate:twig:extension: Генерирует исключение для шаблонизатора TWIG
  • generate:plugin:fieldtype Генерирует код для типа поля

Функционал Drupal консоли который может быть интересным:

  • Отличная документация.
  • Вы можете создавать свою DrupalConsole команду для автогенерации кода и реализации своего плагина. Как образец, модуль Metatag имеет свою реализацию команды в DrupalConsole, для генерации нового Metatag плагина.
  • Постоянно совершенствуется и поддерживается, благодаря основным сопровождающим и другим разработчикам.

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

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

Если вы столкнулись с проектом на Drupal 8, то крайне важно начать использовать XDebug в вашем локальном окружении. XDebug это расширение PHP, которое предоставляет возможности отладки и профилирования. XDebug помогает отлаживать PHP код шаг за шагом. Это позволит вам иметь больше информации о контексте, трасировать потоки и т.д. Вместес c Xdebug, вы сможете найти ошибки в коде вашего проекта и сможете устранить их быстрее чем используя другие техники отладки. Некоторые IDE такие как PHPStorm или NetBeans имеют расширения для использования Xdebug и предоставляют UI (user intergace) для отладки проекта в нем. Кроме того, существует несколько плагинов и расширений для браузеров например Xdebug helper для Chrome. Эти плагины или расширения помогут настроить необходимую конфигурацию, для начала отладки страницы в браузере. Если вы используете PHPStorm, то найдете вспомогательную информацию в офицальной документации.

Настройка sevices.yml and settings.php files

Следующий инструмент, который вы полюбите при работе с Drupal 8 это отладочные инструменты Twig Engine. Twig в Drupal 8 это новый движок шаблонов, поэтому разработчики могут использовать его отладочные инструменты. В Drupal 8 при отладе доступна дополнительная информация:

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

Эта информация довольна полезна, потому что, позволяет узнать какой шаблон можно перезаписать для настройки вывода в вашем проекте. Это не было возможно в предыдущих версиях, где вы должны были помнить, какое имя у шаблона должно быть, чтобы его можно было настроить.
Кроме того, существуют еше и другие настройки для разработки, которые вас заинтересуют, к примеру Отладка скомпилированных шаблонов (Debugging compiled templates)

Как я могу отладить свой шаблон?

Twig предоставляет несколько отладочных функций наподобии dump(), которые выводят значения переданных переменных. Вы также можете использовать модуль Twig Xdebug, он предоставляет новую twig функцию breakpoint().
«Точка остановки может быть открыта в файле вне вашего Twig шаблона, но вам будут доступны любые переменные в точке остановки внутри шаблона».

Читайте также:  Что полезней урюк курага или кайса

Web Profile

Если вы использовали WebProfile в преддыущих версиях Drupal, вы знаете, что он объеденился с модулем Devel и стал подмодулем в Drupal 8. WebProfile это связка Symfony Console и Drupal 8. Консоль предоставляет тулбар внизу страницы где администратор может подлучить важную информацию для профилирования сайта. У вас будет возможность отследить запросы в базу, эффективность кеша, работу представлений и много другого. Это особено полезно, при проверке запроса в БД на определнных страницах с возможностью фильтрации. Если вы хотите больше узнать о функциях предоставляемых этим модулем, вы можете посмотреть статью Web Profiler in Drupal 8 от Joe Fender. В статье вы найдете подробный список функционала предоставляемых этим модулем.

источник

Эта статья является второй из трех частей серии о том, как построить модуль Drupal 8 .
Как построить модуль Drupal 8:

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

В этой статье мы продолжим работу с нашим модулем, который вы можете посмотреть в этом хранилище , и рассмотрим два других важных функциональных элемента: блоки и формы.

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

Крутым нововведением в Drupal 8 стали более наглядные блоки, что практически преобразовало их в плагины ( новая концепция бренда ). То есть теперь они представляют собой функциональные элементы, которые можно использовать в разных местах.

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

Давайте продолжим и создадим простой тип блока, который выводит на экран по умолчанию « Привет, Мир! «. Все, что нам понадобится — это один файл классов, расположенный в папке src/Plugin/Block корневой директории нашего модуля.

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

Как и для любого другого файла классов, мы начинаем с определения области имен нашего класса. Затем мы используем класс BlockBase , так чтобы мы могли расширить его, а также класс AccountInterface , так чтобы мы могли получить доступ к текущему активному пользователю. Затем следует то, с чем вы определенно не встречались в Drupal 7 : аннотации.

Аннотации являются инструментом пояснения PHP , они расположены в блоке комментариев того же файла, в котором определяется класс. Используя аннотации, мы сообщаем Drupal , что мы хотим зарегистрировать новый тип блока ( @Block ) с идентификатором demo_block и admin_label — Demo block ( передаваемым через систему перевода ).

Далее, мы расширяем класс BlockBase в наш собственный DemoBlock , внутри которого мы реализуем два метода (наиболее распространенные из них мы будем рассматривать подробно позже). Метод build() — наиболее важный из них, так как он возвращает отображаемый массив, который будет выводить блок. Метод access() контролирует права доступа для просмотра этого блока.

Параметр, передаваемый в него, является экземпляром объекта класса AccountInterface , в качестве которого в этом случае будет выступать текущий пользователь.

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

Вот и все. Теперь вы можете очистить кэш и перейти на страницу конфигурации Block layout . Здорово, что типы блоков располагаются справа ( где вы можете их отфильтровать ), и вы можете разместить один или несколько из этих типов блоков в различных местах на вашем сайте.

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

Мы сделаем так, чтобы вы могли отредактировать блок, указать в текстовом поле имя, после чего блок будет говорить « Привет » не миру, а этому имени.

Во-первых, мы должны определить форму, содержащую текстовое поле. Так в нашем классе DemoBlock мы можем добавить новый метод blockForm() :

Эта форма реализации API очень похожа на Drupal 7 . Однако есть и определенные новые элементы. Во-первых, мы извлекаем массив $form из родительского класса (так мы создаем свою форму на базе существующей, добавляя собственное поле).

Это элементы стандарта OOP . Затем мы извлекаем и сохраняем конфигурацию этого блока.

Класс BlockBase определяет метод getConfiguration() , который делает это для нас. И в случае, если он был уже установлен, мы устанавливаем для demo_block_settings значение #default_value .

Теперь пришло время предоставить обработчик этой формы, который будет обрабатывать значение нашего поля и хранить его в конфигурации блока:

Этот метод также находится внутри класса DemoBlock , и все, что он делает, это сохраняет значение поля demo_block_settings в качестве нового пункта конфигурации блока ( с ключом того же имени для соответствия ).

Наконец, мы должны настроить наш метод build() , так чтобы включить в него имя, которому блок должен говорить « Привет! «:

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

Для этого отредактируйте блок, чтобы назначить ему регион, и добавьте имя, которому блок должен сказать « Привет !»

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

Последнее, что мы сегодня рассмотрим, это, как создать простую форму. Из-за ограниченных возможностей этой статьи, я не смогу охватить управление ее конфигурацией ( хранимые значения конфигурации, представленные через формы ). Я только покажу, как определяются формы, и как веденные значения выводятся на экран.

В Drupal 8 функции определения формы сгруппированы внутри класса. Давайте определим простой класс DemoForm в файле src/Form/DemoForm.php :

Помимо элементов стандарта ООР , все остальное должно выглядеть для вас очень знакомым по Drupal 7 . Форма API осталась в значительной степени такой же (за исключением добавления некоторых новых элементов формы и этого класса инкапсуляции). Так что же происходит в приведенном выше коде?

Во-первых, мы объявляем область имен класса и используем класс ядра FormBase , чтобы мы могли расширить его нашим собственным классом DemoForm . После этого мы реализуем четыре метода, три из которых должны быть вам знакомы. Метод getFormId() является новым. Его использование обязательно. Он применяется, просто чтобы возвращать машинное имя формы.

Метод buildForm() также обязателен, он создает форму. Как? Так же, как и в Drupal 7 . Метод validateForm() является необязательным, и его предназначение должно быть вам понятно по Drupal 7 . И, наконец, метод submitForm() производит обработку предоставления данных. Все очень логично и организовано.

Так чего мы пытаемся достичь с помощью этой формы? У нас есть поле электронной почты ( новый элемент формы в Drupal 8 ), мы хотим, чтобы пользователи заполняли его. По умолчанию Drupal проверяет, является ли входное значение в действительности адресом электронной почты.

Но наша функция проверки определяет, принадлежит ли этот адрес электронной почты серверу с доменом .com , и если нет, то форма выдает ошибку. И в конце обработчик предоставленных данных просто выводит сообщение на странице.

И последнее, что нам нужно сделать, чтобы использовать эту форму, это предоставить для нее маршрут. Поэтому отредактируйте файл demo.routing.yml и добавьте в него следующее:

Этот код должен выглядеть для вас знакомым по предыдущей статье, в которой мы рассматривали маршрутизацию для простой страницы. Единственное отличие заключается в том, что вместо _content в блоке defaults , мы используем _form , чтобы указать, что целью является класс формы. И поэтому значением является имя класса, который мы только что создали.

Очистите кэш и перейдите по адресу demo/form , чтобы проверить форму.

Если вы знакомы с drupal_get_form() , и задаетесь вопросом, как вам загрузить форму способом, к которому вы привыкли по Drupal 7 , ответ заключается в глобальном классе Drupal .

Таким образом, чтобы получить форму, вы можете использовать его метод formBuilder() и сделать что-то вроде этого:

После этого вы можете вернуть $form , которая будет представлять собой отображаемый массив формы.

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

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

В следующей статье мы обзорно рассмотрим формы конфигурации. Мы будем сохранять значения, предоставленные пользователем, с помощью системы конфигурации Drupal 8 . Кроме того, мы рассмотрим служебный контейнер и введение зависимостей, и как они работают в Drupal 8 . Увидимся.

Данная публикация представляет собой перевод статьи « Build a Drupal 8 Module: Blocks and Forms » , подготовленной дружной командой проекта Интернет-технологии.ру

источник

Релиз Drupal 8 состоялся и теперь, имеет смысл более детально рассматривать данную систему. Все нововведения самого движка, мы естественно здесь не будем рассматривать, а перейдем сразу к практике. Одним из важных моментов для разработчиков, является написание кастомных модулей, ибо ни один более или менее сложный проект не обходится без написания своих модулей.

Сама структура написания модуля достаточно сильно изменилась по сравнению со своим предшественником (Drupal 7). Как всегда, процесс обучения будет проходить на практике, а именно создадим страницу, на которой будем выводить последние опубликованные статьи сайта и создадим пункт в меню на данную страницу.

Приступим. Начнем с файловой структуры. Теперь, все кастомные модули должны находиться по пути:

modules/custom/[module:name]

Мой модуль будет называться как – my_module. Создаем папку с именем my_module по пути указанному выше. Само название файлов, так же претерпело изменения.

Файл my_module.info.yml

Создадим файл в корне нашего модуля — my_module.info.yml . Как вы могли догадаться, данный файл пришел на смену – my_module.info из 7 ветки, но он так же несет в себе лишь описания для модуля. В моем случае — данный файл выглядит так:

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

Который, мы естественно активируем.

Хочу заметить, что теперь нельзя отключить модуль. Есть только два состояния, установить и удалить.

Естественно, после активации модуля мы не увидим ничего, кроме галочки напротив нашего модуля, которая обозначает, что он установлен. Теперь переходим к созданию страницы. В Drupal 8 мы теперь не можем определить hook_menu и создать новую страницу на сайте. На смену ему пришли роутинги (routing [маршруты]) в формате yml.

Файл my_module.routing.yml

Создадим файл my_module.routing.yml в корне нашего модуля. Данный файл служит для описания маршрута по базовому шаблону. В качестве параметров маршрута выступают такие значения как:

  • Заголовок страницы
  • URL страницы
  • Котроллер
  • Права доступа
  • И т.д.

В нашем случае, этих параметров будет достаточно, что бы описать страницу.

Каждое название роутинга должно быть уникальное (my_module.routing). Список параметров:

  • path – URL будущей страницы
  • defaults – содержит значения по умолчанию. Все значения начинаются с префиксов «_»
  • _title – Заголовок страницы
  • _controller – путь до контроллера, где далее указываются класс и метод контроллера (MyModuleController::test)
  • requirements – содержит значения зависимостей. Все значения так же начинаются с префиксов «_»
  • _permission – определяет доступ к странице, в нашем случае «Для всех пользователей, которые имеют право просматривать контент»

Хочу заметить, что в ранних версиях Drupal 8 использовался «_content», вместо «_controller». Убедитесь, что вы используете стабильную версию Drupal 8.

С маршрутами определились. Теперь займемся самим контроллером, который мы указали в параметре «_defaults» значение «_controller».

Все контроллеры модуля должны находиться по пути

modules/[module:name]/src/Controller

Создайте необходимые папки внутри вашего модуля.

Файл MyModuleController.php

Далее, создаем файл контроллера. Имя файла берется из значения «_controller» в файле my_module.routing.yml. В нашем случае файл будет называться, как MyModuleController.

Создадим файл MyModuleController.php в корне папки Controller. Теперь, как вы могли заметить, мы имеем дело с ООП. В данном файле нам необходимо определить наш класс MyModuleController и его метод test. Названия класса и метода, мы так же забираем из файла my_module.routing.yml. В нашем случае, данный файл выглядит так:

Как вы могли заметить, метод test отдает последние опубликованные статьи на сайте, с помощью функций node_load_multiple() и node_view_multiple() – данные функции никуда не исчезли и остались от Drupal 7.

Хочу заметить, что метод test должен всегда отдавать массив.

Так же мы использовали namespace, не стоит забывать про него, если не хотите получить проблемы в будущем. Если кто не знает, позволяет нам избавиться от 2х одинаково именованных классов.

С контроллером мы так же определились. Теперь чистим кеш сайта, переходим по пути

sitename/my_module

И наблюдаем тизеры последних опубликованных статей сайта.

Теперь, нам осталось добавить пункт меню в основное меню сайта. Для этого, в корне нашего модуля, создадим файл my_module.links.menu.yml, в котором мы и будем описывать пункт меню. В нашем случае, данный файл будет выглядеть так:

  • title – название пункта меню
  • description – Описание пункта меню
  • menu_name – имя меню, к которому хотим добавить пункт меню
  • route_name – имя роутинга, к которому будет привязан данный пункт меню
  • weight – вес пункта меню

Далее, чистим кеш сайта и наблюдаем наш новый пункт меню, который ведет на страницу с последними статьями опубликованными на сайте.

Как мы видим, с поставленной задачей мы справились. Система написания модулей достаточно усложнилась, но тем не менее стала более гибкой и наконец мы можем использовать всеми нами любимый подход ООП.

источник

Источники:
  • http://getdrupal8.ru/drupal/first-module
  • http://hex-code.ru/article/moduli-dla-drupal-8
  • http://drupal.ru/node/42762
  • http://www.cloudways.com/blog/best-drupal-8-modules/
  • http://xandeadx.ru/blog/drupal/817
  • http://www.dru.io/post/4586
  • http://site-machines.ru/blog/4-poleznyh-instrumenta-dlya-drupal-8-kotorye-vy-dolzhny-znat
  • http://www.internet-technologies.ru/articles/postroenie-modulya-drupal-8-bloki-i-moduli.html
  • http://drupalfly.ru/lesson/create-my-module-for-drupal-8