Триггеры ядра Joomla при CRUD-операциях

CRUD - аббревиатура основных операций с данными: создание (Create), чтение (Read), изменение (Update) и удаление (Delete). Практически все действия на сайте как в админке, так и пользовательской части можно описать этими действиями. Разработчикам при создании функционала часто в какие-то моменты этих действий нужно проделать некие действия с участием данных или без них. Для этого в частности существует механизм вызова событий (Event Dispatching) и плагинов, которые на эти события "откликаются".

Совет по Joomla: использовать класс Joomla\Uri\Uri для создания URL

При построении url в коде можно собрать всё строками с конкатенацией вида

<?php
$url = $domain.'/index.php?option='.$option.'&view='.$view.'&param1='.$value1;

и для небольших строк это может быть даже и удобно. Но если параметров много или они требуют стандартизации / чистки в процессе, то уже не все так удобно и очевидно. Например, в части url может быть ведущий слеш (слеш в начале фрагмента url) и пришедший домен для запроса тоже может оканчиваться на слеш - и вот мы получаем некорректный url для запроса с двойным слешем где-нибудь в середине...

Запуск выполнения задач планировщика задач Joomla из консоли (CLI)

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

Совет по Joomla: группированные списки select с помощью HTMLHelper select.groupedlist

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

Как добавить свой таб или поле в интерфейс Joomla с помощью плагина. «Joomla way».

Задачи могут быть самые разные: поле аватара для пользователя в com_users, дополнительный таб в форму редактирования материала, поле связи одной сущности с другой и т.д. Сразу оговорюсь, что бывает и "non-Joomla way" - то есть подходы, которые не предполагаются ядром CMS, но при этом и явно не запрещаются. Сейчас речь пойдёт о традиционном. 

Разные макеты карточки товара и категории в JoomShopping

В интернет-магазине JoomShopping мы делаем свой шаблон, копируя штатный - components/com_jshopping/templates/default. Переименовываем папку с шаблоном из default во что-то своё, то же самое с components/com_jshopping/css/default.css (либо не используем вообще). И можно без проблем дальше пилить под свои нужды.

Как добавить свой повторяемый элемент интерфейса в класс HTMLHelper Joomla 4+

В API Joomla есть полезный инструмент - класс HTMLHelper. Он выводит HTML-элементы интерфейса с нужными параметрами: модальные окна, аккордеоны, табы, изображения и т.д. Для рендера мы передаём все нужные данные: заголовки окон, содержимое табов, атрибуты изображений. Плюс использования HTMLHelper в Joomla - это его универсальность, оторванность от контекста, а это значит, что его можно использовать везде. А также возможность использования логики при рендере в зависимости от вводных данных. Эта статья опубликована на Хабре и на сайте автора.

Пример рендера модального окна в Joomla 5 с Bootsrap 5 Optional sizes и Fullscreen mode.

В модальные окна удобно прятать части форм админки Joomla для того, чтобы не было длинных портянок для заполнения. Одним из способов рендера модального окна где-нибудь в макете компонента являются следующий.

Как починить пагинацию в своих расширениях для Joomla 5.1.3+. Backwards breaking changes

Это информация о возможном сломе обратной совместимости в классе Pagination Joomla 5.1.3+. Релиз 5.1.3 был связан с закрытием уязвимостей (см. Joomla 5.1.3 and 4.4.7 Security and Bug Fix Release), в нём был изменён подход к генерации ссылок для страниц пагинации. Из-за этого могут перестать работать ссылки страниц пагинации в сторонних компонентах Joomla. В компонентах ядра ошибки работы пагинации были исправлены в релизе 5.1.4.

Анатомия умного поиска в Joomla 5. Создание плагина.

Исторически в ядре Joomla существовало 2 компонента поиска: просто "поиск" и "умный поиск" (smart search). Простой поиск был в составе ещё Joomla 1.x и с тех пор существенно не менялся. Для того, чтобы этот компонент (com_search) мог искать не только в компонентах ядра нужно было написать плагин, суть которого заключалась в основном в том, чтобы отдать компоненту нужный SQL запрос и сформировать из результатов запроса объект структуры, понятной для компонента. Сам поиск по сути был SQL-запросом в базу с LIKE '%word%'. Встречались также случаи, когда с помощью плагина к простому поиску использовали поисковый движок Sphinx в Joomla. Статья изначально опубликована на Хабре и сайте автора.

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

Логотип Joomla

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

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

Свернуть

Коротко о главном в Joomla

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

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

Видео