Если роут свой, то просто добавляем для него опцию _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+
Похожие записи
Добавить комментарий