Новости Joomla

Перевод и публикация интервью на греческом портале Joomla Утро, просматриваешь входящие письма и...

Перевод и публикация интервью на греческом портале Joomla 🇬🇷Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции.Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью. Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент. 🇬🇷 Интервью на греческом портале (joomla.gr)🌐 Оригинальное интервью (на английском)Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

0 Пользователей и 1 Гость просматривают эту тему.
  • 13 Ответов
  • 4558 Просмотров
*

sergeytolkachyov

  • Захожу иногда
  • 209
  • 20 / 0
  • @sergeytolkachyov https://web-tolk.ru
Обработка изображений товара JoomShopping при редактировании: одинаковые пропорции, конвертация в один формат, удаление прозрачности, именование файлов. Используется библиотека Intervention Image.
Скачать плагин
Текущая версия: 2.0.0. от 29.01.2025
Совместимость: Joomla 5.2.3. JoomShopping 5.5.4.


Зачем нужен плагин?
Плагин позволяет при редактировании товара интернет-магазина Joomla JoomShopping изменять размеры изображений, приводить их к одинаковым пропорциям, убирать прозрачность и сохранять все изображения в одном формате, например в WEBP.
Возможности плагина
Настройки конвертации изображений
Для работы плагина используется известная PHP библиотека обработки изображений Intervention Image. Она позволяет сохранять все изображения товаров интернет-магазина JoomShopping в одном формате (например, в WEBP).
Плагин использует настройки размеров изображений JoomShopping: JoomShopping - Настройки - Изображения. Также используется настройка качества сохраняемых изображений. Настройки метода изменения размера и цвета заливки игнорируются. По умолчанию цвет заливки - белый.
Делать изображения квадратными?
Если да, то изображения будут приведены к квадратным пропорциям исходя из наибольшей стороны изображения. Будет обрезан лишний пустой фон, добавятся необходимые поля до квадратной пропорции, заливка фона белым цветом. Если нет, то размеры изображений будут изменены согласно настройкам JoomShopping. Лишние области изображения отрезаются. Если указаны значения и высоты и ширины - большая сторона будет изменена до указанной в настройках, меньшая сторона будет изменена пропорционально. Если указана только одно значение - высоты или ширины - вторая сторона будет изменена пропорционально. Если высота и ширина в настройках равны 0 - изображение просто будет сохранено в указанном формате без изменения размера.
Выходной формат файла
Плагин может сохранять изображения в форматах GIF, PNG, JPG, WEBP, AVIF.
Переименовывать файлы изображений?
Если включено, то название файла изображения будет изменено на название товара по правилам формирования алиасов в Joomla: пробелы заменены на дефисы. Если изображений несколько, то к названию товара будет добавлен числовой индекс. Например, товар называется "Телефон Panasonic", а файлы изображений будет называться "telefon-panasonic", "telefon-panasonic-1", "telefon-panasonic-2" и т.д.

#Changelog
Спойлер
[свернуть]
*

sergeytolkachyov

  • Захожу иногда
  • 209
  • 20 / 0
  • @sergeytolkachyov https://web-tolk.ru
*

zeher

  • Захожу иногда
  • 169
  • 12 / 0
Хорошо бы если перед сохранением, плагин прогонял через сервис https://squoosh.app/
*

sergeytolkachyov

  • Захожу иногда
  • 209
  • 20 / 0
  • @sergeytolkachyov https://web-tolk.ru
Это может сказаться на производительности сайта и контент-менеджеров. Представьте, при каждом сохранении товара будет дёргаться сторонний сервис, который может отвалиться или зависнуть...
*

zeher

  • Захожу иногда
  • 169
  • 12 / 0
Реализовать как опцию. Это гугловский сервис, очень мало вероятно, что он отвалится или еще чего.
*

sergeytolkachyov

  • Захожу иногда
  • 209
  • 20 / 0
  • @sergeytolkachyov https://web-tolk.ru
В свете происходящих в мире событий может отвалиться что угодно и у кого угодно. Возьму на заметку.
*

mbbvlad

  • Новичок
  • 1
  • 0 / 0
Из за чего может быть ошибка
Произошла ошибка
0 ImageMagick module not available with this PHP installation.

в php.ini строка  extension=imagick.so  добавлена
плагин установился без ошибок. Стутус включен.
В настройках изображения joomshopping  надпись присутствует
"Обработка изображений при сохранении товара ведётся плагином JShoppingadmin - WT On fly image handler. При обработке учитываются настройки размера изображений и качества обработанных изображений."

Версия Joomla 3.10.5 JoomShopping 4.18.5 php 7.2

З.Ы.
проблема ушла при установке на сайт хостера на локальном веб сервере работать не хочет
« Последнее редактирование: 16.10.2023, 10:39:48 от mbbvlad »
*

Vastriet

  • Захожу иногда
  • 405
  • 11 / 0
походу версия пыха не поддерживается
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
https://github.com/spatie/image-optimizer можно взять на заметку, если хочется оптимизации картинок и не зависеть от сторонних сервисов
*

sergeytolkachyov

  • Захожу иногда
  • 209
  • 20 / 0
  • @sergeytolkachyov https://web-tolk.ru
Из за чего может быть ошибка
Произошла ошибка
0 ImageMagick module not available with this PHP installation.

в php.ini строка  extension=imagick.so  добавлена
плагин установился без ошибок. Стутус включен.
В настройках изображения joomshopping  надпись присутствует
"Обработка изображений при сохранении товара ведётся плагином JShoppingadmin - WT On fly image handler. При обработке учитываются настройки размера изображений и качества обработанных изображений."

