Новости Joomla

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla 🖨Ну что, интересная инициатива от @webtolkru в виде интервью с разными участниками весьма меня увлекла. Я, вооружившись данным примером, решил подготовить выпуск для NorrNext (@norrnext) и экстраполировал идею на международный масштаб. Теперь готовлю эксклюзивный выпуск с участниками Joomla сообщества со всего мира, которые, в той или иной мере, внесли свой вклад в развитие и популяризацию системы. Будут беседы с людьми из разных стран и фото с юбилейной символикой 📸Работа в процессе 👆 📝О результатах оповещу отдельно.

Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5

👩‍💻 Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5.Работает везде, где работают плагины группы content. Проверено в материалах, модулях, в описаниях товаров JoomShopping.Плагин конвертирует любую таблицу в адаптивную блочную сетку Bootstrap 5.В админке, в редакторе создаете таблицу, размещает в её ячейках контент, а на сайте эта таблица выводиться как адаптивная сетка из блоков. На мобильных устройствах контент размещенный в таблице будет виден и ничто не вылезет за пределы сайта как раньше.Версия плагина: 1.0.0. Разработчик предупреждает, что плагин пока не корректно работает со сложными таблицами (где много объединенных ячеек или столбцов) - данная проблема будет решена в следующих версиях. В дальнейшем планируется также добавление настроек.Стоимость: 2 500р. Тем, кто даст обратную связь по работе плагина и развёрнутый комментарий, тот получит скидку в 50% на любое другое платное расширение разработчика или сможет сделать заказ на разработку по льготной цене.Разработчик - участник нашего сообщества Дмитрий (@kit2m2).ПодробнееСайт разработчика@joomlafeed#joomla #JoomShopping #расширения

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

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Написал решение для одноразового использования, автоматическое вычесление местоположения водяного знака не стал делать ибо настрйки элементарны.

Просто пропишите свои размеры в местах где я отметил экранами и замените фнкцию в файле  /administrator/components/com_adsmanager/models/adsmanager.php

function createImageAndThumb($src_file,$image_name,$thumb_name,
                        $max_width,
                         $max_height,
                        $max_width_t,
                        $max_height_t,
                        $tag,
                        $path,
                        $orig_name)
   {
      if (intval(ini_get('memory_limit')) < 64)
         ini_set('memory_limit', '64M');
      
      $src_file = urldecode($src_file);
      
      $orig_name = strtolower($orig_name);

      $ext = strtolower(JFile::getExt($orig_name));
      switch($ext) {
         case "jpg":
         case "jpeg":   
            $type = "jpeg";break;
         case "png":
            $type = "png";break;
         case "gif":
            $type = "gif";break;
         default:
            return;
      }
      
      $max_h = $max_height;
      $max_w = $max_width;
      $max_thumb_h = $max_height_t;
      $max_thumb_w = $max_width_t;
      
      if ( file_exists( "$path/$image_name")) {
         JFile::delete( "$path/$image_name");
      }
      
      if ( file_exists( "$path/$thumb_name")) {
         JFile::delete( "$path/$thumb_name");
      }
      
      $read = 'imagecreatefrom' . $type;
      $write = 'image' . $type;
      
      $src_img = $read($src_file);
      
      // height/width
      $imginfo = getimagesize($src_file);
      $src_w = $imginfo[0];
      $src_h = $imginfo[1];
      //Вычисляем положение знака
      $watermark_width = (($src_w)/2);
      $watermark_height = (($src_h)/2);
      $q = $watermark_width - 124;//Ширина водяного знака /2 (деленного на два)
      $w = $watermark_height - 49;//Высота водяного знака /2  (деленного на два)
      //
      $zoom_h = $max_h / $src_h;
       $zoom_w = $max_w / $src_w;
       $zoom   = min($zoom_h, $zoom_w);
       $dst_h  = $zoom<1 ? round($src_h*$zoom) : $src_h;
       $dst_w  = $zoom<1 ? round($src_w*$zoom) : $src_w;
      
      $zoom_h = $max_thumb_h / $src_h;
       $zoom_w = $max_thumb_w / $src_w;
       $zoom   = min($zoom_h, $zoom_w);
       $dst_thumb_h  = $zoom<1 ? round($src_h*$zoom) : $src_h;
       $dst_thumb_w  = $zoom<1 ? round($src_w*$zoom) : $src_w;
      $watermark = imagecreatefrompng('images/wote.png'); //Название и путь к картинке
      $dst_img = imagecreatetruecolor($dst_w,$dst_h);
      $white = imagecolorallocate($dst_img,255,255,255);
      imagefill($dst_img,0,0,$white);
      imagecopyresampled($dst_img,$src_img, 0,0,0,0, $dst_w,$dst_h,$src_w,$src_h);
      $textcolor = imagecolorallocate($dst_img, 255, 255, 255);
      if (isset($tag)) {
         imagecopyresampled($dst_img, $watermark, $q, $w,0,0, 254,98,254,98);//254,98,254,98 Меняйте на размер своего водяного знака
        }  
      if($type == 'jpeg'){
           $desc_img = $this->createimage($write,$dst_img,"$path/$image_name", 75);
      }else{
           $desc_img = $this->createimage($write,$dst_img,"$path/$image_name", 2);
      }
      
      imagedestroy($dst_img);
      
      $dst_t_img = imagecreatetruecolor($dst_thumb_w,$dst_thumb_h);
      $white = imagecolorallocate($dst_t_img,255,255,255);
      imagefill($dst_t_img,0,0,$white);
      imagecopyresampled($dst_t_img,$src_img, 0,0,0,0, $dst_thumb_w,$dst_thumb_h,$src_w,$src_h);
      //$textcolor = imagecolorallocate($dst_t_img, 255, 255, 255);
      if (isset($tag)) {
         //imagestring($dst_t_img, 2, 2, 2, $tag, $textcolor);
         //$fontfile = JPATH_SITE."/components/com_adsmanager/font/verdana.ttf";
            //imagettftext ($dst_t_img, 7, 0, 5, 12,$textcolor,$fontfile,$tag );
      }
      if($type == 'jpeg'){
           $desc_img = $this->createimage($write,$dst_t_img,"$path/$thumb_name", 75);
      }else{
           $desc_img = $this->createimage($write,$dst_t_img,"$path/$thumb_name", 2);
      }
      
      imagedestroy($dst_t_img);
   }
}
*

