drupal_get_title()
был удален из Drupal 8. Как я могу получить заголовок страницы в Drupal 8?
13
Если вы проверите записи изменений, вы должны найти следующее: drupal_set_title () и drupal_get_title () были удалены .
Вам придется прочитать уведомление об изменении всей информации, но вот отправная точка:
drupal_get_title ()
Поскольку заголовки на маршрутах теперь могут быть установлены различными способами (см. Выше), drupal_get_title () был удален. На его месте стоит вызвать сервис title_resolver.
Drupal 7
<?php $title = drupal_get_title(); ?>
Drupal 8
<?php $request = \Drupal::request(); if ($route = $request->attributes->get(\Symfony\Cmf\Component\Routing\RouteObjectInterface::ROUTE_OBJECT)) { $title = \Drupal::service('title_resolver')->getTitle($request, $route); } ?>
Согласно
batch_test.module
(D8.4) следующее должно работать нормально:Для получения дополнительной информации см
public function TitleResolver::getTitle
.источник
Заметка
Принятый ответ на этот вопрос устарел: см. Параметры запроса, имя маршрута и объект маршрута должны быть доступны через RouteMatch .
Вы должны использовать службу current_route_match, чтобы получить текущий маршрут, а затем прочитать или изменить его параметры. Это оборачивает любую магию Symfony и т. Д.
В процедурном коде вы должны использовать код, подобный следующему.
В объектно-ориентированном коде вы должны использовать внедрение зависимостей и внедрять сервис.
источник
$route->getDefault('_title');
а есть только$route->getDefault('_title_callback');
?Drupal 8
источник
->get('_MAGIC')
метод, к сожалению, устарел и в основном удален из D8: drupal.org/node/2124749