다른 주제 (예 : 검색 결과)를 주제로하는 방법에 대한 정보를 온라인으로 쉽게 찾을 수 있었지만 분류법/용어/247 페이지의 출력을 테마 화하는 방법에 대한 간단한 기사를 찾는 것은 불가능합니다.taxonomy/term/x 페이지를 어떻게 테마로 만들 수 있습니까?
어떻게하면됩니까?
다른 주제 (예 : 검색 결과)를 주제로하는 방법에 대한 정보를 온라인으로 쉽게 찾을 수 있었지만 분류법/용어/247 페이지의 출력을 테마 화하는 방법에 대한 간단한 기사를 찾는 것은 불가능합니다.taxonomy/term/x 페이지를 어떻게 테마로 만들 수 있습니까?
어떻게하면됩니까?
택 소노 미 페이지는 주제가되는 특별한 것을 필요로하는 마술이 아닙니다. 템플릿 파일, 전처리 기능 및 일부 페이지 작성 기능이 모든 페이지와 유사합니다.
기본 원시 분류 페이지의 출력을 제어하려면보기를 사용하여 기본 페이지를 덮어 쓸 수 있습니다. 그런 다음보기를 사용하여 노드 티저 만 표시하고 사용자 정의 주문을하고 호출기를 사용할 수 있습니다.
좀 더 구체적인 작업을 원하면 질문을 편집하여 원하는 것을 알려야합니다.
Drupal 6에서 두 번째 테마가 첫 번째 테마의 래퍼 인 것을 고려하면 템플릿의 택 소노 미 페이지에 테마의 node-taxonomy.tpl.php
및 page-taxonomy-term.tpl.php
파일을 사용할 수 있습니다. node-taxonomy.tpl.php
을 node.tpl.php
및 page-taxonomy-term.tpl.php
과 같이 page.tpl.php
과 같이 행동하십시오. 예를 들어 :
페이지 - 분류 - term.tpl.php
<?php require 'header.tpl.php'; ?>
<body class="<?php echo $body_classes; ?>">
<div id="page">
<?php require 'page-navigation.tpl.php'; ?>
<div id="main">
<h2>Taxonomy term page</h2>
<div class="taxonomy-content">
<?php if ($tabs): echo '<div id="tabs-wrapper" class="clear-block">'; endif; ?>
<?php if ($title && !$node): echo '<h2'. ($tabs ? ' class="with-tabs"' : '') .'>'. $title .'</h2>'; endif; ?>
<?php if ($tabs): echo '<ul class="tabs primary">'. $tabs .'</ul></div>'; endif; ?>
<?php if ($tabs2): echo '<ul class="tabs secondary">'. $tabs2 .'</ul>'; endif; ?>
<?php if ($show_messages && $messages){ echo $messages; } ?>
<?php echo $help; ?>
<?php echo $content; // contains the output of node-taxonomy.php, that's why I call this wrapper template file. ?>
</div> <!-- #taxonomy-content -->
</div> <!-- #main -->
</div> <!-- #page -->
<?php echo $closure; ?>
</body>
<?php require 'page-footer.tpl.php'; ?>
노드 taxonomy.tpl.php
<div id="node-<?php echo $node->nid; ?>" class="node<?php if($sticky) echo ' sticky'; ?><?php if(!$status) echo ' node-unpublished'; ?>">
<div class="taxonomy-node">
<div class="node-body">
<a class="node-title" href="<?php echo $node_url ?>" title="<?php echo $title ?>">
<?php echo $title ?>
</a>
<span class="node-cck-field">
<?php echo $node->field_cck_blah[0]['view']; ?>
</span>
</div>
</div>
</div>
음, 가장 중요한 부분 : 기본적으로 node-taxonomy.tpl.php
은 드루팔 (Drupal)에게 알려지지 않았기 때문에 템플릿 제안으로 우리 테마의 template.php
파일에 소개해야합니다. 여기에 우리가 간다 :
/**
* Adding custom PHPTemplate suggestions on taxanomy pages.
*
* @param $vars
* A sequential array of variables to pass to theme template.
*/
function phptemplate_preprocess_node(&$vars) {
if(arg(0) == 'taxonomy'){
$suggestions = array('node-taxonomy');
$vars['template_files'] = array_merge($vars['template_files'], $suggestions);
}
}
은 또한 그것은 코드 샘플의 드루팔 7
taxonomy-term.tpl.php
이, 그나마 '출력물에
check_plain()
&
check_url()
를 사용하는 것을 잊지.
당신은 각 용어에 대해 같은 노드 장기-YOUR-TERM-ID.tpl.php 같은 파일 이름을 사용할 수 있기 때문에 template.php
foreach ($vars['node']->taxonomy as $term) {
$vars['template_files'][] = 'node-term-'. $term->tid;
}
에서 다음 코드를보다 효율적으로 사용.
당신이 그것을보다 효율적으로 사용할 수 있도록하려면 :
if ($hook == 'node') {
if (arg(0) == 'taxonomy') {
foreach ($vars['node']->taxonomy as $term) {
$vars['template_files'][] = 'node-term-'. $term->tid;
}
}
} //if bracket close
감사 Sepehr을! 이것은 작동하지만, 페이지의 모든 내보기 블록은 동일한 형식화 처리를받습니다 ... (노드 티저로 표시됩니다.) 내 의견을 파괴하는 방법이 있습니까? – askon
당신은 훌륭합니다. – Steve