Версия Joomla 3.10.5 JoomShopping 4.18.5 php 7.2

З.Ы.
проблема ушла при установке на сайт хостера на локальном веб сервере работать не хочет

В телеграм-чате уже отвечали на этот вопрос - не установлено расширение PHP Image magic на локальном сервере.
*

Uran_jf

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Здравствуйте, у меня плагин обрезает фон картинок так, что они теряют пропорции, которые указаны в настройках джш. Можно как-то отключить обрезание пустого фона?
« Последнее редактирование: 23.05.2024, 07:39:41 от Uran_jf »
*

Uran_jf

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Здравствуйте, у меня плагин обрезает фон картинок так, что они теряют пропорции, которые указаны в настройках джш. Можно как-то отключить обрезание пустого фона?

Если вдруг кому интересно, решил свой вопрос изменив метод handleImage, убрав строки, которые отвечают за обрезку фона:

function handleImage(string $path_full, array $options): void
{
    $widthFit  = $options['widthFit'];
    $heightFit = $options['heightFit'];

    $jversion = new Version();
    if (version_compare($jversion->getShortVersion(), '4.0', '<')) {
        // only for Joomla 3.x
        $jshopConfig = JSFactory::getConfig();
    } else {
        // Joomla 4
        $jshopConfig = \JSFactory::getConfig();
    }

    list($width, $height, $type, $attr) = getimagesize($path_full);
    $manager = JInterventionimage::getInstance(['driver' => 'imagick']);

    // https://github.com/Intervention/image/issues/551 Transparency on PNG issue
    $tmp_file = $manager->make($path_full);
    $img      = $manager->canvas($tmp_file->width(), $tmp_file->height(), '#ffffff');
    $img->insert($tmp_file);

    // Убираем обрезку лишнего фона
    // $img->trim('top-left', null, 20, 50);

    //Делаем изображения квадратными
    if ($this->params->get('square_image', 0) == 1)
    {
        $width  = $img->getWidth();
        $height = $img->getHeight();
        $ratio  = $width / $height;

        if ($ratio != 1)
        {
            if ($width > $height)
            {
                //http://image.intervention.io/api/resizeCanvas
                $new_height = $width;
                $img->resizeCanvas($width, $new_height, 'center', false, '#ffffff');
            }
            elseif ($height > $width)
            {
                $new_width = $height;
                $img->resizeCanvas($new_width, $height, 'center', false, '#ffffff');
            }

            if ($heightFit > $widthFit)
            {
                $widthFit = $heightFit;
            }
            elseif ($widthFit > $heightFit)
            {
                $heightFit = $widthFit;
            }
        }
    }

    // Если оба значения NULL - не меняем размер, переходим к сохранению
    if (!is_null($widthFit) || !is_null($heightFit))
    {
        // resize the image so that the largest side fits within the limit; the smaller
        // side will be scaled to maintain the original aspect ratio
        // https://image.intervention.io/v2/api/resize
        $img->resize($widthFit, $heightFit, function ($constraint) {
            $constraint->aspectRatio();
            $constraint->upsize();
        });
    }

    $img->save($options['savepath'] . '/' . $options['new_file_name'] . '.' . $options['new_file_format'], $options['image_quality'], $options['new_file_format']);
}
*

sergeytolkachyov

  • Захожу иногда
  • 209
  • 20 / 0
  • @sergeytolkachyov https://web-tolk.ru
Это хак. Затрётся при следующем обновлении. При изменении пропорций учитывается фон вокруг основного изображения, насколько помню. И обрезка/дополнение идёт получается на основе контраста цветов.
*

sergeytolkachyov

  • Захожу иногда
  • 209
  • 20 / 0
  • @sergeytolkachyov https://web-tolk.ru
WT On fly image handler v.2.0.0 плагин обработки изображений JoomShopping 5+

Список изменений
- Поддержка Joomla 5. Плагин переписан на новую архитектуру расширений Joomla 4 / Joomla 5. Это означает, что он будет работать и в Joomla 6.
- Удалена поддержка Joomla 3. Окончательно удалена поддержка Joomla 3.
- Водяные знаки. Добавлена возможность наложения водяных знаков на изображения.
- JIntrevention Image 3.10+. Для работы плагина требуется библиотека JIntervention Image не ниже 3.10. PHP 8+.

Плагин бесплатный.

- Страница расширения (https://web-tolk.ru/dev/joomla-plugins/wt-on-fly-image-handler)
- GitHub расширения (https://github.com/sergeytolkachyov/WT-On-fly-image-handler-Joomla-JoomShopping-plugin)
- Библиотека JIntrevention Image (https://web-tolk.ru/dev/biblioteki/jintervention-image)

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин уведомлений о заказах в телеграмм для JoomShopping

Автор thevaca

Ответов: 0
Просмотров: 80
Последний ответ 10.11.2025, 14:11:40
от thevaca
WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 26
Просмотров: 35994
Последний ответ 14.10.2025, 12:54:56
от sergeytolkachyov
Не работает lightbox в JoomShopping

Автор d13v555

Ответов: 6
Просмотров: 1308
Последний ответ 08.10.2025, 15:34:46
от kit2m2
Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 763
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Конфликт js шаблонов JoomShaper helix3 J5 с JoomShopping 5

Автор heartlink

Ответов: 6
Просмотров: 1535
Последний ответ 22.07.2025, 12:40:12
от heartlink