Telegram Web Link
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел 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: dot-нотация для доступа к значениям вложенных массивов

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

👩‍💻 Joomla тоже так может!
use Joomla\Registry\Registry;
$data = [
'user' => [
'name' => 'John Doe',
'email' => '[email protected]',
]
];

$data = new Joomla\Registry\Registry($data);

$name = $data->get('user.name');
dump($name);

Облегчите себе жизнь, работая с Joomla 😎.

Upd. И коллеги сразу решили дополнить:

Преимущество джумлы перед ларой в этом плане:
- можно так обращаться не только к массивам, но и к объектам и даже к json'у
- можно дополнять
- можно выполнять merge. Причём, как на весь объект, так и на отдельные его вложенности

Недостатки:
- нужно сначала создать новый объект
- нет вот такой нотации get('*.key'), т.е. чего-то похожего на array_column()

Подпишись на @joomlafeed

#joomla #разработка #php #cookbook
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Состоялся 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, маркетолог и разработчик, админ чата сообщества).
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел шаблон 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 #шаблоны
Please open Telegram to view this post
VIEW IN TELEGRAM
RegularLabs aka [Peter van Westen] дропнул lifetime подписку и переводит на сервис *Paddle* (подписочная модель).

Коротко:
🔹 Lifetime больше не поддерживается напрямую – теперь нужно раз в год бесплатно (можно и платно) продлевать подписку.

В целом ничего для LifeTime юзеров серьезного не изменилось, но раз в год нужно будет через ЛК Regular Labs бесплатно продлевать свою подписку.

- via @CB9TOIIIA 😇
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел релиз Joomla 5.3.0

Joomla 5.3 — последняя минорная версия в серии Joomla 5 перед выходом Joomla 6 осенью 2025 года.
Этот релиз сосредоточен на продуманных улучшениях, которые совершенствуют работу с CMS. От лучшей организации файлов и журналирования задач до расширенной обработки электронной почты и улучшенной доступности — Joomla 5.3 помогает администраторам и разработчикам работать более эффективно, сохраняя ваш сайт современным, безопасным и готовым к будущему.

👩‍💻 Joomla v.5.3.0. Что нового?

Улучшенные HTML-шаблоны писем. Просмотр шаблона письма теперь имеет доступ к параметрам шаблона, что позволяет лучше настраивать исходящие сообщения.
Добавлена папка "files". В Медиа Менеджере добавлена новая папка «files», которая помогает организовать не графические файлы (PDF, документы и т. д.) отдельно от изображений.
Запланированные задачи — история выполнения. Планировщик теперь ведет полный журнал выполнения задач, что упрощает мониторинг автоматизированных процессов и поиск ошибок.
Настройки текста ссылки «Подробнее» в модуле материалов. Добавлена новая опция, позволяющая администраторам сайта отображать или скрывать заголовок статьи в ссылках «Подробнее», выводимых в модуле материалов.
Улучшенная доступность. Иконки в компоненте «Контакты» теперь полностью доступны для экранных читалок, что улучшает пользовательский опыт для всех.
SEO. Роутинг: Улучшенная маршрутизация. Строгая маршрутизация и улучшенные параметры SEF URL уменьшают количество дублированного контента и ненужных перенаправлений, повышая SEO вашего сайта.
Современные события плагинов. Joomla продолжает переход к типизированным классам событий в основных плагинах, улучшая читаемость кода и поддержку в IDE (среда разработки).
Тонкая настройка прав доступа (ACL) для параметров компонентов. Теперь владельцы сайтов могут давать администраторам доступ к настройке параметров компонентов без полного доступа ко всему компоненту.
HTMLHelper::script() и HTMLHelper::stylesheet() помечены как устаревшие. Используйте WebAsset API.
Поддержка PHP 8.4. Joomla 5.3 включает важные изменения для обеспечения совместимости с PHP 8.4, помогая вашему сайту быть готовым к будущим обновлениям.

Подробнее на портале Joomla сообщества.

Подпишись на @joomlafeed
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from WebTolkRu (Sergey Tolkachyov)
👩‍💻 Рендер пользовательского поля внутри другого пользовательского поля. Joomla 5.3.

