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

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Привет!

Такой вопрос:

При создании компонента можно столкнуться с небольшой проблемой - добавлением поддержки категорий в компонент, но к счастью Joomla дает удобную возможность использовать родные категории у себя в расширении, т.е использовать встроенное расширение com_categories для конкретного компонента...

Добавить в компонент поддержку категорий не сложно, но вот проблема, как добавить стандартную категорию "uncategorised" в компонент?
Во все стандартные компоненты Joomla изначально добавлена одна категория "uncategorised", но когда я добавил в свой компонент, поддержку категорий, стандартная категория "uncategorised" не создалась...

Как решить проблему?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Вручную создать категорию uncategorised
*

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Цитировать
Вручную создать категорию uncategorised

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

Жду ответ умнее...
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
boomerang Вам дали простой ответ. Если вы хотите распространять свой компонент, то добавьте запись uncategorised в install.component.sql компонента или вставляйте в install.component.php. Смотрите: Using the installer API to support package installation
Или здесь
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
О да, точно, спасибо, это сразу решило проблему, особенно у пользователя на компе...

Жду ответ умнее...
ну раз я такой тупой то пойду восвояси и не буду тут распинаться с тупыми советами и кидать готовый кусок кода как программно создавать категории в Joomla в установочном файле (
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
boomerang Вам дали простой ответ. Если вы хотите распространять свой компонент, то добавьте запись uncategorised в install.component.sql компонента или вставляйте в install.component.php. Смотрите: Using the installer API to support package installation
Или здесь
Или здесь (на русском)
*

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Т.е как я понял, необходимо в папке компонента создать скрипт, с классом com_compNameInstallerScript, в котором в нужном методе задать запросы для БД на создание этой самой категории для моего компонента?

И еще вопрос, как это реализовывалось для стандартных компонентов, например WebLinks ? У этого компонента нет вроде такого файла-скрипта установки/обновления/удаления...
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
И еще вопрос, как это реализовывалось для стандартных компонентов, например WebLinks ? У этого компонента нет вроде такого файла-скрипта установки/обновления/удаления...
Joomla при установке связывает эту категорию с компонентами.

Т.е как я понял, необходимо в папке компонента создать скрипт, с классом com_compNameInstallerScript, в котором в нужном методе задать запросы для БД на создание этой самой категории для моего компонента?
Ага. Вот здесь пример конкретного кода создания категории. Но, если Вы хотите просто добавить для своего компонента категорию Uncategorised, то Вам по идее нужно добавить запись в таблицу #_categories.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
И еще вопрос, как это реализовывалось для стандартных компонентов, например WebLinks ? У этого компонента нет вроде такого файла-скрипта установки/обновления/удаления...
а вы видели что бы этот стандартный компонент устанавливался/обновлялся/удалялся отдельно от Joomla?
*

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Joomla при установке связывает эту категорию с компонентами.
Ага. Вот здесь пример конкретного кода создания категории. Но, если Вы хотите просто добавить для своего компонента категорию Uncategorised, то Вам по идее нужно добавить запись в таблицу #_categories.

Спасибо, вроде то что нужно...

Цитировать
а вы видели что бы этот стандартный компонент устанавливался/обновлялся/удалялся отдельно от Joomla?
чтобы, вместе должно писаться в вашем случае... А вообще, ваш вопрос - оффтоп
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
чтобы, вместе должно писаться в вашем случае... А вообще, ваш вопрос - оффтоп
Уроки русского языка преподавайте на  форуме учителей по русскому языку!мой ответ хотя бы ответ на конкретный вопрос! так что кто ещё оффтопит!
и если вы считаете что другие тупее вас, как вы сказали выше, то что вы делаете тут?
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Без разборок. И не уходим от темы.

boomerang хотелось бы увидеть Ваше итоговое решение - другим будет полезно.
*

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Цитировать
Уроки русского языка преподавайте на  форуме учителей по русскому языку!
Ну просто Мега остроумно, юмор FM прям!

Цитировать
мой ответ хотя бы ответ на конкретный вопрос!
" а вы видели что бы этот стандартный компонент устанавливался/обновлялся/удалялся отдельно от Joomla? "
Это по-вашему ответ? (ОМГ)

Цитировать
и если вы считаете что другие тупее вас, как вы сказали выше, то что вы делаете тут?
Где я считаю что-то кто-то конкретно тупее меня? Если вы не понимаю значения слов, 5 класс думаю, исправит положение...

Да и вообще ваш ответ, просто никчемный:
Цитировать
Вручную создать категорию uncategorised

Зачем мне вручную создавать категорию "uncategorised" , когда я могу создать любую другую категорию с НОРМАЛЬНЫМ названием вручную? Смысл тогда категории uncategorised просто утрачивается, но вам этого не понять, мой школьный друг...

Цитировать
boomerang хотелось бы увидеть Ваше итоговое решение - другим будет полезно.
b2z, что вы имеете ввиду? Когда закончу создавать свой компонент, выложить его в какой-то из тем, и описать как создавалось?

*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Очевидно, чтобы делать компонент по канонам Joomla.
А не изобретать велосипед.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
voland Вы уверены, что это канон? Приведите доводы. Как по мне оставили для лузеров. К примеру в К-2 ее уже нет.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А какое отношение K2 имеет к разработке движка?
Можно критиковать фреймворк, вносить предложения, но есть документация и рекомендации к написанию кода, можно их конечно игнорировать - но это уже полшага к ***коду.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Приведите пример в документации где написано что при создании компонента я должен создать пустую категорию.
Зачем? Какой тайный смысл в этом заложен? Практическая польза? И почему именно uncategorised?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А структуры стандартных компонентов недостаточно?
Кстати, com_weblinks еще со старых времен приводился (и приводится) как пример написания компонента, а он использует общую систему категорий.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Пруф моего утверждения.
Цитировать
I am quite sure many 3rd party developers in the past has been using
com_weblinks as a reference on how to develop their own components.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
По вашей ссылке и по сайтам с документацией Joomla поиск uncategorised результатов и ответов не дает.
Потому убежден это оставлено для лузеров и не более. А вот вставлять никому не нужную категорию с таким именем- это да изобретать велосипед.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
http://forum.joomla.org/viewtopic.php?p=2377626
Вот, кстати темка с решениями.
Ну а если придерживаться парадигм программирования - это для лузеров, то да, наверно.

Проще делать как хочется и хаками?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Документации для внесения данных в базу данных при инсталляции компонента мы предоставили предостаточно.
Цитировать
Проще делать как хочется и хаками?
Хочется делать правильно. А правильно это не делать лишние и ненужные действия.
Надо послушать Т. С. что он ответит на заданные ему вопросы
*

boomerang

  • Захожу иногда
  • 117
  • 4 / 1
Цитировать
Приведите пример в документации где написано что при создании компонента я должен создать пустую категорию.
Зачем? Какой тайный смысл в этом заложен? Практическая польза? И почему именно uncategorised?

Все просто, когда мы создаем одиночную ссылку, например в WebLinks, если присмотреться внимательно, поле категория не является обязательным и скорее всего это не просто так... Смотреть скрин:



Оно не обязательно, т.к по дефолту, там стоит та самая категория uncategorised. Т.е если мы не сделаем эту самую категорию изначально и оставим поле категория необязательным, при создании ссылки, в списке выбора категории ничего не будет и не понятно, что за бред получиться при сохранении (т.е не понятно какой категории будет принадлежать ссылка)...

Как вариант выхода из ситуации, можно сделать обязательным поле категория, и при сохранении выдавать ошибку, потому что ни одной категории еще не создано. При этом пользователь должен выйти со страницы создания ссылки, перейти на стр-цу создания категории, создать ее, и только потом продолжить создавать ссылку и выбрать созданную категорию... Что, имхо является не очень удобным.

Как-то так...
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4

Как вариант выхода из ситуации, можно сделать обязательным поле категория, и при сохранении выдавать ошибку, потому что ни одной категории еще не создано. При этом пользователь должен выйти со страницы создания ссылки, перейти на стр-цу создания категории, создать ее, и только потом продолжить создавать ссылку и выбрать созданную категорию... Что, имхо является не очень удобным.

Как-то так...
Если вы будете создавать компонент для использования в других проектах и вам очень нужна пустая категория то воспользоватся установочным скриптом!
если для одиночного не морочить себе голову и создать вручную!
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Это ваш компонент. При неопределенной категории, по умолчанию записывайте 0.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Это ваш компонент. При неопределенной категории, по умолчанию записывайте 0.
Ну а ноль тут причем?
Если своя табличка для категории - то конечно, можно писать хоть мат, но даже в этом случае (зу как пример) - ноль используется для других целей (root category).
Ну а уж если запись будет, как желательно, в табличку __categories то надо создавать свой uncategorised
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Ну а ноль тут причем?
Если своя табличка для категории - то конечно, можно писать хоть мат, но даже в этом случае (зу как пример) - ноль используется для других целей (root category).
Ну а уж если запись будет, как желательно, в табличку __categories то надо создавать свой uncategorised
имеется ввиду что будет писаться 0 для сущности которой нужно задать категорию! в поле catid!
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
voland Я пишу свой компонент, который использует категории, и вот по умолчанию если категория не выбрана и ли не существует я записываю 0 в catid.  И вот такой подход я считаю гораздо проще и эффективнее чем вставлять затычку вида uncategorised
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Создание компонента MVC

Автор borodatych

Ответов: 36
Просмотров: 4475
Последний ответ 13.04.2015, 08:17:30
от flyingspook
Подскажите как сделать русификацию компонента)

Автор stardel

Ответов: 4
Просмотров: 6943
Последний ответ 08.04.2015, 09:08:00
от oxotnikkz
Документация по созданию компонента для Joomla 2.5

Автор Sulpher

Ответов: 74
Просмотров: 57240
Последний ответ 17.11.2014, 13:43:07
от limon142
Как использовать облачные хранилища при создание пакета расширений?

Автор Aspik

Ответов: 4
Просмотров: 1695
Последний ответ 12.09.2014, 16:57:59
от Aspik
Вывод макета компонента в расширении XML

Автор DimkaJack

Ответов: 5
Просмотров: 1522
Последний ответ 21.08.2014, 19:05:24
от DimkaJack