Необходимые модули для друпал 8. Модули Drupal для работы с контентом. Модули Drupal для автоматизации

Ранее я уже вкратце говорил что такое модуль, для чего он нужен и где его следует хранить. Давайте установим свой первый модуль. Пусть это будет модуль Devel https://www.drupal.org/project/devel Качайте zip архив для 8 версии, распаковывайте и сохраняйте в sites/all/modules. Папок all и modules у вас нет-создавайте их. В свежих версиях друпала кидайте модули сразу в папку modules. Выглядеть у вас это должно вот так: Никаких упоминаний о версии модуля в именах папки быть не должно. После этого переходите в "Расширить" и в конце страницы увидите 4 модуля. Как я говорил ранее-модули могут быть зависимы друг от друга. Нам сейчас нужен только модуль "Devel generate". Этот модуль может генерировать материалы, термины таксономии, пользователей и меню. Использовать мы его будем при создании новостей на сайте. Отмечаем этот модуль и сохраняем настройки.
Модуль включится. Теперь переходите в "Конфигурация" и увидите там ряд новых страниц:
Если у вас слабый хостинг, и при включении модуля посыпались ошибки и вы не видите этих пунктов меню-попробуйте очистить кэш сайта. Для этого на этой же странице перейдите в "Производительность" и нажмите там кнопку "Очистка кэша". Если всё норм - значит модуль корректно установился. Остальные модули устанавливаются точно так же. Так же есть серверная технология Drush. Которая позволяет устанавливать модули прямо из консоли SSH. Если вы ранее работали с Drush - то можете использовать вс те же команды, что и в предыдущих версиях. Например скачать и установить Devel:

29.12.2015

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

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

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

modules/custom/

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

Файл my_module.info.yml

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

    name: "My module"

    description: "Create page in drupal 8"

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

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

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

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

Файл my_module.routing.yml

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

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

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

    my_module.routing:

    path: "/my_module"

  1. Title: "My Module"

    Controller: "\Drupal\my_module\Controller\MyModuleController::test"

  2. Permission: "access content"

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

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

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

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

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

modules//src/Controller

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

Файл MyModuleController.php

Создадим файл 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 , в котором мы и будем описывать пункт меню. В нашем случае, данный файл будет выглядеть так.

Here’s a riddle for you - “What is easy to install, configure and handle? What can be flexible and reliable at the same time?” The right answer is... Drupal modules! Yes, you’ve guessed! Your Drupal system can gain many unique capabilities when you install new, user–contributed modules for Drupal 8 that will give your system more tools to work with.

February was incredibly rich in module replenishment and we decided to prepare a short overview of these updates and describe the state of Drupal 8 modules.

Outlining Drupal 8 Modules Release Available

  1. Let’s begin with the IMCE module. This is an image/file uploader and browser that supports personal directories. It performs basic operations allowing you to upload, delete, resize, and preview, sorts files by name, size and date, supports private file system and other related procedures.
  2. The next module we touch upon is the Rules . It contains flexible scheduling system that allow you to schedule any component or action, and gives you an option to create custom redirections, system messages, breadcrumbs etc.
  3. Views Slideshow module can create a slideshow of any content and not only images that can appear in a View. User can have a number of images or any other components presented in a slideshow. Applying this module you will have all your items organized!
  4. Colorbox is another useful module. Why is this one handy for drupalers? Images, iframed or inline content etc. can be displayed in an overlay above the current page. Colorbox enriches website performance by excellent integration with image field and image styles. It alsogives an option to choose between a default style and a number of other styles that are included.
  5. Flex Slider module enable its user to build responsive, resizable slideshows.
  6. One more cool framework designed to power cross browser or cross device websites using responsive design techniques is called AdaptiveTheme . It allows you to create layouts for tablets and smartphones without any coding.
  7. If you are a content manager, you really should install the Scheduler module, because it gives you the ability to schedule nodes to be published and unpublished at specified dates and times in the future. Drupal 8 makes your job easier!
  8. The Panels module allows a site administrator to create customized layouts for multiple uses. At its core it is a drag and drop content manager that lets you visually design a layout and place content within that layout.
  9. To help searchers to more intelligently crawl a website and keep their results up to date, integrate the XML sitemap module. The sitemap created by the module can be automatically submitted to search engines.
  10. SMTP Authentication Support module supports SMTP authentication and can connect to servers using SSL if supported by PHP. It allows Drupal bypass the PHP mail() function and send email directly to an SMTP server.
  11. You should also consider the Metatag module. This one makes it easier to configure meta tags for all website pages during short period of time. It provides proper meta tags management (you can add your own meta tags), and gives a standardized API for developers to manage and control the meta tags for the sites they build.
  12. The main change to Devel module in Drupal 8 is the introduction of the WebProfiler submodule. It accelerates development of your site or module by quickly generating nodes, comments, terms, users, and more.

