Новости Joomla

Совет по Joomla: $db->getQuery(true) стал устаревшим

Совет по Joomla: $db->getQuery(true) стал устаревшим

👩‍💻 Совет по Joomla: $db->getQuery(true) стал устаревшим.Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода

getQuery(). Если передавался параметр
$new =
true, то получали новый запрос. Если без - последний.

use Joomla\CMS\Factory;$db = Factory::getContainer()->get('DatabaseDriver');$query = $db->getQuery(new: true);// и строим запрос
Под капот Joomla 4 вошёл Joomla Framework (PHP фреймворк а-ля Laravel, Yii и т.д.), а для Joomla 5 он обновился - версия 3.4.1 вышла 6 октября 2023г. В методе фреймворка есть примечание о том, что параметр
$new, который передавался в метод
getQuery() помечен как устаревший и будет удалён в версии фреймворка 4.0.
The parameter $new is deprecated and will be removed in 4.0, use %s::createQuery() instead.В Joomla 4 версия Joomla Framework была 2.x., в Joomla 5 - 3.x. Поэтому есть предположение, что с выходом Joomla 6 обновится и версия фреймворка - станет 4.0. Поэтому для получения объекта для новых запросов следует использовать метод
createQuery(). Он уже представлен в ядре и широко используется. При этом метод
getQuery() останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.
@joomlafeed#joomla #php #разработка

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

yutex

  • Осваиваюсь на форуме
  • 22
  • 3 / 0
dron, скорее всего сменили настройки на сервере....

у меня тоже был apache и всё пахало как часы, сейчас перешёл на более надежный nginx+apache и никак не могу понять как правильно прописать rewrite для watermark.php
Здравствуйте, в данном случае никакой rewrite не поможет, так как что бы сработал rewrite, картинку должен увидеть apache, но он её просто не видит, так как картинку уже отдал клиенту nginx.
Как решение для соотсвующего виртуалхоста в nginx прописать, что бы отдача картинок шла через apache
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
если отправить все картинки на apache, то сайт будет тупить, что я сейчас и пробую, разница большая...
лучше и надежнее, если картинки отдает nginx, а остальное apache, но опять проблема с watermark...
пытаюсь заставить его работать через nginx, пробую в конфиге nginx прописать в картинках что-то типа :
rewrite ^(.*components/com_virtuemart/shop_image/product.*\.jpg)$ /watermark/watermark.php?$1 last;
но пока не получается, картинки эти защищает так, что не открывает, просто крутится спинер =)
если вставлять эту строчку в другие локации, то тишина...
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
а кто-нить пробовал засунуть обработку watermark в скрипт VirtueMart для всех $product_full_image?
видел кто-то сделал watermark через жумловский com_media, но с ним тоже тишина...

beagler, как-то говорил что можно попробовать:
Цитировать
в принципе, всё это можно сделать не трогая  htacces
в virumart.cfg в IMAGEURL нужно прописать путь сразу со скриптом watermark
...
надо копать глубже. Но смысл именно в этом - во flypage вызывать скрипт watermark.php и уже ему давать Вашу картинку.
или здесь была попытка...

зы: может есть профи по java и мы отредактируем slimbox.js, чтобы сразу напрямую делать watermark?
по ссылке выше есть пример, но в новой версии VM не канает...
надо отредактировать в slimbox.js:
 i=new Element("div",{id:"lbImage"}).injectInside(b).adopt(K=new Element("a",{id:"lbPrevLink",href:"#"}),e=new Element("a",{id:"lbNextLink",href:"#"}));
и как-то добавить new Element("div",{id:"watermark"}).injectInside(i)...
без знаний языка, логика не спасает... =)
« Последнее редактирование: 22.10.2010, 08:45:10 от skyscraper »
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
с nginx пока решил пробему так:
Цитировать
location ~ ^/components/com_virtuemart/shop_image/product/.*\.(jpg|jpeg|gif|png)$ {
      
      proxy_pass http://127.0.0.1:81;
      proxy_redirect     off;
      proxy_set_header   Host             $host;
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

      }
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
а вот кому надо watermark через slimbox.js
Цитировать
.....i=new Element("div",{id:"lbImage"}).injectInside(b).adopt(K=new Element("a",{id:"lbPrevLink",href:"#"}),e=new Element("a",{id:"lbNextLink",href:"#"})); new Element("div",{id:"watermark"}).injectInside(i);....
*

venoel

  • Новичок
  • 9
  • 1 / 0
Спасибо. Все работает, как написано во втором посте. Только из .htaccess убрал строку DirectoryIndex.
Ну и в httpd.conf включил модуль rewrite.

P.S. Ну и в конфигурации Apache должно быть
Код
AllowOverride FileInfo
что бы .htaccess обрабатывался.
« Последнее редактирование: 28.12.2010, 10:47:30 от venoel »
*

