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

avex

  • Захожу иногда
  • 184
  • 0 / 0
Есть сайты с полезными сниппетами для Bootstrap, хотелось бы для удобства заказчиков сделать их модулями - чтобы они не лезли в код (в случае, если сниппет вставлять html-код), а регулировали лишь настройки в админке.
Насколько будет сложным перевести сниппеты в модули, как это сделать ускоренно?
Или вообще лучше оставить все, как есть, дав только уроки, что и куда вписывать в коде?
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
Сделать модулями.
У себя в шаблоне создаете альтернативные макеты вывода нужных модулей и нашпиговываете их классами bootstrap
В некоторых случаях, полезно создать свой тип модуля в modules.php
*

avex

  • Захожу иногда
  • 184
  • 0 / 0
У себя в шаблоне создаете альтернативные макеты вывода нужных модулей и нашпиговываете их классами bootstrap
В некоторых случаях, полезно создать свой тип модуля в modules.php
Где поподробнее можно ознакомиться, как это сделать, есть ли пошаговые уроки для Joomla 3?
*

avex

  • Захожу иногда
  • 184
  • 0 / 0
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
Немного экспериментировал с модулем материалы-новости, правда давно проектом не занимался ...
Но общую идею можете посмотреть здесь: http://www.wantweb.ru/joomla-3/mod-articles-news/22-tabs-news
*

avex

  • Захожу иногда
  • 184
  • 0 / 0
fbr, у Вас там есть и другие примеры, например, модуль карусели. Но примеры рассчитаны на знающего контекст - что и куда добавлять. Если бы Вы согласились ответить на список вопросов, которые я составлю, тему можно было бы считать закрытой)
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
ну если знаю ответы, и если это не займет неделю - почему бы нет :)
*

avex

  • Захожу иногда
  • 184
  • 0 / 0
Тогда начнем)
Буду писать по пунктам, по возможности придерживайтесь их.
Работаем на примере карусели. Там (http://www.wantweb.ru/joomla-3/mod-articles-news/20-carousel-news) у Вас говорится о переименовании неких файлов, но будем считать, что создаем все с нуля.
Итак.
1. Какова структура модуля mod_carousel? Т.е., какие папки в нем должны содержаться, и какие файлы в каких папках.
Мне пока ясно только назначение файла XML, а какой код (и для чего служащий - здесь подробности снимут сразу многие вопросы, которые могут возникнуть позже) будет содержаться в:
2. carousel.php?
3. item_carousel.php?
У Вас часть бутстраповского кода карусели размещена в carousel.php (кнопки управления каруселью), а часть — в  item_carousel.php (разметка с заголовком, подзаголовком, кнопкой «подробнее» и т. д.). В связи с этим,
4. Почему Вы именно так рассовали) их код? Узнать это нужно, чтобы понять, как рассовывать код других сниппетов.
5. Как шаблонизировать этот модуль? Понятно, что нужно в папке HTML своего шаблона создать папку mod_carousel.
6. Что в ней должно быть?
7. Какой код и зачем (не в целом, а что именно будет реализовывать) в файлах этой папки?
Теперь вопрос для желающих улучшить (значит, усложнить) модуль.
8. Как сделать модуль настраиваемым с админки?
Например, таких параметров, как:
9. Выбор изображения из папки.
10. Настройка его высоты.
11. Расположение кнопок управления в том или ином месте.
12. Введение заголовка, подзаголовка изображения.
Теперь вопрос, который даже стыдно задавать), но все же:
13. В бутстрапе, в коде карусели — ни строчки php, там только разметка — div, row и т. д., так вот, почему у вас появляется код php? Разве Joomla со встроенным бутстрапом не может сама подхватить класс carousel? (Ведь, вставляя сниппет в html-код, мы тоже не пишем ничего на php).
Спасибо заранее за отнятое время. Можно отвечать не сразу, по мере возможности.
И, если что-то не спросил, просьба даже к разбирающимся, задать нужный вопрос, и/или ответить самим, добавляя новые пункты.
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
Открываете папку modules/mod_articles_news/tmpl из нее выбираете файлы default.php и _item.php, перетаскиваете их к себе в шаблон
Там переименовываете соответственно в carousel.php и _item_carousel.php
Теперь у вас появился альтернативный макет вывода модуля, который можно выбрать в настройках модуля.

