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

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Появилась необходимость в поле с возможностью выбора нескольких значений одновременно.
Лучший способ (визуальный) - это checkbox'ы
Как реализовать данный приём в Joomla 2.5?

Что я уже сделал:
admin/models/forms/myform.xml
Спойлер
[свернуть]

admin/models/fields/includecities.php
Спойлер
[свернуть]

На этом этапе встал пока. Собственно checkboxes выводится, но сохраняется только 1 значение.
Я думаю, что просто надо где-то прописать как вообще должно сохраняться (не просто id, а например id5, id8,...), и где-то прописать как сохранённые данные брать.

Собственно вопрос: где и как прописать сохранение и загрузку данных для данного типа?
« Последнее редактирование: 03.06.2013, 13:22:22 от platonische »
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Собственное поле Checkboxes
« Ответ #1 : 03.06.2013, 13:03:32 »
Получить данные из таблицы в нужном виде получилось
в файле модели доработали функцию loadFormData()
Спойлер
[свернуть]

Теперь если сохранить через базу (ручками) в поле include_cities данные типа "id2,id6" то в форме получим отмеченные 2 поля - 2 и 6.

Вопрос про сохранение остался.

Как сохранить? Точнее где переопределить переменную? Ведь на запись ломится массив, а надо строку.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Собственное поле Checkboxes
« Ответ #2 : 03.06.2013, 13:21:44 »
Для сохранения нужно переопределить метод save в модели.
Спойлер
[свернуть]

И все заработало. Всем спасибо!

Вопрос только в том правильно ли это или у Joomla есть свои инструменты для работы с этим.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Собственное поле Checkboxes
« Ответ #3 : 03.06.2013, 13:22:24 »
Чтобы из формы в $_REQUEST передавался массив надо чтобы у вас в форме name было со скобками []
В XML определите multiple="multiple"
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
RE: Собственное поле Checkboxes
« Ответ #4 : 03.06.2013, 13:24:21 »
Чтобы из формы в $_REQUEST передавался массив надо чтобы у вас в форме name было со скобками []
В XML определите multiple="multiple"
name[] за меня сделал JFormFieldCheckboxes.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
RE: Собственное поле Checkboxes
« Ответ #5 : 03.06.2013, 15:51:37 »
Еще вопрос по этому же поводу.
А где еще можно разобрать загружаемые данные.
Я сделал в модели, а можно это сделать в файле описания типа поля? Т.е. в файле admin/models/fields/includecities.php
там есть возможность пепеопределить getInput.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
RE: Собственное поле Checkboxes
« Ответ #6 : 09.06.2013, 10:13:16 »
сохраняете ID отмеченных чекбоксов в виде JSON в базе данных!
Код: php
function save($array){
if ( isset( $array['include_cities'] ) && is_array( $array['include_cities'] ) ) {
$array['include_cities'] = json_encode( $array['include_cities'] );
}
return parent::save( $array );
}
в модели делаете метод:
Код: php
public function getItem( $id = null )
{
if ( $item = parent::getItem( $id ) ) { //если вы получаете через getItem свою запись! если нет то реализовать самому получение
$item->include_cities = json_decode($item->include_cities);
}
return $item;
}
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Собственное поле Checkboxes
« Ответ #7 : 09.06.2013, 12:14:04 »
сохраняете ID отмеченных чекбоксов в виде JSON в базе данных!
Код: php
function save($array){
if ( isset( $array['include_cities'] ) && is_array( $array['include_cities'] ) ) {
$array['include_cities'] = json_encode( $array['include_cities'] );
}
return parent::save( $array );
}
в модели делаете метод:
Код: php
public function getItem( $id = null )
{
if ( $item = parent::getItem( $id ) ) { //если вы получаете через getItem свою запись! если нет то реализовать самому получение
$item->include_cities = json_decode($item->include_cities);
}
return $item;
}
Понял вас! Спасибо! Ещё бы разницу (скорость, надежность, удобство) между impode, explode и json_encode, json_decode.

И потом где-то я использовал в запросах $query->where('id IN ('.$include_cities.')');
« Последнее редактирование: 09.06.2013, 12:19:44 от platonische »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] title category

Автор spirit1086

Ответов: 4
Просмотров: 1775
Последний ответ 17.08.2015, 16:42:04
от spirit1086
[Решено] Программная регистрация пользователя во внешней бд

Автор DimkaJack

Ответов: 8
Просмотров: 2585
Последний ответ 06.08.2014, 18:32:39
от DimkaJack
[Решено] Вставить визуальный редактор в модуль

Автор mat.konstantin

Ответов: 6
Просмотров: 4718
Последний ответ 10.03.2014, 14:33:05
от mat.konstantin
[Решено] Как разобрать JURI::current() при помощи route.php?

Автор platonische

Ответов: 17
Просмотров: 3893
Последний ответ 10.01.2014, 20:55:19
от Arkadiy
[Решено] Собственная валидация в формах FrontEnd

Автор platonische

Ответов: 1
Просмотров: 1792
Последний ответ 01.08.2013, 13:16:23
от platonische