Необходимые модули для друпал 8. Админка Drupal: Панель управления

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

Следующие модули используются повсеместно , надёжно работают на 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 в корне сайта. А затем активируйте по кнопке Расширить в меню Управление.

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!