Новости 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 Гость просматривают эту тему.
  • 104 Ответов
  • 28694 Просмотров
*

artlux

  • Захожу иногда
  • 466
  • 58 / 0
1.модуль может выводить товары в виде карусели, либо обычным видом;
2.выбирает товары из текущей категории, либо все товары, либо из выбранной категории;
3.опционально вывод текущего товара, если он есть;
4.можно указать количество для вывода, также количество вывода в строку(либо видимая часть слайдера), можно указать шаг для промотки слайдера;
5.опционально показывать цены;
6.опционально показывать кнопку купить;
7.возможность вывода товаров по производителю можно выбрать или использовать текущего;
8.возможность вывода модуля - только в детальном виде товара;
9.возможность скрывать товары которых нет на складе
10. Возможность выводить последние просмотренные товары

Почему лучше использовать модуль, вместо хака в теме (ссылка выше)
тест на 20 товарах, включаем кеш и на 426 запросов меньше в БД...

Важно! во время настройки модуля и его модификации отключаем кеш в настройках модуля!

v.1.1 стала довольно универсальной. Теперь задачи типа:
"Вывести товары в подробном виде из текущей категории и с текущим производителем";
"Вывести товары из всех категорий с текущим производителем и наоборот" и т.п.;
- решаемы с помощью данного модуля и без хаков...

идея, x-render, http://joomlaforum.ru/index.php/topic,262593.0.html

История версий
Спойлер
[свернуть]

