Drupal 10 – Как передать аргументы на страницу

Вопрос или проблема

В Drupal 7 я использовал панели и менеджер страниц для создания URL и передачи аргументов на пользовательские страницы. Маршрут может выглядеть как /custom_section/!1/!2.

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

Какой лучший способ создать пользовательские страницы в Drupal 10, которые передают аргументы в представления или блоки представлений?

Ответ или решение

Drupal 10: Как передавать аргументы на страницы

Введение

Создание настраиваемых страниц в Drupal 10 и передача аргументов для их обработки может показаться сложной задачей, особенно если вы переходите с предыдущих версий, таких как Drupal 7, где использовались панели и менеджер страниц. Однако, с введением новых возможностей и улучшений в Drupal 10, эта задача становится более управляемой. В этой статье мы рассмотрим, как создать настраиваемые страницы и передать аргументы в блоки представлений (views) в Drupal 10.

Шаг 1: Создание маршрутов с параметрами

В Drupal 10 маршруты определяются в файлах модулей или темах. Для начала вам необходимо создать свой собственный модуль (если у вас его еще нет).

  1. Создайте модуль: Создайте папку для вашего модуля, например, custom_page_module, и добавьте файл .info.yml.

    name: 'Custom Page Module'
    type: module
    description: 'A custom module for creating pages and passing arguments.'
    core_version_requirement: ^10
    package: Custom
    dependencies:
      - drupal:views
      - drupal:layout_builder
  2. Определите маршрут: Затем создайте файл custom_page_module.routing.yml для определения маршрута:

    custom_page_module.custom_page:
      path: '/custom_section/{arg1}/{arg2}'
      defaults:
        _controller: '\Drupal\custom_page_module\Controller\CustomPageController::content'
        _title: 'Custom Page'
      requirements:
        _permission: 'access content'

Шаг 2: Создание контроллера

Создайте контроллер для обработки вашего маршрута. Для этого создайте новую папку src/Controller в вашем модуле и добавьте файл CustomPageController.php.

namespace Drupal\custom_page_module\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Cache\CacheableMetadata;

class CustomPageController extends ControllerBase {
    public function content($arg1, $arg2) {
        // Здесь вы можете создать представление или обработать ваши аргументы.
        return [
            '#markup' => $this->t('Arguments received: @arg1 and @arg2', [
                '@arg1' => $arg1,
                '@arg2' => $arg2,
            ]),
            '#cache' => [
                'max-age' => 0,
            ],
        ];
    }
}

Шаг 3: Интеграция с представлениями

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

  1. Создайте или отредактируйте ваше представление: В интерфейсе представлений добавьте контекстуальный фильтр, который соответствует вашим аргументам.

  2. Настройте контекстуальные фильтры: Например, если вы хотите, чтобы ваш arg1 использовался как фильтр на поле nid, добавьте контекстуальный фильтр на это поле и настройте его для использования аргумента. Выберите "Provide default value" и в качестве типа выберите "Raw value from URL". Укажите, что ваш аргумент будет {arg1}.

Шаг 4: Использование Layout Builder

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

  1. Создайте страницу с помощью Layout Builder: Перейдите в конфигурацию вашего типа контента или создайте новый маршрут в Layout Builder.

  2. Добавьте блоки представлений: Вы можете добавить блоки представлений в Layout Builder, и они будут автоматически получать значения аргументов, переданных через URL.

Заключение

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

SEO-Оптимизация

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

Это идеальное решение для создания пользовательского контента и гибкого управления отображением данных. Познакомьтесь с этим новым подходом в Drupal 10 и сделайте свой сайт более интерактивным и адаптивным к требованиям пользователей.

Оцените материал
Добавить комментарий

Капча загружается...