Как удалить модуль, который переопределяет основной пользовательский модуль? - PullRequest
1 голос
/ 29 августа 2010

Один из моих разработчиков хотел переопределить некоторые функции основного пользовательского модуля.Он сделал копию основного пользовательского модуля и поместил ее в папку sites / all / modules.Что-то в функционале облажалось, и теперь я не уверен, как его удалить.Я попытался удалить модуль из папки sites / all / modules, и теперь он дает сбой сайту.Затем я редактирую системную таблицу, чтобы убедиться, что все записи указывают на исходный пользовательский модуль, но теперь у меня есть проблемы с пользовательским модулем и странные аномалии.Это плохая практика, чтобы переопределить основные модули?Есть ли другие таблицы, которые нужно почистить?Какой верный способ удаления модуля, который нельзя удалить через панель управления администратора, так как в этом случае переопределенный пользовательский модуль никогда не появляется в списке модулей.

1 Ответ

3 голосов
/ 29 августа 2010

Это плохая практика для переопределения основных модулей?

Да.Не переопределяйте основные модули: случаются плохие вещи (например, то, что у вас сейчас).

Есть ли другие таблицы, которые необходимо очистить?

Это невозможнорасскажите, не зная кода в вашей версии модуля user , но даже не зная его, ущерб уже нанесен.

Какой верный способ удаления модуля, которыйне может быть удален через панель управления администратора, так как в этом случае переопределенный пользовательский модуль никогда не появляется в списке модулей.

Обычно, если по какой-либо причине вы не можете получить доступ к странице администрирования модуля, вы быДля удаления модуля выполните следующее:

module_load_install($module);
$versions = drupal_get_schema_versions($module);
drupal_set_installed_schema_version($module, SCHEMA_UNINSTALLED);
module_invoke($module, 'uninstall');

Затем удалите файлы переопределяющего модуля и переустановите исходный модуль.Вы должны удалить файлы после запуска ловушек удаления, поскольку файлы содержат код, который необходимо выполнить во время удаления.

Однако, поскольку вы переопределили пользователя Модуль , вы находитесь в действительно плохом месте, так как вы не можете удалить модуль user : необходимые модули ядра не должны быть подделаны.

Итак,Безошибочный способ избавиться от беспорядка, в котором вы сейчас находитесь, - это удалить переопределяющий модуль и восстановить его из предыдущей резервной копии базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...