lustoff

  • Захожу иногда
  • 137
  • 4 / 1
Re: Водяной знак картинкой и по центру
« Ответ #1 : 05.04.2013, 14:55:03 »
Спасибо, все работает. Но есть некоторые непонятки.
Если я правильно понял, то при загрузке картинок формата jpg png водяной знак встает по центру, а gif уходит в сторону (возможно от формата зависит).
Также непонятно получается при изменении объявления. Удаляю старое изображение, загружаю новое. Миниатюра меняется, а полное изображение появляется старое. Со стандартным водяным знаком вроде нет такого.

П.С. Можете еще подсказать по этой теме? http://joomlaforum.ru/index.php/topic,259033.new.html
*

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Re: Водяной знак картинкой и по центру
« Ответ #2 : 05.04.2013, 16:34:03 »
 $watermark = imagecreatefrompng, да зависит от формата, можно использовать например: (imagecreatefromgif() ).
Чтобы изображение сменилось почистите кеш.
« Последнее редактирование: 05.04.2013, 16:42:10 от LS_D »
*

lustoff

  • Захожу иногда
  • 137
  • 4 / 1
Re: Водяной знак картинкой и по центру
« Ответ #3 : 05.04.2013, 17:38:20 »
Да, дело в кэше было. Неудобно, конечно.
Водяной знак в png у меня. Имеется ввиду, что если добавлять к объявлению изображение в формате gif, то водяной знак на таких изображениях в другом месте появляется, чем на jpg и png.
*

lustoff

  • Захожу иногда
  • 137
  • 4 / 1
Re: Водяной знак картинкой и по центру
« Ответ #4 : 05.04.2013, 18:00:18 »
П.С. А можно какую-то команду в коде прописать, чтобы после редактирования кэш у пользователя чистился автоматом?
*

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Re: Водяной знак картинкой и по центру
« Ответ #5 : 05.04.2013, 19:29:25 »
П.С. А можно какую-то команду в коде прописать, чтобы после редактирования кэш у пользователя чистился автоматом?
В настройках Joomla по умолчанию 15 мин. поменяйте на свое, вот только нагрузка на сервер возрастет...
*

lustoff

  • Захожу иногда
  • 137
  • 4 / 1
Re: Водяной знак картинкой и по центру
« Ответ #6 : 08.04.2013, 10:03:00 »
Дело похоже в кэше браузера, а не Joomla (отключено).
http://forum.xakep.ru/m_1082483/tm.htm . Было бы хорошо к адресу картинки добавлять параметр после "?" при редактировании. Но это уже другая история.
*

