Суббота, 19 Мая 2012

Вывод модуля Joomla там, где нужно

Вывод модуля JoomlaВ этой записке речь пойдёт о способе вывода модулей CMS Joomla, там, где это необходимо. В этом движке уже есть функции разграничения вывода модулей по пунктам меню.

- Отображения на всех страницах (Все)
- Не отображать модуль (Нет)
- Отображать только на определённых страницах (Выбрать из списка).

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

Есть способ ограничить вывод по адресу страницы (URL). Для его использования мы внесём изменения в шаблон сайта, добавив PHP код:

<?php
$uri = &JFactory::getURI();
$url = $uri->toString(array('path', 'query', 'fragment'));
$homepage = '/';
$workspage = '/works.html';
$pricepage = '/price.html';
$contactpage = '/contact.html';
?>
<?php if ($url == $homepage or $url == $workspage or $url == $pricepage or $url == $contactpage) { ?>
<?php } else { ?>
 <jdoc:include type="modules" name="modul" />
<?php } ?>


Давайте более подробно рассмотрим этот код:
Соберем массив всех адресов (URL):
<?php
$uri = &JFactory::getURI();
$url = $uri->toString(array('path', 'query', 'fragment'));
?>


Задаём переменные адресов (URL) на которых нужно скрыть модуль (Обратите внимание, данный пример работает с SEF):
<?php
$homepage = '/';
$workspage = '/works.html';
$pricepage = '/price.html';
$contactpage = '/contact.html';
?>


Задаём условие равенства переменных, если URL (адрес) равен исходному, то ничего не отображаем, иначе выводим HTML код с модулем
<?php if ($url == $homepage or $url == $workspage or $url == $pricepage or $url == $contactpage) { ?>
<?php } else { ?>
 <jdoc:include type="modules" name="modul" />
<?php } ?>


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

ПользуйтесьWink

Комментарии 

 
#1 Дмитрий 06.04.2011 22:15
Здравствуйте.

Подскажите пожалуйста как запретить вывод модуля s5_no_moo_menu только на страницах форума?
/forum.html
/forum/

По вышеуказанному методу что-то не получается...
Цитировать
 
 
#2 Илья 10.04.2011 15:41
Это не совсем то, что вам нужно, ведь форум генерит собственные страницы.

Но

Думаю у вас должно быть так:

http://www.goinweb.ru/index.php?option=com_content&view=article&id=340

Если не заработает, то тут нужно копать сам компонент форума.
Удачи :-)
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Веб-студия Go in Web
450103, Россия, республика Башкортостан, , город Уфа, улица Софьи Перовской 42/2, вход с торца(группа компаний "Гамаюн")
время работы: пн-пт 09:00-18:00
Веб дизайн,Интернет-решения,Продвижение сайтов
+7 (917) 437-39-26
http://www.goinweb.ru
Перепечатка информации с сайта www.goinweb.ru, возможна только с указанием активной гиперссылки.
Веб-студия "Goinweb": Разработка, обслуживание и поддержка веб-сайтов. Подбор ключевых слов и поисковая оптимизация.
© 2009-2012 Группа свободных разработчиков и ООО "ИнвестПроект". Телефон: +7 917 437-39-26, E-mail:feedback@goinweb.ru