Как добавить свой повторяемый элемент интерфейса в класс HTMLHelper Joomla 4+
В API Joomla есть полезный инструмент - класс HTMLHelper. Он выводит HTML-элементы интерфейса с нужными параметрами: модальные окна, аккордеоны, табы, изображения и т.д. Для рендера мы передаём все нужные данные: заголовки окон, содержимое табов, атрибуты изображений.
Плюс использования HTMLHelper в Joomla - это его универсальность, оторванность от контекста, возможность использования логики при рендере в зависимости от вводных данных, его можно использовать везде. Но что если нам нужно создать свой собственный класс?..
Читать статью на Хабре
#разработка #php #joomla #development
Внимание пользователям Cloudflare!
В начале ноября Роскомнадзор заброкировал шифрование заголовка SNI (Server Name Indication).
Это значит, что теперь невозможно узнать, к какому сайту происходит подключение через HTTPS. В результате многие сайты, если они используют Cloudflare, стали испытывать проблемы с доступом, т.к. сам Cloudflare неожиданно включил всем своим пользователям шифрование заголовка SNI, а для отключения нужен платный тариф.
К счастью, нашлось решение через использование API запроса к серверу Cloudflare.
В статье по ссылке все расписано и как продиагностировать и как исправить, рецепт рабочий, проверено.
https://habr.com/ru/articles/856602/
WT JShopping Cart v.1.1.0. Обновление Bootstrap 5 корзины для JoomShopping 5 и Joomla 4 / Joomla 5.
Вышла новая версия бесплатного модуля корзины для интернет-магазина JoomShopping. Модуль имеет 6 макетов вывода и позволяет вывести иконку корзины с количеством товаров, а так же список товаров в различных вариациях, включая Bootstrap 5 offcanvas (выезжающая с правого или левого края экрана).
👩💻 v.1.1.0. Что нового?
Ajax удаление и увеличение/уменьшение количества товаров JoomShopping.
В макете bootstrap5-offcanvas
добавлены кнопки удаления товаров и увеличения/уменьшения количества товаров по ajax
(без перезагрузки страницы). При этом изменяется количество товара во всех модулях страницы, включая иконки. Если с модулем работают на странице корзины JoomShopping, то так же по ajax обновляется и содержимое основной страницы.
Минимальная версия Joomla - Joomla 5.
Страница расширения
GitHub расширения
Joomla Extensions Directory
#JoomShopping
🚀 Вышел релиз безопасности Joomla 5.2.1
Это, наверное, самый необычный релиз безопасности 🙂
Из-за ошибки упаковки при сборке версии 5.2.0, новые установки 5.2.0 имели слишком слабые права доступа к файлам и папкам. В новой установке из ZIP-архива для всех файлов и папок присваивается разрешение 777, хотя должно быть 755 для папок и 644 для файлов. Слишком слабые права могут сделать установку уязвимой на шаред хостинге. Это НЕ влияет на обновления существующих сайтов до Joomla 5.2.0. В процессе обновления Joomla автоматически правильно устанавливает разрешения.
Для сайтов, созданных из проблемного пакета 5.2.0 (установка из ZIP-архива), будет выпущено автоматическое решение по обновлению прав папок и файлов в рамках регулярного релиза серии 5.x. Владельцы сайтов либо могут подождать этого релиза, либо могут обновить права вручную.
https://joomlaportal.ru/news/release-news/vyshel-reliz-bezopasnosti-joomla-5-2-1
Комплект плагинов умного поиска для Virtuemart и Joomla 4 / Joomla 5
На GitHub обнаружены плагины-провайдеры данных компонента интернет-магазина Virtuemart для штатного компонента Умный поиск. Его отличие от встроенного поиска Virtuemart заключается в индексации контента. Слова и словосочетания разделяются на токены, токенам назначается вес и в зависимости от веса токенов определяется релевантность товара запросу.
Плагины поддерживают как запущенную вручную индексацию, так и точечную переиндексацию после сохранения/публикации товара, категории или производителя.
Плагины созданы по архитектуре Joomla 4, это означает, что они должны работыть бесперебойно и на Joomla 5, а также Joomla 6, которая выйдет уже через год.
Пакет включает в себя 4 плагина, из которых 3 предоставляют данные для умного поиска:
- категории товаров
- товары
- производители
После установки необходимо включить все 4 плагина.
На странице репозитория сообщается, что пакет плагинов был успешно протестирован с Virtuemart 4.2.16 и Joomla 5.1.2.
Скачать с GitHub
#virtuemart
Вышел номер Joomla Community Magazine за октябрь 2024
Октябрьский выпуск официального журнала сообщества Joomla. Краткое содержание статей и интервью этого номера.
👩💻 Joomla 5.2: обзор новинок. Улучшения в интерактивных турах, мультиязычности, новый универсальный модуль материалов, настраиваемые e-mail шаблоны, сохранение категории в меню и другое.
👩💻 Академия Joomla: возможность для студентов внести свой вклад в разработку программного обеспечения с открытым исходным кодом. Joomla неоднократно принимала участие в Google Summer of Code, где студенты-программисты получали опыт в разработке Open Source проектов, что давало рост и студентам и Joomla. Логично предположить создание собственной Академии.
👩💻 Как создать расширение для Joomla! с помощью искусственного интеллекта. Греческий разработчик Янис Фитрос создал 7 простых расширений с помощью ChatGPT и делится своим опытом.
👩💻 Комплексный подход к оптимизации вашего веб-сайта на Joomla 5 - Серия статей. Статья содержит mp3-трек для прослушивания. Что-то новенькое в JCM...
👩💻 Инструменты для создания компонента - 4: Встроенные дополнения и некоторые инструменты настройки. Продолжение серии статей по написанию компонента для Joomla.
👩💻 Анатомия умного поиска в Joomla. Часть 1: введение. Перевод на английский статьи Сергея Толкачева (@sergeytolkachyov) о создании собственного плагина умного поиска для Joomla 5, разделенная на небольшую серию.
👩💻 Удивительные женщины в Joomla: Elisa Foltyn. Одна из серии статей, рассказывающая о женщинах-разработчиках, которые постоянно оставляют свой след в нашей любимой CMS.
👩💻 Удерживайте фокус внимания. Статья поднимает ряд вопросов о доступности сайта и контента для слабовидящих и отвечает на них.
👩💻 Краткое содержание JoomlaDay Испания 2024: Развивающееся сообщество.
👩💻 Joomla для крупных проектов: стратегии успеха и лучшие практики.
Новая серия статей об использовании Joomla в "серьёзных" "больших" проектах. Первая статья из серии описывает проект логистического гиганта GLS в Германии. Интервью с David Jardin.
Подробнее на портале сообщества Joomlaportal.ru
Подписывайтесь на новости мира Joomla на канале @joomlafeed
Calendar Filter - новый модуль для фильтрации материалов Joomla 🔭🛠
Команда NorrNext представила модуль, который позволяет фильтровать материалы в блоге категории без перезагрузки страницы (ajax) в двух режимах:
☑️ Календарь. основанный на Vanilla календарь с выбором нужной даты. Сортировка по выбранному дню.
☑️ Список. Выбор нужного месяца и выбор года для сортировки контента.
Расширение написано на новой архитектуре Joomla и будет работать на версиях 4, 5 и 6.
Страница продукта (на англ.)
Демо модуля
Заменяем устаревший метод Joomla\CMS\Table\Table::getInstance в Joomla 5.1.4.
Пост на Хабре для разработчиков от участника нашего сообщества Виталия Некрасова (@vitalik_a) о работе c классом Table (работа с таблицами базы данных) для Joomla 4 и Joomla 5. Полезен будет для тех, кто обновляет старое расширение.
Читать пост на Хабре
#joomla #php #разработка
Каждому событию Joomla — свой класс
Посты на Хабре для разработчиков от участника нашего сообщества Виталия Некрасова (@vitalik_a) о работе над плагинами для Joomla 4 и Joomla 5.
- Каждому событию Joomla — свой класс
- Заменяем устаревший метод CMSApplicationInterface::triggerEvent в Joomla 5.1.4
#разработка #php
Кто создал CMS Joomla
Небольшой экскурс в историю любимой CMS от PHP Zone.
Погрузиться в историю
Также интересные крупицы информации о Joomla можно найти в статье на сайте агентства Peppers Digital
Как событие Joomla назовёшь, так оно и триггернётся?
— Нет! Вы, конечно, можете называть события как угодно и вызывать откуда угодно, но правильно составленные имена событий не будут требовать заучивания, они как будто сами будут печататься на экране.
Как же следует именовать события в своих компонентах? — Так, чтобы они читались как полноценные предложения, а для этого надо разобраться с их структурой.
Обычное предложение состоит из подлежащего, сказуемого и дополнения.
Читать статью на Хабре участника нашего сообщества Виталия Некрасова (@vitalik_a)
#разработка #php
Подключение сторонних PHP библиотек в Joomla
PHP библиотеки удобны тем, что к ним можно обращаться из любого места Приложения: из плагина, модели компонента, модуля и т.д. В случае, если подобную задачу кто-то уже решал и оформил в виде библиотеки (и даже обновляет её) - имеет смысл подключить в свою Joomla эту библиотеку. Например, вам для разработки способа оплаты интернет-магазина нужна официальная библиотека платёжного агрегатора. Или вас устраивает официальный PHP SDK какой-нибудь CRM.
Как это сделать? - расскажет эта небольшая статья.
Читать на Хабре.
Вышел компонент XML-карты сайта JL Sitemap v2.0.0 для Joomla 5
Компонент формирует статические XML-файлы карты сайта, получая данные от плагинов для каждого поддерживаемого компонента. Есть возможность запускать генерацию карты вручную, по CRON и действиями пользователей.
v.2.0.0 Что нового?
Основная задача релиза - обновить компонент в текущем его состоянии до архитектуры расширений Joomla 4 / Joomla 5.
👩💻 Добавлено
- компонент обновлён до архитектуры Joomla 4 / Joomla 5. Успешно протестирован на Joomla 4.4.x и Joomla 5.1.x
- плагины, входящие в пакет, обновлены до архитектуры Joomla 4 / Joomla 5.
- генерация XML карты сайта работает с выключенным плагином обратной совместимости Joomla 5.
👩💻 Удалено
- Удалена поддержка Joomla 3. Данная версия компонента не установится и не будет работать на Joomla 3.
- Удалён плагин для K2.
👩💻 Исправление ошибок
В процессе рефакторинга были исправлены некоторые ошибки, в том числе и те, для которых были открыты issue на GitHub.
- Плагин Kunena. Добавлена недостающая языковая константа
- Плагин Virtuemart. Исправлена ошибка, из-за которой производители не добавлялись в XML карту сайта
Новость на Joomline.ru
Скачать
GitHub компонента
#расширения
Вышел номер Joomla Community Magazine за секнтябрь 2024
Сентябрьский выпуск официального журнала сообщества Joomla. Краткое содержание статей и интервью этого номера.
👩💻 Как сделать, чтобы шаблон Joomla выглядел как нативное мобильное приложение. Статья-мануал, рассказывающая как стандартному шаблону Joomla 4 и Joomla 5 Cassiopeia придать вид мобильного приложения.
👩💻 Кассиопея, мощный стандартный шаблон Joomla: как изменить шапку сайта с помощью CSS Grid. Даны простые примеры работы с CSS Grid, media-запросов. Один из результатов - меню шаблона Кассиопея встаёт в один ряд с логотипом.
👩💻 Joomlers Unite: Подведение итогов августовского мероприятия Pizza Bugs and Fun. Крайнее событие PDB состоялось 24 августа 2024 года, в нём приняли участие люди из Австрии, Канады, Египта, Франции, Германии, Греции, Италии, Кении, Нидерландов, Швейцарии, Великобритании и США.
👩💻 Steve Burge - человек стоящий за Joomlashack. Проекты Стива OSTraining и Joomlashack широко известны в мире Joomla. Как бывший школьный учитель решил посвятить свою профессиональную жизнь созданию качественных расширений для Joomla - в интерьвью Сержа Билона.
👩💻 Наконец-то я устранил самые досадные проблемы в управлении сайтом. В статье даются простые ответы на вопросы: как избавиться от лишних уведомлений по e-mail от Joomla? Как увидеть изменения на сайте сразу, а не с запозданием? Редактор Joomla не позволяет вставлять любой HTML несмотря на то, что я суперпользователь?
👩💻 Удивительные женщины в Joomla: Nadja Lamisch. Одна из серии статей, рассказывающая о женщинах-разработчиках, которые постоянно оставляют свой след в нашей любимой CMS.
👩💻 Шаблоны для Joomla - Эпизод 5: T3, Extendible TM, GK, YT & Plazart Frameworks. Продолжение серии статей о шаблонах для Joomla.
👩💻 Инструменты для создания компонента - Часть 3: создание компонента. Продолжение серии статей, в которой вы приступите к созданию собственного компонента.
👩💻 Пролейте немного света на ваши расширения... В статье рассказывается о том, как разработчики Joomla расширений могут разместить их в официальном маркетплейсе расширений Joomla Extensions Directory.
Подробнее на портале сообщества Joomlaportal.ru
Подписывайтесь на новости мира Joomla на канале @joomlafeed
SW JProjects v.2.1.0 - обновление менеджера цифровых проектов для Joomla разработчиков
Компонент позволяет разработчикам сайтов на Joomla вести свой собственный сервер обновлений для своих расширений Joomla (шаблонов, модулей, плагинов etc), что позволяет доносить обновления сразу всем своим клиентам. Возможность скачивания по лицензионным ключам.
👩💻Что нового?
Умный поиск. Добавлен плагин индексации проектов для компонента умного поиска Joomla. Плагин поддерживает мультиязычность, отображает иконку проекта в результатах поиска.
Исправление работы пагинации в списке версий. Релиз Joomla 5.1.3 был релизом закрытия уязвимостей. В связи с этим в механизм формирования ссылок пагинации Joomla были внесены изменения. Из-за этого перестали работать ссылки пагинации в списке версий. Исправлено.
Страница расширения
GitHub расширения
Joomla Extensions Directory
@joomlafeed
#расширения #joomla #php #разработка #development
Обновление PHP Joomla библиотеки WT CDEK для разработчиков v1.1.0
Небольшая нативная PHP Joomla библиотека для работы с API v.2 службы доставки CDEK. Пакет состоит из плагина для хранения настроек, PHP-библиотеки и виджета карты для выбора пунктов выдачи заказа. Библиотека представляет собой клиент для авторизации в CDEK API по OAuth, работы с некоторыми методами API: получения ряда данных и расчета стоимости доставки. Поддерживается Joomla 4.2.7 и выше.
👩💻 v.1.1.0. Что нового?
- Копирование и обновление данных CDEK в локальную базу данных. Добавлен плагин стандартного планировщика задач Joomla, который позволяет копировать и обновлять по расписанию списки стран и регионов доставки, населенных пунктов, а так же пунктов выдачи заказа. Эти данные вы можете использовать затем в своих расширениях. Рекомендуется настроить выполнение задач планировщика Joomla с помощью серверного CRON, так как некоторые справочники довольно большого объёма и их обновление может занимать продолжительное время. Также будьте внимательны, на некоторых хостингах существует ограничение на занимаемый объём базы данных.
- Добавлен метод getLocationPostalCodes(). Добавлен метод getLocationPostalCodes, который получает список почтовых индексов для населенного пункта по его коду.
- Если название города содержит пробел возникала ошибка. Исправлено.
Страница расширения
GitHub расширения
Используем Promise в Ajax-запросах
Небольшой пост о том, как можно эффективно строить асинхронные цепочки, добавив всего один флаг к вызову Joomla.request
, превратив его в Promise
.
#joomla #javascript #разработка
https://habr.com/ru/posts/858024/
WT update JShopping prices and quantity плагин для Joomla 5
Плагин позволяет обновлять цены и остатки товаров и зависимых атрибутов интернет-магазина Joomla + JoomShopping из CSV файла по расписанию.
В Joomla 4.1 появляется встроенный планировщик задач, который можно расширять плагинами. Задачи можно запускать вручную из панели администратора или настроить выполнение по серверному CRON. Данный плагин является плагином задачи для штатного планировщика задач Joomla.
Сценарий обновления
Вы формируете CSV-файл в кодировке utf-8 с 3 колонками:
- идентификатор товара (код товара, артикул или EAN)
- количество
- цена товара
и кладёте созданный файл в выбранную папку на сайте. Порядок столбцов важен.
Обновление товаров происходит с помощью простого SQL UPDATE
.
⚠️ Если обнаружится несколько товаров с одинаковым кодом товара / артикулом / EAN, то изменения применятся ко всем.
Аналогичным образом работает обновление цен и остатков для зависимых атрибутов: если обнаружится несколько зависимых атрибутов с одинаковым кодом товара / артикулом / EAN, то изменения применятся ко всем, даже если они находятся в разных товарах.
⚠️ Следите за уникальностью кода товара / артикула / EAN при администрировании сайта.
⚠️ Если с момента последнего запуска задачи файл не изменялся - данные обновляться не будут.
Тестировалось на Joomla 5.2.
Страница расширения
GitHub расширения
Видео демо:
- YouTube
- VK Video
- RuTube
#JoomShopping
Переопределение языковых констант в Joomla
Достаточно часто возникает ситуация, когда в компоненте, модуле или плагине требуется заменить слово или фразу. Для решения данной задачи необходимо найти файлы локализации требуемого расширения. Сделать это можно с помощью любого FTP клиента, например с помощью Total Commander, Filezilla.
Но далеко не каждый знаток Joomla знает о весьма полезной функции, имя которой: «Переопределение констант». Предлагаю немедленно разобраться в данном вопросе и выяснить: что же это такое, в чём предназначение и как использовать переопределение констант на практике. Разбираться будем на примере Joomla 5.
Статья написана участником нашего сообщества Владимиром Егоровым (@sitogon)
Читать статью на сайте автора
[ВИДЕО] Joomla 5 Hidden secrets.
От одного из разработчиков ядра Joomla - Брайана Тимена.
👩💻 Быстрое прототипирование и создание структуры сайта
Создание статей, контактов прямо из меню и создание новых категорий прямо из материала Joomla
👩💻 Шаблоны контента
Штатный редактор Joomla - TinyMCE поддерживает вставку html шаблонов, которые можно предварительно сверстать и поместить в папку html вашего шаблона. Настроить директорию для html-шаблонов можно в параметрах плагина Редактор - TinyMCE, параметр Каталог шаблонов контента
.
👩💻 Slashtools - бесплатный аддон для TinyMCE превращает стандартный TinyMCE в продвинутый редактор наподобие VC, Хабра и т.д. Нажав слеш /
на клавиатуре можно быстро создать нужный элемент в материале.
👩💻 На каком сайте я работаю? Когда открыто несколько вкладок разных сайтов и у всех одинаковая админка - это может стать проблемой. Поэтому не поленитесь кастомизировать админку. Загрузите логотип сайта для админки в настройках стиля шаблона Atum: Система - Шаблоны - Стили - Atum.
👩💻 Персональные дашборды в админке. При входе в админку мы видим стандартный главный дашборд. Он составлен как правило из модулей. Его можно персонализировать: скрыть лишнее и добавить нужное.
👩💻 Ширина колонок и количество колонок в списках материалов, контактов и т.д. Все списки сущностей Joomla поддерживают настройку количества колонок, где можно выбрать какие показывать, а какие скрыть.
👩💻 Примечания для сущностей Joomla. Вы создали модуль Joomla и забыли зачем? А рядом ещё один с таким же названием, но неопубликован? Используйте поле "Примечание" для модулей, материалов и т.д. Они отображаются только в панели админстратора и помогут быстро вспомнить зачем вы что-то сделали. Это поле доступно для поиска в списке сущностей - найдите модуль с примечанием "тест" прямо в списке
👩💻 Пользовательские меню для админки. Можно создавать собственные меню для панели администратора, собственные модули, скрывать стандартные и заменять их своими, настраивать группы доступа для них и т.д. Контент-менеджер или менеджер по продажам может видеть только то, что ему необходимо.
👩💻 E-mail шаблоны. В Joomla 5.2 добавилась возможность использовать собственный HTML-шаблон для стандартных писем Joomla: напоминания, восстановления паролей и т.д. теперь могут содержать ваш логотип и быть не просто текстом, а красивым шаблоном.
👩💻 Удаление неиспользуемых переопределений. Можно удалять неиспользуемые переопределения, что облегчит поддержку на больших сайтах. В менеджере шаблонов можно сравнить содержимое переопределения и оригинального файла. Если нет различий - можно удалить этот файл.
👩💻 Автосоздание миниатюр изображений. В стандартном Media-менеджере мы видим оригинальные изображения. Однако, в плагине файловой системы Файловая система - Локальный каталог
можно включить автоматическое создание миниатюр. Ваша админка начнёт летать.
👩💻 Свой дизайн для страниц 404 и 403. Можно создать модуль типа HTML-код с собственным текстом и изображением и опубликовать его в позиции error-404
(работает для шаблона Cassiopeia). Аналогично для кода 403.
И это лишь около половины секретов. Я думаю, вам уже стало интересно что же там дальше?..
Смотреть видео на YouTube
Скачать SlashTools с GitHub.
Генератор плагина и модуля для Joomla 5
Сервис предоставляет возможность быстро сгенерировать "болванку" для создания модуля и плагина для Joomla 5 с учётом новой архитектуры расширений Joomla.
Сервис бесплатный. Генерируемый код потребует небольших доработок, но в целом для старта нового расширения сервис может пригодится для начинающих разработчиков.
Страница сервиса
Пишем класс для «Result»-события Joomla
Статья на Хабре для разработчиков от участника нашего сообщества Виталия Некрасова (@vitalik_a).
Для рассчёта стоимости и оформления доставки в Сдэк надо рассчитать размеры и вес посылок. На разных сайтах этот рассчёт происходит по разному: это может быть одна коробка для всех товаров в заказе, или каждый товар в своей коробке, или, например, стулья, которые штабелируются по нескольку штук в одну коробку.
Я решил вынести рассчёт размеров посылкомест в отдельные плагины и на каждом сайте использовать нужный плагин.
Как добавить свой таб или поле в интерфейс Joomla с помощью плагина. «Joomla way».
Задачи могут быть самые разные: поле аватара для пользователя в com_users
, дополнительный таб в форму редактирования материала, поле связи одной сущности с другой и т.д. Сразу оговорюсь, что бывает и "non-Joomla way" - то есть подходы, которые не предполагаются ядром CMS, но при этом и явно не запрещаются. Сейчас речь пойдёт о традиционном пути, который состоит из 2-х простых шагов.
Читать на Хабре
#joomla #php #разработка
Joomla 5.2: обзор обновления от центра обучения Joomla Center
14 октября 2024 года вышла Joomla 5.2. Нововведения касаются SEO, шаблонов писем, обучающих туров и многого другого. Встречайте статью-обзор от ведущего Joomla Center Антон Майоров (@notanroyamov)
👩💻 Краткое содержание:
- Улучшения обучающих туров
- - Как работают новые обучающие туры?
- - Как запустить тур самостоятельно?
- Модуль «Материалы»
- Шаблоны писем
- - Настройки шаблонов писем
- - Управления переопределениями шаблонов писем
- Улучшения SEO
- - Добавлять суффикс к URL
- - Исключать дубли URL
- Прочие новшества Joomla 5.2
- - Быстрое создание пунктов меню для категорий
- - Условные поля для форм
- - Многоязычное меню
- - CSS-классы для ссылок в TinyMCE
- - Улучшенная безопасность паролей
- - Улучшения медиа-менеджера
- - Поддержка PHP 8.4
Читать обзор
Phoca Atum Custom CSS для Joomla 5
Файл user.css
для шаблона панели администратора Joomla 5 - Atum. Этот файл является своеобразной "темой" для шаблона Atum. Чтобы установить его - скопируйте файл user.css
из пакета в папку media/templates/administrator/atum/css/
.
Подробнее
Обновление сайта с Joomla 3 до Joomla 5. Инструкция.
В видео рассказывается и показывается как быстро обновить сайт со старой Joomla 3 до Joomla 5. Собственно обновление, за вычетом всех рассказов, занимает около 10-15 минут. Рассказывается о релизном цикле Joomla, системных требованиях и общей логике обновления.
Ссылки для видео:
- Скрипт для отключения всех расширений, не относящихся к ядру Joomla
- Joomla GitHub
- Сайт русскоязычного сообщества joomla
- Русский язык для Joomla
Видео также доступно на RuTube и VK Video
🚀 Вышли релизы Joomla 5.2.0 и Joomla 4.4.9 🎉
Проект Joomla с радостью объявляет о выпуске Joomla 5.2 вместе с Joomla 4.4.9. Новая минорная версия Joomla 5.2 несет в себе улучшения, облегчающие создание и управление веб-сайтами для всех - от разработчиков до создателей контента.
https://joomlaportal.ru/news/release-news/vyshli-relizy-joomla-5-2-0-i-joomla-4-4-9
Как запустить email- и SMS уведомления на Joomla с использованием API
Публикация в хабе Joomla и блоге компании Exolve о том, как использовать сервис компании по рассылке SMS.
Читать на Хабре
Обновление плагина Action log - JoomShopping v.2.0.0
В Joomla можно просматривать действия, совершенные пользователями в разделе "Лог действий пользователей" (находится в меню "Пользователи"). Вы можете узнать кто и когда установил или удалил расширение, обновил Joomla и т.д. События в этот раздел пишут плагины для различных компонентов и Action log - JoomShopping как раз является плагином для логирования действий пользователей в админке интернет-магазина на базе Joomla JoomShopping.
Плагин позволяет записывать 14 различных событий. Среди них создание, редактирование, удаление, публикация / снятие с публикации категорий и товаров, характеристик. Также записываются обновления изображений категорий и товаров.
👩💻 v.2.0.0 Что нового?
- Joomla 5 ready. Плагин переписан под архитектуру Joomla 4, Joomla 5. Это означает, что расширение будет без проблем работать и на Joomla 6.
- Удаление поддержки Joomla 3. Для Joomla 3 используйте предыдущую версию плагина.
- Changelog URL. Добавлен Changelog url, чтобы вы могли просмотреть список изменений в новой версии перед обновлением непосредственно в админ-панели Joomla.
Страница расширения
GitHub расширения
Joomla Extensions Directory
#расширения #joomshopping
👩💻 Joomla разработчикам: как починить пагинацию в своих расширениях для Joomla 5.1.3+
Это информация о возможном сломе обратной совместимости в классе Pagination
Joomla 5.1.3+. Релиз 5.1.3 был связан с закрытием уязвимостей. В нём был изменён подход к генерации ссылок для страниц пагинации.
Как было?
До сих пор ссылки на отдельные страницы, а также ссылки на страницы "В начало", "В конец", "Вперед" и "Назад" автоматически включали все параметры запроса, которые присутствуют в текущем запросе ($app->getInput()
). Такое поведение создает возможность атаки злоумышленников на заражение кэша.
Как стало?
Чтобы смягчить этот фактор, пришлось внести изменения в поведение класса Pagination
. Класс разбивки на страницы по умолчанию будет включать только следующие параметры запроса в процесс генерации URL-адреса:
$defaultUrlParams = [
'format' => 'CMD',
'option' => 'CMD',
'controller' => 'CMD',
'view' => 'CMD',
'layout' => 'STRING',
'task' => 'CMD',
'template' => 'CMD',
'templateStyle' => 'INT',
'tmpl' => 'CMD',
'tpl' => 'CMD',
'id' => 'STRING',
'Itemid' => 'INT',
];
Route::_()
, то можно ничего не менять. Если вам нужны нетипичные параметры (например, project_id
, cat_id
, product_id
и т.д.), то их следует добавить в объект пагинации в методе display()
вашего View
.public function display($tpl = null)
{
$app = Factory::getApplication();
$this->pagination = $this->get('Pagination');
// Flag indicates to not add limitstart=0 to URL
$this->pagination->hideEmptyLimitstart = true;
// Add additional parameters to pagination url
$queryParameterList = [
'catid' => 'int',
'project_id' => 'int',
'language' => 'string',
];
foreach ($queryParameterList as $parameter => $filter)
{
$value = $app->getInput()->get($parameter, null, $filter);
if (is_null($value))
{
continue;
}
$this->pagination->setAdditionalUrlParam($parameter, $value);
}
}
int
, string
, cmd
, word
и т.д.