보기 및 기타 사용자 지정 모듈에 종속 된 사용자 지정 설치 프로필이 있습니다. 그러한 모듈 중 하나는 "컨텐츠"보기 (/ admin/content)를 대체하기위한 사용자 정의보기가있는 관리 컨텐츠 모듈입니다.Drupal 8, 설치 프로필의 hook_install 동안보기를 비활성화하는 방법?
일반적으로 콘텐츠보기를 프로그래밍 방식으로 사용하지 않도록 설정할 수 있습니다. 사이트가 이전에 설치 한 경우
$view = \Drupal::service('entity.manager')->getStorage('view')->load('content');
if (!is_null($view)) {
$view->setStatus(FALSE);
$view->save();
}
그러나이 작동 (이것은 내가 drush의 SCR로 부르는 drush 파일에 있습니다). 내 사용자 정의 프로파일의 설치 후크에서이를 실행하려고하면 뷰 객체가 null입니다.
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();
이 "작품"을했다. 문제는 예외가있는보기 목록 페이지를 중단한다는 것입니다. 그래서 전혀 좋은 해결책이 아닙니다.
누군가가 올바른 방향으로 나를 가리킬 수 있다면 고맙겠습니다.
고맙습니다.