Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

ELLE

  • Глобальный модератор
  • 4506
  • 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 »
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #330 : 28.11.2020, 13:42:02 »
И все таки, я думаю, что с помощью Advanced Module Manager PRO можно включить отображение модуля в позиции шаблона ТОЛЬКО на странице списка товаров и больше нигде. Но не знаю как это реализовать...
В принципе, и с вставкой кода тоже не получается: код вставляется в шаблон категории, соответственно и выводится модуль в категории, в позиции component. А надо, чтобы он выводился в позиции шаблона (left).
Правильно будет спросить: как мне включить позицию шаблона только в списке товаров, чтобы это позиция больше нигде не отображалась (ни на главной магазина, на в товарах и т.д.)?
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #331 : 29.11.2020, 16:08:13 »
Так что там с модулем ? - Есть или нет ? -
зачем вам модуль ? Вот готовое решение для любого модуля или плагина, только условие изменить для своей задачи.
Убрать модуль в карточке товара JoomShopping
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #332 : 29.11.2020, 21:20:13 »
gartes
Спасибо! gartes уже все сделал сам. С него и решение в форум... ;)
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #333 : 30.11.2020, 09:53:12 »
зачем вам модуль ? Вот готовое решение для любого модуля или плагина, только условие изменить для своей задачи.
Да Уважаемый draff - так я и делал - но потом выползла еще одна трабла !
Когда шаблон видит что в позиции Left - у него опубликован модуль - он для него создает левую колонку - типа span3 и  под контент span9
И даже если модуль ретурнуть по app->input - то блин остается левая колонка !
Пришлось в системном плагине в методе onAfterRender - DomParser - ом - порезать этот блок left а контент блоку бутстрап в 12 поставить .. - И тогда да Все стало Ок !
В общем Lemonez - Доволен результатом ! )
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #334 : 30.11.2020, 12:42:19 »
Пришлось в системном плагине в методе onAfterRender - DomParser - ом - порезать этот блок left а контент блоку бутстрап в 12 поставить .. - И тогда да Все стало Ок !
Странные вы, вместо хака плагина Хеликс [FAQ] Условия вывода модулей в JoomShopping
И теперь при каждом обновлении Джумла, перезапишется  системный плагин, а Хеликс обновляется реже .
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #335 : 30.11.2020, 12:45:13 »
И теперь при каждом обновлении Joomla, перезапишется  системный плагин
Ну у нас он типа свой ! ))
Я про то что это не Joomla плагин !
« Последнее редактирование: 30.11.2020, 12:48:36 от gartes »
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #336 : 25.12.2020, 23:30:32 »
Доброе время суток!

Перепробовал многое: и что было озвучено здесь и это Убрать модуль в карточке товара JoomShopping и с других топиков и ... Не получается!

Озвучу сразу вводные данные - шаблон  Vina Veneno (helix Version 2.1.8) \ JS Version 4.9.2
В карточке товара хочу скрыть все что выводится в позиции "Left" а это Меню категорий, Популярные товары и тд

Беру файл шаблона \ index.php \ и размещаю код
\\ index.php?option=com_jshopping&controller=product&task=view&......... \\

За исходник беру
Спойлер
[свернуть]
И понеслась ...
Код
		<?php
$input = JFactory::getApplication()->input;
$option = $input->getCmd('option', 'com_jshopping');
$controller = $input->getCmd('controller', 'product');
?>
<?php if ( $option == 'com_jshopping' && $controller != 'product') : ?>
<jdoc:include type="modules" name="left" />
<?php endif; ?>
В результате на страницах товаров без изменений - все на месте \ на странице категории - имею дубль модулей в позиции "Left", которые размещаются либо над шапкой или под футером сайта (тут уж где именно размещу код в файле шаблона index.php 

Вопрос: что не так и где?
Может в файле Helix "\plugins\system\helix\core\helix.php" надо как-то изловчится и записать как-то ... (прошу простить, но прошу показать пример, как необходимо записать?)

Решилась ли проблема у warlocksp ведь ситуация аналогичная?

Заранее благодарен
« Последнее редактирование: 25.12.2020, 23:34:33 от darkghost »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #337 : 26.12.2020, 10:24:22 »
Может в файле Helix "\plugins\system\helix\core\helix.php" надо как-то изловчится и записать как-то ... (прошу простить, но прошу показать пример, как необходимо записать?)
Я применял два варианта в двух местах , но точно не там.
[FAQ] Условия вывода модулей в JoomShopping


*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #338 : 02.01.2021, 11:15:06 »
Я применял два варианта в двух местах , но точно не там.
[FAQ] Условия вывода модулей в JoomShopping
такое наверное сработает только для Helix3, так как для Helix .../plugins/system/helix/layout/ нет указанного файла

Какие еще есть варианты для того, чтобы убрать ...?
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #339 : 02.01.2021, 12:49:39 »
акое наверное сработает только для Helix3, так как для Helix .../plugins/system/helix/layout/ нет указанного файла
С 18 строки
Код
// OlegK
$input = JFactory::getApplication()->input;
$option = $input->getCmd('option', 'com_jshopping');
$controller = $input->getCmd('controller', 'product');
Там же ниже rows.php с 41 строки уже будет проверка на позицию и карточку товара
Код
 else
    { // OlegK
if($column->settings->name == "left" && ($option == 'com_jshopping' && $controller == 'product')) {
continue;
}
и во втором файле с 17 строки меняем класс на 12 столбцов
Код
// OlegK
if($option == 'com_jshopping' && $controller == 'product') {
$data->settings->className  = "col-lg-12 ";
}
« Последнее редактирование: 02.01.2021, 12:53:30 от draff »
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #340 : 02.01.2021, 13:33:59 »
С 18 строки
Код
// OlegK
$input = JFactory::getApplication()->input;
$option = $input->getCmd('option', 'com_jshopping');
$controller = $input->getCmd('controller', 'product');
Там же ниже rows.php с 41 строки уже будет проверка на позицию и карточку товара
........

Извините, может где-то шо то упустил, но в папке -layout- вот такие файлы




На картинке у Вас совсем иной файл, которого нет в папке -layout-

*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #341 : 02.01.2021, 14:03:24 »
Извините, может где-то шо то упустил, но в папке -layout- вот такие файлы
На картинке у Вас совсем иной файл, которого нет в папке -layout-
Судя по дате создания ваших файлов октябрь 2015 год, может быть. У меня свежие версии шаблонов.
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #342 : 06.10.2021, 21:21:28 »
Может не в этой теме, но ...
Как прописать условие, чтобы выводилось везде, кроме карточки товара?

Есть условие, которое отображает ОпенГраф только на страницах Жууумла
Код
function showPage($x = []){
return array_intersect_assoc($x,  $_REQUEST) === $x;
}
if(showPage(['option'=>'com_content'])):?>
                            <meta property="og:image" ..... 
Если прописать конструкцию типа
Код
 $option == 'com_jshopping' && $controller != 'product' 
то она не срабатывает ибо надо чтобы в карточке товара этого (meta property ... ) не было
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Мы починили поиск для JoomShopping

Автор Dimidrol-Pruper

Ответов: 101
Просмотров: 34609
Последний ответ 24.06.2024, 14:20:58
от kit2m2
Плагин - Вывод значения поля из таблицы продуктов в корзине JoomShopping

Автор draff

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

Автор kit2m2

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

Автор vgromov

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

Автор falur

Ответов: 53
Просмотров: 15622
Последний ответ 22.08.2022, 09:54:16
от kit2m2