Управление очередностью плагинов в Joomla 5 с помощью приоритетов обработки событийДля...

Управление очередностью плагинов в Joomla 5 с помощью приоритетов обработки событийДля разработчиков Joomla предоставляет 7 уровней приоритета выполнения плагинов. По умолчанию большинство плагинов запускаются с приоритетом NORMAL. Если вы как разработчик хотите дать возможность своим пользователям устанавливать порядок выполнения плагинов не только с помощью перетаскивания их мышкой в админке в рамках одной группы, но и с помощью параметра, то вам окажется полезной эта заметка.Автор - участник нашего сообщества Виталий Некрасов (@vitalik_a).Читать на Joomlaportal#joomla #разработка #php 👩‍💻 Если у вас есть интересные и полезные материалы о Joomla - присылайте админам сообщества. Разместим, тегнем, дадим ссылку.

Рендер пользовательского поля внутри другого пользовательского поля. Joomla 5.3

Писал ранее о том, как внутри одного пользовательского поля рендерить другое пользовательское поле. Применил для этого возможность Joomla обращаться к методам плагинов напрямую. Процитирую строчку кода из предыдущего поста:

<?php
$joomlaFieldContentPlugn->onContentPrepare('com_content.article', $fakeItem, $app->getParams());

Joomla постепенно переходит от простого указания аргументов для триггеров плагинов к собственным классам событий. Это позволяет не запоминать порядок передачи аргументов класса и использовать человекопонятные методы $event->getContext(), $event->getItem() и т.д. А то в одном месте в Joomla было $article, в другом - $item, в третьем ещё как-то... Порядку больше становится.

Сегодня обновил сайт клиентов до Joomla 5.3. В ней обновили контент-плагин fields и мой финт ушами с вызовом метода плагина отвалился потому, что я передавал в нём 3 аргумента, вместо одного. И для события onContentPrepare это должен быть объект класса ContentPrepareEvent. Как меняется фрагмент кода из предыдущего поста:

<?php
// мы находимся в файле макета поля

use Joomla\CMS\Event\Content\ContentPrepareEvent;
use Joomla\CMS\Factory;

$app = Factory::getApplication();
$fakeItem = new \stdClass();
// Получаем id текущего материала из объекта Input
$fakeItem->id = $app->getInput()->getInt('id');
// {field 29} - это шорт код вставки поля с id 29 - "ассортимент проекта"
// к содержимому поля конкатенируем шорт-код для обработки
$fakeItem->text = $field->value . '{field 29}';
// Получаем объект плагина
$joomlaFieldContentPlugn = $app->bootPLugin('fields', 'content');
// вызываем метод обработки напрямую
// вместо 3-х аргументов теперь указываем один
// это объект класса ContentPrepareEvent
$joomlaFieldContentPlugn->onContentPrepare(new ContentPrepareEvent('onContentPrepare', [
            'context' => 'com_content.article',
            'subject' => $fakeItem,
            'params'  => $app->getParams(),
            'page'    => 0,
        ]));
// выводим оба поля
echo $fakeItem->text;

@webtolkru 

RegularLabs aka [Peter van Westen] дропнул lifetime подписку и переводит на сервис *Paddle*...

RegularLabs aka [Peter van Westen] дропнул lifetime подписку и переводит на сервис *Paddle* (подписочная модель). Коротко:🔹 Lifetime больше не поддерживается напрямую – теперь нужно раз в год бесплатно (можно и платно) продлевать подписку.В целом ничего для LifeTime юзеров серьезного не изменилось, но раз в год нужно будет через ЛК Regular Labs бесплатно продлевать свою подписку.- via @CB9TOIIIA 😇

Вышел шаблон Astroid Framework Version 3.2

Вышел шаблон Astroid Framework Version 3.2.0Обновление популярного шаблона-билдера Astroid для Joomla. После выхода версии 3.1.0 добавлено много улучшений.👩‍💻 Что нового?Динамический контент.Самое главное обновление - это добавление динамического контента (доступно в PRO-версии и для тестировщиков).Улучшения- Множество улушений кодовой базы шаблона и конструктора- Возможность объединить страницу «Coming Soon» с Offline-страницейОбновлено- Используйте меню Link Icon Class, если он задано. - Обновление Scss с версии 1.12 до версии 2.0.1- Обновление Bootstrap 5.3.5- Обновление локализации в связи с добавлением динамического контента- Обновление Font Awesome 6.7.2Спасибо за новость участнику нашего сообщества Ринату Кажетову (@rkazhet).Скачать с GitHub#joomla #шаблоны

