Как стать автором
Обновить
65.89

PHP *

Скриптовый язык общего назначения

Сначала показывать
Порог рейтинга

Генератор плагина для Joomla 4 и Joomla 5

Данный генератор для Joomla-разработчиков помогает создать болванку плагина по структуре файлов и классов Joomla 4 и Joomla 5. Создаётся сервис-провайдер, основной класс плагина, языковые файлы для русского языка.

Созданный плагин будет не совместим с Joomla 3. Также автор генератора предупреждает, что версия Joomla 4 должна быть не ниже 4.4.4, хотя судя по генерируемому коду всё должно быть ОК. В любом случае разработчик разберется что с этим делать и может сэкономить время.

Генератор болванки плагина для Joomla 4 / Joomla 5

Также добро пожаловать в Telegram-чат русскоязычного Joomla сообщества

Теги:
-1
Комментарии0

Привет всем! 🚀

Сегодня в 19:00 (мск) у нас запланирован стрим по Moonshine. Обсудим обновления и изменения за последний месяц, а также покажу как проходит работа по MoonShine v3.

Если у вас есть какие-либо вопросы или комментарии по MoonShine, можете задать их сейчас.

Заходите - https://www.youtube.com/watch?v=bM-rgGFnO88 . Будет интересно!

Теги:
+3
Комментарии0

Профессиональный плагин формы обратной связи Radical Form совместим с Joomla 5

Профессиональный плагин-обработчик форм обратной связи Radical Form получил совместимость с Joomla 5 с релизом 3.1.5. Особенность плагина в том, что он позволяет отправлять абсолютно любые формы: стандартные callback формы, квизы, опросы и т.д., но не предоставляет готового фронтенда.

Такой подход предоставляет разработчикам практически неограниченную гибкость в разработке, но при этом требует от них определенного уровня знаний и умений. Radical Form даёт возможность сторонним разработчикам обрабатывать данные форм в момент отправки с помощью плагинов, что позволяет очень удобно и быстро интегрировать его со сторонними сервисами. Для плагина существуют сторонние плагины для интеграции Radical Form с Битрикс 24 и AmoCRM.

Разработчик Radical Form - @progreccor

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

Также добро пожаловать в Telegram-чат русскоязычного Joomla-сообщества

Теги:
+3
Комментарии0

🌙 Вышел релиз MoonShine v.2.13.0 с кодовым именем "Red Velvet"!🌙

Напомню, что MoonShine это open-source админ-панель для проектов на Laravel.

Давайте взглянем на самое интересное в этом обновлении!

Возможноcть изменить query builder у HasMany

HasMany::make()->modifyBuilder(fn(Builder $q) => $q->where('active', 1));

Улучшения для BelongsTo/BelongsToMany полей

Получение значений для BelongsTo/BelongsToMany полей приведено к единому виду и теперь для них всегда доступен valuesQuery и при большом запросе вы сможете самостоятельно его оптимизировать

BelongsTo::make(
    __('moonshine::ui.resource.role'),
    'moonshineUserRole',
    formatted: static fn (MoonshineUserRole $model) => $model->name,
    resource: MoonShineUserRoleResource::class,
)
    ->valuesQuery(fn(Builder $q) => $q->select(['id', 'name']))

Обновилось поле MoonShine Layouts

  • Исправлена проблема ререндера предыдущих шаблонов

  • Исправлена проблема исключения декораций

Еще ряд изменений:

  • Логотип на 404 странице теперь выводится из конфига и если есть желание вывести на 404 логотип отличающийся от дефолтного, то воспользуйтесь ключом logo404

  • Исправили реактивность внутри HasOne/HasMany

  • Исправили morphMap для морф полей

  • Исправили удаление файла при замене и удалении

Сайт MoonShine - https://moonshine-laravel.com

Теги:
+2
Комментарии2

Почему FilamentPHP — это хорошее решение для создания CMS

FilamentPHP — набор Fullstack-компонентов для Laravel. Последнее время мы в AGIMA часто используем его для построения админок. И вот почему:

1. Он красивый

Особенно в сравнении с Bootstrap. Filament же использует компоненты, стилизованные с помощью Tailwind CSS: 

Кстати, живую демку можно посмотреть и потрогать по этой ссылке.

Живую демку можно посмотреть и потрогать по этой ссылке.

2. Он доступный

Документация местами бывает так себе, но при наличии живой демки и её исходников можно быстро найти подходящий фрагмент и адаптировать его под себя.

А здесь найдете пример кода для создания формы авторизации.

3. Использует стек TALL (TailwindCSS, AlpineJS, Laravel, Livewire)

Livewire позволяет создавать приложение динамическим. Не нужно писать тонны кода на JQuery, как этого требует тот же Voyager. И, коли уж это Laravel, нам всегда доступны все его возможности.

4. Есть библиотека плагинов

И они закрыли уже почти все насущные проблемы.

