Новости Joomla

👩‍💻 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 Гость просматривают эту тему.
  • 41 Ответов
  • 4867 Просмотров
*

DimkaJack

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Проблема все еще является актуальной, помогите кто-нибудь...
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Дима опять забыл?) Ну выложите компонент я посмотрю, и скажите версию J
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Да... Дела житейские + погда хорошая... На выходных не было времени посмотреть =( Буду пробовать на этой неделе.
*

DimkaJack

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
« Последнее редактирование: 15.04.2014, 09:33:34 от DimkaJack »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Нашел, в чем проблема. В методе populateState() вместо $this->getUserStateFromRequest лучше использовать $app->getUserStateFromRequest или последним параметром передавать false. Ну и соответственно в начале метода инициализировать приложение через $app = JFactory::getApplication();

Дело в том, что метод getUserStateFromRequest модели по умолчанию при его использовании скидывает limitstart на 0. А его использование происходит при установке фильтров, так как их значение мы получаем через $this->getUserStateFromRequest.

Другой вариант, использовать $this->getUserStateFromRequest, но перенести parent::populateState в начало метода, тогда сбрасывания limitstart не будет, так как родительский populateState() его установит до сбрасывания.

Правда я пока не понял, почему в админке все работает с $this->getUserStateFromRequest.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Дело в том, что метод getUserStateFromRequest модели по умолчанию при его использовании скидывает limitstart на 0. А его использование происходит при установке фильтров, так как их значение мы получаем через $this->getUserStateFromRequest.
я подразумеваю что так и должно быть.
Дело в том что использование фильтров каких-либо на страницах отличных от первой приводит не очень к хорошему результату.
Т.е. допустим вы находитесь на n-ой странице, применяете фильтр, результатов фильтрации естественно будет меньше, допустим 1 страница. В итоге limitstart остается тот же, а результатов соответственно на странице не будет.

По крайне мере такой баг был точно в 1.5, что там дальше не знаю, не смотрел.
*

DimkaJack

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Круто все варианты работают)) Спасибо!
Разве что при смене фильтра отображается та же страница. хотя по идее должна быть первая.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Да, SmokerMan скорее всего прав, сбрасываться должно. Похоже, что полагаться на parent::populateState вообще нельзя, нужно реализовывать сортировку, порядок и limit / limitstart самому. По сути как сделано здесь.

Я еще покапаюсь и попробую найти рабочее решение с реализацией запоминания фильтров.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Вообщем решения я пока не нашел. Дело тут даже не в parent::populateState или использовании фильтров, а в том, что при отправке формы не скидывается limitstart. Я уже пробовал код из стандартных компонентов, но все равно не работает - limitstart не сбрасывается. Если взять любой стандартый компонент, то там даже при простом изменеинии лимита страниц сбрасывается limitstart. А здесь ни в какую не хочет.

Разработчики, где ошибка? Кто решит загадку апреля? :) Чую, что где-то недосмотрел, но я в своем компоненте использую AJAX навигацию и сбрасываю limistart с помощью JS. А тут ступор =)
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Загадку все же решил :D

Первое, что нужно сделать, это добавить в форму скрытое поле:
Код: php-brief
<input type="hidden" name="limitstart" value="" />

Второе, постраничную навигацию нужно выводить вот так:
Код: php-brief
<?php echo $this->pagination->getPagesLinks(); ?>

При таком раскладе все работает - фильтры сохраняют состояние (только использовать нужно $app->getUserStateFromRequest) и происходит сброс страниц при изменении фильтров. parent::populateState тоже работает как надо.

Но если выводить постраничную навигацию вот так:
Код: php-brief
<?php echo $this->pagination->getListFooter(); ?>

То тогда выводится еще одно скрытое поле limitstart, которое обновляется постраничной навигацией. Оно соответственно не пустое и сброса limitstart не происходит.
*

DimkaJack

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Цитировать
Загадку все же решил
Отлично, спасибо за решение проблемы
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
На самом деле, решено не до конца. Один ворос остался открытым - почему в админке все работает без этих хитрых манипуляций? Там же при использовании фильтров с $this->getUserStateFromRequest все отлично переключается, то есть limitstart работает нормально...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод таблицы, деление на страницы

Автор March Cat

Ответов: 6
Просмотров: 1623
Последний ответ 09.01.2019, 18:49:15
от dmitry_stas
Проблема с модулем после переноса с локалки на хостинг

Автор master-smeta

Ответов: 8
Просмотров: 3436
Последний ответ 15.11.2018, 16:34:46
от master-smeta
Меню схлопывается после перезагрузки страницы

Автор onelawyer

Ответов: 10
Просмотров: 2304
Последний ответ 11.10.2017, 14:50:48
от effrit
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 7
Просмотров: 4187
Последний ответ 12.04.2016, 19:36:55
от AlekVolsk
Модуль. Сообщение о включенном AdBlock. Как отпустить Javascript в низ страницы?

Автор cartgen

Ответов: 2
Просмотров: 1988
Последний ответ 19.08.2015, 23:42:16
от palexa