[РЕШЕНО]Вывести текст до views в ноде (разный текст для каждого термина таксономии)

Главные вкладки

Аватар пользователя ilia-step ilia-step 24 января 2012 в 17:55

Из заголовка суть проблемы врятли можно понять, поэтому подробнее:

Есть сайт на drupal6 _bestblok.ru В левом сайдбаре есть меню, сформированное из терминов таксономии, по каждому термину надо выводить оригинальный текст. Тоесть например на этой страничке _bestblok.ru/taxonomy/term/69 надо после тайтла ноды и до списка товаров (выводятся с помощью views) вывести текст по ноутбукам фирмы acer. Соответственно для другого производителя надо выводить другой текст.. как проще всего реализовать подобное?

В Drupal'е пока только разбираюсь, так что могу как очевидное решение упустить из виду, так и полную глупость в коде нагородить из-за простой вещи :] Уже попробовал создать доп. регион в page.tpl между $title и $content и выводить туда созданный блок с текстом про аккумуляторы acer (для блока поставил условие показываться лишь на странице taxonomy/term/69). Но всё бы хорошо если бы не было пагинации при выводе views, т.к. текст тогда выводится также и на страницах taxonomy/term/69?page=1 и так далее, а надо только лишь на первой странице каталога товаров данной тематики.

Прошу помочь с решение данного вопроса, сам уже часа 2 пытаюсь найти решение. Если необходимо ещё что-нибудь пояснить, спрашивайте.

Комментарии

Аватар пользователя Andruxa Andruxa 24 января 2012 в 18:13

в D7 это решается без проблем, поскольку в таксономии появилась возможность использовать филды - поля разных типов, хочешь - поле с иконкой для каждого термина, хочешь - текстовое поле с его описанием.

в D6 с этим посложнее, выкрутиться можно так: создать тип материала "Описание термина таксономии" и привязать ноды этого типа каждую к своему термину, возможно - Taxonomy Node поможет автоматизировать этот процесс, я им не пользовался, не знаю наверняка.

в представлении надо создать отдельное отображение "Вложение" в котором выводить нужный текст из ноды типа "Описание термина таксономии" - т.е. нода будет являться контейнером, в котором хранятся необходимые дополнительные данные для термина. Эрзац-филд, другими словами.
Это отображение "Вложение" надо прикрепить к отображению "Страница/Page" или "Defaults" - я уж не знаю, в каком именно вы выводите список товаров.
Позиция, соответственно - До.
...

PROFIT!

Аватар пользователя ilia-step ilia-step 24 января 2012 в 19:11

SeoMaker, спасибо, посмотрю обязательно.

Andruxa, спасибо за подробный ответ, буду разбираться. Вроде примерно понял как сделать, но до момента "отображение "Вложение" надо прикрепить к отображению "Страница/Page" или "Defaults"... выводится у меня Page, как туда прикрепить отображение "Вложение"?

Аватар пользователя ilia-step ilia-step 25 января 2012 в 13:52

Andruxa, сделал по вашему описанию, получилось, но не совсем то, да и при переходах по пагинатору на всех страницах текст отображается.. мне нужно исключительно лишь на первой странице (т.е. без ?page=2 и т.п.). Я вот думаю, может если вернуться к моему варианту с выводом блока с текстом в дополнительный регион над контентом только лишь на одной этой странице.. может вы сможете подсказать мне, какое условие поставить для показа блока (имеется в виду php фильтр), может сравнивать посимвольно текущий url и заданную строку для каждого блока с текстом, тоесть если url совпадает с адресом, где должна находиться статья по acer, выводить блок "текст acer".

Я пробовал прописывать разные варианты, но с php знаком на совсем плохом уровне, поэтому разобраться не смог.

Аватар пользователя Andruxa Andruxa 25 января 2012 в 14:03

"ilia-step" wrote:
с выводом блока с текстом в дополнительный регион над контентом

для представления можно сделать отображение "Блок", аргумент ID термина таксономии брать из пути, скрывать пустое представление, тогда по крайней мере не придется возиться с
"ilia-step" wrote:
сравнивать посимвольно текущий url и заданную строку для каждого блока с текстом, тоесть если url совпадает с адресом, где должна находиться статья по acer, выводить блок "текст acer"

а в настройках видимости блока выбрать "скрывать на страницах" и указать *?page=*
либо залезть в темплейты представления (предварительно скопировав нужный в папку своей темы) и там на php фильтровать вывод на страницах, содержащих в url ?page=

Аватар пользователя ilia-step ilia-step 27 января 2012 в 1:05

В общем разобрался с вопросом, огромное спасибо Andruxa за помощь. Сделал с помошью вложения, а отфильтровал страницы с ?page= следующим образом:
В темплейте views-view--taxonomy-term--page.tpl заменил


  <?php if ($attachment_before): ?>
    <div class="attachment attachment-before">
      <?php print $attachment_before?>
    </div>
  <?php endif; ?>

на это


  <?php if ($attachment_before): ?>
   <?php if ($view->pager['current_page'] == 0): ?>
    <div class="attachment attachment-before">
      <?php print $attachment_before?>
    </div>
   <?php endif; ?>
  <?php endif; ?>