Состоялся Joomla meetup. Москва.Вчера, 10 апреля 2025г. в Москве состоялся мини Joomla-митап

Состоялся Joomla meetup. Москва.Вчера, 10 апреля 2025г. в Москве состоялся мини Joomla-митап. Митап - это неформальная, некоммерческая встреча участников IT-сообщества для обмена опытом, обсуждения общих планов, действий по развитию сообщества.На этой встрече обсудили настоящее и будущее Joomla, глобальные мысли о возможном проведении Joomla Day Russia, а также менее глобальные, но от этого не менее важные и интересные - о создании Joomla User Group (JUG) - Moscow. В рамках JUG обычно проводятся регулярные встречи как оффлайн, так и онлайн или гибридного формата. Обмен опытом, мнениями, дружеская подсказка, сделанная вовремя - это Joomla User Group. Пока что ещё продумываются детали и идёт поиск места для оффлайн-встреч.👩‍💻 Для координации встреч участников сообщества в Москве был создан отдельный чат: гостиницы, станции метро, площадки для проведения мероприятий и кафе/рестораны для их продолжения - в чате Joomla Meetup Moscow. Иногда 10-15 минут личной встречи заменяют несколько часов переписки или телефонных разговоров. Если вы оказались в столице по рабочим или личным делам - пишите, вам будут рады.На фото: Владимир Елисеев @progreccor (разработчик Radical Form и др.), в середине - чета Толкачевых: Диана и Сергей (@sergeytolkachyov, расширения WebTolk, админ чата сообщества) и Владимир Сергиенко (@aixman, маркетолог и разработчик, админ чата сообщества).

Совет по Joomla: dot-нотация для доступа к значениям вложенных массивовНаткнулся на пост в одном...

👩‍💻 Совет по Joomla: dot-нотация для доступа к значениям вложенных массивовНаткнулся на пост в одном из php-шных каналов о том, как в Laravel можно использовать нотацию "точка" для доступа к значениям вложенных массивов. И тем самым упростить доступ к многомерным массивам с помощью одной строки, разделенной точками. 👩‍💻 Joomla тоже так может!

use Joomla\Registry\Registry;$data = [        'user' => [                'name' => 'John Doe',                'email' => 'john@example.org',        ]];$data = new Joomla\Registry\Registry($data);$name = $data->get('user.name');dump($name);
Облегчите себе жизнь, работая с Joomla 😎.Подпишись на @joomlafeed#joomla #разработка #php #cookbook

Вышел Phoca Cart v.5.0

Вышел Phoca Cart v.5.0.0 - компонент интернет-магазина для JoomlaХотите ли вы запустить большой интернет-магазин, небольшой интернет-магазин или просто онлайн-каталог, Phoca Cart справится с любой ситуацией. Он прост в настройке и использовании, что позволяет вам быстро и без усилий создать свой интернет-магазин на вашей системе Joomla. Phoca Cart 5 — это расширение Joomla 5, которое не будет корректно работать на Joomla 4. Расширения Phoca версии 5 обычно работают на Joomla 4, но Phoca Cart является исключением, поскольку оно использует новые современные функции Joomla 5, поэтому оно работает только на Joomla 5.Компонент развивается усилиями чешского Joomla-разработчика Яна Павелки (@phocacz).Среди разработчиков экосистемы расширений для Phoca Cart есть и некоторые отечественные, предлагающие аддоны способов оплаты для Phoca Cart.Страница расширенияСкачатьРасширения для Phoca Cart#расширения

Joomla 4 Rest API: создаем свои JSON-эндпоинты с нуляПо умолчанию Joomla отправляет ответы в...

