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

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Создать эту тему на форуме меня надоумил цикл статей разработки компонента (переведенная статья): http://joomlablog.ru/razrabotka/406-razrabotka-rasshireniya-dlya-joomla-3-0-interfejs-administratora-i-dorabotka-koda
Суть в том, что по окончанию представленных 5 статей мы получаем современный компонент с использованием самых новых подходов разработки. Проблема в том, что этот компонент очень примитивен в плане функционала, и этот мануал не совсем подходит как пример создания многофункционального компонента.
Поэтому часть информации пришлось брать из цикла статей http://joomlablog.ru/dokumentatsiya/dlya-razrabotchika/sozdanie-komponenta-dlya-joomla-2-5 которые любезно предоставил нам Дмитрий Рекун, за что ему большое спасибо.

Лично у меня сложности возникли при попытке создать кнопки управления компонентами. Они должны были вызываться controller.model или controller.task, но создав свой контроллер в компоненте с современной MVC я обнаружил, что кнопоньки-то не работают... Вот я и решил создать тему тут, чтобы с вашей помощью собрать всю информацию до кучи о том как же все таки написать полнофункциональный компонент для Joomla 3
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Собственно вопрос как грамотно написать точку входа и систему контроллеров?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
есть на английском вроде как документация для трешки

https://docs.joomla.org/J3.x:Developing_a_MVC_Component

А что именно у вас не работает? Сильных отличий там нет от 2.x . В плане интерфейса и кнопок возможно да..
Да и кстатии, что мешает взять какой нибудь компонент от трешки (например com_content) и подсмотреть как сделано там если что то не получается?
« Последнее редактирование: 28.07.2015, 14:49:17 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
есть на английском вроде как документация для трешки

https://docs.joomla.org/J3.x:Developing_a_MVC_Component

А что именно у вас не работает? Сильных отличий там нет от 2.x . В плане интерфейса и кнопок возможно да..
Да и кстатии, что мешает взять какой нибудь компонент от трешки (например com_content) и подсмотреть как сделано там если что то не получается?
Смотрел, но у них там, на сколько я понял, старая MVC (от 2.5) осталась. Т.е. используют view.html.php вместо HTML.php, также есть общий контроллер в корневой папке, который наследуется от класса JControllerLegacy , а в примере, который я рассматривал, все эти моменты отсутствуют и функционируют немного иначе...
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Класс JControllerLegacy пришел на замену JController( также как JModelLegacy и JViewLegacy ) в трешке. view.html.php - это прослойка вида. Она так и осталась в трешке. Но возможно там и устаревшая инфа я особо не читал, так как у меня уже есть каркас на котором я пишу расширения.

Да и кстатии там же, на joomlablog, дмитрий писал статью по поводу адаптации интерфейса компонента для трешки:
http://joomlablog.ru/dokumentatsiya/dlya-razrabotchika/sozdanie-komponenta-dlya-joomla-2-5/345-adaptatsiya-vykhodnykh-dannykh-pod-joomla-3

Вы ее читали?
« Последнее редактирование: 28.07.2015, 15:43:29 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Кстати не читал :) Тоже весьма полезная статья.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Создать эту тему на форуме меня надоумил цикл статей разработки компонента (переведенная статья): http://joomlablog.ru/razrabotka/406-razrabotka-rasshireniya-dlya-joomla-3-0-interfejs-administratora-i-dorabotka-koda
Я уже отвечал в комментариях на joomlablog, отвечу еще раз тут. Описанный в этом цикле статей компонент является вариантом алтернативной реализации MVC. По сути там базовые контроллер, представление и модель. То есть Вы сами должны под себя построить MVC.

Я все же советую использовать то, что сейчас есть в CMS. Это проще, так как MVC самой CMS уже включает в себя реализацию стандартных задач, таких как: save, delete, add, edit, publish и т.п.
http://joomlablog.ru/dokumentatsiya/dlya-razrabotchika/sozdanie-komponenta-dlya-joomla-2-5 - это хороший старт и база для понимания работы компонента. По сути на данный момент MVC 2.5 и 3.x практически не отличается. Да, есть некоторые нюансы и улучшения, но все это можно посмотреть в стандартных компонентах типа com_content или com_users.

Вот в 3.6 обещают новый MVC (не знаю, насколько все будет радикально изменено). Жду этого момента и планирую начать новую серию документации по разработке компонента именно под этот новый MVC.
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
http://joomlablog.ru/dokumentatsiya/dlya-razrabotchika/sozdanie-komponenta-dlya-joomla-2-5 - это хороший старт и база для понимания работы компонента.
А Вы не могли бы перезалить архив с финальной версией компонента? А то при его установке там всё как-то некорректно выглядит (поля друг на друга налазят и т.п.)... Создается ощущение, что он кривой...
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
А Вы не могли бы перезалить архив с финальной версией компонента? А то при его установке там всё как-то некорректно выглядит (поля друг на друга налазят и т.п.)... Создается ощущение, что он кривой...
Ну так на тройке так и будет. Макеты же писались под 2.5, а там уже Bootstrap. Вот это частично решает проблему. Архив этого этапа посмотрю дома, может и остался (он не будет содержать в себе части 14, 15 и 16).
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Хорошо, спасибо!
А можете подсказать как добавлять динамические выпадающие списки?
Например есть 2 выпадающих списка, первый активен, а второй становится активен только после того как в первом выбрано какое-нибудь значение. Причем данные во втором списке должны подтягиваться в соответствии с таблицей связей в с первым селектом.
И еще хотелось бы уточнить как сделать выпадающий список со встроенным поиском?
Вообще таким образом я хочу реализовать схему зависимостей марок и моделей машин.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонент Search в Joomla 5

Автор hensler

Ответов: 4
Просмотров: 1541
Последний ответ 28.03.2025, 17:27:24
от azm1n
Расширение od jshopping categories на Joomla 5

Автор ironDiaper

Ответов: 0
Просмотров: 2060
Последний ответ 13.01.2024, 17:54:34
от ironDiaper
Формирование ссылок для компонента Joomla Tags

Автор stepan39

Ответов: 6
Просмотров: 3786
Последний ответ 05.02.2023, 15:22:13
от tweenpix
Функции доступности в Joomla 4

Автор keykeeper

Ответов: 2
Просмотров: 2204
Последний ответ 25.07.2022, 10:54:06
от keykeeper
Не могу установить языковой пакет для компонента Joomla Events Manager ((jem))

Автор Ded Magomed

Ответов: 0
Просмотров: 1766
Последний ответ 24.05.2022, 15:06:38
от Ded Magomed