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

epson950

  • Захожу иногда
  • 119
  • 2 / 1
Методы доставки.
« : 14.10.2010, 18:25:24 »
Спасибо. И еще вопросик. у меня есть две доставки, обычная (100р) и срочная(200р), как сделать чтобы обычная доставка зависила от общей стоимости товара (т.е. больше например 1000р была бесплатной), а срочная не зависила?
и второй вопрос- как сделать чтобы при добавлении товара в корзину меня не перебрасывало в эту корзину, а оставляло в выборе товара?
« Последнее редактирование: 14.10.2010, 18:30:51 от epson950 »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Методы доставки.
« Ответ #1 : 15.10.2010, 09:57:51 »
Спасибо. И еще вопросик. у меня есть две доставки, обычная (100р) и срочная(200р), как сделать чтобы обычная доставка зависила от общей стоимости товара (т.е. больше например 1000р была бесплатной), а срочная не зависила?

Для доставки в настойках есть (безплатно от сумы....) - для всех видов доставки. Сделать точно как вам нужно надо в коде ковырять.
components\com_jshopping\tables\shippingmethodprice.php
например
function calculateSum(){

if ($this->shipping_method_id==1 && $cart->getSum()>1000) return 0;

}
*

glebov

  • Захожу иногда
  • 62
  • 0 / 1
Методы доставки.
« Ответ #2 : 24.11.2010, 16:51:39 »
У меня почему-то не получилось с вариантами доставки.
Я ввёл несколько вариантов (самовывоз, курьером, посылка по России, посылка по миру), но у меня почему-то отображался только один последний вариант, хотя я проверил, что все поля были заполнены и включена "публикация". Если я его отключал, то вообще ничего не выводилось.

Ещё я открыл, что если в вариантах оплаты забыть заполнить поле "Псевдоним", то вариант появляется для выбора, но кнопка "далее" с ним не нажимается (это, конечно, вопрос моей внимательности при заполнении).

В результате я всё сделал на основе "вариантов оплаты", где прописал все комбинации оплаты и доставки.

Код
define('_JSHOP_STEP_ORDER_3', 'Способы доставки и оплаты');

Не хватает зависимости между вариантами доставки и вариантами оплаты.
Например, доставка курьером и доставка посылки по России может оплачиваться как при получении, так и по предоплате.
А доставка по миру делается только по предоплате.


Планируется какая-нибудь интеграция с платёжными системами?
Чтобы клиент мог сразу оплатить счёт Яндекс-деньгами или банковской картой.
Это очень нужно для предоплаты.

Ещё нужна функция, чтобы способ оплаты мог влиять на общую скидку.
Например, за предоплату при доставке по России, я хотел бы давать 5%-ную скидку.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Методы доставки.
« Ответ #3 : 24.11.2010, 19:35:22 »
Цитировать
У меня почему-то не получилось с вариантами доставки.
Я ввёл несколько вариантов (самовывоз, курьером, посылка по России, посылка по миру), но у меня почему-то отображался только один последний вариант, хотя я проверил, что все поля были заполнены и включена "публикация". Если я его отключал, то вообще ничего не выводилось.

Задайте цену и страны.
*

glebov

  • Захожу иногда
  • 62
  • 0 / 1
Методы доставки.
« Ответ #4 : 25.11.2010, 07:33:02 »
Задайте цену и страны.

Всё было указано. У последнего варианта - все страны кроме России.
У остальных вариантов - только Россия.

У самовывоза цена равна нулю.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Методы доставки.
« Ответ #5 : 25.11.2010, 09:54:01 »
Всё было указано. У последнего варианта - все страны кроме России.
У остальных вариантов - только Россия.

У самовывоза цена равна нулю.

Не понимаю - должно работать. дайте доступ посмотрю.
*

glebov

  • Захожу иногда
  • 62
  • 0 / 1
Методы доставки.
« Ответ #6 : 25.11.2010, 10:04:48 »
Не понимаю - должно работать. дайте доступ посмотрю.

кинул в личку
*

