Como limpar e reconstruir completamente os menus do drupal?

9

Há um tempo atrás, encontrei uma postagem legal no blog que detalhava como esvaziar as tabelas de menus e reconstruir o sistema de menus com uma chamada php drush, uma necessidade, já que o site ficará inutilizável após esvaziar essas tabelas mysql. Dessa forma, você pode redefinir seus menus como se fosse um novo site do Drupal.

Alguém pode detalhar essa técnica ou você tem o link para esse blog?

giorgio79
fonte
Você está falando sobre limpar o cache do menu?
Anil Sagar
Não, o cache do menu de limpeza é insuficiente para corrigir um menu ilegível. Às vezes, os menus ficam bagunçados. Especialmente o menu de administração.
Giorgio79 # 23/12
Por que o -1? É uma pergunta válida. Marcando com +1 para neutralizar.
aendrew
Como esses menus foram criados? Eu pergunto porque se eles foram criados por um módulo, você pode desativar o módulo. Isso deve remover itens de menu ofensivos. Se você remover do banco de dados e o código para criá-los ainda existir, eles poderão aparecer novamente.
21712 Rick

Respostas:

6

Estou procurando há algum tempo uma solução para o problema de reconstrução dos menus do Drupal até encontrar um problema do Drupal que me ajudou. Minha solução (em um script php) é a seguinte:

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

Isso também pode ser feito inserindo as consultas através do phpmyadmin ou algo parecido:

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

E, em seguida, reconstruindo a estrutura do menu. Se você usar o módulo devel, poderá conseguir isso visitando a página /devel/menu/reset. Se você não possui o módulo devel, não sei como reconstruir a estrutura do menu.

Não se esqueça de fazer backup do seu banco de dados antes de tentar isso.

yan
fonte