Описание термина таксономии только на первой странице

Аватар пользователя Skyler Skyler 14 ноября 2012 в 2:46

Подскажите пожалуйста!
Есть термин с кучей нод. Этому темину я добавил описание(стандартными средствами), которое отображается между заголовком термина и самими нодами. Но беда состоит в том, что это описание дублируется на всех страницах термина (*?page=1, *?page=2, *?page=3 и т.д.) Т.е. получается куча дублированного контента, да и в плане удобства тоже не совсем приятно...
Как сделать что бы описание отображалось только на первой странице термина?
Заранее спасибо!

Комментарии

Аватар пользователя Skyler Skyler 14 ноября 2012 в 3:56

"CSoft" wrote:
theme_taxonomy_term_page

Спасибо за направление, CSoft)
Но можно поподробнее, что именно нужно менять в коде? В PHP не силен, к сожалению...
Нашел решение с таким кодом:


<?php
if (!isset($_GET['page'])) {
$category taxonomy_get_term(arg(2));
echo 
"{$category->description}";
}
?>

Но не могу понять как его вставить не криво.. Ткните пожалуйста..(

Аватар пользователя CSoft CSoft 14 ноября 2012 в 4:03

"Skyler" wrote:
Нашел решение с таким кодом

В целом - да, оно. Но сделайте проще - в строке "if (!empty($description))" правите условие на !isset($_GET['page']) && !empty($description) и больше ничего не нужно.

Переопределяете в своей теме в template.php эту функцию темизации и дело в шляпе.

Аватар пользователя Skyler Skyler 14 ноября 2012 в 4:12

"CSoft" wrote:
Переопределяете в своей теме в template.php эту функцию темизации и дело в шляпе.

С первой частью кажется всё понял, а вот с переопределением функций за пару лет работы с друпал пока не сталкивался... Помогите(

Аватар пользователя Skyler Skyler 14 ноября 2012 в 4:17

Хотя, работает и без переопределения) Или без него будет коряво?

CSoft, огромное спасибо! Выручили)

Аватар пользователя CSoft CSoft 14 ноября 2012 в 4:20

Почитайте / посмотрите уроки по темизации в Drupal. Например, функции с префиксом theme_ можно переопределять в своих темах оформления сайта и выводить то, что нужно. Как это в нашем случае - меняем строку.

В Вашей теме нужно в файле template.php переопределить функцию theme_taxonomy_term_page, имя уже будет НАЗВАНИЕ-ТЕМЫ_taxonomy_term_page или phptemplate_taxonomy_term_page, копируете туда код с оригинальной функции, правите наше условие, очищаете кэш, радуетесь результату.

Аватар пользователя CSoft CSoft 14 ноября 2012 в 4:22

"Skyler" wrote:
Или без него будет коряво?

Так делать нельзя. Нужно обязательно переопределять функцию в своей теме. Объясняю почему: выйдет новая версия Drupal, затрёте старые файлы и все Ваши старания просто исчезнут.

Аватар пользователя vlucas vlucas 5 февраля 2013 в 1:10

В своей теме создаёте файл taxonomy-term.tpl.php

<?php

<div id="taxonomy-term-<?php print $term->tid; ?>" class="<?php print $classes; ?> <?php if (isset($_GET['page'])): ?>taxonomy-term-nopage<?php endif; ?>">

  <?

php if (!$page): ?>
    <h2><a href="<?php print $term_url?>"><?php print $term_name?></a></h2>
  <?php endif; ?>

  <div class="content">
    <?php if (isset($_GET['page'])) { hide($content['description']);} ?>
    <?php print render($content); ?>
  </div>

</div>

?>

Только что прочитал, что надо для 6, ссори - это для 7