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

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Баг!
« : 13.12.2013, 21:29:52 »
У меня есть главная категория с несколькими уровнями вложенных категорий http://screencast.com/t/TULRWUEtk3
Таким же образом я создал структуру меню, все пункты как список категорий.
Затем у меня возникла необходимость создать пункт меню как блог основной категории, и после этого во все ссылки добавляется алиас этого пункта (reviews)
получается что то вроде этого /reviews/28-santekhnik/ustanovka-i-zamena-santekhniki.html, а должно быть 28-santekhnik/ustanovka-i-zamena-santekhniki.html

посмотрел в шаблоне списка категорий, ссылка генерируется  
JRoute::_(ContentHelperRoute::getCategoryRoute($item->id))
index.php?option=com_content&view=category&id='.$id
вроде все правильно, не могу понять почему подставляет reviews  

получается главная страница у меня как список категорий основной категории
а отзывы просто пункт меню как блог основной категории

http://screencast.com/t/5F1f0Ytx - видос

извините за безграмотность )
« Последнее редактирование: 14.12.2013, 04:15:40 от saharin88 »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: БАГ JRoute
« Ответ #1 : 13.12.2013, 21:53:57 »
вроде все правильно, не могу понять почему подставляет reviews 
видимо потому что в этом ContentHelperRoute::getCategoryRoute($item->id) методе подставляется Itemid (пункт меню) родительской категории.
*

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Re: БАГ JRoute
« Ответ #2 : 13.12.2013, 22:26:28 »
видимо потому что в этом ContentHelperRoute::getCategoryRoute($item->id) методе подставляется Itemid (пункт меню) родительской категории.

так у меня есть уже созданый пункт родительской категории, причем это главная
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: БАГ JRoute
« Ответ #3 : 13.12.2013, 22:39:31 »
ну а если просто задать
Код
JRoute::_('index.php?option=com_content&view=category&id='.$item->id)
*

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Re: БАГ JRoute
« Ответ #4 : 13.12.2013, 22:48:09 »
ну а если просто задать
Код
JRoute::_('index.php?option=com_content&view=category&id='.$item->id)

пробовал, ошибка
ссылка получается такого вида /component/content/category/22-nashi-uslugi/santekhnik.html

вот кусок в этом классе который подставляет пункт меню

$catids 
array_reverse($category->getPath());
$needles['category'] = $catids;
$needles['categories'] = $catids;

if (
$item self::_findItem($needles))
{
    
$link .= '&Itemid='.$item;
}


это наверное нужно ковырять self::_findItem, он ищет пункт который создан как блог категории, а мне нужно view=categories
« Последнее редактирование: 13.12.2013, 22:52:15 от saharin88 »
*

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Re: БАГ JRoute
« Ответ #5 : 14.12.2013, 03:15:20 »
в чем собственно баг:

мы создаем массив $needles с ключами category и categories значения у которых полученный массив getPath() нашей категории

$needles 
= array();
$catids array_reverse($category->getPath());
$needles['category'] = $catids;
$needles['categories'] = $catids;


потом мы вызываем функцию _findItem($needles), в которой передаем наш массив, и  которая сообсвенно возвращает нам Itemid

сама функция берет все пункты меню нашего компонента и сравнивает их с отправленным нами массивом


// Prepare the reverse lookup array.
if (self::$lookup === null)
{
  
self::$lookup = array();

  
$component
	
JComponentHelper::getComponent('com_content');
  
$items
	
	
$menus->getItems('component_id'$component->id);
  foreach (
$items as $item)
  {
	
  if (isset(
$item->query) && isset($item->query['view']))
	
  {
	
	
  
$view $item->query['view'];
	
	
  if (!isset(
self::$lookup[$view])) {
	
	
	
  
self::$lookup[$view] = array();
	
	
  }
	
	
  if (isset(
$item->query['id'])) {
	
	
	
  
self::$lookup[$view][$item->query['id']] = $item->id;
	
	
  }
	
  }
  }
}

if (
$needles)
{
  foreach (
$needles as $view => $ids)
  {
	
  if (isset(
self::$lookup[$view]))
	
  {
	
	
  foreach(
$ids as $id)
	
	
  {
	
	
	
  if (isset(
self::$lookup[$view][(int)$id])) {
	
	
	
	
  return 
self::$lookup[$view][(int)$id];
	
	
	
  }
	
	
  }
	
  }
  }
}

 

$item->query['view'] сравнивается с нашими ключами

то есть проблема в том, что если у нас есть два пункта меню для одной и той же категории, только один как "блог категории" (category), а второй как список "подкатегорий" (categories)
возвращается конечно же ид пункта меню view которого category, потому что он у нас идет первым в массиве, хотя например в моем случае нужно что возвращал ид пункта view у которого categories

думаю решение можно сделать отталкиваясь от того какой у нашего пункта view, если category, значить проверять сначала parent на такой же view (кто вник, тот поймет)

« Последнее редактирование: 14.12.2013, 14:09:29 от saharin88 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться