Joomla Feed
598 subscribers
425 photos
10 videos
3 files
1.21K links
Новости о Joomla! и веб-разработке по-русски.
Наш сайт: https://joomlaportal.ru
По вопросам размещения новостей о Joomla @sergeytolkachyov
Download Telegram
Forwarded from Profibits
‼️ Плагин оплаты ЮKassa для Phoca Cart

Плагин интеграции платежного сервиса @yookassa (ЮKassa) с Интернет-магазином на движке Phoca Cart 🛒

ЮKassa позволяет принимать платежи на расчетный счет и делать возвраты (по договору, для юрлиц и ИП). 💳 Данный плагин обеспечивает интеграцию ЮKassa в Интернет-магазин Phoca Cart версии 4+ (Joomla 4+).

Особенности плагина:
Нативная работа с Joomla 4+ и Phoca Cart 4+
Поддержка передачи данных чека

👉 Подробнее тут: https://profibits.ru/plaginy/phoca-cart/yookassa-phoca-cart

#Joomla #PhocaCart #yookassa #ecommerce #плагиноплаты #интернетмагазин #экоммерция
Что нового в Joomla 5 - обзор Виталия Wedal
Joomla 5.0 – обновленная версия Joomla 4.4, изменения в которой направлены на:
- Улучшение безопасности;
- Увеличение скорости;
- Повышение стабильности;
- И других важных направлений.
Обновление Joomla 3 до версии 4 было более сложным процессом, чем будет обновление с Joomla 4 до 5. Последующая после Joomla 4.3 версия Joomla 4.4 не содержит серьезных изменений и вышла с целью более легкого обновления с Joomla 4 до Joomla 5.

Подробнее узнать о нововведениях Joomla 5 на wedal.ru

#joomla #joomla5
Производительность Joomla на PHP 8.3 достигла показателя в 341 RPS, показав прирост в 30%
Агентство Kinsta 2 января 2024 года обновило данные бенчмарк-тестов популярных CMS и PHP фреймворков. При выборе движков для теста учитываются популярность, примерное количество живых сайтов, доля рынка, тенденции использования, доля в поиске (США).

Участники соревнования

На беговой дорожке рядом оказались:
👩‍💻 WordPress
👩‍💻 WooCommerce
👩‍💻 Laravel
👩‍💻 Drupal
👩‍💻 Joomla
👩‍💻 Symfony
- CodeIgniter
- Craft CMS
- OpenCart
- Statamic
- Typo3

⚠️ Все CMS и фреймворки тестировались на дефолтных настройках. Во всех подобных тестах нужно учитывать, что "тяжесть" формирования дефолтной страницы у всех движков разная: разное количество запросов в базу данных (обычно слабое место в быстродействии сайтов), разное количество различных проверок и т.д. Например в Joomla по умолчанию главная страница - это избранные материалы. Из базы данных идёт выборка материалов со статусом избранные, происходит проверка прав доступа к материалам, а так же на странице несколько модулей со своими настройками прав доступа, времени начала и окончания публикации и т.д. С виду одинаковая страница на разных движках под капотом означает разное количество работы. Даже смена типа главной страницы на компонент "пустая страница", где нет выборки из бд, проверки прав пользователя и рендера компонента даёт прирост скорости формирования страницы.

Все движки тестировались на версиях PHP 8.1, 8.2 и 8.3. Так же некоторые на 7.4.

Также для нагрузочных тестов важен показатель RPS - requests per second. Этот показатель означает запрос к Приложению на генерацию данных без учета разного рода кэша.

🔥 Результаты тестов производительности
👩‍💻 Joomla
Joomla показала следующие результаты.
Тестируемая версия Joomla: 4.3.3
Тестируемый URL: главная страница
Размер: 8,111,000 байт
Результаты:
- PHP 8.1: 274 req/s
- PHP 8.2: 265 req/s.
- PHP 8.3: 341 req/s.
Таким образом Joomla "из коробки" на PHP 8.3 показала прирост производительности около 30%.