muffder

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
M.C., а с какой радости?
там речь шла про ГИФы

на сколько я помню, вот это условие определяет формат
   if ($info_o[2]==1) {
попробуй вместо единицы другие цифры поставить

Попробовал, не получилось. Так и осталась проблема с черными png. На другом сайте рисунки jpg - все работает. Картинки нужны прозрачные, подскажите еще варианты.
*

Zaicev

  • Захожу иногда
  • 120
  • 2 / 0
Все сделал как написано во 2-м посте.
На локалке работает а на хостинге не работает (ничего не происходит).
Писал на хостинг или в Апаче включен AllowOverride FileInfo.
Сказали что значения параметра AllowOverride стоит All.
В чем может быть еще проблема ?
Спасибо!
*

venoel

  • Новичок
  • 9
  • 1 / 0
ну ничего не работает - громко сказано. Что есть в логах апача и в логах с ошибками php?
*

temka-k

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
При установке скрипта пропали все картинки, если открыть конкретный файл, появляется следующая картина:

Deprecated: Function split() is deprecated in Z:\home\*\www\watermark\_watermark.php on line 14
Deprecated: Function split() is deprecated in Z:\home\*\www\watermark\_watermark.php on line 15
Deprecated: Function split() is deprecated in Z:\home\*\www\watermark\_watermark.php on line 16

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\*\www\watermark\_watermark.php:14) in Z:\home\*\www\watermark\_watermark.php on line 42

Поискал инфу по поводу этой ошибки - говорят кодировка не та, перекодировал файлы в УТФ без ВОМ, но ошибка не исчезла.

Подскажите где кроется проблема.
*

imax

  • Новичок
  • 2
  • 0 / 0
Стоял данный скрипт сайте. Сервер хостинга свой. Работало все нормально. Как переехал на другой сервер, то перестал работать скрипт. Заместо картинок пустота вообще. Раньше был сервер на FreeBSD, а тот на который переехал CentOS. Рулил обеими я. Подскажите в чем проблема? Может какие библиотеки надо подключать для работы?

притом если стираю watermark.php то происходит тоже самое. как только стираю htaccess то все картинки отображаются нормально без водяного знака правда.

при открытие какого либо изображения из папки где есть файл htaccess, то вываливается:

Код
50) && ($info_o[1] > 50) ) { imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]); } switch ($info_o[2]) { case 1: imageGIF($out); break; case 2: imageJPEG($out); break; case 3: imagePNG($out); break; } imageDestroy($out); imageDestroy($original); imageDestroy($watermark); return true; } ?>
« Последнее редактирование: 29.01.2011, 18:48:04 от imax »
*

imax

  • Новичок
  • 2
  • 0 / 0
вопрос снят. оказывается в вашем файле
<? ?>

а надо было
<?php ?>
*

Pobeg

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
хг-хг... crazy!  Долго конечно мучал, всё равно спасибо.
*

rg777777

  • Новичок
  • 8
  • 0 / 0
  • http://xohanoc.info
Zdrastvoyte
kto to mojet pomoch menya v takom vaprose
u menya na sayte o4en xarasho rabotaet vash script balshoe spasiba

Vapros na sayte http://xohanoc.info est raznie razmeri fotok i mne nujno 4tob na balshie fotki 900px > otabrajalsya watermark900.png
a na drugix katorie malenkie >150 do 899 px otabrajalsya watermark.png

ZA ranee spasibo
 
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Цитировать
Keno

вообще мужиык))) долго я ету гадость искал))))) + тебе от меня все робит код читабелен)))
*

Je.Ka

  • Захожу иногда
  • 54
  • 0 / 0