glebov

  • Захожу иногда
  • 62
  • 0 / 1
Методы доставки.
« Ответ #7 : 25.11.2010, 10:23:26 »
Для Вас я отключил варианты оплаты и включил варианты доставки.

Хотелось быстрее вернуться на рабочий вариант, т.к. это действующий магазин.
Очень жду!
Спасибо!


UPD 12:00

От Вас нет ответа - настройки вернул обратно.
Доступ пока оставил.
« Последнее редактирование: 25.11.2010, 12:02:44 от glebov »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Методы доставки.
« Ответ #8 : 25.11.2010, 14:36:06 »
Непонимаю. Все работает.

*

glebov

  • Захожу иногда
  • 62
  • 0 / 1
Методы доставки.
« Ответ #9 : 25.11.2010, 15:07:19 »
Непонимаю. Все работает.


И я не понимаю... У меня по-прежнему отображается только один вариант.
Проверял на 2-х компьютерах в Firefox и в IE

*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Методы доставки.
« Ответ #10 : 25.11.2010, 15:41:54 »
Посмотрите внемательно. Какая страна.
*

glebov

  • Захожу иногда
  • 62
  • 0 / 1
Методы доставки.
« Ответ #11 : 25.11.2010, 15:47:34 »
Страна во всех не отобразившихся пунктах  -  Russian Federation

И я не менял настроек.
Т.е. получается, что у Вас отображаются все варианты, а у меня нет.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Методы доставки.
« Ответ #12 : 25.11.2010, 15:51:59 »
Невозможно. Киньте мне логин, пароль - вашего юзера.
*

glebov

  • Захожу иногда
  • 62
  • 0 / 1
Методы доставки.
« Ответ #13 : 25.11.2010, 15:55:05 »
Я проверял как с администраторской регистрацией, так и без регистрации.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Методы доставки.
« Ответ #14 : 25.11.2010, 17:09:58 »
Я ище раз протестил. Без регистрации. Все работает.

Сделайте скриншоты всех страниц.
*

strannik-yura

  • Давно я тут
  • 511
  • 44 / 1
  • :)
Методы доставки.
« Ответ #15 : 25.11.2010, 17:19:36 »
Я ище раз протестил. Без регистрации. Все работает.

Сделайте скриншоты всех страниц.


я думаю проще будет разобраться с помощью программы TeamViewer 5
*

glebov

  • Захожу иногда
  • 62
  • 0 / 1
Методы доставки.
« Ответ #16 : 26.11.2010, 11:15:18 »
Я ище раз протестил. Без регистрации. Все работает.

Сделайте скриншоты всех страниц.


У меня всё по-прежнему.
С регистрацией или без.

http://b0.imgsrc.ru/g/glebov/7/20743777AMx.jpg
http://b0.imgsrc.ru/g/glebov/8/20743778xXd.jpg
http://b0.imgsrc.ru/g/glebov/9/20743779vTQ.jpg
http://b0.imgsrc.ru/g/glebov/0/20743780vFT.jpg
http://b0.imgsrc.ru/g/glebov/1/20743781aLZ.jpg
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Методы доставки.
« Ответ #17 : 26.11.2010, 12:11:51 »
Страна Аустрия!

Я раньше спрашивал
Цитировать
Посмотрите внемательно. Какая страна.
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
Методы доставки.
« Ответ #18 : 26.11.2010, 14:13:51 »
все, разобрался сам... :)
« Последнее редактирование: 26.11.2010, 19:28:56 от dragon4x4 »
*

