Новости Joomla

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

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 »
*

warlocksp

  • Завсегдатай
  • 1198
  • 17 / 4
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #300 : 13.01.2020, 15:24:39 »
Еще, если пункт меню "Магазин" - выбрать "список товаров" и при этом указать id продавца.
Тогда модуль "Фильтр" расположенный в позиции "right" - отображается как нужно.
Только категориях. Но это бред.
При этом url товара - капец какой-то левый. *ОХ-Х-Х*
« Последнее редактирование: 13.01.2020, 15:35:53 от warlocksp »
Мудр не тот, кто знает много, а тот, чьи знания полезны. Эсхил
*

kit2m2

  • Живу я здесь
  • 3269
  • 268 / 0
  • Беру сайты на полное сопровождение
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #301 : 13.01.2020, 15:39:00 »
При этом url товара - капец какой-то левый
У Вас же Квикстарт?
Расширения для JoomShopping | Расширения на заказ | Сайты и магазины под ключ: Дизайн, Верстка, Программирование, СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ и JoomShopping 5+
*

warlocksp

  • Завсегдатай
  • 1198
  • 17 / 4
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #302 : 13.01.2020, 15:48:10 »
У Вас же Квикстарт?
Нет... Квикстаром не пользуюсь.

Joomla 3.9.14, JoomShopping 4.18.3, шаблон Helix3
Установил модуль "Фильтр" - вывел в позицию "right".
Нужно запретить вывод в карточке товара.
И в этой теме и в Убрать модуль в карточке товара JoomShopping - это обсуждалось по helix.

Не получается.
« Последнее редактирование: 13.01.2020, 15:53:52 от warlocksp »
Мудр не тот, кто знает много, а тот, чьи знания полезны. Эсхил
*

kit2m2

  • Живу я здесь
  • 3269
  • 268 / 0
  • Беру сайты на полное сопровождение
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #303 : 13.01.2020, 15:53:10 »
Сайт покажите
Расширения для JoomShopping | Расширения на заказ | Сайты и магазины под ключ: Дизайн, Верстка, Программирование, СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ и JoomShopping 5+
*

Akeksandr

  • Захожу иногда
  • 390
  • 10 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #304 : 13.01.2020, 18:47:57 »
Нет... Квикстаром не пользуюсь.

Joomla 3.9.14, JoomShopping 4.18.3, шаблон Helix3
Установил модуль "Фильтр" - вывел в позицию "right".
Нужно запретить вывод в карточке товара.
И в этой теме и в Убрать модуль в карточке товара JoomShopping - это обсуждалось по helix.

Не получается.

На вскидку. Не помню точно какой у меня модуль фильтра.
В настройках указывал -  не отображать пустой модуль.
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #305 : 03.03.2020, 13:09:03 »
Товарищи, не уверен, что это относится именно к выводу модулей, но к условиям JoomShopping относится наверняка.
В общем дело так обстоит: Главная страница сайта является корневой магазина (т.к. в настройках меню указано "Список категорий / Магазин").

При этом, условие для выявления главной страницы
Код
$menu->getActive()!= $menu->getDefault()
работает некорректно для всех внутренних страниц сайта, связанных с каталогом.
Т.е., страницы категорий и самих товаров, так же определяются как главная.

Как в этом случае детектить главную страницу? Спасибо!

P.S.: Есть идея добавить в условие определение контроллера по типу
Код
$controller == 'category'
но я не знаю, как называется корневая категория магазина, да и в урле нет ничего при выключенном SEF, т.к. это главная...
« Последнее редактирование: 03.03.2020, 13:12:35 от goga_pgasovav »
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #306 : 03.03.2020, 14:36:09 »
При этом, условие для выявления главной страницы
Код

$menu->getActive()!= $menu->getDefault()

работает некорректно для всех внутренних страниц сайта, связанных с каталогом.
Т.е., страницы категорий и самих товаров, так же определяются как главная.
Для главной
Код
$menu->getActive() == $menu->getDefault();
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #307 : 03.03.2020, 15:11:15 »
draff блин, я не такой уж я внимательный джумловод  :laugh: ... спасибо)
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #308 : 07.03.2020, 20:47:19 »
Как оказалось, не всё так просто!
К сожалению, приведённый уважаемым draff код, работает некорректно в ситуации, которую я выше описал.
Т.е. если Главная — это корень каталога JoomShopping, то страница отдельного товара тоже детектится как Главная.
Может есть какие-то методы определения корневой страницы JoomShopping?
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #309 : 08.03.2020, 08:27:43 »
Т.е. если Главная — это корень каталога JoomShopping, то страница отдельного товара тоже детектится как Главная.
Может есть какие-то методы определения корневой страницы JoomShopping?
Думаю лучше дополнить проверку еще и на вьюшку карточки товара
 п.с. Проверяйте
