커스텀 블록 테마에는 많은 것이 있지만 뷰로 생성 된 블록은 어떻습니까?
내 조회수 블록에는 id : block-views-posts-listing-block,
템플릿 파일 이름을 지정하는 여러 가지 방법을 시도합니다 (예 : block--block--views-posts-listing-block.tpl.php). 그러나 올바른 파일 이름을 찾을 수 없습니다.
커스텀 블록 테마에는 많은 것이 있지만 뷰로 생성 된 블록은 어떻습니까?
내 조회수 블록에는 id : block-views-posts-listing-block,
템플릿 파일 이름을 지정하는 여러 가지 방법을 시도합니다 (예 : block--block--views-posts-listing-block.tpl.php). 그러나 올바른 파일 이름을 찾을 수 없습니다.
답변:
보기를 편집하십시오. 블록 세부 사항의 "고급"설정에서을 클릭하십시오 "Theme: Information"
. 템플릿 파일의 옵션 목록이 표시됩니다.
예를 들어, 블록의 이름이 "게시물 목록"인 경우 "테마 정보"옵션으로 나열된 가능한 이름을 참조하십시오.
* Display output: views-view.tpl.php, views-view--posts-listing.tpl.php, views-view--default.tpl.php, views-view--block.tpl.php, views-view--posts-listing--block.tpl.php
* Style output: views-view-unformatted.tpl.php, views-view-unformatted--posts-listing.tpl.php, views-view-unformatted--default.tpl.php, views-view-unformatted--block.tpl.php, views-view-unformatted--posts-listing--block.tpl.php
* Row style output: views-view-fields.tpl.php, views-view-fields--posts-listing.tpl.php, views-view-fields--default.tpl.php, views-view-fields--block.tpl.php, views-view-fields--posts-listing--block.tpl.php
* Field Content: Title (ID: title): views-view-field.tpl.php, views-view-field--title.tpl.php, views-view-field--posts-listing.tpl.php, views-view-field--posts-listing--title.tpl.php, views-view-field--block.tpl.php, views-view-field--block--title.tpl.php, views-view-field--posts-listing--block.tpl.php, views-view-field--posts-listing--block--title.tpl.php
예를 들어 , 블록에 이름 게시물 목록 이 있고 스타일이 형식화되지 않은 경우 "테마 정보"는 이름을 제안합니다 views-view-unformatted--posts-listing--block.tpl.php
(여러 이름 중 하나 일 뿐임). 원래 views-view-unformatted.tpl.php
템플릿 파일 (/ modules / views / theme에 위치)을 현재 테마 디렉토리에 복사 하고이 파일의 이름을 제안 된 이름으로 바꿀 수 views-view-unformatted--posts-listing--block.tpl.php
있습니다. 그런 다음 템플릿 파일 내에서 변경하십시오. 이 템플릿으로 원하는대로 변경할 수없는 경우 필요에 따라 다른 템플릿을 찾으십시오.
결국 새 템플릿을 추가하면 템플릿 파일 목록을 다시 스캔하십시오.
중대한! 템플릿 파일을 추가, 제거 또는 이름을 바꿀 때 시스템에서 파일을 다시 검색하여 Drupal이 변경 사항을 인식하도록해야합니다. "템플릿 파일 재검색"버튼을 클릭하면 Drupal의 테마 레지스트리가 지워지고이 재검색 프로세스가 시작됩니다. 강조 표시된 템플릿 ( "템플릿 파일 다시 검색"버튼 위의 템플릿 목록에 있음)은 시스템의 새로운 상태를 반영합니다.
Oswald가 제안한 테마 개발자 모듈 http://drupal.org/project/devel_themer 는 귀하의 기준에 따라 특정 요소를 변경하기 위해 가능한 템플릿을 감지하는 데 유용 할 수 있습니다. 프로덕션 환경에서 활성화 된이 모듈을 권장하지 않습니다 (제 경우에는 뷰와 충돌이있는 것처럼 보이기 때문에 테스트 환경에서 모듈을 비활성화 했음에도 불구하고 필요할 때 매우 유용했습니다)
--block
. 이름으로 끝나는 템플릿이 몇 가지 있습니다. reescan 템플릿을 기억하고 템플릿을 현재 테마의 디렉토리에 넣습니다 (모듈 /보기 / 테마에서 선택한 템플릿을 복사). 템플리트에는 "테마 정보"목록에서 제안한 이름이 있어야합니다. 작동합니다.
테마 개발자 (일명 devel_themer)에 따르면 D7에서 답을 찾는 사람들은 규칙을 사용하여 뷰의 블록에 대한 tpl 재정의를 만들 수 있습니다.
block--views-- {보기의 machine_name} -block
따라서이 예에서 당신은 얻을 것이다
block--views- post-listing -block.tpl.php
공백이 없으면 (인라인되도록 모든 것을 올바르게 편집 할 수 없었습니다.
위에서 설명한 파일 이름 패턴은보기 이름 + 표시 이름이 특정 문자 수보다 긴 경우에만 작동합니다 !! 나는 이것에 사로 잡히고 ... block.tpl.php
로 끝나는 템플릿 파일 이 작동 하는 이유 와 다음 디스플레이가 작동 하지 않는 이유를 찾을 수 없었습니다 block-1.tpl.php
.
이름이 너무 길면 Views는 머신 이름을 MD5 해시로 바꿉니다. 사용해야하는 템플릿 이름을 확인하려면 $conf['theme_debug'] = TRUE;
settings.php를 추가 한 다음 페이지 소스를 확인하십시오. block--views--d131dd02c5e6eec4
.... 와 같은 것을 찾으면 뷰의 기계 이름을 줄이는 것이 좋습니다 (관리하는 경우 사람이 읽을 수있는 이름이 아닙니다). 또는 해당 바보 같은 이름의 템플릿 파일을 사용해야합니다.
참조
과
이 페이지 ( https://www.drupal.org/node/1089656 )와 뷰에서 사용되는 밑줄에 대한 정보를 확인하십시오 .
또한 뷰가 하나 더있는 예에서 뷰 이름이 "front_news"인 뷰로 생성 된 블록이 있고 ID가 "block_1"인 경우 테마 후크 제안은 block--views--front-news-block-1입니다. tpl.php (표시 ID 또는보기 이름에 밑줄이있는 경우 단일 대시로 변환해야 함)
패널 창 내부의 블록의 경우 noTxt 및 기타에서 제공하는 솔루션이 작동하지 않습니다. 그러면 구문은 다음과 같습니다 (밑줄 없음).
panels-pane-block--views-[view-name]-[display-machine-name].tpl.php
이 탁월한 테마 재정의 사례를 파악하기 위해 $ conf [ 'theme_debug'] 설정을 제공 한 user3074436에게 감사합니다.
D7> = 7.33에서는 다음을 사용하여 theme_suggestion을 페이지에 직접 HTML 주석으로 표시 할 수 있습니다.
...에서 settings.php
$conf['theme_debug'] = TRUE;
다음은 완전한 문서입니다 https://www.drupal.org/docs/7/theming/overriding-themable-output/working-with-template-suggestions