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

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Когда вызываю
Код
$test_text1 = $ObjectField_name->field_name0->namer_ff;
Получаю
Код
`stdClass Object
(
    [test_text] => Да, есть
    [test_list] => 0
)
stdClass Object
(
    [test_text] => Нет, нету
    [test_list] => 0
)`

Затем пытаюсь получить


Код
$fieldValues = $ObjectField_name->field_name0->namer_ff;
$fieldTexts = array_reduce($fieldValues, function ($acc, $valueData) {
 
    if (!empty($valueData->test_text)) {
        $acc[] = trim($valueData->test_text);
    }
 
    return $acc;
});

но ничего не выводит. При попытке сделать var_dump и print_r ничего не выводится. Заранее благодарю за помощь!
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
Re: Как получить значения массива?
« Ответ #1 : 20.08.2020, 16:58:09 »
Потому что там объект, а не массив.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Re: Как получить значения массива?
« Ответ #2 : 20.08.2020, 17:05:21 »
Потому что там объект, а не массив.

Подскажите, пожалуйста, а как нужно правльно? Только учусь.
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
Re: Как получить значения массива?
« Ответ #3 : 20.08.2020, 17:10:28 »
Подскажите, пожалуйста, а как нужно правльно? Только учусь.
Расскажите что хотите получить на выходе.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как получить значения массива?
« Ответ #4 : 20.08.2020, 17:20:12 »
Код
$fieldTexts = array_reduce($fieldValues[0], function ($acc, $valueData) {
Пробуйте
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Re: Как получить значения массива?
« Ответ #5 : 21.08.2020, 09:20:55 »
$fieldTexts = array_reduce($fieldValues[0], function ($acc, $valueData) {

Выдает ошибку
Код
0 Cannot use object of type stdClass as array
*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
Re: Как получить значения массива?
« Ответ #6 : 21.08.2020, 09:35:37 »
Расскажите откуда у вас взялся этот объект. По структуре очень напоминает значение поля типа subform с атрибутом repeatable, которое распаковано из json. Если все так, то достаточно было бы распаковывать со вторым аргументом true, чтобы на выходе был массив, а не объект.
Как вариант - перепаковать объект в массив:
Код
$ObjectField_name_arr = json_decode(json_encode($ObjectField_name), true);
либо добавить приведение типа при передаче объекта функции:
Код
$fieldTexts = array_reduce((array)$fieldValues, function ($acc, $valueData) {
...
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Re: Как получить значения массива?
« Ответ #7 : 21.08.2020, 11:36:20 »
Расскажите откуда у вас взялся этот объект. По структуре очень напоминает значение поля типа subform с атрибутом repeatable,
Да, Вы правы, это repeatble внутри еще одного repeatable.
Выполнил первый код, но теперь не получается получить данные нормальным образом.
Например, чтобы получить следующие объекты - необходимо несколько раз делать цикл внутри цикла (или это невернвй способ?)
Код
                        $ObjectField_name_arr = json_decode(json_encode($ObjectField_name), true);
                        $array_dd = $ObjectField_name_arr;
                       
                       
                        foreach ($array_dd as $array_away) {
                           $extract_1 = $array_away;
                           print_r($extract_1);
                        }

*

sivers

  • Живу я здесь
  • 2626
  • 363 / 0
Re: Как получить значения массива?
« Ответ #8 : 21.08.2020, 12:11:31 »
Например, чтобы получить следующие объекты - необходимо несколько раз делать цикл внутри цикла (или это невернвй способ?)
Код
Вполне себе вариант. Выше вы пытались использовать функцию array_reduce - она работает только с массивами. Именно потому была ругань на аргумент-объект. Отсюда рекомендация сделать объект массивом.
Но если эту функцию не использовать, а пробегать значения вложенными циклами, то конвертация не нужна. PHP сейчас умеет перебирать в цикле и объекты тоже. Например, вот такой код вполне работает:
Код
<?php
$obj = new stdClass;
$obj->key1 = "val1";
$obj->key2 = "val2";
$obj->key3 = "val3";
$obj->key4 = "val4";

foreach($obj as $k => $v){
    echo "{$k}: {$v};\n";
}
?>
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Получить category description image в index.php шаблона

Автор goga_pgasovav

Ответов: 6
Просмотров: 4214
Последний ответ 12.07.2024, 17:06:14
от goga_pgasovav
Получить ошибку

Автор KevinSimon

Ответов: 0
Просмотров: 1389
Последний ответ 22.09.2023, 15:20:21
от KevinSimon
Получить текущий номер страницы плагина "Разрыв страницы" (pagebreak)

Автор sertlan

Ответов: 1
Просмотров: 1654
Последний ответ 12.06.2023, 18:14:09
от sertlan
[Решено] Получить список тегов каждого материала в блоге категории

Автор goga_pgasovav

Ответов: 1
Просмотров: 1439
Последний ответ 02.03.2023, 14:20:21
от goga_pgasovav
Получить наименование товара по ID

Автор Evgen Kulibin

Ответов: 1
Просмотров: 1124
Последний ответ 10.12.2022, 06:46:41
от pavelrer