Wrap-up

The number 12 is ubiquitous - it"s the number of months in a year, hours on a clock face and the number of contributed modules for Drupal 8 in February. Furthermore, Besides these new modules, many of the contributed modules in Drupal 7 are under active development and they will be ready for Drupal 8 soon. We will keep you informed about the ongoing improvements and revolutions in the Drupal world!

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

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

Со временем пост будет обновляться, буду добавлять новые модули.

Содержимое:

Модули Drupal для администрирования:

  • Administration menu - Удобное выпадающее меню вверху страницы. Быстрый доступ ко всем административным страницам, в любой момент. Минимум настроек.
  • Module Filter - Переопределяет страницу модулей в более удобную. Добавляет динамический фильтр по названию модуля. Когда модулей становится много - без него никак.
  • Localization update - Автоматический перевод модулей и ядра Drupal.

Модули Drupal для работы с контентом:

  • Add another - Кнопка добавления еще одного материала. Сохраняет материал и загружает страницу создания нового материала того же типа. Удобно если добавляешь несколько нод подряд.
  • Entityforms - Модуль для создания пользовательских форм. Пришел на замену устаревающему Webform .
  • Entityform Anonymous - Позволяет заполнять формы созданные модулем Entityforms не авторизировавшимся пользователям.
  • Field collection - Добавляет возможность создавать мультиполя для сущностей. Сами поля представлены в качестве отдельной сущности, в которую соответственно можно добавить любое количество полей всех типов, поддерживаемых сайтом. Возможно расширить дополнительными модулями: Field Collection Table - отображение коллекции полей таблицей, и Field collection views - для поддержки модулем Views.
  • Field Group - Добавляет возможность группировать поля всевозможными способами: отдельными блоками, HTML5-элементами, jQuery-аккордионом или вкладками (горизонтальные/вертикальные).
  • Views - Вывод любой информации из БД. Очень много настроек. Можно вывести все - пользователей, ноды, таксономию, любые сущности... Вывод таблиц, неформатированных данных, с помощью дополнительных модулей возможно расширение способов вывода. Например можно сделать страницу экспорта сущностей и их полей. Гипкая настройка отображений с возможностью дополнительной темизации. Очень мощный модуль! С 8-й версии Drupal будет включен в ядро.
  • Chaos tool suite (Ctools) - Набор инструментов для работы с данными. Требуется для множества модулей.
  • CKEditor - WYSIWYG (визуальный HTML) редактор с большим количеством настроек.
  • Colorbox Node - Отображение контента в popup-окне без регионов темы. Удобно для, например, отображения WEB-форм или пользовательского соглашения во всплывающем окне.
  • Database Optimization - Модуль добавляет возможность автоматической (по расписанию Cronetab) очистки кеша и оптимизацию базы данных (вручную).
  • Panels - Очень гибкая настройка вывода информации. Интегрирована с Views. Имеет собственные настройки контекста для отображения данных. Встроенный шаблонизатор (настройка макетов отображения). Возможность создавать и настраивать собственные макеты. Позволяет выводить представления, блоки, любые сущности и собственную информацию. Настройка селекторов отображаемой информации.
  • Display Suite - Позволяет переопределить шаблон вывода сущностей. Обладает множеством настроек для дополнительной темизации. Очень много полезных функций, например: имеет встроенный шаблонизатор (работает по аналогии с Panels , в том числе поддерживает макеты Panels ), позволяет настраивать отображение заголовка, дает возможность переопределить классы отдельно поля/лейбла и общий вид отображения поля, включать в шаблон ноды поле с представлением (Views) или блоком, и многое другое.

Модули Drupal для работы с мультимедиа:

  • Colorbox - Удобный "litebox" плагин, для просмотра изображений (и, в принципе, любого контента) во всплывающем (popup) окне.

Модули Drupal для автоматизации:

  • Rules - Пользовательский интерфейс, позволяющий создавать правила поведения сайта, при определенных событиях. Очень мощный модуль. Возможно самое разнообразное применение: от рассылки почты, до автоматического формирования цены в интернет-магазинах. Используя этот модуль можно добиться уникального функционала даже без знания языков программирования.
  • Conditional Rules - Модуль расширяет функционал модуля Rules . Позволяет использовать условия в действиях правила. Упрощает написание правил, добавляет возможность проверки непосредственно в правиле.
  • Token - Доступ к статическим данным, а также переменным сущностей, с помощью вставки специальных строк (Токенов ) в текст. Используется множеством модулей. Необходим для формирования логических ЧПУ и т.д.
  • Pathauto - Настройка шаблонов автоматической генерации путей страниц (ЧПУ). Работает с модулем Token .

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

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

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 в корне сайта. А затем активируйте по кнопке Расширить в меню Управление.