Посмотрите внимательно на их структуру, перед тем как переопределять:
Первый - обертка для блока новостей из выбранной в настройках категории. Там все просто, родительский блок, внутри которого в цикле выводятся новости.
Я его немного переделал, добавил пару переменных и бутстраповских классов и получилось вот так:

Спойлер
[свернуть]
Т.е. просто смотрите html-код карусели, выделяете обертку и добавляете ее в нужный вам модуль

Второй файл - это каждая материал-новость по отдельности, модернизируем по тому же принципу ..

На первых 4 вопроса вроде ответил)) Завтра, будет время, просто прикреплю файлы - скачаете, посмотрите, останутся вопросы - подскажу

так, уже завтра)).. прикрепил
« Последнее редактирование: 28.08.2013, 00:14:52 от fbr »
*

avex

  • Захожу иногда
  • 184
  • 0 / 0
Спасибо, буду разбираться. Сделать это будет сложнее, чем предполагалось, потому что Вы рассказываете, а не отвечаете попунктно на вопросы) Понимаю, это связано с тем, что сложно опуститься до уровня незнающих.
...
А можете для лучшего понимания того, как работают и взаимодействуют файлы, папки, бд и пр. рассказать о том, какой путь проделывает наш запрос на открытие страницы с модулем карусели, начиная с момента, когда мы нажимаем у себя в браузере по ссылке на эту страницу?
Представьте запрос, как мяч) и расскажите, куда он попадает, что там с ним происходит, куда отправляют потом и т.д.  
« Последнее редактирование: 28.08.2013, 13:01:21 от avex »
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
..потому что Вы рассказываете, а не отвечаете попунктно на вопросы)..
не согласен.
Цитировать
1. Какова структура модуля mod_carousel? Т.е., какие папки в нем должны содержаться, и какие файлы в каких папках.
2. carousel.php?
3. item_carousel.php?
У Вас часть бутстраповского кода карусели размещена в carousel.php (кнопки управления каруселью), а часть — в  item_carousel.php (разметка с заголовком, подзаголовком, кнопкой «подробнее» и т. д.). В связи с этим,
4. Почему Вы именно так рассовали) их код? Узнать это нужно, чтобы понять, как рассовывать код других сниппетов.
структура такая же как и в исходных модулях. Папки и файлы вы можете самостоятельно посмотреть в modules/mod_articles_news/tmpl
Назначение файлов я объяснил

Цитировать
5. Как шаблонизировать этот модуль? Понятно, что нужно в папке HTML своего шаблона создать папку mod_carousel.
6. Что в ней должно быть?
в папке HTML нужно создать папку mod_articles_news! Копируйте название папки из первоисточника!
я написал, что в ней должно быть
Цитировать
13. В бутстрапе, в коде карусели — ни строчки php, там только разметка — div, row и т. д., так вот, почему у вас появляется код php?
php, в данном случае, это просто условия, в зависимости от которых выводится тот или иной HTML, к бутстрапу он никакого отношения не имеет, он просто его выводит

Цитировать
А можете для лучшего понимания того, как работают и взаимодействуют файлы, папки, бд и пр. рассказать о том, какой путь проделывает наш запрос на открытие страницы с модулем карусели, начиная с момента, когда мы нажимаем у себя в браузере по ссылке на эту страницу?
Представьте запрос, как мяч) и расскажите, куда он попадает, что там с ним происходит, куда отправляют потом и т.д. 

это долгая, и безумно печальная история .. )) Погуглите MVC, почитайте про sql
К теме она не имеют никакого отношения.

Для переопределения макета вывода модуля редактируем только 2 файла (если mod_custom - то 1), которые я назвал, если доп. поля то еще XML
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модернизировать модуль

Автор kurz

Ответов: 4
Просмотров: 654
Последний ответ 13.09.2022, 15:35:31
от kurz
[SP Page Builder] Модуль ajax contact в модальном окне

Автор TW-WEB

Ответов: 2
Просмотров: 3111
Последний ответ 24.02.2018, 17:34:50
от TW-WEB
Модуль авторизации OpenId

Автор greytm

Ответов: 7
Просмотров: 3266
Последний ответ 04.11.2016, 00:04:31
от KypuHa9_Hora
Как вставить модуль в контент компонента

Автор sava36

Ответов: 21
Просмотров: 18505
Последний ответ 15.06.2016, 09:55:51
от Ilja93
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 7
Просмотров: 3714
Последний ответ 12.04.2016, 19:36:55
от AlekVolsk