Варианты вызова модуля в шаблонах

По мотивам — Различные условия в шаблонах

Варианты вызова модуля в шаблонах компонента Jshop

как вызвать модуль, например, в шаблоне категории или товара, 3 способа
1. Вывод конкретного модуля, на примере модуля меток

Код
<?php echo JHTML::_('content.prepare', '{loadmodule mod_jshopping_label_products}'); ?>

2. Вывод любого (всех) модулей, опубликованных в конкретной позиции — bottom

Код
<?php echo JHTML::_('content.prepare', '{loadposition bottom}'); ?>

3. Еще вариант вызова модулей по позиции

Код
<?php  $modules = JModuleHelper::getModules('Указать позицию модулей');
if ($modules && is_array($modules)) {
	foreach ($modules as $module) {
		//заголовок 
		echo $module->title;
		//контент
		echo JModuleHelper::renderModule($module);
	};
} ?>

Различные условия в шаблоне Joomla (templates/ВАШ_Шаблон/index.php)

1. Получаем необходимые параметры

Перед составлением условий, рекомендую — отключить SEF, тогда будет видно в URL какие у вас параметры

Код
$input = JFactory::getApplication()->input;
$option = $input->getCmd('option', '');
$controller = $input->getCmd('controller', '');

$option определяет компонент, в нашем случае $option это ‘com_jshopping’
$controller работает уже внутри компонента — это может быть ‘category’, ‘product’, ‘cart’ и другое; все это можете узнать отключив SEF в настройках и посмотрев чему равен $controller (в адресной строке) на интересующих вас страницах.

Логические операторы
(для совсем новичков, чтоб вы сами могли составлять условия)

логические операторы

Примеры для шаблона Joomla (templates/ВАШ_Шаблон/index.php)

1. Компонент Jshop установлен как главный пункт меню (для красивых ссылок, допустим), но не хотим выводить его на главной

Код
<?php if (JURI::current()!= JURI::base()):?> //само условие
<jdoc:include type="component" /> //непосредственно вывод компонента
<?php endif;?>

2. Позицию модуля не показывать в корзине и при оформлении заказа

Код
<?php if ( $option == 'com_jshopping' && $controller != 'cart' && $controller != 'checkout' ) : ?>
<jdoc:include type="modules" name="left" />
<?php endif; ?>

3. Показать модуль только в категории, у которой ID=5

Код
<?php if ( $option == 'com_jshopping' && $controller == 'category' && $category_id == '5') : ?>
<jdoc:include type="modules" name="left" />
<?php endif; ?>

тут новая переменная — $category_id, поэтому в самом начале ее тоже нужно определить

Код:
$category_id = $input->getCmd('category_id', '');

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

Различные условия в шаблонах компонента Joomshopping

Первым делом переопределяем шаблоны —  всю папку /components/com_jshopping/templates/default/ копируем, переименовываем в com_jshopping и загружаем по адресу /templates/ваш_шаблон/html/*

1. Выводить описание категории только на первой странице (на второй и последующих — описания не будет)
/templates/ваш_шаблон/html/com_jshopping/category/category_default.php

Код
<?php 
        $input = JFactory::getApplication()->input;
	$start = $input->getCmd('limitstart', 0);
	$option = $input->getCmd('option', '');
	If (!$start && $option == 'com_jshopping'){ ?>
	<?php print $this->category->description?> //описание категории товаров
<?php } ?>

2. Выводить что угодно в магазине только для авторизованных пользователей

Код
<?php
$user = JFactory::getUser();
if ($user->get('guest') == '1') { } else { ?>
//тут что-то выводим (например цена для оптовиков)
<?php } ?>

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