Новости Joomla

Вышли релизы безопасности Joomla 6.1.3 и Joomla 5.4.8

Релиз безопасности Joomla 6.1.3 и Joomla 5.4.8

Проект Joomla! рад сообщить о выходе Joomla 6.1.3 и Joomla 5.4.8. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

Joomla 5+ пакет для интеграции с API Почты России: нормализация данных, расчёт доставки, создание отправлений, партии, документы, возвраты, поиск отделений, справочники и SOAP-отслеживание.

v.3.0.0. Что нового?
Это дальнейшее развитие ранее закрытой Joomla-библиотеки для работы с API сервиса Отправка (для бизнеса) Почты России. Поэтому версия не 1.0.0, а 3.0.0.

Сейчас эта библиотека ушла от собственных реализаций и стала Joomla-обёрткой известного PHP SDK от Lapay Group.

Возможности библиотеки.
- получение настроек аккаунта, точек сдачи и текущего остатка запросов к API;
- нормализация адресов, ФИО и телефонов перед созданием отправления;
- расчёт тарифа и срока доставки;
- создание, поиск, изменение, удаление и возврат заказов в состояние «Новые»;
- проверка надёжности получателя;
- создание партий, просмотр партий и заказов внутри партии;
- генерация пакета печатных документов и формы Ф103;
- создание, изменение и удаление возвратных отправлений;
- поиск отделений по индексу, адресу и координатам, получение сервисов отделения;
- локальный список стран;
- SOAP-отслеживание операций по РПО и работа с билетами пакетного трекинга.

👩‍💻 Joomla-возможности.
В пакете библиотеки WT Otpravkapochtaru есть поля Joomla Form для расширений. Они позволяют работать в интерфейсе Joomla с некоторыми типами данных, получаемых по API из вашего личного кабинета в ЛК Почты России для бизнеса.
На данный момент в библиотеке доступны 3 поля списков, которые отображают доступные в аккаунте ОПС, типы и категории отправлений.
Поддерживаются зависимые списки: значение одного поля обновляется при изменении другого.

Системные требования.
Системные требования в основном связаны с системными требованиями апстрима библиотеки - LapayGroup PHP SDK.
- Joomla 5+
- PHP 8.3+
- Расширения PHP:
-- ext-mbstring
-- ext-simplexml
-- ext-soap (опционально, для трекинга)
-- ext-zip

Ссылки:
- Страница расширения
- GitHub библиотеки и документация

@joomlafeed

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

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
Добрый вечер!

Сегодня была обнаружена критическая ошибка в панели администрирования списка заказов. Ошибка на данный момент возникает исключительно на MySQL 8.0.16. На предыдущих версиях MySQL, а также версиях MariaDB работа корректная.

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

Вопрос в целом спорный, я получил ответ от Sinisa Milivojevic с Oracle (подробнее здесь: https://bugs.mysql.com/bug.php?id=95754), они это за баг не считают и если я верно понимаю, исправлять не намерены. С одной стороны, они безусловно правы, но с другой полностью ломается принцип обратной совместимости. Скриптов и приложений с запросом типа datetime LIKE я встречал немало. Поэтому будем поглядеть.

Создана тема также на JoomShopping.com + там заодно указал пару багов, которые, надеюсь, исправят в последующих версиях.
Подробнее: https://www.joomshopping.com/forum/posts/12/13759.html?lang=ru
*

dmitry_stas

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

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
спасибо что написали

Не за что. Да, если кто-то вдруг повторил мою ошибку и уже обновил MySQL. Тогда так:

Файл: administrator/components/com_jshopping/models/orders.php
Метод: getCountAllOrders(...) - комментируем: // $where .= " and O.order_date like '".$year."-".$month."-".$day." %'";
Метод: getAllOrders(...)- комментируем: // $where .= " and O.order_date like '".$year."-".$month."-".$day." %'";

Сортировка по дате заказов работать не будет, но по крайней мере увидите список заказов и сможете с ним работать.
Существенные заплаты делать и ставить, я думаю, не имеет смысла до какого либо разрешения вопроса со стороны разработчиков.
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
Получил ответ от Sinisa Milivojevic (https://bugs.mysql.com/bug.php?id=95754). Цитирую:

Hi,

There is no software for which a full backward guarantee is preserved. That is why we have new versions, like 5.6, than 5.7 and now 8.0. We introduce new features, become more compliant with a standard and deprecate features that are incompatible, problematic or non-standard.

------

Если вкратце, то обратная совместимость по типу datetime сохранена не будет. Использование не по стандарту является проблемой тех, кто отклонялся от стандарта. Поэтому если вы использовали оператор LIKE для запросов к полям типа datetime - отказывайтесь от такого использования и приводите ваши программы к стандарту. Не факт, что разработчики MariaDB не пойдут по этому же пути.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну и хорошо :) появилась надежда что может быть наконец то у нас будет нормальный фильтр по датам От ... До..., а не та пародия которую имеем сейчас :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
ну и хорошо :) появилась надежда что может быть наконец то у нас будет нормальный фильтр по датам От ... До..., а не та пародия которую имеем сейчас :)
а сейчас как?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
это трудно описать словами :) http://prntscr.com/o1g3qn
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
ну и хорошо :) появилась надежда что может быть наконец то у нас будет нормальный фильтр по датам От ... До..., а не та пародия которую имеем сейчас :)

