Как может я тема taxonomy/term/x страница? [закрытый]

20
задан Dan Albey 16 April 2010 в 16:35
поделиться

2 ответа

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

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

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

1
ответ дан 30 November 2019 в 01:24
поделиться

В 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. например:

page-taxonomy-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'; ?>

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 не известен Друпалу, поэтому нам нужно ввести его как предложение шаблона в файл 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() при распечатке.

12
ответ дан 30 November 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: