У меня есть настраиваемый профиль установки, который зависит от представлений и других настраиваемых модулей. Один из таких модулей - это модуль админ-контента, который имеет пользовательский вид, предназначенный для замены представления «контент» (/ admin/content).Drupal 8, как отключить просмотр во время установки hook_install в установочном профиле?
В общем, я могу автоматически отключить просмотр содержимого. (Это на Drush файл, который я называю с Drush ЮКЖД)
$view = \Drupal::service('entity.manager')->getStorage('view')->load('content');
if (!is_null($view)) {
$view->setStatus(FALSE);
$view->save();
}
Однако, это работает, если сайт был установлен ранее. Если я попытаюсь запустить это в установочном крюке моего настраиваемого профиля, объект представления будет равен нулю.
function my_profile_install() {
// Previous code here
}
Вид имеет значение null, и я не могу его отключить. Я все еще не слишком разбираюсь в внутренней работе Drupal 8, я собираюсь пробить код и попытаться определить, что может быть причиной, но пока не повезло.
Я убедился, что перед запросом на просмотр загружен как модуль узла (именно здесь определяется стандартный контентный вид), так и модуль представлений. Он по-прежнему пуст.
Drupal::moduleHandler()->load('node');
Drupal::moduleHandler()->load('views');
Я также сделал это
\Drupal::configFactory()
->getEditable('views.view.content')
->set('status', TRUE)
->save();
Это "работает". Проблема в том, что это исключает страницу списка просмотров. Так что это нехорошее решение.
Буду признателен, если кто-то может указать мне в правильном направлении.
Спасибо в продвижении.