xilon

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Водяной знак картинкой и по центру
« Ответ #7 : 20.04.2013, 18:13:26 »
Доброго времени суток!
Отлично работает вставка водяного знака в jpg-фотки с фронта сайта, спасибо!  :D
Но только всплыла проблема при вставке/изменении фоток объявы с админки - водяной знак не вставляется.
Подскажите, пожалуйста, как это полечить?
И ещё... На превьюшка тоже нет водяного знака. Это конечно не критично, но было бы очень неплохо если бы он там был  ^-^
« Последнее редактирование: 20.04.2013, 18:23:36 от xilon »
*

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Re: Водяной знак картинкой и по центру
« Ответ #8 : 21.04.2013, 13:57:44 »
Но только всплыла проблема при вставке/изменении фоток объявы с админки - водяной знак не вставляется.
Подскажите, пожалуйста, как это полечить?
Посмотрю как будет время и выложу решение.
На превьюшка тоже нет водяного знака. Это конечно не критично, но было бы очень неплохо если бы он там был
Уберите экраны
//$textcolor = imagecolorallocate($dst_t_img, 255, 255, 255);
      if (isset($tag)) {
         //imagestring($dst_t_img, 2, 2, 2, $tag, $textcolor);
         //$fontfile = JPATH_SITE."/components/com_adsmanager/font/verdana.ttf";
            //imagettftext ($dst_t_img, 7, 0, 5, 12,$textcolor,$fontfile,$tag );
*

xilon

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Водяной знак картинкой и по центру
« Ответ #9 : 22.04.2013, 09:47:00 »
Спасибо! Бум ждать свободное время и решение!  *DRINK*

По поводу ватермарка на перевьюшках...
У меня на 2.8.1 Stable при снятии экранов надпись из настроек Ads чёт дублировалась (налаживалось 2 одинаковых надписи).
Пришлось оставить на imagestring экран. Так отрабатывает нормально... Мож глюк, мож фича  ^-^
Получилось вот так:
      $textcolor = imagecolorallocate($dst_t_img, 255, 255, 255);
      if (isset($tag)) {
         //imagestring($dst_t_img, 2, 2, 2, $tag, $textcolor);
         $fontfile = JPATH_SITE."/components/com_adsmanager/font/verdana.ttf";
         imagettftext ($dst_t_img, 7, 0, 5, 12,$textcolor,$fontfile,$tag );
      }
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: Водяной знак картинкой и по центру
« Ответ #10 : 22.10.2013, 00:45:10 »
Или я уже заработался или...
но не могу понять где выставить координаты расположения вотермарка.
Он у меня становится по центру и появляются какие-то черные полосы...
Подскажите пожалуйста!
*

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Re: Водяной знак картинкой и по центру
« Ответ #11 : 22.10.2013, 16:24:59 »
Или я уже заработался или...
но не могу понять где выставить координаты расположения вотермарка.
Он у меня становится по центру и появляются какие-то черные полосы...
Подскажите пожалуйста!

Размеры знака правельные поставьте.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: Водяной знак картинкой и по центру
« Ответ #12 : 22.10.2013, 17:44:54 »
Вчера точно подустал - менял размер в комментарии ))))
Спасибо!
« Последнее редактирование: 23.10.2013, 11:54:58 от max_1985 »
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: Водяной знак картинкой и по центру
« Ответ #13 : 29.10.2013, 11:44:50 »
Есть еще небольшая проблема, при удалении картинки из админки или при редактировании объявления пользователем, выскакивает ошибка что эту картинку удалить не удалось.
При этом она вроде удаляется из папки.
« Последнее редактирование: 29.10.2013, 11:54:35 от max_1985 »
*

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Re: Водяной знак картинкой и по центру
« Ответ #14 : 30.10.2013, 20:05:52 »
Есть еще небольшая проблема, при удалении картинки из админки или при редактировании объявления пользователем, выскакивает ошибка что эту картинку удалить не удалось.
При этом она вроде удаляется из папки.

Ну а причем тут этот код?
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: Водяной знак картинкой и по центру
« Ответ #15 : 31.10.2013, 21:26:44 »
Решение проблемы:
После
Код
$orig_name
ставим запятую и вставляем
Код
$max_width_m=null,
$max_height_m=null,
$medium_name=null
В общем должно получиться так:
Код
function createImageAndThumb($src_file,$image_name,$thumb_name,
                        $max_width,
                         $max_height,
                        $max_width_t,
                        $max_height_t,
                        $tag,
                        $path,
                        $orig_name,
$max_width_m=null,
$max_height_m=null,
$medium_name=null)