Это уже от разработчиков зависит. Теоретически форму могут и не изменить, но запрос по стандартам сделать, я не знаю как они поступят. Стандартизация вообще дело хорошее, но я против такой резкой отмены поддержки старого кода (хоть и сам в данном случае так не делал). Получается на версии 8.0.13 все работало шикарно, а на версии 8.0.16 резкие изменения, при этом никто ничего вообще не сказал.

Ко всему, там не все так гладко, например такой запрос: SELECT * FROM database WHERE datetime LIKE "%-%-% %"  - не работает, а такой: SELECT * FROM database WHERE datetime LIKE "201%-0%-1% 0%" - вполне адекватно работает.

Ну, и какая здесь тогда строгая типизация к полю datetime, если по прежнему, грубо говоря, регулярное выражение работает (если не пустое). А это приведет к тому, что часть кода по такой структуре будет работать, а часть нет. И та часть, что будет корректно работать всплывет когда-нибудь ни пойми когда.

Наняли вот в крупной компании удаленного работника, а он часть кода так запилил. А потом обновились и никто ничего не заметил и ущерб в итоге в миллионы, пока это поправят.

Вот вам "not a bug" от Oracle. Написал по новой. Но на особый результат не рассчитываю.
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
это трудно описать словами :) http://prntscr.com/o1g3qn
Да, странное решение. Что мешало там календарь подключить?

Не менее станным кажется и поиск по полю datetime с помощью LIKE. Хоть и знал, что это поле текстовое, но использовать LIKE в голову не приходило, да и ситуацию для этого придумать не могу. Как-то обычно обходился сравнениями < и >, которые одинаково работают и с datetime, и с timestamp.
Или бывают ситуации, когда годится только LIKE?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Или бывают ситуации, когда годится только LIKE?
ну например выбрать заказы за ноябрь всех возможных годов. хотя и тогда можно обойтись без like, а использовать month(). в любом случае такой фильтр по дате ни о чем, куда лучше и информативнее От До
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
Не менее станным кажется и поиск по полю datetime с помощью LIKE. Хоть и знал, что это поле текстовое, но использовать LIKE в голову не приходило, да и ситуацию для этого придумать не могу. Как-то обычно обходился сравнениями < и >, которые одинаково работают и с datetime, и с timestamp.
Или бывают ситуации, когда годится только LIKE?

Эти поля не текстовые. И в документации о таком их использовании ничего не сказано, это верно.
Откуда ноги растут - не знаю. Если это облегчает задачу и тем более это работает без проблем - вы это используете.
Можно считать это хаком, можно как угодно, но конструкция очень давно работала и по принципу "не усложняй себе жизнь" ею стали пользоваться. Скажем хочу выборку по январю 2012 и пишу ... LIKE "2012-01-% %", работает? Работает! А туда же еще переменные подставить, если это запрос серверу БД через ПО, тогда вообще отлично, правильно?!

Вот и наплодилось такого кода достаточна, я такое даже в СИшном Qt встречал. Это не значит, что программист дурак, просто лень поражает обходные пути, когда они есть и тем более безотказно работают (до сегодня).

Хреново то, что в Oracle это в учет не взяли. По сути да, раньше к нему относились как типу text/varchar, а теперь он вообще непонятного типа. Вроде как "strict type not string", только тогда LIKE вообще работать не должен, а он работает. Дальше, к чему может привести, выше написал.
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
Эти поля не текстовые.
Да, все же это 8-байтное число.

Скажем хочу выборку по январю 2012 и пишу ... LIKE "2012-01-% %", работает? Работает!
Не проверял )) но ведь это не намного проще и не сильно короче, чем BETWEEN '2012-01-' AND '2012-02-'. Или такая конструкция с новым MySQL тоже даст сбой?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
Не проверял )) но ведь это не намного проще и не сильно короче, чем BETWEEN '2012-01-' AND '2012-02-'. Или такая конструкция с новым MySQL тоже даст сбой?