Другие движки
👩‍💻 Wordpress
Тестировались версии Wordpress 6.4.2 и 6.2.2. Возьмём данные по последней версии, в целом они примерно одинаковые.
Тестируемая версия Wordpress: 6.4.2
Тестируемый URL: главная страница
Размер: 84,257,000 байт
Результаты:
- PHP 7.4: 149 res/s.
- PHP 8.1: 153 req/s.
- PHP 8.2: 158 req/s.
- PHP 8.3: 169 req/s.

👩‍💻 Laravel
Это PHP-фреймворк, на котором обычно пишут "серьёзные" проекты.
Тестируемая версия Laravel: 10.16.1
Тестируемый URL: главная страница
Размер: 27,514,000 байт
Результаты:
- PHP 8.1: 611 req/s.
- PHP 8.2: 670 req/s.
- PHP 8.3: 925 req/s.

👩‍💻 Drupal
Тестируемая версия Drupal: 10.11
Тестируемый URL: главная страница
Размер: 19,102,000 байт
Результаты:
- PHP 8.1: 922 req/s.
- PHP 8.2: 941 req/s.
- PHP 8.3: 1432 req/s.

👩‍💻 Symfony
Также PHP-фреймворк, используемый для бэкенда сайтов и приложений.
Тестируемая версия Symfony: 6.3.0
Тестируемый URL: главная страница
Размер: 559,000 байт
Результаты:
- PHP 8.1: 931 req/s.
- PHP 8.2: 997 req/s.
- PHP 8.3: 1182 req/s.

OpenCart
Специализированный движок для создания интернет-магазинов.
Тестируемая версия OpenCart: 4.0.2.2
Тестируемый URL: главная страница
Размер: 33,014,000 байт
Результаты:
- PHP 8.1: 151 req/s.
- PHP 8.2: 154 req/s.
- PHP 8.3: 164 req/s.

Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Работа с Joomla в PHPStorm. Шаблоны (boilerplate) для быстрого создания модулей, плагинов Joomla в IDE.
PHPStorm - среда разработки для PHP-программистов, работающих с кодом как на чистом PHP, так и с такими PHP-фреймворками как Symfony, Laravel, Yii и другими. Эти фреймворки чаще всего используются на "серьёзных" "взрослых" проектах с большой посещаемостью, нагрузкой на сервер, аудиториями с миллионами посетителей. Однако, у многих до сих пор вызывает удивление то, что Joomla - это тоже PHP-фреймворк. Долгое время это был параллельный CMS проект, а начиная с Joomla 4 фреймворк вошёл в состав ядра Joomla CMS. Таким образом у вас под капотом CMS полноценный PHP фреймворк, который в умелых руках может стать мощным проектом.

PHPStorm с 2016 года имеет отличную поддержку Joomla, подсказывает методы работы ядра, аргументы функций, навигация по коду и всё-всё, что обычно является атрибутом "серьёзных" движков.

Бойлерплейты Joomla расширений для PHPStorm
Участник нашего сообщества, разработчик Игорь Бердичевский (@septdir) поделился на GitHub своими "плюшками" для работы с Joomla:
- codeStyle - Code formating style
- colors - цветовая схема для PHPStorm
- fileTemplates - шаблоны для расширений Joomla
- options - файл с названиями для шаблонов
- project - шаблон для пустого Joomla-проекта включая задания для сборщика проекта Phing
- templates - Live Templates for files
- watchers - Configuration for File Watcher
Этот инструментарий позволяет разработчику в PHPStorm быстро создать каркас нового модуля, плагина, компонента и не тратить время на ручное создание структуры файлов и папок.

Репозиторий JetBrains-PhpStorm на GitHub

Также полезные ссылки:
- официальная документация PHPStorm по работе с Joomla
- Настройка IDE (PhpStorm) для работы с Joomla - большая подробная статья, инструкция как всё правильно настроить и работать. Автор - участник нашего сообщества Дмитрий Рекун (@drekun)

#joomla #php #phpstorm #ide #cms #framework #boilerplate #github #laravel #symfony #yii
👩‍💻 Обновление плагина WT JoomShopping Bitrix24 PRO v.3.1.3
Впервые за 1,5 года вышла новая версия плагина отправки заказов из интернет-магазина JoomShopping в CRM Битрикс24. Плагин передает лиды, сделки, создаёт контакты и реквизиты, повторные сделки. Обеспечивает смену статуса заказа в JoomShopping при изменении стадии сделки в Битрикс 24 (двухсторонняя интеграция).

