답변:
도구
에서 Ctools , "페이지 관리"라는 서브 모듈이있다. 이 모듈의 핵심은 hook_menu에 대한 그래픽 사용자 인터페이스 입니다. 시스템에서 새 경로를 만들거나 Core에서 제공 한 경로 중 일부를 인수 할 수 있습니다.
페이지 관리자
페이지 관리자가 경로를 관리하면 몇 가지 다른 작업을 수행 할 수 있습니다. 즉시 사용할 수있는 리디렉션을 제공 할 수 있습니다. 이를위한 일반적인 사용 사례는 "팩트 박스"또는 "이미지 노드"와 같이 자체적으로 볼 수 없기 때문에 적절한 테마가없는 노드에 대한 액세스를 거부하는 것입니다. 다른 용어는 용어보기에서 동일한 용어의 Solr 검색으로 리디렉션하는 것입니다.
페이지 관리자의 주요 장점 중 하나는, 그렇지 않은 모듈과 혼동되는 "상황"을 처리하는 방법 소개이다 컨텍스트 . 여기서 약간의 요점은 "약간 더 똑똑한 블록"인 Panes 가 시스템에 대한 종속성 을 선언 할 수 있으며 종속성 인젝션 스타일로 전달 된 실제 인수 (컨텍스트)가 있다는 것입니다 .
DI에 익숙하지만 Drupal에 익숙한 사용자의 경우, 예를 들어 menu_get_object를 다시 사용하여 "메뉴 경로에서 참조 된 유일한 노드"를 얻을 수 있습니다. 경로에 둘 이상의 노드가 있으면 어떻게됩니까? 또는 엔티티 참조의 노드를 기반으로 블록을 만들고 싶다면? 이것은 페이지 관리자에게 문제가되지 않으므로 모든 블록 (패널)을 훨씬 유연하고 재사용 할 수 있습니다.
패널
그러나 가장 일반적인 사용 사례는 레이아웃 과 경로 렌더링 을 Panels 로 넘기는 것 입니다. 패널은 코드 또는 브라우저에서 직접 레이아웃을 정의하는 도구를 제공하며, 브라우저에 직접 컨텐츠를 배치 할 수 있습니다.
결론
이 두 모듈은 매우 강력하고 상대적으로 문서화가 잘되어 있지 않아 많은 사람들이 좌절하고 있습니다. 레이아웃을 비롯하여 "페이지"를 처리하는 접근 방식이 EclipseGC 의 SCOTCH 이니셔티브 에 의해 Drupal 8 코어에 들어가는 것처럼 보이기 때문에 더 큰 사이트를 구축하는 경우 사용 방법을 이해하는 것이 좋습니다. . 관련 샌드 박스 프로젝트
추가 자료
이 도구로 할 수있는 다른 흥미로운 일의 예 :
$page_data = page_manager_get_current_page()
돈이있는 곳, 특히$page_data['handler']
Drupal 7에서 페이지 관리자는 패널 모듈 의 기초였습니다 .
" 페이지 관리자 학습 "은 흥미롭고 놀라운 비디오 세트입니다. 여기에는 패널 모듈 과 관련된 다양한 주제가 포함되어 있습니다 . 다음은이 주제에 대한 전체 비디오 세트를 요약 한 것입니다 (위의 링크에서 인용).
- 페이지 관리자를 사용하면 상황에 맞는 정보를 유연하고 일관된 방식으로 수집하고 관리 할 수 있습니다. Drupal 웹 사이트에 인프라를 구축하는 데 중요한 부분이므로이 모듈을 사용하는 방법을 알아야합니다.
- 스크린 캐스트 시리즈는 숙련 된 Drupal 개발자를 대상으로합니다.
- 에피소드 1, 2 및 3은 사용자 정의 페이지, 변형, 선택 규칙 및 컨텍스트 개체와 같은 가장 기본적인 개념을 소개합니다.
- 에피소드 4, 5, 6 및 7은 뷰 통합에 중점을두고 효율적인 캐싱에 대한 단어를 사용하여 패널에 대해 설명합니다.
- 액세스 제어, 메뉴 항목 및 잘 알려지지 않았지만 매우 유용한 상황 별 관리 모듈에 대한 에피소드 8 및 9
- 에피소드 10 및 11에서는 페이지 관리자를 컨텍스트로보기를 포함하여 컨텍스트 관리자를 사용하는 방법에 대해 설명합니다. 이것은 페이지 관리자의 진정한 힘이있는 곳입니다.
- 에피소드 12 및 13은 패널을 사용하여 노드 편집 양식을 쉽게 재배 열하는 방법, 가져 오기 / 내보내기 설정 및 페이지 관리자와 함께 사용할 수있는 일부 추가 모듈과 같은 다양한 비트와 조각을 수집합니다.
패널 모듈에 대한 자세한 설명은 패널 설명 : Drupal 개발자를 위한 개요를 참조하십시오 .
Drupal 8에서 페이지 관리자 는 분리 된 모듈이되었지만 이전에는 Drupal 7 까지는 CTools 모듈의 일부였습니다 . 다음은 (D8 관련) 프로젝트 페이지에서 인용 한 것입니다.
새 페이지 작성을 지원하고 해당 페이지 내에 블록을 배치 할 수 있습니다.
Drupal 7의 페이지 관리자와 마찬가지로 각각 고유 한 선택 조건을 가진 "페이지 변형"개념을 제공합니다.
또한 노드를 볼 때 표시되는 내용을 변경하기 위해 / node / %를 재정의하는 등 기존 페이지를 인계하는 데 사용할 수 있습니다.
이를 위해 핵심
Conditions
,Context
및Blocks
API를 활용합니다 .