Drupal $ tabs n'incluant pas l'édition / les révisions / le workflow
Question
J'ai hérité d'un site Drupal5 et j'ai été chargé de procéder à certaines modifications, mais je ne sais pas par où commencer.
Sur de nombreuses pages, les administrateurs disposent d'un menu qui vous permet d'effectuer certaines actions:
Vue d'ensemble Spécialistes Ressources et outils Sur le terrain Nouvelles Événements Cours Multimédia modifier Piste Flux de travail Paramètres
Cependant, sur certaines sections, il existe différentes options: Aperçu Disposition Réglages Paramètres de mise en page Avancée Le contexte Contenu Exporter
Je dois ajouter (Modifier, Suivre, Flux de travail, Paramètres) au deuxième menu, mais je ne sais pas comment faire.
Je vois dans page.tpl.php qu'il y a une région pour $ tabs, mais je ne peux pas comprendre comment cela est construit.
D'après ce que je peux dire, le thème est basé sur le thème Zen STARTERKIT.
La solution
La variable $ tabs est normalement complétée par des entrées de menu de type MENU_LOCAL_TASK
.
Consultez le système de menus , et plus particulièrement à hook_menu ()
pour avoir une idée de base. Cela se résume à un mappage de fonctions de rappel sur des chemins. Si une URL correspond à un chemin défini dans hook_menu
(peut contenir des espaces réservés!), La fonction de rappel enregistrée pour ce chemin sera appelée pour générer le contenu de cette URL.
Le "type" de l'élément hook_menu
définit la manière dont la combinaison chemin / rappel est représentée dans le système. Il peut s'agir d'un MENU_CALLBACK
, ce qui signifie simplement la combinaison chemin / rappel enregistrée, mais aucune entrée de menu "réelle" correspondante. Un MENU_NORMAL_ITEM
serait identique, mais avec une entrée de menu "standard", par exemple. dans le menu de navigation. Un MENU_LOCAL_TASK
est identique, mais l'entrée de menu correspondante apparaît généralement dans les onglets $ et non dans un menu.
Tous les MENU_LOCAL_TASK
qui partagent le même chemin de base se retrouveront sous la forme d'un groupe d'onglets. Donc, si vous aviez des chemins comme:
- some / path / tab1
- some / path / tab2
- some / path / tab3
et tous ceux-ci étant définis comme MENU_LOCAL_TASK
, vous verriez un onglet pour chacun d'eux sur chaque page qu'ils représentent.
Donc, pour trouver les endroits que vous devez modifier / améliorer, vous devez rechercher dans votre base de code toutes les implémentations hook_menu ()
qui définissent les chemins où ces onglets apparaissent. Notez qu'ils ne doivent pas tous être définis au même endroit, mais peuvent provenir de différentes implémentations hook_menu
dans des modules différents. Ensuite, vous devez ajouter des définitions de menu pour les onglets que vous souhaitez ajouter, en mappant les chemins pertinents vers les fonctions de rappel. Les fonctions de rappel renverraient le contenu des pages que l’utilisateur devrait voir en cliquant sur les onglets.
Autres conseils
Si vous affichez node, il y a généralement déjà le lien Modifier dans les onglets $, car il n'est pas présent et pourrait être autre chose (une sorte de module de disposition). Vous devez ajouter les options Éditer / Suivre pour éditer / suivre quel type de contenu? Noeud spécifique ou quoi?