Код
<?php 
$app  = JFactory::getApplication();
$controller   = $app->input->getCmd('controller');
$menu = JFactory::getApplication()->getMenu();
if($menu->getActive() == $menu->getDefault() &&  $controller != 'product') {
echo "Main page , not product";
}
?>
« Последнее редактирование: 08.03.2020, 08:53:53 от draff »
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #310 : 08.03.2020, 14:45:24 »
 yes! Другое дело! Работает!
*

Biss

  • Давно я тут
  • 994
  • 101 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #311 : 09.03.2020, 00:12:06 »
А разве контроллнюер не доступен сразу в меню дефаульт, его нужно определить? Я не пробовал, просто спрашиваю.
*

tigra-uki

  • Давно я тут
  • 560
  • 11 / 0
  • Joom'лiстка
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #312 : 27.06.2020, 23:40:36 »
Joomla 3.9.14, JoomShopping 4.18.3, шаблон Helix3
Установил модуль "Фильтр" - вывел в позицию "right".
Нужно запретить вывод в карточке товара.
Не получается.

Да, что-то с Helix3 условия модулей через код в шаблоне не работают тоже...
Если у кого-то появится решение, будет интересно его узнать  ;)
(JoomShopping4.18.4, Joomla 3.9.19)

Код
$input = JFactory::getApplication()->input;
$option = JRequest::getVar('option', null);
$controller = JRequest::getVar('controller', null);
или
Код
$input = JFactory::getApplication()->input;
$option = $input->getCmd('option', 'com_jshopping');
$controller = $input->getCmd('controller', 'product');
+
Код
<?php if ( $this->countModules('позицияМодуля') && $option == 'com_jshopping' && $controller !='product' ) : ?>
<jdoc:include type="modules" name="позицияМодуля" />
<?php endif; ?>

в коде шаблона в index.php не помогло


upd: решено в  теме (Убрать модуль в карточке товара JoomShopping)
ответ от draff
« Последнее редактирование: 28.06.2020, 22:48:37 от tigra-uki »
Слишком сконцентрированное внимание необходимо разбавлять действием.
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #313 : 30.07.2020, 20:36:50 »
Товарищи, нет ли способа определять Главную страницу Магазина?
Это НЕ одно и то же, что главная сайта.
У меня сейчас проблемка... Главная сайта является корнем магазина (т.е. главной страницей Joomshopping).
Из-за этого многие вещи работают неправильно, т.к. я не могу достоверное определить главную.

Условие
Код
if ($menu->getActive() == $menu->getDefault() && $controller != 'product' && $controller != 'category')
не определяет главную, т.к. контроллер определяет её как 'category' и исключает из условия

Условие
Код
if ($menu->getActive() == $menu->getDefault() && $controller != 'product')
определяет ЛЮБУЮ категорию, включая вложенные, как главную.

Какая-то безысходность...
Нет ли условия вроде
Код
if ($menu->getActive() == $menu->getDefault() && $controller == 'home')
?
 !!!???!!!

P.S.: и самое для меня непонятное, это почему
Код
if ($menu->getActive() == $menu->getDefault())
не срабатывает? У нас же только один пункт меню установлен по умолчанию, и другого быть не может  *ОХ-Х-Х*
« Последнее редактирование: 30.07.2020, 20:43:09 от goga_pgasovav »
*

nevigen

  • Moderator
  • 10436
  • 863 / 25
  • http://n*****n.com
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #314 : 30.07.2020, 20:43:10 »
у главной категории ИД=0
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

kit2m2

  • Живу я здесь
  • 3269
  • 268 / 0
  • Беру сайты на полное сопровождение
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #315 : 30.07.2020, 20:44:23 »
Что работает неправильно? Модули? Если делаете Главной = Главную магазина, то все будет тянуться с главной, так как контроллер один. И для Главной магазина и для категорий.

Чтобы отвязать/привязать модули, нужно создавать в скрытом меню ссылки на категории (хотя бы на верхний уровень). И чтобы не было дублей не вкладывайте ссылки на категории в ссылку на Главную. Все ссылки должны быть одного уровня.
Расширения для JoomShopping | Расширения на заказ | Сайты и магазины под ключ: Дизайн, Верстка, Программирование, СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ и JoomShopping 5+
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #316 : 31.07.2020, 13:00:26 »
у главной категории ИД=0
Спасибо за наводку! Очень любопытно получилось.
Сработал вот такой код:

