Назначен показ на пункт меню "Видео". Отмечено "Не показывать на вложенных страницах.
На главной странице видео модуль есть — ok. На странице просмотра одного видеоролика модуля нет — ok. На странице списка ролика, при пагинации на вторую страницу списка модуля тоже нет — NOT OK. Эта страница считается вложенной относительно главной страницы видео, но она по сути та же главная страница видео, просто ее продолжение, здесь список разделов нужен.
Кроме того есть модуль, который стоило бы вывести только на страницах просмотра отдельного видеоролика. И не стоило бы выводить на страницах списков роликов.
Можно вставлять модульные позиции в шаблон tpl. Этот вариант годится для модуля который нужно вывести на странице видео и не нужно выводить на главной странице или в категориях. Но он не годится для модуля со списком категорий. Модуль списка категорий выводится в сайдбаре, и если пытаться запихнуть его в tpl категории, сложно имитировать тот же дизайн что и сайдбар.
Пришло в голову опираться на events instantcms.ru/blogs/haki-patchi-moduli-plaginy-i-prochie-dorabotki-dvizhka/spisok-vseh-event-ov-sistemy.html
Например задать в основном шаблоне условие:
GET_BOARD_RECORDS — здесь выводить модуль со списком категорий
GET_BOARD_RECORD — здесь не выводить модуль списка категорий но вывести модульную позицию которую нужно на странице одного ролика или в данном случае одного объявления.
Не подскажете, как это устроить в template.php?
Не поможет.Может проще написать условие в template.php в диве с сайдбаром. Что то типа, если menu_id такое то, то модуль такой то.
Есть сайдбар.
Есть модуль "Категории видео" (или любой другой)
И есть модуль скажем новое видео.
Есть пункт меню "Видео". (или любой другой компонент, раздел)
Нужно что модуль с категориями выводился в сайдбаре на всех страницах раздела где списки материалов
и не выводился на странице просмотра самого одного отдельно взятого материала.
И нужно что бы модуль "новое видео" выводился на той же позиции в сайдбаре на странице просмотра ролика, и не выводился на страницах списков роликов.
Если цеплять модуль на пункт меню "Видео" то он и будет показываться на всех страницах видео.
Если ставить отметку "Не показывать на вложенных страницах" он вложенными будет считать и вторую страницу списка роликов при просмотре категории.
Поэтому может быть как то через event Если есть событие "Просмотр списка роликов" — модуль со списком категорий. Конец. Если есть событие просмотр одного видеоролика — модульная позиция для модуля Новое видео. Конец.
Я не знаю работает ли такое в шаблоне или нет и если да то как вызвать для создания условия. Вообще если опираться на это, настройки показа модуля можно было бы сделать более гибкими.
callEvent('...') производит событие. Если хочешь привязать вывод модуля к событию, то наверное нужно для начала написать плагин? Затем в index.php это событие объявить и затем всё должно работать. По идеи.Не подскажете, как это устроить в template.php?
Возможно с пагинацией не сработает.Нил™, кто Вам мешает сделать принудительный вывод?
в template.php
<?php $thispageurl=$_SERVER['REQUEST_URI']; $this->printModules('sidebar2'); } else { $this->printModules('sidebar3'); } ?>
sidebar3 — модульная позиция на которую можно публиковать те модули, которые нужно выводить только на всех страницах (с пагинацией) определенного раздела (списка материалов), но не нужно выводить на странице просмотра одного материала.
Несколько извращенно, но это самое простое. Как правило страницы категорий не имеют расширения html а страница просмотра материала имеет. От этого и будем пока отталкиваться.
Использовать дополнительные плагины для вывода модуля тоже из камасутры в принципе.
Спасибо за участие!