2017-10-04 10 views
0

Je veux modifier par programme un titre de page dans Drupal 8 afin qu'il soit codé en dur dans le fichier thème.Drupal 8 - Hook pour modifier le titre Page

Je tente d'utiliser une fonction de hook pour pré-traiter_page_title, mais il semble ne pas comprendre à quelle page changer le titre.

Voici ce que j'ai jusqu'à présent:

function test_preprocess_page_title(&$variables) { 
    if (arg(0) == 'node/12') { 
    $variables['title'] = 'New Title'; 
    } 
} 

Je figurés la seule façon de faire ce changement sur une page spécifique est de définir l'argument de nœud. Est-ce que quelqu'un a trouvé un moyen de remplacer le titre de la page sur Drupal?

Répondre

1

est ici la méthode pour prétraiter votre page:

function yourthemename_preprocess_page(&$variables) { 
    $node = \Drupal::routeMatch()->getParameter('node'); 
    if ($node) { 
    $variables['title'] = $node->getTitle(); 
    } 
} 

et dans votre modèle page.html.twig

{{title}} 
1

Dans votre fichier template.theme ajouter le préprocesseur et outrepasser la page-titre .html.twig dans votre dossier de modèle en imprimant la variable, comme ci-dessous:

function theme_preprocess_page_title(&$variables) { 
    $node = \Drupal::request()->attributes->get('node'); 
    $nid = $node->id(); 
    if($nid == '14') { 
    $variables['subtitle'] = 'Subheading'; 
    } 
} 

then {{subtitle}}