Но и минусы у этого решения тоже есть:

  • Стек TALL можно отнести и к минусам тоже, потому что Livewire иногда кажется достаточно сомнительной затеей.

  • Filament достаточно прожорливый и требует OPCache и кеширования всего, что можно. И с включенным laravel-debugbar всё начинает тормозить.

  • Часть плагинов платные.

  • Код форм порой бывает достаточно… монструозным. Но это решается грамотным переиспользованием кода и разнесением его по разным местам.

Это краткий пересказ статьи Егора Черненка, PHP-разработчика AGIMA — полную версию читайте тут.

Теги:
+7
Комментарии1

В стандартной 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.

Источник: OpenNET.

Теги:
+6
Комментарии1

Привет, поклонники Laravel!

Недавно состоялось обновление админ-панели для Laravel MoonShine v2.11.0 с кодовым названием “Minimal Twist”.

Основа релиза - минималистичный дизайн админки. Часто просили сделать альтернативный вариант дизайна, и как только появилась возможность - реализовали. Выглядит стильно, сам попробовал и, видимо, буду использовать эту тему.

Инструкции по использованию - в PR.

Также в плейлист с гайдами по применению MoonShine добавлено несколько видео из серии tips&tricks.

Сейчас работаем над переводом документации и видеоуроков на английский язык.

В последнее время в MoonShine появилось много нововведений. 11 апреля в 19:00(мск) проведу прямой эфир по MoonShine на канале CutCode. Программа:

  • установка компактной темы,

  • обзор новых пакетов для MoonShine,

  • планы на MoonShine 3,

  • демонстрация нового концепта организации шаблонов,

  • еще пара интересных новостей, о которых узнаете на стриме .

Ссылка на эфир - https://www.youtube.com/watch?v=QK_79ct1m1w

Если есть вопросы - можете задать здесь.

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Вышла библиотека WT JMoodle library v.1.1.0

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.

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

Помощь в развитии библиотеки приветствуется на GitHub расширения

Расширение в Joomla Extensions Directory

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Доброго времени суток, господа PHP-шнички. Вчера вышла Laravel 11, и я собрал её в докер вместе с Octane, PostgreSQL и Redis вместо вас. Пользуйтесь, если вдруг кому понадобится.

Github.

Мой телеграм канал. Не подписывайтесь.

Теги:
Всего голосов 7: ↑4 и ↓3+1
Комментарии0

Привет, коллеги!
Готовьтесь к необычному испытанию знаний и заряду хорошим настроением! В 19:00 (мск) 13 марта на YouTube‑канале CutCode будет проходить игра‑викторина в стиле «Своей игры».

Будут захватывающие раунды, юмор и увлекательные задания, которые проверят ваши знания о PHP!

В легендарной битве выдающихся PHP умов сойдутся — Адель Файзрахманов, Александр Макаров и Кирилл Несмеянов! Сергей Пантелеев приготовил самые каверзные вопросы и будет в роли ведущего управлять этим мероприятием.

Всех приглашаем поболеть за коллег и самим проверить свои знания. Ну, а чтобы процесс эфира сделать еще интереснее — предлагаем задать сейчас вопросы участникам викторины. Самые интересные вопросы будут разобраны на игре, а их авторы получат возможность участвовать в следующей игре и получить мерч!

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Вышел 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.

Сайт проекта JoomGallery firends Инструкция по миграции Репозиторий GitHub JoomGallery для Joomla 4+

Также добро пожаловать в Telegram-чат Joomla-сообщества

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Видео "Как работает Joomla" - путеводитель для разработчиков расширений

На канале Robbie Jackson вышло видео How Joomla works - a guide for extension developers, в котором разъясняется внутренняя механика работы Joomla 4 и Joomla 5. Затрагиваются вопросы роутинга, шаблонизации, REST API, CLI, диспетчеризации (события для плагинов) и т.д. Видео весьма полезное, так как в целом контента по новым версия движка не так много.

Также добро пожаловать в Telegram чат Joomla-сообщества

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Вышла стабильная версия 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.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Вышел плагин оплаты для Phoca Cart, обеспечивающий возможность приёма платежей через ЮKassa - популярную систему оплаты в России.

Phoca Cart - 5-я версия расширения Интернет-магазина, архитектурно работает на CMS Joomla 5 (последняя версия) и успешно заточен под PHP 8.2+, что позволяет создавать сайты, работающие на современных технологиях.
Юкасса - популярная система для онлайн платежей в России.

Создание магазина на Joomla 5 открывает возможности по использованию преимуществ, которые предоставляет данная ветка CMS и теперь имеется возможность делать магазины с учетом потребностей российского рынка.

Плагин оплаты ЮKassa для Phoca Cart работает на Joomla 4/Joomla 5, Phoca Cart 4/5 и работает на PHP 8.3.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Как сделать Joomla лучше своими руками? Тестирование PR на GitHub.

Joomla – опенсорсный движок. Он развивается десятками разработчиков со всего мира. Кто-то делает ядро, кто-то работает над локализацией, кто-то - пилит документацию, кто-то пишет статьи и т.д. У всех, кто делает вклад – есть основная работа, бизнес, для некоторых Joomla – хобби. Почти у всех есть семьи, дети, но они находят время на то, чтобы внести свой маленький вклад в развитие движка. Да и вообще весь мир Open Source устроен так, что если ты от него что-то берешь, пользуешься, то и должен вносить свой вклад, отдавать. Тогда продукт будет развиваться и приносить пользу не только вам, но и окружающим.

