Как отключить основной профиль установки?
Существует проблема Разрешить удаление профилей установки , которая не позволяет удалять профили установки. Есть ли какой-нибудь способ сделать это в D7? (При необходимости приложив немного больше усилий.)
При установке D7 обычно необходимо выбрать профиль установки; это может быть "стандартный" профиль, поставляемый с ядром Drupal. После установки профиль установки будет находиться в таблице "система" вечно, без очевидного способа отключения это.
Есть ли еще какой-нибудь хакерский способ отключить профиль установки.
Чтобы еще больше согласовать вопрос с принятым ответом, я расширяю вопрос следующим образом: если профиль установки нельзя или не следует отключать, то можно ли его заменить по крайней мере?
4 answers
В Drupal 7, профиль установки похож на модуль , но особый, с двумя основными исключениями:
- Любой модуль, требуемый профилем установки, может быть отключен - как вы обнаружили - за исключением модулей, требуемых ядром drupal (поле, фильтр, узел, система, пользователь). Смотрите функцию module_disable() для получения подробной информации, где зависимость от профиля установки явно отбрасывается.
- Профиль, используемый для установки сайта, также является обязательным модулем. Это жестко закодировано в drupal_required_modules().
Таким образом, профиль нельзя удалить, потому что он является обязательным модулем.
Вы можете установить статус 0 в системной таблице, но не должны, так как:
- Drupal ожидает, что профиль установки будет включен, и полагается на это для некоторых операций, если они критичны afaik.
- это модуль, он может реализовать любой хук (в своем файле .profile) или объявить любую функцию, требуемую подмодулем профиля. Отключение его трудный путь может привести к неправильной работе или фатальной ошибке php в этих сценариях.
Кстати, профиль установки, используемый для установки сайта, хранится в переменной install_profile
# drush vget install_profile
install_profile: 'minimal'
Вы можете, если по какой-либо причине сочтете это полезным, изменить профиль установки, установив для install_profile любое другое имя профиля и включив его в системной таблице.
Модуль переключения профилей для D7 может помочь: https://www.drupal.org/project/profile_switcher
Модуль Habitat - это ваш вариант, и я не использую его раньше. Указанные модули включаются и отключаются в зависимости от переменной, заданной в settings.php
Он предоставляет настройки для включения или отключения определенных модулей на каждом окружающая среда (среда обитания). Просто установите переменную, например, с помощью $conf['среда обитания'] = "местный"; в вашем settings.php файл (фактическая переменная для использования там настраивается для вашего текущего рабочего процесса). Отключение/включение модули выполняются на hook_init.
хук_инит.
Следующий запрос установит статус профиля установки равным 0 (отключен).
UPDATE `system` SET `status` = '0' WHERE `filename` = 'profiles/YOURPROFILE/YOURPROFILE.profile';
Или
UPDATE `system` SET `status` = '0' WHERE `type` = 'module' AND `name` = 'YOURPROFILE';
Или в сценарии обновления:
function YOUR_MODULE_update_7100(&$sandbox) {
db_update('system')
->fields(array('status' => 0))
->condition('type', 'module')
->condition('name', 'YOURPROFILE')
->execute();
}