Код
if ($menu->getActive() == $menu->getDefault() && $controller == 'category' && $category_id == null) {

Т.е. именно 'null' а не '0'. Выходит у корневой категории ID нет вообще?
Как бы там ни было, благодарю за помощь. Вот теперь всё корректно работает.

kit2m2
Я уже понял, что всё тянется от главной, а раз это главная магазина, то распространяется на всей вложенности.
Спасибо за разъяснения.
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #317 : 24.08.2020, 13:17:36 »
Товарищи, ещё один любопытный вопрос возник.
Как определить уровень вложенности категории?

Вот такое дерево допустим:

Магазин
- Категория 1
-- Подкатегория 1
-- Подкатегория 2
- Категория 2

Как узнать, есть ли у подкатегорий родители?

Заранее всем спасибо!  ::)

P.S.: задал вопрос именно здесь, т.к. в зависимости от условия (родительская или дочерняя категория), хочу применять класс к общему контейнеру каталога или выводить какие-то модули.

P.S.2: Сам на свой вопрос отвечу
В шаблоне вывода категории есть условие
Код
 if (count($this->categories))
Это, так сказать, метод «от противного», т.е. мы смотрим, есть ли у текущей категории дочерние категории.
Не совсем то, что я хотел узнать, но этого достаточно для моих целей.
« Последнее редактирование: 24.08.2020, 13:42:23 от goga_pgasovav »
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #318 : 04.11.2020, 15:14:23 »
Не подскажите если шаблон  helix?
Через Advanced Managment Module  пробовал через регулярки, срабатывает когда только отключен ЧПУ. Видит только когда явно URL выводится
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #320 : 04.11.2020, 16:59:24 »
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #321 : 05.11.2020, 13:57:40 »
draff подскажете если helix шаблон?
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #322 : 05.11.2020, 16:56:48 »
draff подскажете если helix шаблон?
Это в плагине, при обновлении перепишется
Спойлер
[свернуть]
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #323 : 05.11.2020, 17:46:44 »
Это в плагине, при обновлении перепишется
Еще вариант, скрывает с помощью изменения классов
Спойлер
[свернуть]
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #324 : 06.11.2020, 15:31:37 »
Спойлер
[свернуть]

По этому ругнулся отсутмвует класс  helix3

вот полностью код modules.php
Спойлер
[свернуть]
« Последнее редактирование: 09.11.2020, 12:38:36 от Dolphin4ik_1 »
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #325 : 06.11.2020, 15:37:37 »
Еще вариант, скрывает с помощью изменения классов
Спойлер
[свернуть]

Здесь не совсем понял куда вставлять.
*

Lemonez

  • Захожу иногда
  • 212
  • 2 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #326 : 28.11.2020, 04:27:39 »
Подскажите, пожалуйста.
Вывожу модуль списка категорий магазина в позиции left с помощью Advanced Module Manager PRO, указал включить компонент JoomShopping.
Отключил вывод модуля в корзине с помощью исключить /cart/ (страница корзины).
Как с помощью Advanced Module Manager PRO отключить показ этого модуля на главной странице каталога, чтобы он отображался только в списках товаров?
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #327 : 28.11.2020, 04:31:13 »
Вам проще - его там вызвать самому только там где Вам нужно !
Это 4 строки кода !

Код
$doc = \Joomla\CMS\Factory::getDocument();
$renderer = $doc->loadRenderer('modules');
echo $renderer->render('position' , ['style' => 'xhtml'] , null);
position - замените на позицию которую Вы указали в настройках модуля ! )
« Последнее редактирование: 28.11.2020, 21:29:40 от nevigen »
*

Lemonez

  • Захожу иногда
  • 212
  • 2 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #328 : 28.11.2020, 10:55:30 »
$doc = \Joomla\CMS\Factory::getDocument();
$renderer = $doc->loadRenderer('modules');
echo $renderer->render('position' , ['style' => 'xhtml'] , null);
Все бы замечательно, вставляю в category_default.php, чтобы выводил в списке товаров. Но он выводит именно в списке товаров,  а надо чтобы выводил в позиции шаблона left т.е. сбоку от списка товаров. Как это можно сделать?
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор draff

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

Автор kit2m2

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

Автор vgromov

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

Автор falur

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

Автор v42bis

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