Новости Joomla

Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0

Метод registerListeners() в CMSPlugin в плагинах  планируется удалить в Joomla 7.0

👩‍💻 Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0.Этот метод регистрирует устаревшие слушатели событий в диспетчере, имитируя работу плагинов Joomla! 3.x и ниже для Joomla 4+. По умолчанию этот метод ищет все общедоступные методы, название которых начинается с on. Он регистрирует лямбда-функции (замыкания), которые пытаются преобразовать аргументы отправленного события в аргументы вызова метода и вызвать ваш метод on<Что-то>. Результат передаётся обратно событию в его аргумент result.Теперь этот слой совместимости с устаревшей Joomla 3 помечен к удалению в Joomla 7.0, которая должна выйти осенью 2027 года. Это означает, что те уникальные расширения от Joomla 2.5 / Joomla 3, которые ещё работали на Joomla 4-6 скорее всего окончательно перестанут работать на Joomla 7. Предполагается, что активные разработчики планомерно и постепенно избавляются от технического долга и обновляют свои расширения. @joomlafeed#joomla #разработка #php

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

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Никак не найду в чем может быть проблема. Делаю уменьшенные картинки через JImage методом http://ссылка вырезана, так как домен распространяет вирусы/blog/joomla/rabota-s-izobrazheniyami-v-joomla-jimage.html Собственно работает все кроме прозрачности.

Может кто-то подскажет как это правильно сделать через JImage

нашел решение напрямую через GD
Код
imagealphablending($newImg, false);
imagesavealpha($newImg,true);

это работает, но как подобное дать JImage? может не знаю о каком-то методе или переопределять toFile надо?
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Напрямую через GD делается так (см. то, что в условии для png):
Код
        $fill = '#FFFFFF';
        $img = imagecreatetruecolor($cw, $ch);
        imagefill($img, 0, 0, $fill);
        imagecolortransparent($img, $fill);
        if($ext=='png'){
            imagealphablending($img, false);
            $transparent = imagecolorallocatealpha($img, 0, 0, 0, 127);
            imagefill($img, 0, 0, $transparent);
            imagesavealpha($img,true);
            imagealphablending($img, true);
        }
Здесь вы создаете прозрачный цвет и заливаете им (превращаете в него) все пиксели, совпадающие по цвету с пикселем в координатах [0, 0] (можете выбрать другую точку при желании)
Это точно работает.

Для метода с использованием JImage у меня прописано так:
Код
                $properties = JImage::getImageFileProperties($src);
                // Расчет ширины и высоты в режиме автоподбора
                if(!$width && $height) $width = $properties->width / $properties->height * $height;
                elseif($width && !$height) $height = $properties->height / $properties->width * $width;
                elseif(!$width && !$height){
$height = $properties->height;
$width = $properties->width;
}
$imgObject = new JImage($src);
                $imgObject->setThumbnailGenerate(true);
$imgObject->resize($width, $height, false, JImage::SCALE_FIT);
$imgObject->filter('backgroundfill', array('color' => $fill));
                $imgObject->toFile($dst, null, array('quality' => $quality));
Но не уверен (потому что не вижу), что тут поддерживается прозрачность. Возможно, забил за ненадобностью.
« Последнее редактирование: 02.03.2020, 12:43:22 от sivers »
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
$imgObject->filter('backgroundfill', array('color' => $fill));
Эта строка решает частично вопрос. Но принципиально она просто закрашивает фон, а поддержать прозрачность.

Но все-равно спасибо - уже не черное.
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Попробуйте первый вариант, который на чистом пхп+гд - тот способ точно работает и проверен неоднократно.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Jimage + Watermark

Автор Stake1988

Ответов: 5
Просмотров: 1328
Последний ответ 18.02.2015, 02:25:57
от Stake1988