drupal_get_title()
a été supprimé de Drupal 8. Comment puis-je obtenir le titre de la page dans Drupal 8?
13
Si vous vérifiez les enregistrements de modification, vous devriez trouver les éléments suivants: drupal_set_title () et drupal_get_title () ont été supprimés .
Vous devrez lire l'avis de modification pour toutes les informations, mais voici un point de départ:
drupal_get_title ()
Comme les titres sur les routes peuvent désormais être définis de différentes manières (voir ci-dessus), drupal_get_title () a été supprimé. À sa place, vous devez appeler le service 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); } ?>
Selon
batch_test.module
(D8.4), les éléments suivants devraient fonctionner correctement:Pour plus d'informations, voir
public function TitleResolver::getTitle
.la source
Remarque
La réponse acceptée pour cette question est obsolète: voir Paramètres de la demande, nom de l'itinéraire et objet de l'itinéraire doivent être accessibles via RouteMatch .
Vous devez utiliser le service current_route_match pour récupérer l'itinéraire actuel, puis lire ou modifier ses paramètres. Cela enveloppe toute magie Symfony etc.
Dans le code procédural, vous utiliseriez un code similaire au suivant.
Dans le code orienté objet, vous devez utiliser l' injection de dépendances et injecter le service.
la source
$route->getDefault('_title');
mais seulement un$route->getDefault('_title_callback');
?Drupal 8
la source
->get('_MAGIC')
méthode soit malheureusement obsolète et principalement supprimée de D8: drupal.org/node/2124749