Писал ранее о том, как внутри одного пользовательского поля рендерить другое пользовательское поле. Применил для этого возможность Joomla обращаться к методам плагинов напрямую. Процитирую строчку кода из предыдущего поста:
$joomlaFieldContentPlugn->onContentPrepare('com_content.article', $fakeItem, $app->getParams());

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

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

Как меняется фрагмент кода из предыдущего поста:
// мы находимся в файле макета поля

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

#joomla #webdev #php #разработка #поля
Please open Telegram to view this post
VIEW IN TELEGRAM
Управление очередностью плагинов в Joomla 5 с помощью приоритетов обработки событий

Для разработчиков Joomla предоставляет 7 уровней приоритета выполнения плагинов. По умолчанию большинство плагинов запускаются с приоритетом NORMAL. Если вы как разработчик хотите дать возможность своим пользователям устанавливать порядок выполнения плагинов не только с помощью перетаскивания их мышкой в админке в рамках одной группы, но и с помощью параметра, то вам окажется полезной эта заметка.

Автор - участник нашего сообщества Виталий Некрасов (@vitalik_a).

Читать на Joomlaportal

#joomla #разработка #php

👩‍💻 Если у вас есть интересные и полезные материалы о Joomla - присылайте админам сообщества. Разместим, тегнем, дадим ссылку.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
WT View PDF - контент-плагин просмотра PDF для Joomla

Плагин позволяет отображать pdf файлы на сайте Joomla в виде HTML5 <object>, а так же с помощью javascript библиотеки PDF.js. В этом случае подключите её самостоятельно или используйте плагин web assets WT PDF.js. Укажите путь к файлу в шорт-коде {PDF}path/to/file.pdf{/PDF}.

Вы можете указать параметр tmpl в шорт-коде для отображения PDF с выбранным макетом. Например, {PDF tmpl=html5object}path/to/file.pdf{/PDF} . Если параметр tmpl не указан, то PDF-файл будет отображаться с помощью макета, указанного по умолчанию в настройках плагина.

Плагин предоставляет 4 макета:
- default - pdf-файл встраивается в страницу целиком с помощью библиотеки PDF.js. Требует установленного плагина веб-ассета WT PDF.js.
- bootstrap-modal - просмотр файла во всплывающем окне Bootstrap 5. Отображается кнопка, по нажатию на которую открывается модальное окно. Также внизу окна отображается прогресс просмотра текущего файла. Требует установленного плагина веб-ассета WT PDF.js.
- html5object - отображение содержимого файла с помощью HTML5 тега <object>. Этот макет не требует установки никаких дополнительных плагинов и отображает содержимое pdf файла в Joomla с помощью стандартного для браузера окна.
- uikit-modal - аналогично макету Bootstrap, но с использованием UIkit.

Также вы можете создать собственные макеты вывода в папке plugins/content/wtviewpdf/tmpl плагина Joomla.

Минимальная версия Joomla - 5.

Страница расширения
GitHub расширения

👩‍💻 Спасибо за помощь в работе над плагином участнику нашего сообщества - Виталию Некрасову (@vitalik_a).

#joomla #расширения
Please open Telegram to view this post
VIEW IN TELEGRAM
Шаблон-конструктор T4 от JoomlaArt получил совместимость с Joomla 5.3

Вышел T4 Framework v2.4.7. для создания шаблонов Joomla. Вместе с фреймворком получили обновления более 25 шаблонов студии JoomlaArt, о чём сообщается в их блоге.

Подробнее

#шаблоны #joomla
Логирование действий пользователя в Joomla. Создание плагина Actionlog.

На вашем сайте, внутреннем портале, в интернет-магазине кто-то что-то сделал, а потом всё сломалось: сайт открывается криво (или не открывается вообще?), перестали работать фоновые задачи в планировщике, установились неправильные скидки всем пользователям на все товары... Предположим, что с безопасностью у вас всё хорошо: Joomla свежая, актуальная, расширения - тоже. Да и в логах сервера и логах Joomla тоже чисто... Тогда остаётся ещё один источник информации - Лог действий пользователей Joomla. Основная его задача - помочь быстро найти кому настучать по рогам причину и устранить её.

