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

Inoken

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
Добрый день. В методе модели разрабатываемого компонента getListQuery формирую запрос к базе данных:

Код
$query->select("*");
$query->from ("#__com_table");
$query->where ("{$where_condition}");
if ($order_query_part) {$query->order("" . $order_query_part); }
$query->setLimit("" . $menu_params->get('displayed_items_number'));

Заданное в настройках компонента (либо пункта меню) количество элементов для отображения извлекатеся и подставляется в метод формирования условия LIMIT - setLimit (). При отображении пункта меню в пользовательской части сайта setLimit() никак не влияет на количество выводимых на страницу элементов, как будто его нет в запросе. Распечатывая запрос посредством:

Код
echo $query->__toString(); exit ();

в браузере вижу запрос, в котором присутствует условие LIMIT с актуальным значением параметра настройки количества оторажаемых элементов на странице. Данный запрос выполняю через вкладку SQL базы данных Joomla в phpMyAdmin и количество выводимых на экран выбранных из таблицы строк соответствует указанному в LIMIT-e количеству результатов.

Подскажите, пожалуйста, почему он не работет должным образом в Joomla, в чём может быть причина?
« Последнее редактирование: 13.06.2017, 12:32:40 от Inoken »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Потому что OFFSET и LIMIT задаются позже в JModelList::getItems()
Код: php-brief
$this->cache[$store] = $this->_getList($this->_getListQuery(), $this->getStart(), $this->getState('list.limit'));
Соответственно, вам нужно задать их в сессии посредством $this->setState('list.start') и $this->setState('list.limit').
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Добавьте в модели такое:
Код: php
protected function populateState( $ordering = null, $direction = null ){
parent::populateState( $ordering, $direction );
$this->setState( 'list.limit', 20 );
}
*

Inoken

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
добавил вызов метода setState('list.limit', 'значение_из_настроек') в методе getListQuery (), всё заработало. Aleks.Denezh, а чем обусловлен вызов setState в методе populateState ()?!
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Метод populateState() автоматически заполняет состояние модели и вызывается при первом вызове метода getState(), а параметры состояния модели используются не только getListQuery(), но и многими другими методами.
Вы умеете код читать, так его читайте - это занимает не так много времени, во всяком случае, успеете за время ожидания очередного ответа.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
добавил вызов метода setState('list.limit', 'значение_из_настроек') в методе getListQuery (), всё заработало. Aleks.Denezh, а чем обусловлен вызов setState в методе populateState ()?!
Не совсем понял вопрос, метод setState как бы вы сами вызываете )
а метод populateState в вашей модели это банально переопределение метода в родительском классе JModelList который в дебрях себя его и вызывает!
*

Inoken

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
благодарю вас за ответы, с назначением метода populateState() всё прояснилось.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

СЕСИЯ при AJAX запросе к php файлу

Автор avantyrist

Ответов: 15
Просмотров: 3405
Последний ответ 20.12.2015, 14:13:43
от robert