Весь сайт сломан из-за одного пользовательского модуля! Страниц больше не найдено. Как это исправить?


Я написал пользовательский модуль и реализовал его. Теперь я не могу получить доступ ни к каким страницам на своем сайте drupal. Все они говорят что-то вроде: Страница не найдена. Запрошенная страница "/" не найдена.

Я вручную удалил модуль из таблицы, выполнив:

UPDATE system SET status=0 WHERE name='MyModule';

Даже при этом никакие страницы больше не работают. Я думал, что это проблема с htaccess или проблема с чистым URL-адресом, но даже выполнение /?q=пользователь не выводит меня на экран входа в систему. Любые идеи о том, как реализовать мой один пользовательский модуль сломал весь веб-сайт? Мой модуль был в основном таким:

function MyModule_menu() {
  $items['MyModule_views'] = array(
    'title' => 'MyModule test',
    'page callback' => 'MyModule_list',
    'access callback' => TRUE,
    'type' => 'MENU_CALLBACK',
  );
  return $items;
}  

function MyModule_list() {
  return t('hello');
}
 2
7
Author: kiamlaluno, 2012-02-10

1 answers

Я не уверен, почему ваш пункт меню выше занял все пути, он должен был отвечать только на пути, которые начинаются с '/mymodule_view'. Может быть, кто-то еще сможет понять, в чем проблема. Тем не менее, я считаю, что это все еще вызывает проблемы, потому что реестр меню не был восстановлен. Вам нужно будет очистить это, чтобы фактически удалить определение пункта меню. Обычно это происходит, когда вы отключаете модуль из "администратор/сборка/модули", но поскольку вы сделали это вручную, изменив база данных, этого процесса не произошло. Если вы используете Drush (что я настоятельно рекомендую), вы можете перестроить реестр меню с помощью

drush cc menu

Если у вас нет Drush, то вы можете написать простой скрипт для перестройки меню, даже если вы действительно не можете получить доступ к своему сайту. Сценарий объясняется в ответе на StackOverflow: https://stackoverflow.com/a/6912110/318158

 5
Author: Chaulky, 2017-05-23 12:41:26