Также он позволяет очень быстро настроить отправку лидов/сделок в Битрикс 24 из форм обратной связи, реализованных с помощью плагина RadicalForm.

👩‍💻 Список изменений
- Улучшена поддержка Joomla 5. Проведен большой рефакторинг кода, подготавливающий плагин к повышению минимальных системных требований до Joomla 5 и PHP 8.1. Также удалены некоторые устаревшие методы.
- SubscriberInterface. Плагин полностью наследует SubscriberInterface
- Changelog url. Добавлен Changelog url, чтобы вы могли просмотреть список изменений в новой версии перед обновлением непосредственно в админ-панели Joomla.
Дальнейшая разработка планируется только для Joomla 5.

Страница расширения
GitHub плагина
Joomla Extensions Directory

#joomla #php #разработка #битрикс24
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from WebTolkRu (Sergey Tolkachyov)
👩‍💻 Совет по Joomla: использовать HTMLHelper для рендера ссылок, изображений и т.д.
При работе с кодом хорошим тоном разработки считается наглядность кода, которая обеспечивает лёгкость его восприятия. Обычно это называют "чистый, читаемый код". Согласитесь, понимать следующую запись не всегда бывает удобно:
echo '<a href="index.php?option='.$option.'&view='.$view.'&id='.$id.'" target="'.$target.'">'.$link_title.'</a>';

или пример из стандартного шаблона JoomShopping:
<a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?> title="<?php print htmlspecialchars($image->img_title)?>">

Наглядностью и лёгкостью чтения, к сожалению, и не пахнет.

В API Joomla есть довольно богатый инструмент - класс HTMLHelper. В нём довольно много полезных фич, приведу пример для рендера ссылок как самого простого элемента. Метод HTMLHelper::link() принимает 3 аргумента:
- $url - формируем его программно заранее и передаем как параметр
- $text - собственно текст ссылки. Это может быть любое HTML-содержимое: картинка, код и т.д. - как в вёрстке.
- $attribs - самые разные атрибуты ссылки: class, target, onclick, кастомные data-атрибуты и т.д.
Согласитесь, так гораздо нагляднее. И порядок в коде.
use Joomla\CMS\HTML\HTMLHelper;

$url = 'index.php?option=' . $option . '&view=' . $view . '&id=' . $id;
$link_title = HTMLHelper::image('images/headers/raindrops.jpg', 'Alt attrib for image');
$target = '_blank';
$linkAttribs = [
'target' => $target,
'class' => 'btn btn-primary',
'onclick' => 'alert(123);',
'data-link-id' => '4a5d7f6a455sf8',
];

echo HTMLHelper::link($url, $link_title, $linkAttribs);

Частично ознакомиться с методами класса HTMLHelper можно в файле libraries/src/HTML/HTMLHelper.php.

#joomla #php #development #разработка #html
Please open Telegram to view this post
VIEW IN TELEGRAM
Обновление веб-ассета Swiper.js для Joomla - WT JSwiper.js v.11.1.5
В Joomla 4 и Joomla 5 появилась концепция Web Assets и WebAssetManager, с помощью которого можно управлять подключениями css, js файлов, подключением. Все css и js файлы включаются в общий реестр ассетов, затем выстраивается граф зависимостей и в итоге на генерируемую страницу подключается только то что нужно на данной странице.

Поскольку веб-ассеты можно добавлять с помощью плагинов (ссылка на статью ниже) - можно сказать, что появилось новое направление для плагинов - веб-ассеты. Вы можете устанавливать плагины, включающие веб-ассеты и использовать их как зависимости в самых разных местах Joomla: в шаблоне, в макетах модулей и плагинов.

Одним из таких плагинов веб-ассетов является WT JSwiper.js. Плагин добавляет в Joomla WebAssets Registry ассет популярного скрипта swiper.js, который потом легко можно использовать в коде:
$wa = Factory::getApplication()->getDocument()->getWebAssetManager();
$wa->useScript('swiper-bundle')->useStyle('swiper-bundle'); // Локальный файл
$wa->usePreset('swiper-bundle-remote'); // Подключение из CDN

