Я хотел бы вызвать функцию menu_rebuild () , но я не уверен, куда именно вставить фрагмент кода.
Я не могу найти файл update.php в моем локальном экземпляре.
Причина, по которой я хотел бы попытаться это сделать, заключается в том, что я удалил все узлы, но они все еще отображаются в структуре меню.
/var/www/htdocs/drupal
модифицировать его - плохая идея. Не могли бы вы добавить более подробную информацию о том, почему вы хотите вызвать menu_rebuild?Ответы:
Создайте файл со следующим содержимым и просто поместите в корневой каталог Drupal. Давайте скажем
menu-rebuild.php
. Запустите его http://example.com/menu-rebuild.phpисточник
Drupal 7
Если вы используете drush, вы можете запустить:
Если не сработает, см .: Как сделать перестроение меню при наличии PHP Fatal error?
Drupal 6
Memcached
Если вы используете memcached, вы должны перезапустить его.
В Linux:
/etc/init.d/memcached restart
В OS X (если используется Homebrew):
brew services restart memcached
источник
Откройте схему базы данных, затем удалите все содержимое таблиц menu_links и menu_router с помощью следующих SQL-запросов:
Затем запустите http://example.com/update.php . Он вызовет menu_rebuild (), который заполнит эти таблицы «свежими» данными. Это сработало для меня после того, как «PHP Fatal Error: Out of memory» превратил некоторые из моих меню в беспорядок.
Но имейте в виду, что это уничтожит все ваши пользовательские меню, которые вам придется восстанавливать вручную. Чтобы избежать этого, вы можете немного поиграть с удалением некоторых выбранных записей из menu_router и menu_links, но для меня это не сработало.
И не забудьте сделать резервную копию базы данных и каталога сайта перед удалением содержимого из таблиц.
источник
Пара разных способов:
menu_rebuild()
с hook_update_Ndrush cc menu
источник
menu_cache_clear_all()
чтобы восстановить кэш менюПереход к
admin/config/development/performance
кнопке «Очистить все кэши» и нажатие на нее приведет к перестройке меню, а также очистке кэша шаблонов, блоков, страниц и т. Д.источник
Альтернативный способ - установить переменную:
variable_set('menu_rebuild_needed', TRUE);
Это вызовет
menu_rebuild();
источник
Чтобы исправить административное меню, используйте в SQL и обратите внимание, что, как указано выше, Valk удалит все настройки из меню управления администрацией. После того, как вы запустите его, очистите кэш и меню управления будет восстановлено с настройками по умолчанию.
Вот SQL-запрос:
источник