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

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

Статья изначально опубликована на Хабре и на сайте автора

Создание материалов Joomla с пользовательскими полями по REST API (webservice)

Может я где проглядел, но те немногие источники, с которыми я бегло знаком, в основном рассказывают о том как в принципе создать материал в Joomla 4 / Joomla 5 с помощью REST API. А про пользовательские поля ничего не сказано: как в Joomla REST API к материалу добавить ещё и пользовательские поля?

Совет по Joomla: рендер пользовательского поля внутри другого пользовательского поля

Иногда дизайнеры рисуют непростые макеты. Внешне в них выглядит всё просто и красиво. Но ты смотришь на них и думаешь: "А с помощью чего я буду реализовывать это?".

Плагин: Быстрый заказ для JoomShopping

Плагин «Быстрый заказ» позволяет клиентам оформлять покупки в 1 клик без добавления товара в корзину. Пользователь указывает имя, фамилию, телефон, email и атрибуты товара (при наличии). Система автоматически создает заказ в JoomShopping с контактами клиента и выбранными атрибутами, указывая доставку/оплату по-умолчанию из настроек плагина.

Совет по Joomla: программный рендер модулей

Модули порой удобно использовать в местах, которые в Joomla не всегда предназначены для этого 😀. Например, в переопределениях макета. Из материала делаем посадочную страницу: часть инфы находится в самом материале, часть - в полях, а часть удобно вывести модулем. При этом модуль этот должен находиться между телом материала и данными из пользовательских полей.

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

В Joomla 5 плагины подписываются на события с помощью интерфейса Joomla\Event\SubscriberInterface в нём всего один метод — getSubscribedEvents(), который должен вернуть массив соответствий событий, которые будет прослушивать этот плагин и их обработчиков.

E-mail шаблоны Joomla 5: добавление и просмотр своих переменных

В Joomla 5 появились настраиваемые email-шаблоны, как системные, так и сторонних компонентов. Их нельзя (пока что) добавить самостоятельно, они добавляются расширениями при установке. Но их можно отредактировать в Система - Шаблоны - Шаблоны писем. В настройках шаблонов писем (кнопка настроек компонента в верхнем правом углу) мы выбираем формат писем текст или HTML. Тогда становятся доступны настройки макетов шаблонов писем Joomla. Эти глобальные параметры можно переопределить в каждом конкретном email-шаблоне. Таким образом для каждого из email-шаблонов можно указать свою вёрстку и настройки логотипа.

Собственные макеты вывода для пользовательских полей Joomla

Мы привыкли использовать механизм переопределения макетов Joomla: скопируй нужный тебе файл макета в папку html шаблона и твори там что хочешь.

Триггеры ядра 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!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

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

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

Свернуть

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

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

Видео

Форум о Joomla