Например, было: иконочный шрифт могут использовать 2 разных модуля. CSS обычно подключается в шаблоне и он грузится везде, даже там, где не надо. Если же подключать CSS в одном модуле, а в другом нет - на странице стиль есть ровно до тех пор, пока опубликован модуль с этим подключением.
Стало: теперь в макетах расширений мы просто пишем $wa->useStyle('my.style'); и за необходимостью подключения нужного ассета (в данном случае CSS с иконочным шрифтом) следит Web Asset Manager. Если мы снимем один модуль с публикации, то нужный ассет подключит другой модуль.

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

- Скачать WT JSwiper.js для Joomla
- Статья на JPath.ru Как правильно подключать JavaScript и CSS в Joomla 4
- Статья на Хабре: Использование WebAssetsManager Joomla 4 (Joomla 5) и добавление собственных пресетов с помощью плагина
- Документация Swiper.js

#joomla #расширения #разработка #плагин
Вышел Astroid Framework v.3.1.0 для Joomla
Обновление популярного шаблона-билдера Astroid для Joomla.
Что нового в отличие от версии 3.0.0?
- Добавлено эелементы бильдера - Виджеты.Более 20 виджетов.(Можно включить или отключить в настройках плагина.) Теперь можно создавать шаблон с помощью бильдера и можно создавать свои виджеты.
- Добавлены Макеты блоков. Можно создать свой блок макетов с помощью элементами билдера и применить его в шаблоне.
- Добавлена Макеты материалов. Макеты материалов можно создать свои и применить его в настройках макетов категории.
- Виды блоков категории
- Удаление генератора тега Joomla в настройках плагина.
- Можно выбирать модуль меню (свой модуль Astroid menu) в настройках шаблона (Не обязательно создать дубликать стиля для каждого языка сайта)
Улучшения
- Fontawesome 6.6.0
- Очистка кода и стабилизация
- Улучшения UI/UX разделов админки шаблона
- Поддержка 3-х сторон для создания виджетов для Astroid с помощью плагинов

Шаблон успешно установился на Joomla 5. (И будет поддерживать Joomla 6)
Скачать с GitHub
Примечание:
- astroid-framework-3.1.0.zip содержит только фреймворк
- astroid-package-v3.1.0.Framework-Template.zip - фреймворк и 3 базовых шаблона

Для тех кто хочеть отправить донат или поблагодарить автора
ko-fi.com/astroidframework

Если есть пожелание или предложения по улучшению продукта, то можете оставить их на Github

Спасибо за новость участнику нашего сообщества @rkazhet

#joomla #расширения #шаблоны #astroid
Быстрый поиск по id или содержимому в админке Joomla.
Если вы ищете конкретный модуль и знаете его Id, то укажите в поиске через двоеточие его id - id:124. Точно так же можно искать в материалах, контактах, тегах и т.д.
В материалах можно искать ещё и по содержимому, написав content:искомое слово. Ещё один поддерживаемый префикс поиска в Joomla - author:имя автора.

#joomla #администрирование
👩‍💻 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',
];

Если этих параметров достаточно для формирования корректного URL с помощью 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 и т.д.

Также примеры для com_finder и com_content на GitHub

#разработка #joomla #php #development
Please open Telegram to view this post
VIEW IN TELEGRAM
SW JProjects v.2.1.0 - обновление менеджера цифровых проектов для Joomla разработчиков
Компонент позволяет разработчикам сайтов на Joomla вести свой собственный сервер обновлений для своих расширений Joomla (шаблонов, модулей, плагинов etc), что позволяет доносить обновления сразу всем своим клиентам. Возможность скачивания по лицензионным ключам.

👩‍💻Что нового?
Умный поиск. Добавлен плагин индексации проектов для компонента умного поиска Joomla. Плагин поддерживает мультиязычность, отображает иконку проекта в результатах поиска.
Исправление работы пагинации в списке версий. Релиз Joomla 5.1.3 был релизом закрытия уязвимостей. В связи с этим в механизм формирования ссылок пагинации Joomla были внесены изменения. Из-за этого перестали работать ссылки пагинации в списке версий. Исправлено.

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

@joomlafeed

#расширения #joomla #php #разработка #development
Please open Telegram to view this post
VIEW IN TELEGRAM