При работе над релизами Joomla используются почти что корпоративные механики и подходы:

  • есть план развития (eng, rus)

  • график выпуска релизов, который соблюдается

  • используются автоматические тесты,

  • принят единый code style для движка

  • организован CI/DI,

  • все PR проходят обязательный code review минимум 2 участников сообщества

Как помочь?

Не обязательно быть разработчиком для этого. Но можно сделать много другого: написать статью, записать видео, сделать перевод, сделать необходимые тесты. Нередко в целом готовый PR "висит" довольно долго в силу того, что не хватает рук их протестировать. О том, как помочь Joomla получать больше улучшений в каждом релизе - как их протестировать – показывает это видео.

Также добро пожаловать в Telegram чат Joomla-сообщества

Теги:
Рейтинг0
Комментарии0

Как мы объединили два разных екома в одну CRM

Оба интернет-магазина — назовем их А и Б — годами работали самостоятельно, накопили много контактов и клиентов, а потом объединились в одну компанию. Чтобы выстроить продажи, им нужна была общая база данных. Но стек у магазинов отличался, и понадобилась наша помощь.

Помимо стека, были и другие ограничения:

Срок MVP: на всё про всё — полгода.

Бюджет: лепить огромного отказоустойчивого мастодонта мы не могли.

Удобство: нужен был сервис одного окна с понятным интерфейсом.

Поэтому мы остановились на Bitrix24. Первым делом определили, что должно быть в общей CRM и какие данные нам нужны. Потом на этапе ППО выбрали механизм реализации — процесс ETL (Extract. Transform. Load). Он состоит из трех этапов:

  • извлечение данных из имеющихся баз,

  • преобразование их под новую бизнес-модель,

  • загрузка в новую CRM.

>> Подробно про каждый этап рассказываем в отдельной статье.

В итоге пришли вот к такой архитектуре: 

Как видим, у нас было три экстрактора: общий для магазина А и два отдельных для магазина Б (один для Kafka, другой для Json). Два трансформера — для каждого магазина свой, они выдавали одинаковые DTO и передавали их в лоадер. Дальше лоадер закидывал всё в B2B CRM.

В результате нам удалось выгрузить свыше 170 000 активных компаний и более 264 000 контактов из обоих интернет-магазинов.

Подробнее про кейс читайте в нашем блоге, а заодно подписывайтесь на наш телеграм-канал для тимлидов.


Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Как отключить кеширование браузера с помощью мета-тегов HTML.

Правильный минимальный набор заголовков, который работает в наиболее распространённых браузерах:

  • Cache-Control: no-cache, no-store, must-revalidate

  • Pragma: no-cache

  • Expires: 0

Где:

  • Cache-Control для HTTP 1.1

  • Pragmaдля HTTP 1.0

  • Expires для proxies

Теги:
Всего голосов 5: ↑4 и ↓1+3
Комментарии3

Записал видео по настройке REST API в Moodle и установке и настройке библиотеки WT JMoodle для интеграции Joomla 5 и Moodle 4.3. Пока ещё сохраняется флёр новогодних каникул и есть немного времени на подобное баловство...

Чат русскоязычного Joomla-сообщества здесь

Чат русского Moodle-сообщества здесь

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

WT JMoodle library - библиотека для работы с REST API LMS Moodle

Нативная библиотека для Joomla 4 / Joomla 5 для работы с методами REST API Moodle.

Возможности библиотеки

  • выполнение внешних запросов к штатному REST API Moodle с помощью Joomla API

  • проверка структуры данных и типов данных для методов перед выполнением запроса. Если в схеме обнаружена ошибка - запрос не будет выполнен.

  • начата работа над созданием коллекции Joomla Form (ex. JForm) полей для использования их в расширениях - плагинах, модулях, компонентах и т.д.

  • в системном плагине можно посмотреть список доступных для работы методов REST API Moodle

  • методы для сохранения сопоставления пользователей Joomla и Moodle в собственной таблице в базе данных

  • возможность выполнения запроса на свою кастомную точку входа в Moodle, а не к REST API

<?php
use Webtolk\JMoodle\JMoodle;

$moodle = new JMoodle();

/**
 * Request method. 
 * 
 * @param   string  $method  Moodle REST API method
 * @param   array   $data    data for Moodle REST API method
 *
 * @return array
 */
$result_jmoodle = $moodle->request('core_webservice_get_site_info');

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

GitHub расширения

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

🌙Привет, коллеги! 🌙
Сегодня релиз MoonShine v2.3.0 с кодовым именем "Bloody Boyarskiy" 🍹! В релизе ActionButton в режиме async, ColorManager и многое другое. Подробности релиза с примерами кода в статье - https://cutcode.dev/articles/moonshine-23

ВАЖНО - изменились views, favicon вынесены в отдельный blade

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии0
1