Keno спасай. Не ставятся вотермарки никак. Ставлю из 2го поста. Хостинг timeweb. Компонент jshopping.
В корне лежит папка watermark c php и png файлом. В папке с картинками лежит .htaccess.
4 браузера перепробовал. Не отображается водяной значок :(
*

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Чтобы не уменьшалось качество картинок в скрипте из второго поста вместо
Код
switch ($info_o[2]) {
      case 1:
         imageGIF($out);
         break;
      case 2:
         imageJPEG($out);
         break;
      case 3:
         imagePNG($out);
         break;
         }
делаем
Код
switch ($info_o[2]) {
    case 1:
imageGIF($out, NULL, 100);
break;
case 2:
imageJPEG($out, NULL, 100);
break;
case 3:
imagePNG($out, NULL, 100);
break;
}


p.s. А вообще "ватермарк на лету"  - ЗЛО, дополнительная нагрузка на сервер и довольно приличная.
*

7709670

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
В автостенде работает, в маркетпласе не работает, в джумсоциале не работает. Межет дело в включеном ЧПУ?
*

gurik

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
У меня заработало. Если кому интересно дам сылку на готовое решение.

Кто нибудь все таки разобрался что делать если скрипт глушит все картинки.
Перепробовал все что здесь советовали ничего не работает.
Вместо картинки показывает шильдик изображения, но возвратная ссылка с шильдика работает.
При просмотре кода страницы со скриптом и без скрипта нет никаких различий.

Я так понимаю единого решения нет и каждый подстраивает под себя, у меня сайт на HTML, может кто подскажет?
Кстати сервер nginx + Апач.
« Последнее редактирование: 10.03.2011, 18:11:07 от Petruha »
*

farmay

  • Захожу иногда
  • 337
  • 10 / 4
  • Все так как должно быть...
Очень прошу помочь, в стандартном com_content все нормально но в zoo водяной знак показывается только при выборе картинки



, на сайте же этого водяного знака нет

*

moskitos80

  • Осваиваюсь на форуме
  • 21
  • 3 / 0
При установке скрипта пропали все картинки, если открыть конкретный файл, появляется следующая картина:

Deprecated: Function split() is deprecated in Z:\home\*\www\watermark\_watermark.php on line 14
Deprecated: Function split() is deprecated in Z:\home\*\www\watermark\_watermark.php on line 15
Deprecated: Function split() is deprecated in Z:\home\*\www\watermark\_watermark.php on line 16

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\*\www\watermark\_watermark.php:14) in Z:\home\*\www\watermark\_watermark.php on line 42

Поискал инфу по поводу этой ошибки - говорят кодировка не та, перекодировал файлы в УТФ без ВОМ, но ошибка не исчезла.

Подскажите где кроется проблема.

Deprecated: Function split()...  split - устаревшая функция, не рекомендуемая к использованию, если установлен боле-менее свежий php и определённый уровень вывода ошибок, то php выводит сообщение,
как следствие идущая за ней функция:
Код
header("Content-type: ".$info_o['mime']);
уже не может установить требуемый mime-тип,
и ругается, что заготовки HTTP уже отправлены: Warning: Cannot modify header information...

предупреждение у тебя касается 14,15 и 16 строки, советую сделать так меняешь эти строки на :

Код
list ($vertical, $horizontal) = explode(',', $placement);
list($vertical, $sy) = explode('=', trim($vertical));
list($horizontal, $sx) = explode('=', trim($horizontal));

Вообще что бы отладить скрипт можно вызывать его напрямую, но при вызове ф-ции waterMark() передать первым параметром строку-полный путь к картинке например:
Код
waterMark('http://site.ru/components/com_virtuemart/shop_image/product/3bc3a4ab77271f27c6b395296f6df6d3.jpg', 'watermark.png', 'bottom=10,right=10');
И если скрипт выводит картинку... то всё нормально - будет работать. У меня с VirtueMart на Joomla 1.5, на Apache работал.

Залил на хостинг, работать перестало... тупо не срабатывает .htaccess.
Наверно особенности настройки сервера - в этом я не силён.

PS.
Watermark на-лету действительно зло, зачем вам лишний редирект для каждой картинки на сайте?
Не проще в фотошопе в пакетном режиме проставить ватермарку?


*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
ребятки, добрый день! а как же все ж таки водный знак по центру изображения сделать? все картинки разные и отступы от краев - это не выход...

Заранее спасибо!
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
что, по центру никак не выровнять?
*

Archie

  • Захожу иногда
  • 67
  • 1 / 0
Нашел новый плагин, который вставляет лого при загрузке изображение (то что нужно!), но он создает свои папки (с не понятным именем) и лепит туда созднанные файлы. Может ли кто-то "допилить" плагин что б он просто заменял оригинальные фотки на фотки с наложенным лого?

Сам плагин можно взять тут: http://j4vn.com/download/func-startdown/7/
*

Sektor38

  • Захожу иногда
  • 183
  • 0 / 1
Всё работает,
См. 2-ой пост с правками и дополнениями.
спс большое за скриптик!
*

Kupidon

  • Новичок
  • 9
  • 0 / 0
Уважаемые знатоки, пожалуйста помогите поправить этот код водяного знака. В коде все работает, изображение водяного знака прикрепляется к правому нижнему углу рисунка. НЕОБХОДИМО: сделать дополнительное изображение знака в верхнем левом углу рисунка. И, самое главное, сделать рисунок знака зависящим от ширины (размеров) основного рисунка. Например рисунок шириной 100% - то знак будет шириной 10%. Заранее благодарю!
Код
waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'], "watermark.png", "bottom=5,right=5");