Далее, после
Код
 imagedestroy($dst_t_img);
Вставляем:
Код
if ($max_width_m != null) {
$zoom_h = $max_height_m / $src_h;
    $zoom_w = $max_width_m / $src_w;
    $zoom   = min($zoom_h, $zoom_w);
    $dst_medium_h  = $zoom<1 ? round($src_h*$zoom) : $src_h;
    $dst_medium_w  = $zoom<1 ? round($src_w*$zoom) : $src_w;
   
    $dst_m_img = imagecreatetruecolor($dst_medium_w,$dst_medium_h);
if ($dst_ext == "jpeg") {
$white = imagecolorallocate($dst_m_img,255,255,255);
imagefill($dst_m_img,0,0,$white);
} else {
imagealphablending( $dst_m_img, false );
imagesavealpha( $dst_m_img, true );
}
imagecopyresampled($dst_m_img,$src_img, 0,0,0,0, $dst_medium_w,$dst_medium_h,$src_w,$src_h);

if ((ADSMANAGER_SPECIAL == "thiago")&&($tag!= null)) {
$tag_file = JPATH_ROOT."/images/toto.png";
$tag_ext = strtolower(JFile::getExt($tag_file));
switch($tag_ext) {
case "jpg":
case "jpeg":
$tag_ext = "jpeg";break;
case "bmp":
$tag_ext = "wbmp";break;
}
$cmd = 'imagecreatefrom' . $tag_ext;
$load_image = $cmd($tag_file);
$loadsize = getimagesize($tag_file);

imagealphablending( $load_image, false );
imagesavealpha( $load_image, true );

$imageTag_w = $loadsize[0];
$imageTag_h = $loadsize[1];

$tagPosX = -5;
$tagPosY = -5;

if ($tagPosX < 0) {
$tagPosX = $dst_medium_w + $tagPosX - $imageTag_w;
}
if ($tagPosY < 0) {
$tagPosY = $dst_medium_h + $tagPosY - $imageTag_h;
}

imagecopy($dst_m_img, $load_image, $tagPosX, $tagPosY, 0, 0, $imageTag_w, $imageTag_h);
imagedestroy($load_image);

}
else if ($tag != null) {
$textcolor = imagecolorallocate($dst_m_img, 255, 255, 255);
$fontfile = JPATH_ROOT."/components/com_adsmanager/font/verdana.ttf";
if ($dst_ext != "jpeg") {
imagealphablending( $dst_m_img, true );
imagettftext ($dst_m_img, 7, 0, 5, 12,$textcolor,$fontfile,$tag );
imagealphablending( $dst_m_img, false );
} else {
imagettftext ($dst_m_img, 7, 0, 5, 12,$textcolor,$fontfile,$tag );
}
}
if($type == 'jpeg'){
$desc_img = $this->createimage($write,$dst_m_img,"$path/$medium_name", 75);
}else{
$desc_img = $this->createimage($write,$dst_m_img,"$path/$medium_name", 2);
}

imagedestroy($dst_m_img);
}

Почему-то система не видела удаления мениатюр.
*

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Re: Водяной знак картинкой и по центру
« Ответ #16 : 01.11.2013, 10:30:44 »
Так все верно, это решение писалось когда еще была актуальна версия 2.7 в ней небыло средних озображений)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Заменить знак евро в AdsManager 3.0

Автор ArtCh

Ответов: 1
Просмотров: 1167
Последний ответ 26.09.2014, 09:29:32
от ArtCh
Водяной знак AdsManager 2.6.5 в виде логотипа (картинки png)

Автор Fever13

Ответов: 4
Просмотров: 1551
Последний ответ 19.03.2014, 15:03:29
от Fever13
Неправильно отображается водяной знак AdsManager 2.8

Автор lustoff

Ответов: 5
Просмотров: 1840
Последний ответ 18.06.2013, 16:17:07
от stef21
AdsManager 2.5 водный знак

Автор AlexAl

Ответов: 13
Просмотров: 4547
Последний ответ 03.03.2013, 21:01:10
от max_1985
Watermark картинкой!

Автор yuri-it

Ответов: 17
Просмотров: 4916
Последний ответ 13.11.2012, 22:15:12
от manager2up