Comment effacer et reconstruire complètement les menus Drupal?

9

Il y a quelque temps, j'ai trouvé un article de blog sympa qui détaillait comment vider les tables de menus et reconstruire le système de menus avec un appel phush drush, une nécessité car le site sera inutilisable après avoir vidé ces tables mysql. De cette façon, vous pouvez réinitialiser vos menus comme s'il s'agissait d'un nouveau site Drupal.

Quelqu'un peut-il détailler cette technique ou avez-vous le lien pour ce blog?

giorgio79
la source
Parlez-vous de vider le cache du menu?
Anil Sagar
Non, le nettoyage du cache des menus est insuffisant pour corriger un menu tronqué. Parfois, les menus se gâchent. Surtout le menu d'administration.
giorgio79
Pourquoi le -1? C'est une question valable. + 1'ing pour contrer.
aendrew
Comment ces menus ont-ils été créés? Je demande parce que s'ils ont été créés par un module, alors vous pouvez désactiver le module. Cela devrait supprimer les éléments de menu incriminés. Si vous supprimez de la base de données et que le code pour les créer existe toujours, ils pourraient réapparaître.
Rick

Réponses:

6

Je cherchais depuis un certain temps une solution au problème pour reconstruire les menus Drupal jusqu'à ce que je tombe sur un problème Drupal qui m'a aidé. Ma solution (dans un script php) est la suivante:

db_query("DELETE FROM {menu_links} WHERE module = 'system'");
db_query("DELETE FROM {menu_links} WHERE menu_name = 'management'");
menu_rebuild();

Cela pourrait également être fait en entrant les requêtes via phpmyadmin ou quelque chose de similaire:

DELETE FROM {menu_links} WHERE module = 'system'
DELETE FROM {menu_links} WHERE menu_name = 'management'

Et puis reconstruire la structure du menu. Si vous utilisez le module devel, vous pouvez y parvenir en visitant la page /devel/menu/reset. Si vous n'avez pas le module devel, je ne sais pas comment reconstruire la structure du menu.

N'oubliez pas de sauvegarder votre base de données avant d'essayer.

yan
la source