Хитрое отображение блоков в модулях
Цитата | Собственно, сабж. Например, есть модуль Pages (или свой). Как сделать, чтобы в пределах одного модуля выводились разные блоки? Я думаю, что флай-блоки надо применять и/или вручную функцию с рендерингом блоков юзать. |
Тема так же обсуждается тут
Пишу по 2.1 Final
Редактируем файл function/sources.php
функция function blocks($side, $fly="")
Задача: в модуле Files показывать все правые блоки, разрешенные для этого модуля, НО! при подробном просмотре описания файла показать только блоки с номерами 8 и 32 (номера можно взять в админке, наведя на иконку "Редактировать блок" т.е. Админка сайта -> Блоки и банеры -> Значек редактирования. А можно и нажать, перейдя по ссылке ***http://localhost/lite21f/admin.php?op=BlocksEdit&bid=8) или в базе напрямую посмотреть.
Итак.
После Код | 1
| $view = intval($view); |
вставляем Код | 1 2 3 4
| global $op;
if ($name=="Files" AND $op=="view_file" AND $bposition=="r" AND ($bid!=8 AND $bid!=32) ) {
$which="NahNeVyvodit;) ";
} |
1. Переменная $name уже объявлена глобально выше. $op добавляем в глобальные сами.
2. Смысл: если мы находимся в модуле Files, просматривая подробное описание файла view_file, то для всех правых модулей $bposition=="r", с номерами не равными 8 и 32 назначаем отображение в модуле "NahNeVyvodit ;) "
Понятное дело, что такого модуля у нас быть не должно и по ссылке ***http://localhost/lite21f/index.php?name=Files&op=view_file&lid=Любое
мы увидим из всех правых модулей только 8-ой и 32-ой, перейдя в любой другой раздел Files отображение правых блоков восстановится в полном объеме.
Дата публикации: 27.06.2007 Прочитано: 11087 раз |