Новости Joomla

👩‍💻 WT CDEK library v.1.3.0 - обновление PHP SDK для Joomla + CDEK.

👩‍💻 WT CDEK library v.1.3.0 - обновление PHP SDK для Joomla + CDEK.

Небольшая нативная PHP Joomla библиотека для работы с API v.2 службы доставки CDEK. Библиотека представляет собой клиент для авторизации в CDEK API по OAuth, работы с некоторыми методами API: получения ряда данных и расчета стоимости доставки. Поддерживается Joomla 4.2.7 и выше.

В пакет входят:
- библиотека Webtolk/Cdekapi
- системный плагин System - WT Cdek для хранения настроек и AJAX-интеграций
- task-плагин Task - Update WT Cdek data для обновления локальных копий справочников CDEK по расписанию
- web asset с официальным JavaScript-виджетом СДЭК

👉 v.1.3.0. Что нового?
- Полный рефакторинг библиотеки. Библиотека переработана в entity-based API с фасадом Cdek и отдельным слоем запросов. Обратная совместимость не нарушена, поэтому версия библиотеки - 1.3.0.
- Добавлена поддержка новых разделов API СДЭК. Добавлена поддержка новых разделов API СДЭК: webhooks, prealert, печатные формы, payment, passport, reverse, intakes и других сущностей.
- Улучшена интеграция с Joomla.
Улучшена интеграция с Joomla: installer script для layouts, новые поля Joomla Form для тарифов и обновлённые js виджета CDEK.
- документация библиотеки. Все методы библиотеки подробно описаны, а так же текст документации собран в отдельной папке в git репозитории и будет опубликован на сайте.

Библиотека эта нужна для разработчиков, создающих свои расширения для интеграции Joomla и курьерской службы CDEK.

Страница расширения
GitHub расширения

@joomlafeed

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

westward

  • Осваиваюсь на форуме
  • 11
  • 4 / 0
Здравствуйте!

Выяснилось, что стандартный компонент поиска с включенным SEO, если слово или фраза содержат заглавную русскую "Р", работает неправильно. Из-за скромных познаний в теме пришлось долго и много копать - вначале стандартный плагин content - search, затем стандартный компонент поиска. Искал я место в программном коде, которое в строке utf-8 с кодами русской Р меняет D0 A0 на D0 20.
Докопался до нужного на мой взгляд места. В контроллере компонента com_search, функция search(), последняя строка кода - вызывается метод JRoute::_(). И вот в нем-то строка с заглавной Р и портится.

Файл \libraries\joomla\methods.php - реализация класса JRoute и метода JROUTE::_()

                // Replace spaces
                $url = preg_replace('/\s/', '%20', $url);

Переменная $url соответственно на входе и на выходе этой функции:
/component/search/КОРБАН.html?ordering=&searchphrase=all
/component/search/КО�%20БАН.html?ordering=&searchphrase=all

Насколько я понимаю, этот вызов preg_replace должен заменить любой пробельный символ на последовательность %20. Но почему заглавная русская Р засчитана как пробельный символ?

С уважением
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: preg_replace() и заглавная русская Р
« Ответ #1 : 14.01.2009, 19:42:45 »
Я бы заменил строчку:

Код: php
$url = preg_replace('/\s/', '%20', $url);

на

Код: php
$url = preg_replace('/\s/u', '%20', $url);
*

westward

  • Осваиваюсь на форуме
  • 11
  • 4 / 0
Re: preg_replace() и заглавная русская Р
« Ответ #2 : 14.01.2009, 23:02:58 »
Да, так все работает верно. Спасибо огромное за ответ!

Есть на форуме место, куда стоило бы написать заметку? Или кому надо, сам найдет?

С уважением
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: preg_replace() и заглавная русская Р
« Ответ #3 : 15.01.2009, 10:23:51 »
Мы добавим эту информацию в Joomla FAQ, и, конечно, я добавил описание этой ошибки и ее решения в bug-tracker Joomla, будем надеяться, что в следующей версии это будет уже исправлено.
*

westward

  • Осваиваюсь на форуме
  • 11
  • 4 / 0
Re: preg_replace() и заглавная русская Р
« Ответ #4 : 16.01.2009, 13:59:27 »
Для корректной работы стандартного компонента поиска Joomla нужно внести еще одно исправление.

Файл \components\com_search\views\search\view.html.php. Строка примерно 129-я.

Было так:
Код
{
  $searchwords = preg_split("/\s+/", $searchword);

А надо так:
Код
{
  $searchwords = preg_split("/\s+/u", $searchword);

Пропущен все тот же модификатор utf-8 в регулярном выражении.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: preg_replace() и заглавная русская Р
« Ответ #5 : 18.01.2009, 14:48:58 »
Ага, спасибо. Добавил и это исправление в баг-трекер Joomla 1.5. Будем надеяться оба пожелания учтут в следующей версии (по идее и в 1.6 это тоже должно включиться).
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться