Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Создание страницы в модуле Drupal программно

25/04/2020, by maria

Существует два шага в создании простой страницы в Drupal:

Объявите путь и его параметры.

Этот шаг включает заголовок страницы, требования к доступу к странице и др.

В Drupal 7 вы должны были реализовать hook_menu ().

В Drupal 8 создайте файл <module_name>.routing.yml в каталоге модулей верхнего уровня.

Напишите код для возврата тела страницы.

В Drupal 7 вы должны были написать функцию обратного вызова страницы, указанную в hook_menu ().

В Drupal 8 обратный вызов страницы должен быть либо методом класса, либо зарегистрированным сервисом. Он может отличаться в зависимости от различных условий (HTTP или HTTPS, заголовки содержимого и т. Д.), Но это выходит за рамки данного введения.

Прохождение

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

Маршрутизация YAML-файла для примера модуля

Информация о маршрутизации хранится в example/example.routing.yml:

example.my_page:
  path: '/mypage/page'
  defaults:
    _controller: '\Drupal\example\Controller\ExampleController::myPage'
    _title: 'My first page in D8'
  requirements:
    _permission: 'access content'

example.my_page

  • Это машинное имя роута. По соглашению машинные имена роутов должны быть module_name.sub_name. Когда другие части кода должны ссылаться на роут, они будут использовать машинное имя.

 

path

  • Это дает путь к странице на вашем сайте. Обратите внимание на начальный слеш (/).

 

defaults

  • Это описывает обратные вызовы страницы и заголовка. @todo: Где эти значения по умолчанию могут быть отменены?

 

requirements

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

 

Реализация страницы для примера модуля

Класс Controller ExampleController должен быть определен в example/src/Controller/ExampleController.php:

<?php
namespace Drupal\example\Controller;

use Drupal\Core\Controller\ControllerBase;

/**
 * Provides route responses for the Example module.
 */
class ExampleController extends ControllerBase {

  /**
   * Returns a simple page.
   *
   * @return array
   *   A simple renderable array.
   */
  public function myPage() {
    $element = array(
      '#markup' => 'Hello, world',
    );
    return $element;
  }

}

пространство имен (namespace)

  • Здесь объявляется префикс, необходимый для полного определения имени класса, который мы определяем. Сравните блок документа и имя класса. Автозагрузчик класса знает, что для поиска класса \Drupal\example\Controller\ExampleController он должен найти файл modules/example/src/Controller/ExampleController.php.

 

use

  • Это позволяет нам использовать ControllerBase вместо полностью определенного имени. Это делает нашу строку class намного проще для чтения.

 

myPage()

  • Метод, указанный в файле YAML, должен быть открытым. Он должен возвращать визуализируемый массив.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.