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

a159cm

  • Захожу иногда
  • 71
  • 0 / 0
Есть такая хрень.. Как ее исправить?
https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fprosalsk.ru%2F&tab=desktop

ругается на эту ссылку https://yastatic.net/s3/front-maps-static/maps-front-jsapi-v2-1/2.1.78-11/build/release/full-ffb813a29f30feadb63b5654242d042b7b6a91aa.js

выводится вроде бы так
Код
<script async>
function getYaMap(){
    var myMap = new ymaps.Map('map', {
            center: [<?php echo $center[0] ?>, <?php echo $center[1] ?>],
            zoom: <?php echo $zoom_map ?>,
controls: ["zoomControl"]
        }, {
            searchControlProvider: 'yandex#search'
        }),


        /**
         * Создадим кластеризатр, вызвав функцию-конструктор.
         * Список всех опий доступен в документации.
         * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer.xml#constructor-summary
         */
            clusterer = new ymaps.Clusterer({
            /**
             * Чеез кластеризатор можно указать тоько стили кластеов,
             * стил для меток нужно азначать каждой етке отдельно.
             * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/option.presetStorage.xml
             */
            preset: 'islands#invertedRedClusterIcons',
            /**
             * Ставим true, если хотим кластеризовать только точки с одинаковыми координатами.
             */
            groupByCoordinates: false,
            /**
             * Опции кластеров указывем в кластеризатре с префиксом "cluster".
             * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ClusterPlacemark.xml
             */
            clusterDisableClickZoom: true,
            clusterHideIconOnBalloonOpen: false,
            geoObjectHideIconOnBalloonOpen: false
        }),
        /**
         * Функция озвращает объект, содержащий данне метки.
         * Поле данных clusterCaption будет отображено в списке геообъетов в балуне кластера.
         * Поле balloonContentBody - источник данных для конента балуна.
         * Оба поля поддерживают HTML-разметку.
         * Список плей данных, которые используют стандартные макеты содержимого иконк метки
         * и балуна геообъектов, можно посмотреть в документации.
         * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoObject.xml
         
            getPointData = function (index) {
            return {
                balloonContentHeader: '!',
                balloonContentBody: '',
                balloonContentFooter: '',
                clusterCaption: ''
            };
        },
        /**
         * Фнкция возвращает объект, содержащй опции метки.
         * Все опции, которые поддерживаю геообъекты, можно посмотреть в доументации.
         * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoObject.xml
         */
getPointOptions = [
<?php foreach ($list as $item) { ?>
{
//preset: "islands#redAttentionCircleIcon",
            // Опции.
            // Необходимо указать данный тип макта.
            iconLayout: 'default#image',
            // Своё изображение иконки метки.
<?php if($item->parent_id == 11) { $ic = 'auto.png'; }
if($item->parent_id == 20) { $ic = 'bank.png'; }
if($item->parent_id == 24) { $ic = 'flag.png'; }
if($item->parent_id == 35) { $ic = 'kafe.png'; }
if($item->parent_id == 37) { $ic = 'deti.png'; }
if($item->parent_id == 53) { $ic = 'shop.png'; }
if($item->parent_id == 79) { $ic = 'razvlecheniya.png'; }
if($item->parent_id == 84) { $ic = 'medical.png'; }
if($item->parent_id == 92) { $ic = 'obrazovanie.png'; }
if($item->parent_id == 97) { $ic = 'home.png'; }
if($item->parent_id == 111) { $ic = 'krasota.png'; }
if($item->parent_id == 116) { $ic = 'sport.png'; }
if($item->parent_id == 128) { $ic = 'eda.png'; }
if($item->parent_id == 137) { $ic = 'business.png'; }
if($item->parent_id == 147) { $ic = 'turizm.png'; }
if($item->parent_id == 2010) { $ic = 'uslugi.png'; }
if($item->parent_id == 2019) { $ic = 'proizvodstvo.png'; }
if($item->parent_id == 2023) { $ic = 'selhoz.png'; }
?>
            iconImageHref: "images/icons/map/<?php echo $ic ?>",
            // Размеры метки.
            iconImageSize: [32, 32],
            // Смещение левого верхнего угла иконки относительно
            // её "нжки" (точки привяки).
            iconImageOffset: [-16, -16]
},
<?php } ?>
],
   
        points = [
<?php foreach ($list as $key => $item) {
$link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catid, $item->language));
$img = json_decode($item->images)->image_intro;

JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
$jcfields = FieldsHelper::getFields('com_content.article', $item, true);
foreach($jcfields as $fields) {
$f[$fields->id] = $fields;
}
$t = '['.$f[109]->value.'],';

?>
<?php echo $t ?>
<?php } ?>
        ],
balloonContentHeader = [
<?php foreach ($list as $key => $item) {
$link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catid, $item->language));
$img = json_decode($item->images)->image_intro;

JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
$jcfields = FieldsHelper::getFields('com_content.article', $item, true);
foreach($jcfields as $fields) {
$f[$fields->id] = $fields;
}
$b = '{
balloonContentHeader: `<div class="map_item_img"><img src="'.$img.'"/></div><div class="map_item_info"><h3><a href="'.$link.'">'.$item->title.'</a></h3><div>'.$f[1]->value.'</div></div>`,
},';
?>
<?php echo $b ?>
<?php } ?>
]
        geoObjects = [];

    /**
     * Данные передаются вторым параметром в коструктор метки, опции - третьим.
     * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Placemark.xml#constructor-summary
     */
    for(var i = 0, len = points.length; i < len; i++) {
        geoObjects[i] = new ymaps.Placemark(points[i], balloonContentHeader[i], getPointOptions[i]);
    }

    /**
     * Можно менять опии кластеризатора после создания.
     */
    clusterer.options.set({
        gridSize: 80,
        clusterDisableClickZoom: false
    });

    /**
     * В кластеризатор ожно добавить javascript-массив меток (е геоколлекцию) или одну метку.
     * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer.xml#add
     */
    clusterer.add(geoObjects);
    myMap.geoObjects.add(clusterer);
myMap.behaviors.disable('scrollZoom');

if(document.documentElement.clientWidth < 960) {
//myMap.behaviors.disable('drag');
}


    /**
     * Спозиционируем кату так, чтобы на ней были видны все объекты.
     */

   /* myMap.setBounds(clusterer.getBounds(), {
        checkZoomRange: false
    });*/
}
</script>
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вставка Яндекс captcha

Автор Kadadzher

Ответов: 0
Просмотров: 1533
Последний ответ 16.10.2025, 11:19:32
от Kadadzher
Множество несуществующих ссылок при обходе сайта роботом Яндекс

Автор goga_pgasovav

Ответов: 7
Просмотров: 3645
Последний ответ 10.12.2024, 18:44:25
от goga_pgasovav
Проблема вебвизором в Яндекс метрике при использовании плагина jch optimize

Автор polezniy

Ответов: 32
Просмотров: 7037
Последний ответ 01.03.2024, 10:26:31
от Vastriet
Некорректно работает Яндекс Метрика из-за mootools

Автор web_signal

Ответов: 4
Просмотров: 4227
Последний ответ 21.06.2023, 23:25:14
от sivers
Модуль Яндекс карты выдает ошибку Warning: count(): Parameter must be an array

Автор 62411

Ответов: 0
Просмотров: 1473
Последний ответ 19.02.2023, 13:34:54
от 62411