Подтвердить что ты не робот

Как я могу указать тему таксономии/срок/х?

Хотя было легко найти какую-то информацию в Интернете о том, как темы других вещей (например, результаты поиска), невозможно найти простую статью о том, как вывести тему таксономии/термина/247 страницы?

Как я могу это сделать?

4b9b3361

Ответ 1

В 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 why I call this wrapper template file. ?>
        </div> <!-- #taxonomy-content -->                   
            </div> <!-- #main -->           
        </div> <!-- #page -->
        <?php echo $closure; ?>
    </body>
<?php require 'page-footer.tpl.php'; ?>

node -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);
  }
}

Также есть taxonomy-term.tpl.php, в отношении Drupal 7.
Это образец кода, не забывайте использовать check_plain() и check_url() для распечаток.

Ответ 2

Страница таксономии не волшебна ни в одном, что требует чего-то особенного для ее темы. Там файл шаблона, функция препроцесса и некоторые тематические функции, как и любая страница.

Если вы хотите контролировать вывод страницы таксономии по умолчанию, которая является немного сырой, вы можете использовать представления для перезаписи страницы по умолчанию. Затем вы можете использовать представления, чтобы показывать только node тизеры, выполнять пользовательский заказ, использовать пейджер и т.д.

Если вы хотите сделать что-то более конкретное, вы должны отредактировать свой вопрос, чтобы сообщить нам, что вы хотите сделать.

Ответ 3

Лучше использовать следующий код в template.php

  foreach ($vars['node']->taxonomy as $term) {
    $vars['template_files'][] = 'node-term-'. $term->tid;
  }

Поскольку вы можете использовать имена файлов, такие как node -term-YOUR-TERM-ID.tpl.php для каждого термина.

если вы хотите сделать его более эффективным:

  if ($hook == 'node') {
       if (arg(0) == 'taxonomy') { 
        foreach ($vars['node']->taxonomy as $term) {
        $vars['template_files'][] = 'node-term-'. $term->tid;
       }
    }
  } //if bracket close