2010-04-16 4 views

답변

1

택 소노 미 페이지는 주제가되는 특별한 것을 필요로하는 마술이 아닙니다. 템플릿 파일, 전처리 기능 및 일부 페이지 작성 기능이 모든 페이지와 유사합니다.

기본 원시 분류 페이지의 출력을 제어하려면보기를 사용하여 기본 페이지를 덮어 쓸 수 있습니다. 그런 다음보기를 사용하여 노드 티저 만 표시하고 사용자 정의 주문을하고 호출기를 사용할 수 있습니다.

좀 더 구체적인 작업을 원하면 질문을 편집하여 원하는 것을 알려야합니다.

12

Drupal 6에서 두 번째 테마가 첫 번째 테마의 래퍼 인 것을 고려하면 템플릿의 택 소노 미 페이지에 테마의 node-taxonomy.tpl.phppage-taxonomy-term.tpl.php 파일을 사용할 수 있습니다. node-taxonomy.tpl.phpnode.tpl.phppage-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()를 사용하는 것을 잊지.

+0

감사 Sepehr을! 이것은 작동하지만, 페이지의 모든 내보기 블록은 동일한 형식화 처리를받습니다 ... (노드 티저로 표시됩니다.) 내 의견을 파괴하는 방법이 있습니까? – askon

+0

당신은 훌륭합니다. – Steve

1

당신은 각 용어에 대해 같은 노드 장기-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 
관련 문제