Форум русской поддержки Joomla!® CMS
06.12.2016, 23:56:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Разработка расширений для JoomShopping

 (Прочитано 495 раз)
0 Пользователей и 1 Гость смотрят эту тему.
32ops
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« : 08.02.2016, 19:33:47 »

Здравствуйте!
Есть желание разобраться в теме разработки расширений под JoomShopping. Появились вопросы.
1) Данные для аддона необходимо вводить в админке и хранить в базе. Т.е. нужно разрабатывать компонент. Но в то же время на  фронтэнде нужно перехватывать некоторые события и в зависимости от введенных в админке данных выполнять какие-либо действия. т.е. это уже плагин. Есть ли возможность совместить компонент и плагин в одном аддоне или нужно писать два разных?
2) Плагин будет перехватывать события JoomShopping-а. Какая группа должна быть у плагина?
<extension version="2.5" type="plugin" group="?">
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7767



« Ответ #1 : 08.02.2016, 19:43:22 »

1. у аддона есть своя таблица, и могут быть свои настройки. компонент для чего?
2. смотря какие события будете перехватывать. смотрите по коду какое вам нужно событие, и какая группа плагинов подключается при этом.
Записан
32ops
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #2 : 08.02.2016, 21:17:37 »

компонент для установки цен в зависимости от группы пользователей.
Будут добавлены 4 таблицы - типы цен, цены на товары (аналог #__jshopping_products), цены на зависимые атрибуты (аналог #__jshopping_products_attr), добавочные цены (аналог #__jshopping_products_prices) В последних трех таблицах - id, ценовые поля, id_типацен из таблицы 1. Для пользователя можно назначить тип цены (возможно для группы пользователей). Все цены для авторизованных пользователей, которым назначен тип цены должны браться из новых таблиц. Соответственно нужны средства редактирования таблиц в бэке, настройками тут не отскочить. И еще нужны плагины подменяющие цены - на фронте. Перехватывать нужно onListProductUpdateDataProduct, onAfterGetAddPricesProduct, onBeforeCalculatePriceProduct, onAfterSetAttributeActive. Все события определены в com_jshopping.
Записан
32ops
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #3 : 08.02.2016, 21:37:05 »

"смотрите по коду какое вам нужно событие, и какая группа плагинов подключается при этом."
Знать бы, что-такое эта группа событий. Это имя класса в котором вызывается $dispatcher->trigger(...)? т.е. если в class jshopProduct в одной из процедур вызывается $dispatcher->trigger('onAfterSetAttributeActive',...), то группа - "jshopProduct"?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7767



« Ответ #4 : 08.02.2016, 21:46:19 »

Соответственно нужны средства редактирования таблиц в бэке, настройками тут не отскочить.
не пойму какая разница где делать редактирование. ну компонент так компонент. хоть компонент для каждой таблицы Azn

Знать бы, что-такое эта группа событий.
это то, что JPluginHelper::importPlugin
Записан
32ops
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #5 : 08.02.2016, 21:56:29 »

это то, что JPluginHelper::importPlugin
Спасибо!
не пойму какая разница где делать редактирование. ну компонент так компонент. хоть компонент для каждой таблицы Azn
Хм, тут не понял. Как я в настройках смогу прописать что для товара с таким-то id и типом цены таким-то нужно установить price=..., old_price=...
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7767



« Ответ #6 : 08.02.2016, 22:59:01 »

вы смотрели принцип настроек аддонов? я имею в виду то, что доступно тут /administrator/index.php?option=com_jshopping&controller=addons по иконке Конфигурация для каждого аддона. там что угодно можно делать.
Записан
32ops
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #7 : 09.02.2016, 06:35:55 »

Нет, не смотрел, не знаю где найти информацию.  Иконку конфигурация не вижу. Нашел и установил аддон Addon Ask question for JoomShopping (Ajax). Зашел в опции-дополнения. Иконка только напротив удалить. Привожу часть установщика аддона, возможно тут нужно прописывать что-то:
$DataBase = JFactory::getDBO();
$DataBase->setQuery("SELECT `element` FROM `#__extensions` WHERE `element` = \"".$AddonAlias."\" AND `folder` = \"".$PluginDir."\"");
if (!Count($DataBase->loadObjectList())){
   $DataBase->setQuery("INSERT INTO `#__extensions` (`name`, `type`, `element`, `folder`, `enabled`, `access`, `protected`, `params`) VALUES
            ('JoomShopping plugin ".$AddonName."', 'plugin', '".$AddonAlias."', '".$PluginDir."', 1, 1, 0,'');");
   $DataBase->query();
}

$Addon = JTable::getInstance("Addon", "JShop");
$Addon->loadAlias($AddonAlias);
$Addon->set("name", "Addon ".$AddonName);
$Addon->set("version", $VersionAddon." (".$VersionJSh.".x)");
$Addon->set("uninstall", "/administrator/components/com_jshopping/install/addon_".$AddonAlias."_uninstall.php");
$Addon->store();
Где можно найти про принцип настроек аддона?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7767



« Ответ #8 : 09.02.2016, 11:35:04 »

Где можно найти про принцип настроек аддона?
ответы на все ваши (и будущие тоже) вопросы - в ядре ЖШ Azn в данном конкретном случае - открываете \administrator\components\com_jshopping\controllers\addons.php и смотрите по коду, что подгружается, и что происходит
Записан
32ops
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #9 : 09.02.2016, 11:41:54 »

ответы на все ваши (и будущие тоже) вопросы - в ядре ЖШ Azn
Спасибо, буду смотреть. Интересно все таки по первому вопросу: возможно ли совместить в одном расширении плагин и компонент?

Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7767



« Ответ #10 : 09.02.2016, 11:44:00 »

что такое "совместить в одном расширении"? плагин и компонент - это уже 2 разных расширения. имеется в виду установить за 1 раз?
Записан
32ops
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #11 : 09.02.2016, 12:12:34 »

Ну, наверное, установить за один раз тоже подойдет. Извиняюсь за глупые вопросы, думал может как-то можно в компоненте описать перехват событий.
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7767



« Ответ #12 : 09.02.2016, 13:04:10 »

в компоненте нельзя, это плагины. установить за 1 раз - можно, посмотрите например компонент AcyMailing, он сразу ставится с плагинами

только обратите внимание, что обсуждать эти вопросы в разделе ЖШ несколько неправильно, поскольку отношения к ЖШ они не имеют.
Записан
32ops
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #13 : 09.02.2016, 13:22:30 »

Спасибо за ответы! Буду переваривать  Grin
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet