Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 342 Ответов
  • 78815 Просмотров
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Обновление поста 21.11.2014, рецепты ниже не будут работать на J1.5, J1.6, J1.7. Только для последних версий J2.5 и J3.x

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

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

1. Вывод конкретного модуля, на примере модуля меток
Спойлер
[свернуть]

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

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

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

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

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

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

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

Логические операторы
(для совсем новичков, чтоб вы сами могли составлять условия)
[spoiler title=логические операторы]
==  РАВНО
напр. - $controller == 'product' (показать в товарах)
!=  НЕ РАВНО!
напр. - $controller != 'product' (НЕ показывать в товарах)
&&  И
напр. - $controller == 'category' && $controller == 'product' (и в категориях и в товарах)[/spoiler]

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

1. Компонент Jshop установлен как главный пункт меню (для красивых ссылок, допустим), но не хотим выводить его на главной
Код: php
<?php if (JURI::current()!= JURI::base()):?> //само условие
<jdoc:include type="component" /> //непосредственно вывод компонента
<?php endif;?>

2. Позицию модуля не показывать в корзине и при оформлении заказа
Код: php
<?php if ( $option == 'com_jshopping' && $controller != 'cart' && $controller != 'checkout' ) : ?>
<jdoc:include type="modules" name="left" />
<?php endif; ?>

3. Показать модуль только в категории, у которой ID=5
Спойлер
[свернуть]

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

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

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

2. Выводить что угодно в магазине только для авторизованных пользователей
Спойлер
[свернуть]
В основном мануал собран из тех решений что уже встречались на форуме, для вашего удобства - всё в одном месте, довольно подробно, с пояснениями, - поэтому не стесняйтесь - экспериментируйте с условиями :)
« Последнее редактирование: 03.03.2020, 13:37:38 от nevigen »
*

Argawa

  • Захожу иногда
  • 139
  • 1 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #120 : 11.06.2013, 15:28:27 »
Заинтересовало условия вывода информации в зависимости от групп пользователей

Можете хотя бы сказать в какой папке искать, controllers, table? lib?
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #121 : 11.06.2013, 15:37:07 »
сделайте в карточке товара (или где вам там нужно)

<?php print_r($this->config);?>

потом ищите по слову user или group - в общем-то там все будет наглядно
*

krasnblj

  • Новичок
  • 9
  • 0 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #122 : 21.06.2013, 01:06:52 »
перечитываю по 3 раза, не могу понять
1) в name пишем позицию модуля?
2) что выбирать в «Привязке модуля к пунктам меню?» — выбираю всё — дублируется, выбираю ничего — пропадает в обоих случаях
3) есть ли какой-нибудь альтернативный метод условного вывода модулей, не могу в шаблоне найти нужное место? (мне всего-то нужно выводить модуль только для категорий, а он выводится и для категорий и для товаров)
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

krasnblj

  • Новичок
  • 9
  • 0 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #124 : 21.06.2013, 12:45:48 »
так пропиши вызов модуля в шаблоне категории магазина

спасибо, сработало, но с чекбоксами «Привязка к пункту меню» все-равно не разобрался, либо дубли, либо отсутсвие
*

krasnblj

  • Новичок
  • 9
  • 0 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #125 : 24.06.2013, 12:09:42 »
спасибо, сработало, но с чекбоксами «Привязка к пункту меню» все-равно не разобрался, либо дубли, либо отсутсвие
решил с помощью "Advanced Module Manager"
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #126 : 30.07.2013, 00:56:52 »
Хочу вывести модуль в описании товара. Плагин "Контент-загрузка модулей" включен. Модуль включен, позиция указана, к меню привязан. Ввожу  {loadposition my_position}, никакой реакции. Или он работает только в статьях Joomla? Тогда как его вывести в описании товара?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #127 : 30.07.2013, 01:02:43 »
Код: php-brief
<?php echo JHTML::_('content.prepare', $text); ?>
замените $text на вывод вашего описания в шаблоне вывода материала,  тогда отработает плагин
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #128 : 30.07.2013, 01:23:08 »
Код: php-brief
<?php echo JHTML::_('content.prepare', $text); ?>
замените $text на вывод вашего описания в шаблоне вывода материала,  тогда отработает плагин

