테마 대신 모듈과 함께 뷰 템플릿을 저장하는 방법


13

현재 활성 테마 디렉토리에 저장된 여러보기 템플리트를 작성했습니다. 이 템플릿을 내 모듈 디렉토리에 저장하는 것이 좋습니다.

내 질문은이 테마 파일 (예 : views-view-field.tpl.php)을 모듈 디렉토리로 가져 와서 Views에서 볼 수 있습니까?

뷰 모듈을 보면 기본 템플릿이 뷰 / 테마에 저장되어 있음을 알 수 있지만 구현 방법은 알 수 없습니다.

답변:


29

이것도 알아내는 데 시간이 걸렸습니다. 다음 코드는 .module 파일에 있어야합니다 (코드는 모듈이 "NAME"이라고 가정합니다)

/**
* Implements hook_views_api().
*
* Enabling using templates inside module
*/
function NAME_views_api() {
  return array(
    'api' => 3,
    'path' => drupal_get_path('module', 'NAME'),
    'template path' => drupal_get_path('module', 'NAME'),
  );
}

그러면 Views가 모듈의 루트 디렉토리를 찾도록 지시합니다. 나는 개인적으로 템플릿 파일을 보유하기 위해 서브 디렉토리를 모듈에 추가하는 팬입니다. 이렇게하려면 디렉토리 이름을 템플릿 경로 끝에 추가하십시오. 예 :

'template path' => drupal_get_path('module', 'NAME') . '/templates',

하위 디렉토리에 추가하는 것은 환상적인 아이디어이며 정리하고 완벽하게 작동합니다. 향후 검색자는 Drupal 캐시를 지 웁니다. 감사합니다 @Reekan Mantell
Citricguy

감사합니다! 7 개월 동안 조회수 필드를 무시하기 위해 몇 달 동안 관리자 테마를 해킹했습니다. 이제는 필요 없습니다.
JM01

이 코드를 구현 한 경우에도 TPL을 테마에 넣을 수 있다고 말해야합니다. 감사.
anou

2
기능 모듈에서는 작동하지 않으며 대신 hook_views_api_alter()여기에 명시된대로 사용 하십시오. deeson.co.uk/labs/views-templates-features-module
Aubrey Robertson

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.