Jak całkowicie wyczyścić i odbudować menu drupal?

9

Jakiś czas temu znalazłem fajny wpis na blogu, w którym szczegółowo opisano, jak opróżniać tabele menu i odbudowywać system menu za pomocą drush wywołania php, konieczność, ponieważ witryna będzie bezużyteczna po opróżnieniu tych tabel mysql. W ten sposób możesz zresetować menu, jakby to była nowa witryna Drupal.

Czy ktoś może szczegółowo opisać tę technikę, czy masz link do tego bloga?

giorgio79
źródło
Czy mówisz o czyszczeniu pamięci podręcznej menu?
Anil Sagar
Nie, czyszczenie pamięci podręcznej menu jest niewystarczające do naprawienia zniekształconego menu. Czasami menu się psują. Zwłaszcza menu administracyjne.
giorgio79
Dlaczego -1? To ważne pytanie. +1 do przeciwdziałania.
aendrew
Jak powstały te menu? Pytam, ponieważ jeśli zostały utworzone przez moduł, to możesz dezaktywować moduł. To powinno usunąć obraźliwe elementy menu. Jeśli usuniesz z bazy danych i kod, aby je utworzyć, nadal mogą się pojawiać.
Rick,

Odpowiedzi:

6

Długo szukałem rozwiązania problemu polegającego na odbudowaniu menu Drupal, dopóki nie natknąłem się na problem Drupala, który mi pomógł. Moje rozwiązanie (w skrypcie php) jest następujące:

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

Można to również zrobić, wprowadzając zapytania przez phpmyadmin lub coś podobnego:

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

A następnie przebudowa struktury menu. Jeśli korzystasz z modułu devel, możesz to osiągnąć, odwiedzając stronę /devel/menu/reset. Jeśli nie masz modułu programistycznego, nie jestem pewien, jak odbudować strukturę menu.

Nie zapomnij wykonać kopii zapasowej bazy danych przed wypróbowaniem tego.

yan
źródło