Ошибку не выдает, но и возврат пустой. Вообще ваша конструкция тоже не верная (не знаю работает ли на старых версиях, так не записывал никогда). По стандарту правильно будет так:

BETWEEN CAST('2012-01-01 00:00:00' AS DATETIME) AND CAST('2012-02-29 23:59:59' AS DATETIME)

или

BETWEEN CAST('2012-01-01' AS DATE) AND CAST('2012-02-29' AS DATE)

в зависимости от того к какому типу поля обращаетесь. Причем, настоятельно рекомендуется использовать функцию CAST для явного приведения к типу.
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
Причем, настоятельно рекомендуется использовать функцию CAST для явного приведения к типу.
Не поспоришь. С тИпами уже бывали прецеденты ))
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

ProtectYourSite

  • Живу я здесь
  • 2387
  • 141 / 4
  • Безопасность вебсайтов
Причем, настоятельно рекомендуется использовать функцию CAST для явного приведения к типу.
С этим можно поспорить, с CAST индексы работать не будут.
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
С этим можно поспорить, с CAST индексы работать не будут.

Почему не будут? CAST просто явно приводит один тип данных к другому. Если запрос делать без CAST, то движок MySQL попытается привести тип сам, почему и рекомендуется использовать CAST. Т.е. функция CAST будет вызвана один раз, а дальше уже значение приведенное к нужному типу будет искаться в БД в том числе используя механизм индексов.

Может вы подразумевали CAST(ПОЛЕ_ТАБЛИЦЫ AS ТИП), тогда, да, функция будет вызываться для каждого значения в цикле.  Но это только в теории, таким образом CAST не должен работать вообще, а MySQL должна вернуть исключение об ошибке. По крайней мере, я такого использования CAST не встречал ни разу .
*

Capere

  • Новичок
  • 1
  • 1 / 0
Специально зарегистрировалась, чтобы поблагодарить.
Никак не могла найти, в каком конкретно месте не нравится запрос.
*

D. Tkachenko

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

Разработчики, к сожалению, не спешат с обновлениями. Из последних моих багрепортов исправили лишь модуль Latest Products (не тестировал, но код смотрел, модуль последней версии должен работать хорошо).

P.S. С форумом не раньше зимы буду осваиваться, сейчас времени хватает только на семью и работу. Если кому-то не смогу ответить, значит времени не просто нет, а совсем нет)
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
В Joomla тоже баг был, кстати, связанный с MySQL 8.

Цитировать
Bug fixes and Improvements
Custom Fields: Fix language strings/unknown columns/sorting #25476
Creating categories on the fly with numbers #25024
Fix database schema checker for MySQL 8 #25658
Tree sorting in templates file tree #25792
Improved PHP 7.4 compatibility #25784

Рекомендую не забыть обновиться до версии  3.9.11.
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
Исправили в версии 4.18.4. Как именно исправили не знаю, еще не смотрел. Только увидел ответ на их форуме https://www.joomshopping.com/forum/posts/12/13759.html

Другие баги, возможно, тоже пофиксили. Отпишитесь, кто тестировал новую версию или код смотрел, интересно.

P.S. C Новым Годом!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Отпишитесь, кто тестировал новую версию или код смотрел, интересно.
поменяли формат фильтра, теперь это дата От ... До ...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
поменяли формат фильтра, теперь это дата От ... До ...

Ясно. Спасибо! На днях тестировать буду. Еще бы Joomla 4 вышла, ждем всё, ждем... Пока допилят и бутстрап 5 выйти успеет, опять стандартные библиотеки плагином отключать что-ли ;D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Finder плагин умного поиска (товары, атрибуты, характеристики)

Автор sergeytolkachyov

Ответов: 1
Просмотров: 3407
Последний ответ 13.08.2026, 14:07:56
от sergeytolkachyov
WT Max bot - JoomShopping

Автор sergeytolkachyov

Ответов: 0
Просмотров: 572
Последний ответ 22.07.2026, 09:43:03
от sergeytolkachyov
Плагин обновления цен и остатков товаров JoomShopping из CSV

Автор sergeytolkachyov

Ответов: 3
Просмотров: 8076
Последний ответ 01.07.2026, 14:45:12
от sergeytolkachyov
WT JoomShopping Export YML

Автор sergeytolkachyov

Ответов: 0
Просмотров: 949
Последний ответ 01.07.2026, 14:40:29
от sergeytolkachyov
[JoomShopping 5] вывод товаров из дочерних категорий

Автор v42bis

Ответов: 16
Просмотров: 9836
Последний ответ 13.05.2026, 17:26:17
от sergeytolkachyov