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

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Joomla 3.3.0 (в 3.3.3 проверил, возник бы тот же вопрос).
Переделывал под свои нужды дефолтный плагин "Пользователь-Профиль". Также понадобилось существующее там поле "Условия предоставления услуг", вывод статьи в модальном окне.
Выводилась статья некорректно. На нее есть пункт меню. Все, что надо было, - указать в ссылке Itemid.
Было (\plugins\user\profile\fields\tos.php):
Код: php
$link = '<a class="modal" title="" href="index.php?option=com_content&amp;view=article&amp;layout=modal&amp;id=' . $tosarticle . '&amp;tmpl=component" rel="{handler: \'iframe\', size: {x:800, y:500}}">' . $text . '</a>';
, где $tosarticle - id статьи.
Добавлять хардкодом Itemid недопустимо. Программно все решается проще - ContentHelperRoute::getArticleRoute($tosarticle).
В public static function getArticleRoute($id, $catid = 0, $language = 0) предусмотрено обращение к другому protected методу этого класса - _findItem:
Код: php
if ($item = self::_findItem($needles))
{
    $link .= '&Itemid='.$item;
}
Вот только мне надо в ссылке еще доп.параметр - &tmpl=component . Возможность получения доп.параметров для добавления их к ссылке в getArticleRoute отсутствует. А хотелось бы, вопрос бы не возник.

Сделал в плагине так:
Код: php
require_once JPATH_SITE . DS . 'components' . DS . 'com_content' . DS . 'helpers' . DS . 'route.php';
$article_link = JRoute::_(ContentHelperRoute::getArticleRoute($tosarticle));
$and = JFactory::getConfig()->get('sef')? "?" : "&amp;" ;
$link = '<a class="modal" title="'.$title.'" href="'.$article_link.$and.'tmpl=component" rel="{handler: \'iframe\', size: {x:800, y:500}}">'.$text.'</a>';

Все работает, как надо. Но такой подход для решения подобных задач не нравится, особенно варианты с проверкой sef.
На J>=2.5 первый раз встала такая задача, торопился, возможно, упустил какую-то существующую стандартную возможность, предусмотренную в API. Поэтому:
как вы при формировании в одном расширении ссылки на страницу другого расширения передаете в этой ссылке доп.параметры?
« Последнее редактирование: 03.09.2014, 17:09:35 от b2z »
Веб-разработка: заказ. Только новая разработка.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
А если просто
Код: php
ContentHelperRoute::getArticleRoute($tosarticle). '&amp;tmpl=component'
?
Спасибо. Но:
1) плагин не знает класса ContentHelperRoute . Его подключение требуется.
2) &amp;tmpl=component - ошибка 404, т.к. &amp; - для дефолтной ссылки, а цепляете к sef-ссылке, к ней надо "?".
проверку на использование SEF посмотрите выше:
Код: php
$and = JFactory::getConfig()->get('sef')? "?" : "&amp;" ;
...$and.'tmpl=component
Больше всего именно она мне и не нравится. ***код какой-то. Такие вопросы должны решаться элегантнее, поэтому и спросил.
Веб-разработка: заказ. Только новая разработка.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Так метод ContentHelperRoute::getArticleRoute возвращает не-SEF ссылку. Поэтому такое по идее должно работать:

Код: php
$article_link = JRoute::_(ContentHelperRoute::getArticleRoute($tosarticle). '&tmpl=component');
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Так метод ContentHelperRoute::getArticleRoute возвращает не-SEF ссылку.
упс, смотрю в книгу, вижу свое. Точно. Должно получиться. Сейчас проверю.
Веб-разработка: заказ. Только новая разработка.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
упс, смотрю в книгу, вижу свое. Точно. Должно получиться. Сейчас проверю.
Это нормально. Всегда нужен кто-то, кто укажет на то, что сам ты ну никак не можешь заметить. Работа в команде ;)
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Все как часики работает. Благодарю. Вопрос снят.
Веб-разработка: заказ. Только новая разработка.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как правильно?

Автор rafaello9

Ответов: 1
Просмотров: 930
Последний ответ 20.05.2020, 15:46:28
от robert
Как правильно записать дату создания записи в БД?

Автор ImPuLsE

Ответов: 13
Просмотров: 3540
Последний ответ 11.09.2019, 22:58:57
от sev07
[Решено] Ненавижу джумловский database!

Автор effrit

Ответов: 19
Просмотров: 2143
Последний ответ 14.10.2018, 21:28:40
от Aleks.Denezh
[решено] Использование model - setState для фильтра по дате

Автор effrit

Ответов: 8
Просмотров: 2155
Последний ответ 13.10.2018, 19:13:49
от effrit
Формирование ссылки с параметрами в меню

Автор submaster

Ответов: 2
Просмотров: 1145
Последний ответ 28.09.2018, 13:32:43
от submaster