2009-11-26 3 views
2

작성된보기가 있습니다 (my_view).보기 2 (Drupal 6)에서 오버런 테마 후크의 이름 검색

테마 : 정보 섹션보기의 경우 제안 된 템플릿 이름 (views-view--my-view--default.tpl.php (또는 이에 근접)) 중 하나를 기록한 다음 그 이름으로 내 자신의 템플릿 파일을 만들었습니다.

이 모든 것이 잘 작동하며 테마 레지스트리를 방문하면 서식 파일 이름 (views-view--my-view--default)이있는 것을 확인할 수 있습니다. 그러나이 후크는 '모듈'이 아닌 '엔진'유형 필드를 가지고 있습니다. 보기가 자신의 테마에서 작동하는 방식을 보는 것이라고 가정합니다.

hook_registry_alter을 구현하여이 테마 훅 (및 같은 방식으로 생성 된 다른 것들)을 수정하고 싶지만 이러한 훅 목록을 검색하는 방법을 알아낼 수 없습니다.

array_keys (views_theme())를 사용하여 모든 뷰를 다시 가져 왔지만이 목록에는 템플릿 파일이 넘쳐나는 후크가 포함되지 않았습니다. 여기에는 views_views_field 등의 기본 훅만 포함됩니다.

이런 식으로 오버 라이드 된 뷰 테마 목록을 다시 가져 오는 방법이 있습니까?

+1

최종 목표는 무엇입니까? 나는 이것이 올바른 방향으로 나아갈 지 확신하지 못합니다. – googletorp

+0

최종 목표는 사이트 기본 테마에서 먼저보기 템플리트를 찾고 관리자 테마를 뒤 따르도록 테마 시스템에 알릴 수있게하는 것이 었습니다. 테마 후크의 '테마 경로'속성을 수정하여이 작업을 수행 할 것입니다. 이는 뷰가 표시되는 테마의 템플릿 만 검색하는 기본 동작을 오버라이드하는 것이 었습니다. 그러나 이것에 잠시 머무른 후에는 뷰 테마가 후크로 사용되지 않아 결함이 있음을 깨달았습니다. 일반적인 템플릿 제안 접근법의 – grahamu

답변

1

당신의 마지막 코멘트가 귀하의 초기 접근 방식을 추구하는 데 더 이상 관심이 없다는 것을 나타내는 것으로 여기 여서 대답 드리겠습니다. 그리고 600 자로 충분하지 않습니다.

원하는 것을 얻기위한 또 다른 방법은 부모 테마에서 하위 테마의 "상속"을 사용하는 것입니다. 즉, 사용자 테마 서브 테마를의 하위 테마로 정의 할 수 있습니다.

이러한 방식으로 테마 엔진은 사용자 테마을 통해 사이트를 보는 사용자의 경우 사용자 테마 폴더에서 먼저, 다음으로 관리 테마 폴더에서, 그리고 나서 모듈에서 템플릿을 검색합니다 예배 규칙서.

예를 들어 zen이 사용하는 것과 동일한 메커니즘으로 스타터 키트로 테마를 만들 수 있습니다.

희망이 도움이됩니다.

+0

그 제안에 감사드립니다. 불행히도 내 유스 케이스는보기가 관리 테마에 표시되는 것과 같이 조금 특이한데, 아직 테마 시스템이 기본 테마의보기 템플리트를 먼저보고 관리자 테마를 먼저 찾길 원합니다. – grahamu

+0

@granhamu - 두 테마가 다른 점은 무엇입니까? 그것들을 하나의 항목으로 병합하고 몇 가지 역할 기반 논리를 테마 함수에 삽입하는 옵션입니까? 나는 당신이 원하는 것을 성취 할 수있는 방법이 있다고 확신하지만 (적어도 PHP를 직접 사용함으로써 Drupal을 사용하지 않는다면) Drupal은 테마를 분리하도록 설계되었으며, 당신이 원하거나해야 할 일은 반대 방향으로가는 것처럼 보입니다. 당신은 맞습니다 : 당신이 다른, 관련이없는 것의 조각을 사용하도록 강요하고 싶습니다). – mac

+0

@granhamu - 위의 설명에서 관리자 테마에 ** 항상 ** 백업 템플릿이 있다고 가정했지만 사용자 테마에 대체 테마가없는 경우에만 사용하고 싶습니다. 그 경우가 아니라면 (예 : 관리자 테마는 사용자 테마가 없을 때만 템플릿이 있습니다.) 솔루션은 분명합니다. ** 원래 응답을 가져오고 계층 구조 논리를 바꿉니다. 관리 테마를 하위 주제로 만듭니다. 사용자 1 **. – mac

관련 문제