Данный генератор для Joomla-разработчиков помогает создать болванку плагина по структуре файлов и классов Joomla 4 и Joomla 5. Создаётся сервис-провайдер, основной класс плагина, языковые файлы для русского языка.
Созданный плагин будет не совместим с Joomla 3. Также автор генератора предупреждает, что версия Joomla 4 должна быть не ниже 4.4.4, хотя судя по генерируемому коду всё должно быть ОК. В любом случае разработчик разберется что с этим делать и может сэкономить время.
Сегодня в 19:00 (мск) у нас запланирован стрим по Moonshine. Обсудим обновления и изменения за последний месяц, а также покажу как проходит работа по MoonShine v3.
Если у вас есть какие-либо вопросы или комментарии по MoonShine, можете задать их сейчас.
Профессиональный плагин формы обратной связи Radical Form совместим с Joomla 5
Профессиональный плагин-обработчик форм обратной связи Radical Form получил совместимость с Joomla 5 с релизом 3.1.5. Особенность плагина в том, что он позволяет отправлять абсолютно любые формы: стандартные callback формы, квизы, опросы и т.д., но не предоставляет готового фронтенда.
Такой подход предоставляет разработчикам практически неограниченную гибкость в разработке, но при этом требует от них определенного уровня знаний и умений. Radical Form даёт возможность сторонним разработчикам обрабатывать данные форм в момент отправки с помощью плагинов, что позволяет очень удобно и быстро интегрировать его со сторонними сервисами. Для плагина существуют сторонние плагины для интеграции Radical Form с Битрикс 24 и AmoCRM.
Получение значений для BelongsTo/BelongsToMany полей приведено к единому виду и теперь для них всегда доступен valuesQuery и при большом запросе вы сможете самостоятельно его оптимизировать
Логотип на 404 странице теперь выводится из конфига и если есть желание вывести на 404 логотип отличающийся от дефолтного, то воспользуйтесь ключом logo404
3. Использует стек TALL (TailwindCSS, AlpineJS, Laravel, Livewire)
Livewire позволяет создавать приложение динамическим. Не нужно писать тонны кода на JQuery, как этого требует тот же Voyager. И, коли уж это Laravel, нам всегда доступны все его возможности.
4. Есть библиотека плагинов
И они закрыли уже почти все насущные проблемы.
Но и минусы у этого решения тоже есть:
Стек TALL можно отнести и к минусам тоже, потому что Livewire иногда кажется достаточно сомнительной затеей.
Filament достаточно прожорливый и требует OPCache и кеширования всего, что можно. И с включенным laravel-debugbar всё начинает тормозить.
Часть плагинов платные.
Код форм порой бывает достаточно… монструозным. Но это решается грамотным переиспользованием кода и разнесением его по разным местам.
Это краткий пересказ статьи Егора Черненка, PHP-разработчика AGIMA — полную версию читайте тут.
В стандартной C-библиотеке Glibc выявлена уязвимость (CVE-2024-2961), приводящая к переполнению буфера при преобразовании специально оформленных строк в кодировке ISO-2022-CN-EXT функцией iconv().
Выявивший проблему исследователь 10 мая выступит на конференции OffensiveCon с докладом, в анонсе которого упоминается возможность эксплуатации уязвимости через приложения на языке PHP. Проблема затрагивает всю экосистему PHP и некоторые приложения.
При преобразовании строк в кодировке UCS4, в соответствии с требованиями RFC 1922, библиотека Glibc добавляет некоторые escape-символы, выделяющие части строки, в которых кодировка была изменена.
Уязвимость в вызвана некорректной проверкой границ внутренних буферов функцией iconv(), что может привести к переполнению буфера максимум на 4 байта. При переполнении за границу буфера могут быть записаны определённые фиксированные значения, такие как '$+I', '$+J', '$+K', '$+L', '$+M' и '$*H'. Несмотря на то, что эксплуатация подобной уязвимости для выполнения кода кажется маловероятной, этого оказалось достаточно для подготовки нескольких прототипов эксплоитов для удалённой атаки на PHP-приложения, приводящей к выполнению кода.
Уязвимость проявляется с 2000 года и устранена в находящейся в разработке ветке Glibc 2.40. Исправление также доступно в виде патчей для выпусков Glibc с 2.32 по 2.39. В дистрибутивах проследить за исправлением уязвимости можно на страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.
Недавно состоялось обновление админ-панели для Laravel MoonShine v2.11.0 с кодовым названием “Minimal Twist”.
Основа релиза - минималистичный дизайн админки. Часто просили сделать альтернативный вариант дизайна, и как только появилась возможность - реализовали. Выглядит стильно, сам попробовал и, видимо, буду использовать эту тему.
LMS Moodle является, пожалуй, самой известной и популярной бесплатной Learning Management System — движком для создания онлайн‑курсов. Для того, чтобы было удобно работать с данными Moodle внутри Joomla через встроенное REST API Moodle создана нативная библиотека для Joomla 4 / Joomla 5
v.1.1.0 Что нового?
Helper\Course. В REST API более 700 методов. Библиотека поддерживает хелперы для методов, которые позволяют проверять структуру отправляемых данных до отправки собственно запроса и тем самым не нагружать лишний раз API Moodle. Добавлены правила проверки структуры данных для методов core_course_
Поле списка курсов Courselist Joomla Form. Добавлено Joomla Form поле, отображающее в Joomla список курсов Moodle. Для работы поля требуется разрешённый метод core_course_get_courses и настроенные в Moodle права доступа. Поля Joomla Form позволяют легко использовать в интерфейсе своих расширений (в модулях, плагинах и т. д.) данные, получаемые из Moodle по API.
Доброго времени суток, господа PHP-шнички. Вчера вышла Laravel 11, и я собрал её в докер вместе с Octane, PostgreSQL и Redis вместо вас. Пользуйтесь, если вдруг кому понадобится.
Привет, коллеги! Готовьтесь к необычному испытанию знаний и заряду хорошим настроением! В 19:00 (мск) 13 марта на YouTube‑канале CutCode будет проходить игра‑викторина в стиле «Своей игры».
Будут захватывающие раунды, юмор и увлекательные задания, которые проверят ваши знания о PHP!
В легендарной битве выдающихся PHP умов сойдутся — Адель Файзрахманов, Александр Макаров и Кирилл Несмеянов! Сергей Пантелеев приготовил самые каверзные вопросы и будет в роли ведущего управлять этим мероприятием.
Всех приглашаем поболеть за коллег и самим проверить свои знания. Ну, а чтобы процесс эфира сделать еще интереснее — предлагаем задать сейчас вопросы участникам викторины. Самые интересные вопросы будут разобраны на игре, а их авторы получат возможность участвовать в следующей игре и получить мерч!
Вышел JoomGallery JUI 3.7.0-rc1 и JoomGallery 4.0.0-alpha2
JoomGallery - один из старейших и популярнейших компонентов галереи изображений для Joomla. В 2016 году основная команда разработчиков перестала его поддерживать. Компонент подхватили 2 энтузиаста и стали выпускать небольшие обновления, а затем начали подготовку перевода компонента на архитектуру Joomla 4. Работа длится долго, но не останавливается.
Версия 3.7.0 - промежуточный релиз, подготовка к переходу на JoomGallery 4.0. Добавлены проверка и исправление алиасов и структуры папок. JoomGallery 4.0.0-alpha2 - предназначен для Joomla 4 и Joomla 5, находится в активной разработке.
По словам тех, кто знакомился с новым кодом подробнее - по сути это новый компонент, который весьма сильно отличается от старого JoomGallery, так как изменилась структура базы данных. Поэтому это будет не обновление, а миграция. На странице с инструкцией по миграции представлены видео, описывающие 2 сценария: новую установку на Joomla 5 и обновление с предыдущей версии. Минимально необходимая версия JoomGallery для обновления до 3.7.0 - 3.6.2.
Как и любому Open Source проекту, JoomGallery нужна помощь: отладка, поиск ошибок, внятное их описание, тестирование разных пользовательских сценариев. Ну и конечно помощь в написании кода. Присоединиться можно на GitHub.
Видео "Как работает Joomla" - путеводитель для разработчиков расширений
На канале Robbie Jackson вышло видео How Joomla works - a guide for extension developers, в котором разъясняется внутренняя механика работы Joomla 4 и Joomla 5. Затрагиваются вопросы роутинга, шаблонизации, REST API, CLI, диспетчеризации (события для плагинов) и т.д. Видео весьма полезное, так как в целом контента по новым версия движка не так много.
Вышла стабильная версия VirtueMart 4.2.6 для Joomla 5. Команда разработчиков VirtueMart адаптировала продукт под последнюю ветку Joomla. VirtueMart версии 4.2.6 включает в себя большое кол-во изменений, исправлений ошибок, найденных с момента предыдущей версии и ряд важных улучшений. Изменения затронули также и плагины оплаты, идущие в комплекте с установочным пакетом.
Joomla 5 — это новая ветвь развития, использующая передовую архитектуру. Минимальные требования к запуску Joomla 5 - PHP 8.1+ и MySQL 8.0+.
VirtueMart является старейшим и по-прежнему популярным компонентом для создания Интернет-магазинов на платформе Joomla. За годы существования проект сформировал собственное сообщество пользователей. Теперь сайты на базе VirtueMart можно создавать на современной платформе Joomla 5.
Вышел плагин оплаты для Phoca Cart, обеспечивающий возможность приёма платежей через ЮKassa - популярную систему оплаты в России.
Phoca Cart - 5-я версия расширения Интернет-магазина, архитектурно работает на CMS Joomla 5 (последняя версия) и успешно заточен под PHP 8.2+, что позволяет создавать сайты, работающие на современных технологиях. Юкасса - популярная система для онлайн платежей в России.
Создание магазина на Joomla 5 открывает возможности по использованию преимуществ, которые предоставляет данная ветка CMS и теперь имеется возможность делать магазины с учетом потребностей российского рынка.
Как сделать Joomla лучше своими руками? Тестирование PR на GitHub.
Joomla – опенсорсный движок. Он развивается десятками разработчиков со всего мира. Кто-то делает ядро, кто-то работает над локализацией, кто-то - пилит документацию, кто-то пишет статьи и т.д. У всех, кто делает вклад – есть основная работа, бизнес, для некоторых Joomla – хобби. Почти у всех есть семьи, дети, но они находят время на то, чтобы внести свой маленький вклад в развитие движка. Да и вообще весь мир Open Source устроен так, что если ты от него что-то берешь, пользуешься, то и должен вносить свой вклад, отдавать. Тогда продукт будет развиваться и приносить пользу не только вам, но и окружающим.
При работе над релизами Joomla используются почти что корпоративные механики и подходы:
все PR проходят обязательный code review минимум 2 участников сообщества
Как помочь?
Не обязательно быть разработчиком для этого. Но можно сделать много другого: написать статью, записать видео, сделать перевод, сделать необходимые тесты. Нередко в целом готовый PR "висит" довольно долго в силу того, что не хватает рук их протестировать. О том, как помочь Joomla получать больше улучшений в каждом релизе - как их протестировать – показывает это видео.
Оба интернет-магазина — назовем их А и Б — годами работали самостоятельно, накопили много контактов и клиентов, а потом объединились в одну компанию. Чтобы выстроить продажи, им нужна была общая база данных. Но стек у магазинов отличался, и понадобилась наша помощь.
Помимо стека, были и другие ограничения:
Срок MVP: на всё про всё — полгода.
Бюджет: лепить огромного отказоустойчивого мастодонта мы не могли.
Удобство: нужен был сервис одного окна с понятным интерфейсом.
Поэтому мы остановились на Bitrix24. Первым делом определили, что должно быть в общей CRM и какие данные нам нужны. Потом на этапе ППО выбрали механизм реализации — процесс ETL (Extract. Transform. Load). Он состоит из трех этапов:
Как видим, у нас было три экстрактора: общий для магазина А и два отдельных для магазина Б (один для Kafka, другой для Json). Два трансформера — для каждого магазина свой, они выдавали одинаковые DTO и передавали их в лоадер. Дальше лоадер закидывал всё в B2B CRM.
В результате нам удалось выгрузить свыше 170 000 активных компаний и более 264 000 контактов из обоих интернет-магазинов.
Записал видео по настройке REST API в Moodle и установке и настройке библиотеки WT JMoodle для интеграции Joomla 5 и Moodle 4.3. Пока ещё сохраняется флёр новогодних каникул и есть немного времени на подобное баловство...
🌙Привет, коллеги! 🌙 Сегодня релиз MoonShine v2.3.0 с кодовым именем "Bloody Boyarskiy" 🍹! В релизе ActionButton в режиме async, ColorManager и многое другое. Подробности релиза с примерами кода в статье - https://cutcode.dev/articles/moonshine-23
ВАЖНО - изменились views, favicon вынесены в отдельный blade