function waterMark($original, $watermark, $placement = 'bottom=5,right=5', $destination = null) {
   $original = urldecode($original);
   $info_o = @getImageSize($original);
   if (!$info_o)
         return false;
   $info_w = @getImageSize($watermark);
   if (!$info_w)
         return false;

   list ($vertical, $horizontal) = split(',', $placement,2);
   list($vertical, $sy) = split('=', trim($vertical),2);
   list($horizontal, $sx) = split('=', trim($horizontal),2);

   switch (trim($vertical)) {
      case 'bottom':
         $y = $info_o[1] - $info_w[1] - (int)$sy;
         break;
      case 'middle':
         $y = ceil($info_o[1]/2) - ceil($info_w[1]/2) + (int)$sy;
         break;
      default:
         $y = (int)$sy;
         break;
      }

   switch (trim($horizontal)) {
      case 'right':
         $x = $info_o[0] - $info_w[0] - (int)$sx;
         break;
      case 'center':
         $x = ceil($info_o[0]/2) - ceil($info_w[0]/2) + (int)$sx;
         break;
      default:
         $x = (int)$sx;
         break;
      }

   header("Content-Type: ".$info_o['mime']);

   $original = @imageCreateFromString(file_get_contents($original));
   $watermark = @imageCreateFromString(file_get_contents($watermark));
   $out = imageCreateTrueColor($info_o[0],$info_o[1]);

   imageCopy($out, $original, 0, 0, 0, 0, $info_o[0], $info_o[1]);

//Тут задаем размер изображения в которые можно добавлять Watermark
// $info_o[0] > 250 - ширина изображения должна быть больше 250 px
// $info_o[1] > 250 - высота изображения должна быть больше 250 px

   if( ($info_o[0] > 250) && ($info_o[1] > 250) )
   {
   imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]);
   }

   switch ($info_o[2]) {
      case 1:
         imageGIF($out);
         break;
      case 2:
         imageJPEG($out);
         break;
      case 3:
         imagePNG($out);
         break;
         }

   imageDestroy($out);
   imageDestroy($original);
   imageDestroy($watermark);

   return true;
   }

?>
*

Just1ce

  • Осваиваюсь на форуме
  • 11
  • 4 / 0
с nginx пока решил пробему так:
location ~ ^/components/com_virtuemart/shop_image/product/.*\.(jpg|jpeg|gif|png)$ {
     
      proxy_pass http://127.0.0.1:81;
      proxy_redirect     off;
      proxy_set_header   Host             $host;
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

      }
Получилось что-нибудь с nginx придумать?
*

selleracc

  • Новичок
  • 9
  • 0 / 0
Здравствуйте, прошу помощи профессионалов. Проблема такова:
Поставил скрипт на localhost, все работает отлично, потом пришло время заливать сайт на хостинг и тут обнаруживаю что водяные знаки просто не отображаются, все фотки отображаются без проблем, только уже без водяных знаков. Сделал backup и залил сайт на другой хост и на мое удивление там все работает! Получается что проблемы в настройках сервера на хостинге, пробовал звонить в support, мне сказали написать письмо с полным описанием проблемы. Друзья помогите правильно сформулировать мою проблему, чтобы написать письмо в support, чтобы они посмотрели что то там в настройках, я сам в этих вопросах не силен, поэтому прошу помощи, спасибо!
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Здравствуйте, прошу помощи профессионалов. Проблема такова:
Поставил скрипт на localhost, все работает отлично, потом пришло время заливать сайт на хостинг и тут обнаруживаю что водяные знаки просто не отображаются, все фотки отображаются без проблем, только уже без водяных знаков. Сделал backup и залил сайт на другой хост и на мое удивление там все работает! Получается что проблемы в настройках сервера на хостинге, пробовал звонить в support, мне сказали написать письмо с полным описанием проблемы. Друзья помогите правильно сформулировать мою проблему, чтобы написать письмо в support, чтобы они посмотрели что то там в настройках, я сам в этих вопросах не силен, поэтому прошу помощи, спасибо!
Почитайте тему, будете иметь понятие о чем идет речь, и сможете составить письмо для хостера.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

pPGallery для Joomla! 3.2 - плагин автоматического создания мини галереи в материале - pPGallery for

Автор Beer

Ответов: 46
Просмотров: 13233
Последний ответ 16.01.2024, 19:59:56
от Beer
Бесплатная галерея для Joomla 3 - все базовые функции включены

Автор fastw 3b

Ответов: 0
Просмотров: 4884
Последний ответ 27.09.2018, 19:06:39
от fastw 3b
Dizi images обновление Joomla 3.8.3

Автор Abazinchik

Ответов: 0
Просмотров: 1809
Последний ответ 27.12.2017, 21:31:39
от Abazinchik
Responsive Image Gallery для Joomla 3

Автор Alex GOOD

Ответов: 2
Просмотров: 3206
Последний ответ 16.05.2017, 18:03:25
от stendapuss
Нужна галерея с привязкой к материалам Joomla

Автор Strikerus

Ответов: 18
Просмотров: 5050
Последний ответ 05.04.2017, 12:16:01
от Strikerus