Drupal → Открывать определённый адрес в административной теме

05.05.2019

Если роут свой, то просто добавляем для него опцию _admin_route: TRUE:

# modulename.routing.yml

modulename.example_route:
  ...
  options:
    _admin_route: TRUE

Если роут объявлен в другом модуле, то альтерим его в EventSubscriber-е:

// src/EventSubscriber/ModulenameRouteSubscriber.php

namespace Drupal\modulename\EventSubscriber;

use Drupal\Core\Routing\RouteSubscriberBase;
use Symfony\Component\Routing\RouteCollection;

class ModulenameRouteSubscriber extends RouteSubscriberBase {

  protected function alterRoutes(RouteCollection $collection) {
    // Set admin theme for comment edit form
    if ($route = $collection->get('entity.comment.edit_form')) {
      $route->setOption('_admin_route', TRUE);
    }
  }

}
# modulename.services.yml

services:
  modulename.route_subscriber:
    class: Drupal\modulename\EventSubscriber\ModulenameRouteSubscriber
    tags:
      - { name: event_subscriber }

Подробнее про альтеринг роутов.
Альтернативный способ с помощью theme negotiator, но с чуть большим оверхедом.

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

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