좋아, 여기 거래가있다 : 나는 여러 다른 섹션이있는 드루팔 (Drupal) 웹 사이트를 만들고있다. 각 섹션은 콘텐츠 형식을 표시하는보기입니다. 각 섹션에는 고유 한 콘텐츠 형식이 있습니다. 예를 들어 콘텐츠 형식이 blog
인 ?q=blog
을 가리키는보기가 있습니다.Drupal 7 - template.php의 어떤 페이지 템플릿이 사용 되는가를 나타내는 변수는 무엇입니까?
모든 섹션은 서로 약간 다르게 보입니다. '웹 사이트 내 웹 사이트'와는 다르지만 다를 수는 있지만 동일한 템플릿 파일을 모두 사용할 수없고 각각을 CSS로 수정할 수는 없습니다. 각 섹션에는 자신의 page.tpl.php
이 필요합니다.
아쉽게도 AFAIK Drupal 테마의 .info 파일은 전체 테마에 대해 page.tpl.php
을 할당하거나 각 노드에 page-node-####.tpl.php
을 할당 할 수 있습니다. 이 웹 사이트에는 많은 컨텐츠가 있으므로 Drupal을 모든 생성 된 노드에 대해 동일한 새로운 page-node-####.tpl.php
을 설정하도록 설정하면 관리하기가 매우 쉽습니다.
이 문제를 해결하려면 pathauto를 사용하여 각 콘텐츠 형식의 별칭을 만듭니다. 예를 들어 콘텐츠 유형이 blog
인 모든 노드에 ?q=blog/[post title]
이라는 별칭이 지정됩니다. template.php
을 수정하여 'blog'로 시작하는 별칭의 페이지에 page-blog.tpl.php
을 사용하십시오.
다른 사람들이 이런 종류의 일을 시도하고 설명 된 것과 같은 기능을 만들었습니다. 불행히도, 내가 본 모든 것들은 드루팔 (Drupal 6 이하)을위한 것입니다. 나는 성공한 것들을 수정하려고 시도했다. 지금까지,하지만 난이 올바른 궤도에 있다고 생각 :
function basic_preprocess_page(&$vars, $hook) {
...
if(module_exists('path')) {
$alias = drupal_get_path_alias($_GET['q']);
$site_section = "blog";
if(strpos($alias, $site_section) === 0) {
$VARIABLE_THAT_TELLS_THE_PAGE_WHAT_TEMPLATE_TO_USE = "/path/to/page-blog.php";
}
}
}
내가 $VARIABLE_THAT_TELLS_THE_PAGE_WHAT_TEMPLATE_TO_USE
사람이 그것이 무엇인지 않습니다 찾을 수 있습니까?
어쩌면 내 사이트 구조가 잘못되었을 수도 있습니다. 누구든지 내 사이트를 재구성하는 방법을 알고 있으므로 별도의 섹션으로보다 쉽게 테마를 만들 수 있습니다!
감사합니다. (c:
편집 : 아마도 템플릿 제안을 대신 사용해야합니다. 누구든지 이것을 설정하는 데 사용할 함수 또는 변수를 알고 있습니까?