如何完全擦除和重建Drupal菜单?


9

不久前,我发现了一个很酷的博客文章,其中详细介绍了如何清空菜单表,并使用drush php调用重建菜单系统,这是必要的,因为清空这些mysql表后该站点将无法使用。这样,您可以像重新设置Drupal网站一样重置菜单。

谁能详细介绍这种技术,或者您有该博客的链接?


您是在谈论清除菜单缓存吗?
阿尼尔·萨加尔

不,清理菜单缓存不足以修复乱码的菜单。有时菜单变得一团糟。特别是管理菜单。
giorgio79

为什么是-1?这是一个有效的问题。+1以抵消。
2012年

这些菜单是如何创建的?我问,因为如果它们是由模块创建的,那么您可以停用该模块。那应该删除有问题的菜单项。如果从数据库中删除并且创建代码的代码仍然存在,则它们可能会再次弹出。
瑞克

Answers:



6

我一直在寻找解决问题的方法来重建Drupal菜单,直到偶然发现了对我有帮助的Drupal问题。我的解决方案(在php脚本中)如下:

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

也可以通过通过phpmyadmin或类似方式输入查询来完成:

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

然后重建菜单结构。如果您使用devel模块,则可以通过访问page实现/devel/menu/reset。如果您没有开发模块,则不确定如何重建菜单结构。

尝试此操作之前,请不要忘记备份数据库


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.