kgaut.net // Développeur web PHP / Drupal freelance
contactez-moi

Drupal 8 - Modifier les onglets (local tasks)

Cet article a été écrit il y a plus de quatre ans, son contenu n'est peut-être plus d'actualité.

Voici comment modifier un onglet Local Task dans le langage drupal, en utilisant le hook HOOK_local_tasks_alter:

function MONMODULE_local_tasks_alter(&$local_tasks) {
  $local_tasks['entity.user.edit_form']['title'] = 'Modifier mes informations';
}

La clé est définie dans la déclaration de l'élément :

Image
Drupal local task

 

Ici uniquement le titre est changé,il est possible de modifier les autres propriété, comme l'ordre (weight), la destination de l'élément...

Commentaires (4)

Comments

Guillaume (non vérifié)

bonjour,

Merci pour ce post, mais j'ai beau tester tous les codes possibles et imaginables trouvés sur le net mais rien n'y fait, mes onglets ne changent pas de titre… d'autant que c'est exactement cet onglet dan l'exmeple que je souhaite modifier… j'utilise juste MonTheme_preprocess à la place de MONMODULE… Une idée à me soumettre ?

Guillaume (non vérifié)

Pour ma part j'ai créé un module qui active la traduction :

dans le dossier modules, création du dossier "local_tasks_rename" puis ajout de 2 ces 2 fichiers :

local_tasks_rename.info.yml :

name: Local Tasks Rename
description: Rename local tasks titles.
package: Custom

type: module
core: 8.x
core_version_requirement: ^8 || ^9

local_tasks_rename.module :

<?php


function local_tasks_rename_local_tasks_alter(&$local_tasks) {
  $local_tasks['entity.user.canonical']['title'] = t('My account');

  $local_tasks['entity.user.edit_form']['title'] = t('Edit my account');
  $local_tasks['entity.user.edit_form']['weight'] = -2;
}

Les titres sont désormais accessible dans la traduction de l'interface

 

Guillaume (non vérifié)
$local_tasks['entity.user.edit_form']['weight'] = -2;

cette ligne permet de changer la position de l'onglet dans le menu