Т. е. я должен вывести <?php echo JHTML::_('content.prepare', '{loadposition my_position}'); ?> в шаблоне карточки товара?
« Последнее редактирование: 30.07.2013, 01:27:42 от pvi1 »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #129 : 30.07.2013, 01:30:10 »
Код: php-brief
<?php echo JHTML::_('content.prepare', $this->product->description); ?>
а если модули одни и те же во всех товарах Несколько модулей в 1 статье
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #130 : 30.07.2013, 01:41:29 »
Код: php-brief
<?php echo JHTML::_('content.prepare', $this->product->description); ?>
Не срабатывает, выводит описание с текстом {loadposition my_position}
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #131 : 30.07.2013, 01:45:08 »
Что интересно, и в простых материалах Joomla не срабатывает. Может какие-то конфликты?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #133 : 30.07.2013, 01:54:37 »
Включил - без изменений
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #134 : 30.07.2013, 09:43:44 »
Я добавлял модуль этим кодом (первый не работал)
Код
<?php  $modules = JModuleHelper::getModules('Указать позицию модулей');
if ($modules && is_array($modules)) {
foreach ($modules as $module) {
//контент
echo JModuleHelper::renderModule($module);
};
} ?>
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #135 : 30.07.2013, 17:41:30 »
Я добавлял модуль этим кодом (первый не работал)
Код
<?php  $modules = JModuleHelper::getModules('Указать позицию модулей');
if ($modules && is_array($modules)) {
foreach ($modules as $module) {
//контент
echo JModuleHelper::renderModule($module);
};
} ?>

Этот код вставлять в файл шаблона карточки product_default.php? Если да, то ничего не появляется. Даже в статье Joomla не срабатывает  {loadposition my_position}
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #137 : 30.07.2013, 18:26:16 »
Конечно. И в браузере, и в Joomla
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #138 : 30.07.2013, 19:20:43 »
может вы неправильно указали название или позицию для модуля? В третьем варианте не нужны фигурные скобки
Код
<?php  $modules = JModuleHelper::getModules('position-xx');
if ($modules && is_array($modules)) {
foreach ($modules as $module) {
//контент
echo JModuleHelper::renderModule($module);
};
} ?>
И в модуле ставите в строке Позиция тоже position-xx
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #139 : 30.07.2013, 19:32:31 »
У меня вопрос. А как добавить стиль для заголовка модуля?
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #140 : 30.07.2013, 19:44:24 »
может вы неправильно указали название или позицию для модуля? В третьем варианте не нужны фигурные скобки
Код
<?php  $modules = JModuleHelper::getModules('position-xx');
if ($modules && is_array($modules)) {
foreach ($modules as $module) {
//контент
echo JModuleHelper::renderModule($module);
};
} ?>
И в модуле ставите в строке Позиция тоже position-xx
Вот как написал:
Код
<?php  $modules = JModuleHelper::getModules('left_bottom');
if ($modules && is_array($modules)) {
foreach ($modules as $module) {
//заголовок
echo $module->title;
//контент
echo JModuleHelper::renderModule($module);
};
} ?>
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #141 : 30.07.2013, 19:48:33 »
Цитировать
left_bottom
а это не системный модуль? вы должны свое название модуля придумать
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #142 : 30.07.2013, 19:56:34 »
а это не системный модуль? вы должны свое название модуля придумать
Нет, это мой HTML-модуль
*

Bozhkov2

  • Захожу иногда
  • 427
  • 12 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #143 : 30.07.2013, 19:59:29 »
Состояние - Опубликовано (?)
*

pvi1

  • Давно я тут
  • 566
  • 16 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #144 : 30.07.2013, 20:07:33 »
Спасибо, ребята, решилось. Дело в моей невнимательности. Когда в первом варианте у меня не получалось, я перебирал несколько модулей, и в последнем забыл указать страницы показа. И когда перешел на 3 вариант, естественно тоже ничего не было. Плюсую обоим.
*

Ponka

  • Захожу иногда
  • 77
  • 0 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #145 : 31.10.2013, 11:00:39 »
Здравствуйте, я к вам за помощью. Сайт http://vintechnika.com/tfv/tv/televizor-samsung-ue-32f4000.html лог\пас  test . Пытаюсь сделать, запрет на вывод модуля. Сказано прописать позицию в файле (templates/ВАШ_Шаблон/index.php)  иду plugins/system/jat3/jat3/base-themes/default/page/default.php (там лежит главный файл, шаблон JA T3 Framework, может не туда пошла?). У меня фильтр расположен в позиции position-7, но в файле определения позиций нет, есть по колонка left. Подскажите, где копать? Первую часть кода я нашла куда вставить в default.php. пример кодов:
Вставляю в default.php после
// No direct access.
defined('_JEXEC') or die;
Код
$option = JRequest::getVar('com_jshopping', null);
$controller = JRequest::getVar('product', null);

А вот этот ставила там же после
<!-- LEFT COLUMN-->
            <div id="ja-left" class="column sidebar" style="width:<?php echo $l ?>%">

