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

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Оповещение об оплате
« : 16.05.2013, 09:10:53 »
Господа!
После успешной оплаты указана страница, куда должны передаться данные об этой самой оплате.
Этот адрес выглядит таким образом.

Код
index.php?tmpl=component&option=com_redshop&view=order_detail&controller=order_detail&task=notify_payment&payment_plugin=rs_payment_paypal&Itemid=$Itemid&orderid=" . $data['order_id']
здесь видно, что страница динамическая с двумя переменными.

Вопрос заключается в следующем.

Где именно находится файл, который принимает ответ о проведенной транзакции. (Мне необходимо туда вставить дополнительный код). Если вбиваешь этот адрес в браузер, то он реддиректит на страницу заказов. Но ведь, код надо вставить именно туда, по адресу, указанному выше.
(Что означает tmpl сразу после index.php? )?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Оповещение об оплате
« Ответ #1 : 16.05.2013, 10:14:31 »
tmpl означает что возьмется шаблон component.php из шаблона вашего сайта! Если у вас нет такого файла в вашем шаблоне то возьмется из папки system!
слегка не понятен вопрос! если вам нужно изменить шаблон вывода то components/com_redshop/views/order_detail/tmpl/ тут ищите шаблоны вывода вида!
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Re: Оповещение об оплате
« Ответ #2 : 16.05.2013, 12:22:57 »
Если подробней, то

мне надо принять пост запрос, который отправляет робокасса в случае успешной оплаты.

А в параметрах моего пост запроса, который я отправляю на робокассу, указана эта ссылка.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Оповещение об оплате
« Ответ #3 : 16.05.2013, 16:15:35 »
Если подробней, то

мне надо принять пост запрос, который отправляет робокасса в случае успешной оплаты.

А в параметрах моего пост запроса, который я отправляю на робокассу, указана эта ссылка.
ну так в настройках же робокассы вроде указывается на какой адрес будет отправляться данные об успешной или неуспешной оплаты! на робокассе же есть вся документация с демо примерами!
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Re: Оповещение об оплате
« Ответ #4 : 16.05.2013, 19:26:48 »
Еще подробней.

Ввиду отсутствия готового плагина Redshop-Robokassa надо его или написать самому или перепилить какой-то другой.


На написание нового моих мозгов не хватает и я решил перепилить плагин Redshop-PayPal

Просто переопределил переменные в те названия, которые необходимы для отправки на робокассу и изменил адрес пост-запроса.

Теперь, коротко о Робокассе.

Робокасса, в случае успешной оплаты автоматически отправляет данные на Result.php и если скрипт, написанный на этой самой странице подтверждает, что данные соответствуют, только тогда платеж считается законченным и, здесь уже по желанию, отправляет сообщение об успешной оплате на Success.php (который мы указываем в админке робокассы).

Адрес Result.php я передаю в пост запросе сам, когда мой клиент нажимает подтверждение оплаты и происходит переадресация на робокассу.
На него и приходит ответ автоматически.

Мой вопрос заключается в следующем.

В плагине Redshop-PayPal указана ссылка, как Result.php вот эта
Код
index.php?tmpl=component&option=com_redshop&view=order_detail&controller=order_detail&task=notify_payment&payment_plugin=rs_payment_paypal&Itemid=$Itemid&orderid=" . $data['order_id']
На нее и приходит автоматический ответ с робокассы. Но ведь параметры переменных робокассы отличаются от параметров переменных PayPal, вот поэтому мне надо эти параметры поймать и переопределить.

Как мне найти этот файл, куда приходит первичный ответ робокассы, чтобы я смог там прописать необходимый код. (Если эту ссылку вбить в браузер, то происходит редирект на страницу заказов)


*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Оповещение об оплате
« Ответ #5 : 17.05.2013, 00:29:18 »
Зачем вам перехватывать этот код?! пихаете в конторллер (components/com_redshop/controller.php) новые таски, называете их как хотите! например:
Код: php
function succesPay(){
//пишете код успешной оплаты
}

function failPay(){
//пишете код неуспешной оплаты
}
они должны быть доступны по адресам:
index.php?option=com_com_redshop&task=succesPay и index.php?option=com_com_redshop&task=failPay
и в настройках Робокассы ставите эти адреса!
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Re: Оповещение об оплате
« Ответ #6 : 22.05.2013, 11:22:35 »
тут неотложные дела возникли, сразу не ответил, пардон!
В общем, Ваша подсказка помогла, все сделал, работает в норме.
Спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться