drupal_get_title()
został usunięty z Drupal 8. Jak mogę uzyskać tytuł strony w Drupal 8?
13
Jeśli sprawdzisz rekordy zmian, powinieneś znaleźć: drupal_set_title () i drupal_get_title () zostały usunięte .
Musisz przeczytać powiadomienie o zmianie wszystkich informacji, ale oto punkt wyjścia:
drupal_get_title ()
Ponieważ tytuły na trasach można teraz ustawiać na różne sposoby (patrz wyżej), drupal_get_title () został usunięty. Na jego miejscu powinieneś wywołać usługę 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); } ?>
Zgodnie z
batch_test.module
(D8.4) następujące elementy powinny działać dobrze:Aby uzyskać więcej informacji, zobacz
public function TitleResolver::getTitle
.źródło
Uwaga
Akceptowana odpowiedź na to pytanie jest nieaktualna: patrz Parametry żądania, nazwa trasy i obiekt trasy powinny być dostępne poprzez RouteMatch .
Należy użyć usługi current_route_match , aby pobrać bieżącą trasę, a następnie odczytać lub zmodyfikować jej parametry. To otacza każdą magię Symfony itp.
W kodzie proceduralnym używałbyś kodu podobnego do następującego.
W kodzie obiektowym należy użyć wstrzykiwania zależności i wstrzyknąć usługę.
źródło
$route->getDefault('_title');
ale tylko$route->getDefault('_title_callback');
?Drupal 8
źródło
->get('_MAGIC')
metoda jest niestety przestarzała i w większości usunięta z D8: drupal.org/node/2124749