Код
<?php if ( $option == 'com_jshopping' && $controller != 'product') : ?>
<jdoc:include type="mod_jshopping_filters" name="position-7" />
<?php endif; ?>
вместо position-7 пробовала подставлять left? результата 0.
« Последнее редактирование: 31.10.2013, 20:48:53 от Ponka »
*

denben777

  • Захожу иногда
  • 157
  • 78 / 1
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #146 : 31.10.2013, 16:58:28 »
to Ponka
Код
$option = JRequest::getVar('option', null);
$controller = JRequest::getVar('controller', null);
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #147 : 31.10.2013, 18:37:17 »
Удобно пользоватся данной функцией
Возвращает true если условие истинно в ином случае false
Код: php-brief
<?php
function showPage(){
return (count(array_intersect( func_get_args(),  $_REQUEST)) == func_num_args());
}
?>
в вашем же случае проверка выглядела так
Код: php-brief
<?php if ( showPage('com_jshopping', 'product')) : ?>
<jdoc:include type="mod_jshopping_filters" name="position-7" />
<?php endif; ?>
P.S. Понятно, что она не идеальна. Выложу позже лучшую
*

Ponka

  • Захожу иногда
  • 77
  • 0 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #148 : 31.10.2013, 21:00:37 »
to Ponka
Код
$option = JRequest::getVar('option', null);
$controller = JRequest::getVar('controller', null);
Не поняла. Вроде ж правильно определила:
Код
$option = JRequest::getVar('com_jshopping', null);
$controller = JRequest::getVar('product', null);

Удобно пользоватся данной функцией
Возвращает true если условие истинно в ином случае false
Код: php-brief
<?php
function showPage(){
return (count(array_intersect( func_get_args(),  $_REQUEST)) == func_num_args());
}
?>
в вашем же случае проверка выглядела так
Код: php-brief
<?php if ( showPage('com_jshopping', 'product')) : ?>
<jdoc:include type="mod_jshopping_filters" name="position-7" />
<?php endif; ?>
P.S. Понятно, что она не идеальна. Выложу позже лучшую
при вставке кода, шаблон поплыл и выдало ошибку

Цитировать
Fatal error: Call to undefined function showPage() in /home/vintech/domains/vintechnika.com/public_html/plugins/system/jat3/jat3/base-themes/default/page/default.php on line 146
*

denben777

  • Захожу иногда
  • 157
  • 78 / 1
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #149 : 31.10.2013, 21:18:02 »
Не поняла. Вроде ж правильно определила:
Код
$option = JRequest::getVar('com_jshopping', null);
$controller = JRequest::getVar('product', null);

Для информации:
Код
<?php
     $ponka1 = JRequest::getVar('option', null);
     $ponka2 = JRequest::getVar('controller', null);
?>
<?php if($ponka1 == 'com_jshopping'){?>
     Сейчас вы находитесь на странице компонента JoomShopping
<?php }?>
<?php if($ponka1 == 'com_content'){?>
     Сейчас вы находитесь на странице компонента Контент Joomla
<?php }?>
<?php if($ponka1 == 'com_user'){?>
     Сейчас вы находитесь на странице компонента Пользователь
<?php }?>
<?php if($ponka1 == 'com_jshopping' && $ponka2 == 'category'){?>
     Сейчас вы находитесь на странице Категории компонента JoomShopping
<?php }?>
<?php if($ponka1 == 'com_jshopping' && $ponka2 == 'product'){?>
     Сейчас вы находитесь на странице Продукта компонента JoomShopping
<?php }?>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин - Вывод значения поля из таблицы продуктов в корзине JoomShopping

Автор draff

Ответов: 3
Просмотров: 752
Последний ответ 26.02.2024, 07:00:01
от kit2m2
Плагин - Товар на складе или Товар под заказ для JoomShopping [Скачать]

Автор kit2m2

Ответов: 58
Просмотров: 9202
Последний ответ 18.05.2023, 12:59:00
от Akeksandr
[Решено] Комплект товаров JoomShopping - конструктор

Автор vgromov

Ответов: 96
Просмотров: 28087
Последний ответ 14.12.2022, 15:21:24
от kit2m2
Функционал сравнение товаров в JoomShopping

Автор falur

Ответов: 53
Просмотров: 13397
Последний ответ 22.08.2022, 09:54:16
от kit2m2
[скачать] Выбор отделения Новой Почты для JoomShopping 4+

Автор v42bis

Ответов: 18
Просмотров: 3570
Последний ответ 06.07.2022, 07:17:06
от denxio