Joomla 4 Rest API: создаем свои JSON-эндпоинты с нуляПо умолчанию Joomla отправляет ответы в формате JSON API, если запрос содержит Accept: application/json или специальный заголовок JSON API. Хотя ядро Joomla не поддерживает другие типы контента, система позволяет разработчикам добавлять дополнительные форматы для ответов.👩‍💻 Цели материала:- Получить JSON ответ от API Joomla;- Создать необходимый плагин группы webservices и API-часть компонента;- Использовать параметры модуля для моделирования данных, которые мы отправим в ответе API.👩‍💻 Что не является целью?​Обучение созданию расширений. Данное руководство предполагает, что вы уже умеете создавать расширения для Joomla. Для работы API потребуются плагин и компонент, но компонент может быть минимальным — без модели (Model), с простой административной частью.Эта статья - перевод на русский язык раздела официальной документации Joomla для разработчиков Joomla! Programmers Documentation for Joomla 5.2. Статья пригодится разработчиком, работающим с реактивными frontend- фреймворками. Перевод выполнил участник нашего сообщества Виталий Некрасов (@vitalik_a).- Читать статью на Хабре- Оригинал в документацииПодпишись на @joomlafeed#webdev #разработка #joomla #api #restapi

Joomla 5 Snippets for Visual Studio Code - коллекция сниппетов кода

👩‍💻 👩‍💻 🟰♥️ Joomla 5 Snippets for Visual Studio Code - коллекция сниппетов кода.Коллекция сниппетов кода в маркетплейсе VS Code позволит ускорить работу при разработке расширений Joomla или шаблонов. Список сниппетов:DI-контейнер- sp-toolbar - Создать объект панели инструментов- sp-config - Создать объект конфигурации- sp-language - Создать языковой объект- sp-app - Создать объект приложения- sp-input - Создать объект Input- sp-db - Создать объект базы данных- sp-object - Создание любого объекта DI-контейнера- sp-user-id - Загрузить пользователя по объекту Id- sp-user-username - Загрузить пользователя по username- sp-mailer - Создать объект Mailer- sp-user - Получить текущий объект пользователяОперации с базами данных- sp-db-query - Создание запроса к базе данных с помощью Fluent InterfaceОбработка форм- sp-form - Создать пустую форму XML- sp-listfield - Создать поле списка- sp-textareafield - Создать текстовое поле - sp-sqlfield - Создать поле SQL- sp-calendarfield - Создать поле календаря- sp-hiddenfield- Создать скрытое поле формы- sp-spacerfield - Создать поле spacer- sp-repeatablefield - Создать повторяющееся поле формы- sp-form-validate - Код проверки формыРазработка плагинов- sp-plugin-base - Создать базовый класс плагина- sp-plugin-events - Регистрация событий плагина- sp-plugin-xml - XML-файл конфигурации плагина- sp-plugin-di-provider - provider.php для плагина- sp-plugin-event - Код триггера события плагина- sp-plugin-di-service - Служба внедрения зависимостей плагиновРазработка компонентов- sp-component-controller - Базовый контроллер компонента- sp-component-model - Базовая модель компонента с CRUD- sp-component-helper - хелпер компонентаРазработка шаблона- sp-template-index - Файл index.php шаблона- sp-template-chrome - Обёртка модуля (chrome)- sp-template-override - База переопределения шаблона- sp-template-error - Страница ошибок шаблона- sp-template-header - хедер шаблона- sp-template-menu - Шаблон меню- sp-template-single - Шаблон (одностраничный?)- sp-template-single-layout-section - секция макета (одностраничного?) шаблона- sp-template-single-templateВспомогательные функции- sp-input - Обработка данных с фильтрацией типов (Input)- sp-language - Загрузка языкового файла- sp-error - Обработка и регистрация ошибок- sp-session - работа с сессиейУстановить коллекцию сниппетовПодпишись на @joomlafeed#разработка #php #webdev #vscode

Joomla-дайджест. 1-й квартал 2025 года

Joomla-дайджест. 1-й квартал 2025 года.После долгого перерыва читайте все главные новости из мира Joomla с момента выхода Joomla 5.2.0 (15 октября 2024 года) в одной статье. Но для удобства в названии ограничимся первым кварталом 2025 года. Традиционно наш дайджест обозревает новости, расширения, шаблоны и статьи из мира Joomla.Читать дайджест на ХабреПодпишись на @joomlafeed#joomla #расширения #разработка #webdev

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Свернуть

Новости портала

Новое в блогах

Видео