ars-vita

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Re: Методы доставки.
« Ответ #19 : 04.12.2011, 17:05:04 »
Цитировать
Не хватает зависимости между вариантами доставки и вариантами оплаты.
Например, доставка курьером и доставка посылки по России может оплачиваться как при получении, так и по предоплате.
А доставка по миру делается только по предоплате.
Поддерживаю вопрос. В моем случае есть три вида доставки: Стандартный, Экспресс и Самовывоз. Стандарт и Экспресс оплачиваются банковским переводом или наличными курьеру, а Самовывоз соответственно оплачивается в магазине. Как сделать, чтобы в зависимости от выбранного способа доставки были доступны только соответствующие способы оплаты?
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Re: Методы доставки.
« Ответ #20 : 16.12.2011, 02:04:51 »
Для доставки в настойках есть (безплатно от сумы....) - для всех видов доставки. Сделать точно как вам нужно надо в коде ковырять.
components\com_jshopping\tables\shippingmethodprice.php
например
function calculateSum(){

if ($this->shipping_method_id==1 && $cart->getSum()>1000) return 0;

}
Уважаемый victorantoniak подскажите пожалуйста, какую часть кода нужно заменить?
*

srpski

  • Новичок
  • 3
  • 0 / 0
Re: Методы доставки.
« Ответ #21 : 16.12.2011, 10:58:21 »
Здравствуйте!
Помогите люди добрые :)
Мне нужно сделать так, чтобы сначала был выбор типа доставки, а потом уже адрес счета (если это доставка например почтой). То есть если человек выбрал выриант Самовывоз, то нафик ему заполнять информацию о доставке. Как такое реализовать? Спасибо заранее
*

motosimak

  • Захожу иногда
  • 54
  • 1 / 0
Re: Методы доставки.
« Ответ #22 : 07.01.2012, 20:18:39 »
Присоединюсь к последнему вопросу, у меня один вариант доставки курьером, и 7 вариантов самовывоза, как можно разграничить например, чтобы при выборе пункта самовывоз человек не заполнял информацию о доставке. 
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Методы доставки.
« Ответ #23 : 07.01.2012, 21:17:24 »
А я вот вообще думаю. Зачем разносить по разным шагам форму корзины ?
Может проще сделать ее аккордионами ? На 1 странице ?

Чтобы человек мог сразу выбирать и доставку и способ оплаты и все все.
А последней страницей сделать типа суммари, чтобы свести все данные и покупатель их просто подтвердил кнопкой "ЗАКАЗАТЬ" ?
Типа как на скрине Вид корзины
К сожалению папка заполнена не могу сюда прикрепить скрин :(
« Последнее редактирование: 07.01.2012, 21:28:46 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

BaevAS

  • Захожу иногда
  • 116
  • 1 / 0
  • Время проведенное на рыбалке, в счет жизни не идет
Re: Методы доставки.
« Ответ #24 : 07.01.2012, 23:58:48 »
Присоединяюсь весь процесс оформления заказа на одной странице ооочень удобно!
*

motosimak

  • Захожу иногда
  • 54
  • 1 / 0
Re: Методы доставки.
« Ответ #25 : 08.01.2012, 01:21:12 »
Если такое реализуете, будет лучший магазин на Joomla:), кстати, где найти шаблоны для JoomShopping, а то кнопки после описания не прикольно, лучше справа в верхней части рядом с описанием, как в ecwidе
*

motosimak

  • Захожу иногда
  • 54
  • 1 / 0
Re: Методы доставки.
« Ответ #26 : 08.01.2012, 01:27:07 »
Может проще сделать ее аккордионами ? На 1 странице ?

Чтобы человек мог сразу выбирать и доставку и способ оплаты и все все.

Правда при таком раскладе, все равно остается вилка, если человек выбирает пункт самовывоз, то заполнять графу доставка не надо, а если выбирает доставку, то надо,  клиенты разные бывают, и могут выбрать доставку, но ничего не заполнить... тут бы еще условие добавить если самовывоз, то доставка не заполняется...
*

sergoguga

  • Давно я тут
  • 896
  • 70 / 8
  • www.mpbox.ru
Re: Методы доставки.
« Ответ #27 : 08.01.2012, 11:17:32 »
А я вот вообще думаю. Зачем разносить по разным шагам форму корзины ?
Может проще сделать ее аккордионами ? На 1 странице ?
это простым копипасте и правкой-версткой не обойтись... в самое сердце кода лезть придется.... не? ))) да и роботам-спамерам проще будет липовые заказы ВАМ в базу заносить)))
что, такие уж у вас клиенты ленивые? ))) или Вы стараетесь за них думать? стандартная ошибка....... вы им дайте выбор и все а думать не надо, неее! )))
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!
*

