Новости 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 Гость просматривают эту тему.
  • 11 Ответов
  • 1502 Просмотров
*

spmash

  • Захожу иногда
  • 51
  • 0 / 0
Прошу помощи.
 Очень хотелось бы сделать, так чтобы письма приходящие из магазина на
емайл администратора, возвратным адресом имели бы адрес клиента,
который он прописывает в форме заказа.
 Подскажите пожалуйста где и в каком файле, что можно поменять,
поясню для чего это нужно так просто удобнее в ответ на заказ отсылать клиенту счет.
Спасибо огромное.
 Используем Joomla 3.8.3 отсылка email настроена через PHP mailer
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Где поменять возвратный Email
« Ответ #1 : 15.01.2018, 14:26:11 »
Цитата: \components\com_jshopping\models\ordermail.php
$mailer = JFactory::getMailer();
$mailer->setSender(array($mailfrom, $fromname));
if ($type != 'client') {
   $mailer->addReplyTo(array($this->order->email, $this->order_f_name));
}

$mailer->addRecipient($recipient);
$mailer->setSubject($subject);


Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

spmash

  • Захожу иногда
  • 51
  • 0 / 0
Re: Где поменять возвратный Email
« Ответ #2 : 15.01.2018, 17:31:29 »
огромное спасибо.  я примерно нашел где, исходя из этого топика Добавть Reply-To: в заголовки письма с заказом
единственный вопрос остался функция sendmail и addReplyTo в итоге преобразовывают второй параметр
$order->f_name в UTF8 похоже да. 

*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Где поменять возвратный Email
« Ответ #3 : 15.01.2018, 17:50:44 »
ага, неправильно указал параметры, надо указывать не в массиве, просто
Код
$mailer->addReplyTo($this->order->email, $this->order->f_name);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

spmash

  • Захожу иногда
  • 51
  • 0 / 0
Re: Где поменять возвратный Email
« Ответ #4 : 15.01.2018, 18:00:30 »
и еще  заметил что рекомендуют впереди функцию
$mailer->ClearReplyTos()
типа для того чтобы предварительно очистить поле Replyto если, например туда по умолчанию добавлен
адрес админа сайта. https://stackoverflow.com/questions/10396264/phpmailer-reply-using-only-reply-to-address
но это в случае PHPMailer, требуется ли предварительная очистка в случае JFactory::getMailer()
не совсем ясно.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Где поменять возвратный Email
« Ответ #5 : 15.01.2018, 18:05:52 »
требуется ли предварительная очистка в случае JFactory::getMailer()
не совсем ясно.
нет
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

spmash

  • Захожу иногда
  • 51
  • 0 / 0
Re: Где поменять возвратный Email
« Ответ #6 : 15.01.2018, 18:20:47 »
еще один вопрос я пишу  $order->f_name." ".$order->l_name." ".$order->m_name
в качестве второго параметра функции addReplyto
но если l_name и m_name пусты я получаю второй параметр оканчивающийся на два пробела
могу ли я использовать trim($order->f_name." ".$order->l_name." ".$order->m_name)
 
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Где поменять возвратный Email
« Ответ #7 : 15.01.2018, 18:37:32 »
легко
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

spmash

  • Захожу иногда
  • 51
  • 0 / 0
Re: Где поменять возвратный Email
« Ответ #8 : 16.01.2018, 13:39:34 »
ответ приходит в виде
....
Reply-To: Test@Test.ru
.....
почему не отображается значение второго параметра
я же пишу
if ($type != 'client') {
            $mailer->addReplyTo($this->order->email, trim($order->f_name." ".$order->l_name." ".$order->m_name));}


должно быть что-то типа: Reply-To: =?utf-8?B?dGVzdCB0ZXN0IHRlc3Q=?= <Test@Test.ru>
в стандартных решениях по PHP рекомендуют что-то типа:
 '=?UTF-8?B?'.base64_encode($text).'?='

тогда:
 if ($type != 'client') {
            $mailer->addReplyTo($this->order->email, '=?UTF-8?B?'.base64_encode(trim($order->f_name." ".$order->l_name." ".$order->m_name)).'?=');
    }

 
или я не в ту сторону копаю, как работает экземпляр объекта jmail
что-то не удается разобраться.


*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Где поменять возвратный Email
« Ответ #9 : 16.01.2018, 13:48:23 »
или я не в ту сторону копаю, как работает экземпляр объекта jmail
чем дальше в лес, тем толще партизаны :)

почему не отображается значение второго параметра
потому что $this->order и $order - это же 2 разные переменные, не так ли? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

spmash

  • Захожу иногда
  • 51
  • 0 / 0
Re: Где поменять возвратный Email
« Ответ #10 : 16.01.2018, 15:20:24 »
потому что $this->order и $order - это же 2 разные переменные, не так ли? :)
точно....
а слона то я и не приметил
« Последнее редактирование: 16.01.2018, 16:44:07 от spmash »
*

spmash

  • Захожу иногда
  • 51
  • 0 / 0
Re: Где поменять возвратный Email
« Ответ #11 : 16.01.2018, 16:43:11 »
Вопрос в продолжение здесь: https://docs.joomla.org/Sending_email_from_extensions
настоятельно рекомендуют установить
$mailer->Encoding = 'base64';
после
$mailer->isHtml(true);
нужно это в данном компоненте или уже сделано по умолчанию?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как запретить ввод пробела в поле email в JoomShopping?

Автор kassilukraine

Ответов: 12
Просмотров: 1734
Последний ответ 26.05.2021, 09:30:03
от ShopES
(JoomShoping) Сделать поле email необязательным для ввода

Автор eavasi

Ответов: 136
Просмотров: 22776
Последний ответ 23.07.2019, 07:34:40
от nevigen
Блокировка по Email

Автор misteri27

Ответов: 5
Просмотров: 740
Последний ответ 11.11.2018, 21:18:39
от misteri27
Создание html шаблона для отправки на Email

Автор tima

Ответов: 9
Просмотров: 1236
Последний ответ 26.07.2018, 20:24:04
от tima
[Решено] Как поменять местами кнопку и поле заполнения в корзине?

Автор TsMax

Ответов: 4
Просмотров: 1134
Последний ответ 21.09.2015, 11:12:11
от TsMax