Вопросы, предложения по улучшению, ошибки - пишем в теме.
« Последнее редактирование: 23.06.2013, 22:21:48 от artlux »
Разработка расширений: Joomla 1.5+, Bitrix 12+, Мобильные приложения для сайтов под Android (PhoneGap).
Для бонусов: Z136221252622, R242724126443, U423945028202. +79211696184(Мегафон), или плюсик в репу!
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
Гуд супер все работает, только вот гемор у меня наверное из за шаблона http://templates.yag-demo.com/joomla/free/vision/component/content/article/77-demo-contents/90-sidebar-sidebar-content
публикую модуль в позицию Main Content Bottom а он отображается не горизонтально, а вертикально.
 :( - поставил, постарался исправить и в нес в CSS
Код
.mod_rand_product { float: left; }
- вроде встало все горизонтально.

Кстати было бы хорошо размер картинкам сделать настраиваемый, а то хочется что бы они были поменьше, чем в параметрах магазина, а то ставишь например 5 товаров в строке, а они друг на друга лезут, так как в параметрах магазина стоит 200px ширина картинки, вот если бы их уменьшать в модуле или как то стилем до 120 например, тогда в строк увлезит 5 товаров

+1 в карму  :D

« Последнее редактирование: 10.05.2013, 10:54:08 от melkiialex »
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Супер. Работает отлично, то что надо. *DRINK*
Плюсище поставил.
Цитировать
кстати было бы хорошо размер картинкам сделать настраиваемый, а то хочется что бы они были поменьше, чем в параметрах магазина
Это стилями можно оформить.
« Последнее редактирование: 10.05.2013, 11:09:03 от x-render »
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
Как подскажите человеку тупому?
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Ну в стилях именно для img в этом модуле .mod_rand_product img{width:120px;}
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
Сделал, вот что показывает фиребаг
Код
<div class="mod_rand_image"> - для него поставил { width: 120px; }, а ниже идет так
<a title="Campri Waterproof JktLd30" href="/shop/index.php/ru/glavnaya/zhenskaya-odezhda/verkhnyaya-odezhda2013-04-26-15-10-47_/campri-waterproof-jktld30-detail">
<img class="featuredProductImage" border="0" alt="wj59" src="/shop/images/stories/virtuemart/product/resized/wj59_236x306.png">
и почему то все равно значение 236x306.png лидирует, а 120px не работает
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
.mod_rand_image img {width:120px !important} навсякий случай !important если другой стиль перекрывает
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
« Последнее редактирование: 30.06.2014, 00:28:38 от fsv »
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
кстати как его опубликовать, что бы он был только в товаре а не в других пунктах меню, сделать настройки модуля что бы выводил только в определенном меню не как, так как на сайте 2 меню
главная - это главная магазина и потом контакты, то есть нету каждого товара.
а щас модуль выводиться везде.
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
в модуле после
Код
if (!empty($product->prices['salesPriceWithDiscount'])) {
echo $currency->createPriceDiv ('salesPriceWithDiscount', '', $product->prices, FALSE, FALSE, 1.0, TRUE);
}

вставь
Код
if ($product->prices['discountAmount']>0) {echo $currency->createPriceDiv ('priceWithoutTax', '', $product->prices, FALSE, FALSE, 1.0, TRUE);}

и должна появится цена без скидки
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
Не хочет, а если взять код который работает у меня
Код
if ($this->show_prices == '1') {
if ($product->prices['salesPrice']<=0 and VmConfig::get ('askprice', 1) and  !$product->images[0]->file_is_downloadable) {
echo JText::_ ('COM_VIRTUEMART_PRODUCT_ASKPRICE');
}
//todo add config settings
if ($this->showBasePrice) {
echo $this->currency->createPriceDiv ('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $product->prices);
echo $this->currency->createPriceDiv ('basePriceVariant', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_VARIANT', $product->prices);
}
echo $this->currency->createPriceDiv ('variantModification', 'COM_VIRTUEMART_PRODUCT_VARIANT_MOD', $product->prices);
if (round($product->prices['basePriceWithTax'],$this->currency->_priceConfig['salesPrice'][1])!= $product->prices['salesPrice']) {
echo '<span class="price-crossed" >' . $this->currency->createPriceDiv ('basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX', $product->prices). "</span>";
}
if (round($product->prices['salesPriceWithDiscount'],$this->currency->_priceConfig['salesPrice'][1])!= $product->prices['salesPrice']) {
echo $this->currency->createPriceDiv ('salesPriceWithDiscount', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITH_DISCOUNT', $product->prices);
}
if($product->prices[salesPrice] != $product->prices[priceWithoutTax]) {
                   echo $this->currency->createPriceDiv('salesPrice', 'Цена со скидкой: ', $product->prices);
                   echo $this->currency->createPriceDiv('priceWithoutTax', 'Обычная цена: ', $product->prices);
                      } else {
                   echo $this->currency->createPriceDiv('salesPrice', 'Обычная цена: ', $product->prices);
                   echo $this->currency->createPriceDiv('priceWithoutTax', '', '');
                      }
echo $this->currency->createPriceDiv ('discountAmount', 'COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT', $product->prices);
echo $this->currency->createPriceDiv ('taxAmount', 'COM_VIRTUEMART_PRODUCT_TAX_AMOUNT', $product->prices);
$unitPriceDescription = JText::sprintf ('COM_VIRTUEMART_PRODUCT_UNITPRICE', $product->product_unit);
echo $this->currency->createPriceDiv ('unitPrice', $unitPriceDescription, $product->prices);
} ?>

и в ставить его?
Просто пытаюсь его вставить вместо
Код
if ($show_price==1){
echo'<div class="mod_rand_price">';
if (!empty($product->prices['salesPrice'])) {
echo $currency->createPriceDiv ('salesPrice', '', $product->prices, FALSE, FALSE, 1.0, TRUE);
}
if (!empty($product->prices['salesPriceWithDiscount'])) {
echo $currency->createPriceDiv ('salesPriceWithDiscount', '', $product->prices, FALSE, FALSE, 1.0, TRUE);
if ($product->prices['discountAmount']>0) {echo $currency->createPriceDiv ('priceWithoutTax', '', $product->prices, FALSE, FALSE, 1.0, TRUE);}
}
echo'</div>';
}

не работает, то ошибка, то пустая страница белая.
Сорри не селен в PHP
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Код
if ($show_price==1){
echo'<div class="mod_rand_price">';
if (!empty($product->prices['salesPrice'])) {
echo $currency->createPriceDiv ('salesPrice', '', $product->prices, FALSE, FALSE, 1.0, TRUE);
}
if (!empty($product->prices['salesPriceWithDiscount'])) {
echo $currency->createPriceDiv ('salesPriceWithDiscount', '', $product->prices, FALSE, FALSE, 1.0, TRUE);
if ($product->prices['discountAmount']>0) {echo $currency->createPriceDiv ('priceWithoutTax', '', $product->prices, FALSE, FALSE, 1.0, TRUE);}
}
echo'</div>';
}
не туда вставил
Код
if ($show_price==1){
echo'<div class="mod_rand_price">';
if (!empty($product->prices['salesPrice'])) {
echo $currency->createPriceDiv ('salesPrice', '', $product->prices, FALSE, FALSE, 1.0, TRUE);
}
if (!empty($product->prices['salesPriceWithDiscount'])) {
echo $currency->createPriceDiv ('salesPriceWithDiscount', '', $product->prices, FALSE, FALSE, 1.0, TRUE);

}
                        if ($product->prices['discountAmount']>0) {echo $currency->createPriceDiv ('priceWithoutTax', '', $product->prices, FALSE, FALSE, 1.0, TRUE);}
echo'</div>';
}
или
Код
if ($show_price==1){
echo'<div class="mod_rand_price">';
if (!empty($product->prices['salesPrice'])) {
echo $currency->createPriceDiv ('salesPrice', '', $product->prices, FALSE, FALSE, 1.0, TRUE);
}
if (!empty($product->prices['salesPriceWithDiscount'])) {
echo $currency->createPriceDiv ('salesPriceWithDiscount', '', $product->prices, FALSE, FALSE, 1.0, TRUE);

}
                        if($product->prices['salesPrice'] != $product->prices['priceWithoutTax']) {
                   echo $currency->createPriceDiv('salesPrice', 'Цена со скидкой: ', $product->prices, FALSE, FALSE, 1.0, TRUE);
                   echo $currency->createPriceDiv('priceWithoutTax', 'Обычная цена: ', $product->prices, FALSE, FALSE, 1.0, TRUE);
                      } else {
                   echo $currency->createPriceDiv('salesPrice', 'Обычная цена: ', $product->prices, FALSE, FALSE, 1.0, TRUE);
                   echo $currency->createPriceDiv('priceWithoutTax', '', $product->prices, FALSE, FALSE, 1.0, TRUE);
                      }
}
должно работать
« Последнее редактирование: 10.05.2013, 13:52:48 от x-render »
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
Без изменений.  :(

а как сделать, что бы этот модуль был только в карточке товара и больше ни в одном пункте меню его не было видно
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
не много код подправил, проверь. Сейчас нет возможности мне у себя проверять. Про вывод модуля попозже напишу.
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
Нет тоже не показывает, ладно черт с этой ценой.
Главное что бы теперь модуль был только в карточке товара и больше не где и все будет изумительно красиво  :D
*

artlux

  • Захожу иногда
  • 466
  • 58 / 0
Цитировать
а как сделать, что бы этот модуль был только в карточке

В первом сообщении написано как вставить модуль в любое место шаблона...
Код
<?
$document    = &JFactory::getDocument();
$renderer    = $document->loadRenderer('modules');
$options    = array('style' => 'noner'); //тут стиль вывода модуля, можно оставить как тут
$position    = 'rand'; //тут название позиции (ее можно задать при публикации модуля, можно просто вписать туда rand как тут)
echo $renderer->render($position, $options, null);
?>

заходите в ваш шаблон VirtueMart (Подробный вид товара и вставляете в нужное место этот код)
Разработка расширений: Joomla 1.5+, Bitrix 12+, Мобильные приложения для сайтов под Android (PhoneGap).
Для бонусов: Z136221252622, R242724126443, U423945028202. +79211696184(Мегафон), или плюсик в репу!
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
а публикацию шаблона в самой системе не делать?
и как понимаю noner - то когда просто вывод без карусели да?
*

artlux

  • Захожу иногда
  • 466
  • 58 / 0
noner - это просто стиль выцвода модуля(они у вас в шаблоне формируются)... можете так и оставить, стиль просто не будет задаваться....
Разработка расширений: Joomla 1.5+, Bitrix 12+, Мобильные приложения для сайтов под Android (PhoneGap).
Для бонусов: Z136221252622, R242724126443, U423945028202. +79211696184(Мегафон), или плюсик в репу!
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
Сделал так
Код
<?
$document    = &JFactory::getDocument();
$renderer    = $document->loadRenderer('modules');
$options    = array('style' => 'noner'); //тут стиль вывода модуля
$position    = 'main-content-bottom'; //тут название позиции
echo $renderer->render($position, $options, null);
?>
В админке отключил
но нечего не выводит.


Если же ставлю в настройках модуля в системе
опубликован, на всех страницах, и позиция main-content-bottom - то естественно он работает везде по мимо карточки товара.
*

artlux

  • Захожу иногда
  • 466
  • 58 / 0
в админке должен быть включен на всех страницах... А вот позицию задаете любую которая не используется в шаблоне
Разработка расширений: Joomla 1.5+, Bitrix 12+, Мобильные приложения для сайтов под Android (PhoneGap).
Для бонусов: Z136221252622, R242724126443, U423945028202. +79211696184(Мегафон), или плюсик в репу!
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
не хочет, причем перед кодом написал gfdgdfg - это в карточке товара показывается а вод сам модуль нет

Код
<!-- /Product Custom Fields -->
gfdgdfg
<?
$document    = &JFactory::getDocument();
$renderer    = $document->loadRenderer('modules');
$options    = array('style' => 'noner'); //тут стиль вывода модуля
$position    = 'main-content-bottom'; //тут название позиции
echo $renderer->render($position, $options, null);
?>
<!-- Related Products -->

причем если в настройках модуля в админке ставлю эту же позицию main-content-bottom - то в карточке отображается 2 раза модуль, а на страницах других 1 раз

фаил карточки находится в папке шаблона магазина, а не стандартный
« Последнее редактирование: 10.05.2013, 14:37:55 от melkiialex »
*

artlux

  • Захожу иногда
  • 466
  • 58 / 0
сделал возможность в настройках модуля задать вывод модуля в карточке товара опционально... (публикацию ставим на все страницы)

включу в следующий релиз... modules/mod_virtuemart_randcatproduct - просто с заменой файлы заливать

уже доступно в v.1.1
« Последнее редактирование: 09.07.2013, 17:42:53 от artlux »
Разработка расширений: Joomla 1.5+, Bitrix 12+, Мобильные приложения для сайтов под Android (PhoneGap).
Для бонусов: Z136221252622, R242724126443, U423945028202. +79211696184(Мегафон), или плюсик в репу!
*

melkiialex

  • Захожу иногда
  • 152
  • 0 / 0
*

artlux

  • Захожу иногда
  • 466
  • 58 / 0
Впринципе предполагал, что возникнут проблемы с вставкой модуля только в подробный вид товара...
Сейчас подумаю что еще добавить в модуль... и сделаю обновление... (пока вариант с выводом товаров одного производителя, и товаров с примерно одной ценой - как предлагали в первой теме)
Разработка расширений: Joomla 1.5+, Bitrix 12+, Мобильные приложения для сайтов под Android (PhoneGap).
Для бонусов: Z136221252622, R242724126443, U423945028202. +79211696184(Мегафон), или плюсик в репу!
*

artlux

  • Захожу иногда
  • 466
  • 58 / 0
v.1.1
- добавлена возможность выводить модуль только в детальном виде
- добавлены фильтры по производителю
- добавлена возможность указать категорию принудительно (что делает модуль универсальным)
- добавлена возможность менять шаг карусели
- сгрупированы параметры модуля
- разные полезные штуки

Для обновления модуля, заливаем файлы поверх (папка assets и tmpl - не изменялись). Если вы правили шаблон вывода модуля не позатирайте файлы :)
Разработка расширений: Joomla 1.5+, Bitrix 12+, Мобильные приложения для сайтов под Android (PhoneGap).
Для бонусов: Z136221252622, R242724126443, U423945028202. +79211696184(Мегафон), или плюсик в репу!
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
 :D Браво. Это конечно круто получилось. Полная замена стандартному "mod_virtuemart_product". Огромнейшее спасибо.
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
*

artlux

  • Захожу иногда
  • 466
  • 58 / 0
v.1.2
Добавлена возможность вывода последних просмотренных товаров
Исправлен пакет установки (не копировалась папка fields) - и скачавшие модуль молчали, неужели все догадались скопировать?

прошу добавить в FAQ
10. Возможность выводить последние просмотренные товары (решения на форуме не было).

« Последнее редактирование: 03.07.2013, 15:28:48 от artlux »
Разработка расширений: Joomla 1.5+, Bitrix 12+, Мобильные приложения для сайтов под Android (PhoneGap).
Для бонусов: Z136221252622, R242724126443, U423945028202. +79211696184(Мегафон), или плюсик в репу!
*

web11

  • Захожу иногда
  • 58
  • 1 / 0
огромное спасибо за очень нужное решение!
на vm 2.0.20b все работает как часы
*

Snake 60

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
  • Скользкий тип...
Присоединяюсь ко всем, кто поблагодарил автора и хочу сказать от себя лично большое спасибо за проделанную работу. Как дадут ЗП - скину пару бонусов ;)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Удалить псевдонимы товаров

Автор AHTEPO

Ответов: 9
Просмотров: 4403
Последний ответ 26.10.2020, 01:33:20
от gartes
Вывод товаров из под категории

Автор gm35

Ответов: 1
Просмотров: 916
Последний ответ 28.04.2020, 04:13:14
от gm35
Модуль категорий VM - несколько категорий сразу

Автор liberator

Ответов: 6
Просмотров: 999
Последний ответ 08.02.2020, 14:26:11
от liberator
[Решено] Вывод других товаров тойже категории в карточке товара

Автор x-render

Ответов: 30
Просмотров: 9035
Последний ответ 06.01.2020, 07:39:31
от Igoritaly
Модуль поиска SJ Search Pro for VirtueMart дублирует - троит результаты

Автор neGODnic

Ответов: 6
Просмотров: 3193
Последний ответ 21.08.2019, 01:24:03
от viper_demyan