motosimak

  • Захожу иногда
  • 54
  • 1 / 0
Re: Методы доставки.
« Ответ #28 : 08.01.2012, 12:25:48 »
На VM 2.0 такое же реализовано...
Мне вообще на данный момент как то нужно сделать, чтобы можно было поменять местами способ доставки и адрес счета, т.к пункты самовывоза будут преобладать над курьерской доставкой, если это реализуется уже супер будет...
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Методы доставки.
« Ответ #29 : 08.01.2012, 13:07:13 »
это простым копипасте и правкой-версткой не обойтись... в самое сердце кода лезть придется.... не? ))) да и роботам-спамерам проще будет липовые заказы ВАМ в базу заносить)))
что, такие уж у вас клиенты ленивые? ))) или Вы стараетесь за них думать? стандартная ошибка....... вы им дайте выбор и все а думать не надо, неее! )))
Абсолютно не связанные вещи. Никто за покупателя не думает. У него просто вся картина с необходимыми выборами перед глазами. Да и что тут думать ? Куда доставлять ? или как платить ? Серьозный мыслительный процесс для покупателя.. надо как минимум 30 минут перед монитором провести, чтобы решить нал или карта.. и что лучше доставка или самому приехать ?

Просто когда оно все на 1 странице, все наглядно и удобно. А вот то что в самое сердце лезть. это да правда.. потому и ставится вопрос разрабам. Чтобы в стоковые версии легло решение. Если чесно, то доработки в ордере нужны по любому. Кнопка сохранения изменнного кол-ва в корзине не очень понятна для потребителя. Выбор последовательности что первичней для покупателя/продавца Доставка или Оплата, зависимости Доставки от Оплаты. Например если кто-то выбрал нал, то некоторые магазины могут его принимать только в офисе.... В Украине например запрещена доставка медикаментов (маразм.... но как есть). Или наоброт при выборе доставки нужные варианты оплаты (как уже писалось выше). Доставка и Оплата на 1 странице в 2 колонки. Выбор одного варианта опции обеспечивает автоматический фильтр другой. Например при выборе Оплата налом, остаются только доступные варианты доставки, а при выборе Самовывоз, выпадающий список точек самовывоза и в колонке Оплата оставшиеся варианты оплаты. Вот как то так.
Кстати можно прицепить возможность выбора даты доставки ;) Если человеку удобно получить это не завтра, а через неделю например на ДР друга/жены/ребенка....
Возможность дjбавления картинок с лого для вариантов доставки о оплаты, тоже нужный моментик.

А насчет роботов... ну а кто мешает прикрутить КАПЧУ, которая итак нужна, по любому, для тех кто покупает без регистрации ;) не? ;)
А идея оформления заказа на  странице не нова... а взята с ХайкШопа. Причем некоторые моменты по Админке там реализованы немного удобней, но не нашел нужных модулей, как в ЖШ, фильтра, ласт продакт, ТОП-продакт и т.д.
« Последнее редактирование: 08.01.2012, 13:24:33 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль доставки Сдек или Яндекс

Автор Preview

Ответов: 4
Просмотров: 7491
Последний ответ Сегодня в 19:11:06
от nevigen
Расчет стоимости доставки в JoomShopping 3.12.3

Автор teanin

Ответов: 17
Просмотров: 12284
Последний ответ 23.04.2023, 11:55:30
от tigra-uki
Плагины доставки для Польши

Автор Alex_gs

Ответов: 1
Просмотров: 2181
Последний ответ 21.03.2023, 14:36:37
от kit2m2
Стоимость заказа без стоимости доставки

Автор Alex_gs

Ответов: 3
Просмотров: 2683
Последний ответ 17.01.2023, 15:04:06
от kit2m2
Аддон доставки Почта России по API

Автор sergeytolkachyov

Ответов: 4
Просмотров: 3498
Последний ответ 22.06.2022, 09:54:30
от sergeytolkachyov