Всё, что связано с действиями в админке - может логироваться: от обновления системы и компонентов, изменения настроек до редактирования и сохранения конкретных элементов (статьи, товары, категории и т.д.) и загрузки файлов через медиа менеджер. Нередко этот функционал помогает найти тех контент-менеджеров, кто дублирует названия товаров, создавая дубли и тем самым негативно влияя на SEO. Или же вдруг обнаруживается недозаполненная, но опубликованная карточка товара, которой не должно было быть, но она появилась. И ладно если б это был единичный случай...

Читать статью на Хабре

#joomla #разработка #php
Учимся использовать Dependency Injection Containers (DI контейнеры) в Joomla 5.

На Хабре вышла статья, рассказывающая как использовать dependency injection контейнер (DI-контейнер) в Joomla, а так же затрагивающая работу с трейтами. Она полезна всем разработчикам, работающим с Joomla.

Автор статьи - участник нашего сообщества Виталий Некрасов (@vitalik_a).

Читать статью на Хабре

#joomla #разработка #php
Reset Media Version v.2.0.0. Плагин для Joomla!

Плагин выводит кнопку, для быстрого обновления версии медиафайлов Joomla.

Простой способ обновить кэшированные CSS/JS файлы в Joomla.
При обновлении стилей и скриптов на сайте браузеры часто загружают старые версии из кэша, даже если файлы на сервере изменились. Это приводит к несоответствию отображения сайта и путанице у пользователей или клиентов.

👩‍💻 Решение проблемы
Этот плагин добавляет кнопку на главную панели управления Joomla (в группу Quick Icon), которая позволяет администратору вручную сбросить системную версию медиа-файлов, чтобы все CSS и JS ресурсы начали подключаться с новым параметром версии (?ver=...). Это принудительно обновляет кэш браузеров и CDN.

Системные требования
- Joomla >= 4.2 / 5.x
- PHP >= 7.4

Разработчик - участник нашего сообщества Артём Васильев (@kernusr)

Скачать с GitHub

#joomla #расширения #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышла новая версия плагинов для вставки VK Видео на сайт под управлением Joomla.

В новой версии полностью переписан интерфейс вставки видео. Теперь нет необходимости вставлять IFRAME с сайта VK. Достаточно вставить просто ссылку на видео.

Номер версии: 1.2.0

Плагины распространяются бесплатно.

Инструкция

Разработчик: участник нашего сообщества Владимир Егоров (@sitogon)

#joomla #вк #расширения
Please open Telegram to view this post
VIEW IN TELEGRAM
joomLab Icon Module: иконки к заголовку модуля.

Плагин позволяет добавлять иконку (изображение) к заголовку модуля. После установки плагина в модулях появляется вкладка "Иконка", на этой вкладке можно выбрать любое изображение.

Разработчик - участник нашего сообщества Александр Новиков (@pro_portal)

Страница расширения

#joomla #расширения
Обновление модуля WT Quick links v.2.3.0
Модуль позволяет создавать быстрые наборы элементов: ссылки на различные сущности на сайте Joomla: категории материалов, Virtuemart, JoomShopping, пункт меню или пользовательскую ссылку. Есть условия для исключений показа элементов списка.

Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео. Также это могут быть не только ссылки, но и список вопросов FAQ, элементы Bootstrap Tabs, Accordion и т.д.

v.2.3.0 Что нового?

- Собственные макеты для ссылок
Теперь для каждой ссылки можно указать собственный макет из папки /tmpl/sublayout/. Для использования модуля в этом режиме, необходимо выбрать макет модуля - default-sublayouts или создать собственный вариант этого макета.
- Обработка плагинами контента
Содержимое поля Дополнительный текст для ссылки теперь обрабатывается плагинами контента.
- Поле примечания
Добавлено поле примечания для ссылки. Это удобно ориентации в большой форме.
- Рефакторинг кода
Проведена чистка и улучшения кода.

Страница расширения
GitHub

#расширения #virtuemart #JoomShopping
2025/06/29 20:22:23
Back to Top
HTML Embed Code: