drupal_get_title()
a été supprimé de Drupal 8. Comment puis-je obtenir le titre de la page dans Drupal 8?
drupal_get_title()
a été supprimé de Drupal 8. Comment puis-je obtenir le titre de la page dans Drupal 8?
Réponses:
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:
$request = \Drupal::request();
$route_match = \Drupal::routeMatch();
$title = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject());
Pour plus d'informations, voir public function TitleResolver::getTitle
.
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.
$route = \Drupal::routeMatch()->getCurrentRouteMatch()->getRouteObject();
$title = $route->getDefault('_title');
Dans le code orienté objet, vous devez utiliser l' injection de dépendances et injecter le service.
$route->getDefault('_title');
mais seulement un $route->getDefault('_title_callback');
?
Drupal 8
$request = \Drupal::request();
// Assuming the Request is $request.
if ($request->attributes->has('_title')) {
return $request->attributes->get('_title');
}
->get('_MAGIC')
méthode soit malheureusement obsolète et principalement supprimée de D8: drupal.org/node/2124749