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

Doctor Death

  • Захожу иногда
  • 145
  • 1 / 12
Надоело заполнять от руки коробки и пакеты, потратил пару дней и наваял маленький "хак" (просьба сильно ногами не пинать) для автоматической генерации наклеек для "Почты России"

в архиве три файла
pr.png - класть в /images (логотип почты росcии)
zipcode.TTF - класть в /images (шрифт для генерации индекса)
postlabel.php - класть в /administrator/components/com_jshopping/views/orders/tmpl/ (собственно сам ***код)
далее прописываем в саму систему
1. Для того чтобы получить ещё одну иконку с печатью в списке заказов идем в фаил /administrator/components/com_jshopping/views/orders/tmpl/list.php, в нем находим блок
Код
            <a href = "javascript:void window.open('index.php?option=com_jshopping&controller=orders&task=printOrder&order_id=<?php echo $row->order_id?>&tmpl=component', 'win2', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=yes,resizable=yes,width=800,height=600,directories=no,location=no');">
                <img border="0" src="components/com_jshopping/images/jshop_print.png" alt="printhtml" />
            </a>
после него добавляем его же, с немногими изменениями.
Код
            <a href = "javascript:void window.open('index.php?option=com_jshopping&controller=orders&task=printPostlabel&order_id=<?php echo $row->order_id?>&tmpl=component', 'win2', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=yes,resizable=yes,width=600,height=440,directories=no,location=no');">
                <img border="0" src="/components/com_jshopping/images/print.png" alt="printhtml" />
            </a>
2. Теперь правим /administrator/components/com_jshopping/controllers/orders.php найдем функцию  function show() (у меня это строка 150) и скопируем её целиком в конец файла
в скопированном блоке поправим имя самой функции на function postlabel() и $view->setLayout("show"); на $view->setLayout("postlabel");
Вот что должно получиться:
Код
    function postlabel(){
        $order_id = JRequest::getInt("order_id");
        $jshopConfig = JSFactory::getConfig();

        $orders = JSFactory::getModel("orders");
        $order = JSFactory::getTable('order', 'jshop');
        $order->load($order_id);

$order->prepareOrderPrint('order_show');

        $id_vendor_cuser = getIdVendorForCUser();

$order->loadItemsNewDigitalProducts();
        $order_items = $order->getAllItems();

        if ($jshopConfig->admin_show_vendors){
            $tmp_order_vendors = $order->getVendors();
            $order_vendors = array();
            foreach($tmp_order_vendors as $v){
                $order_vendors[$v->id] = $v;
            }
        }

        $lists['status'] = JHTML::_('select.genericlist', $orders->getAllOrderStatus(),'order_status','class = "inputbox" size = "1" id = "order_status"','status_id','name', $order->order_status);

        $tmp_fields = $jshopConfig->getListFieldsRegister();
        $config_fields = $tmp_fields["address"];
        $count_filed_delivery = $jshopConfig->getEnableDeliveryFiledRegistration('address');

        $display_info_only_product = 0;
        if ($jshopConfig->admin_show_vendors && $id_vendor_cuser){
            if ($order->vendor_id!=$id_vendor_cuser) $display_info_only_product = 1;
        }

        $display_block_change_order_status = $order->order_created;
        if ($jshopConfig->admin_show_vendors && $id_vendor_cuser){
            if ($order->vendor_id!=$id_vendor_cuser) $display_block_change_order_status = 0;
            foreach($order_items as $k=>$v){
                if ($v->vendor_id!=$id_vendor_cuser){
                    unset($order_items[$k]);
                }
            }
        }

$stat_download = $order->getFilesStatDownloads(1);

        $dispatcher = JDispatcher::getInstance();
        $dispatcher->trigger('onBeforeDisplayOrderAdmin', array(&$order, &$order_items, &$order_history));

        $print = JRequest::getInt("print");
        $order->prepareOrderPrint('order_show');
        $view = $this->getView("orders", 'html');
        $view->setLayout("postlabel");
        $view->assign('config', $jshopConfig);
        $view->assign('order', $order);
        $view->assign('order_history', $order->history);
        $view->assign('order_items', $order_items);
        $view->assign('lists', $lists);
        $view->assign('print', $print);
        $view->assign('config_fields', $config_fields);
        $view->assign('count_filed_delivery', $count_filed_delivery);
        $view->assign('display_info_only_product', $display_info_only_product);
        $view->assign('current_vendor_id', $id_vendor_cuser);
        $view->assign('display_block_change_order_status', $display_block_change_order_status);
        $view->_tmp_ext_discount = '';
        $view->_tmp_ext_shipping_package = '';
$view->assign('stat_download', $stat_download);
        if ($jshopConfig->admin_show_vendors){
            $view->assign('order_vendors', $order_vendors);
        }
        $dispatcher->trigger('onBeforeShowOrder', array(&$view));
        $view->displayShow();
    }
3. В том же файле /administrator/components/com_jshopping/controllers/orders.php в конец файла добавим функцию
Код
    function printPostlabel(){
        JRequest::setVar("print", 1);
        $this->postlabel();
    }

Пару слов о параметрах
$name_f1 - первая строка "от кого"
$name_f2 - вторая строка "от кого"
$addres_f1 - первая строка "от куда"
$addres_f2 - вторая строка "от куда"
$addres_f3 - третья строка "от куда"
$index_f - индекс отправителя
$np1 - параметр на который ставиться чкбокс "наложенный платеж" и заполняется соответствующие поле прописной суммой, сравнивается с названием метода отправки
заголовок бланка берется из метода отправки
чекбоксы можно ставить перед печатью

p.s. если кто нибудь поможет оформить это в качестве плагина, буду благодарен
« Последнее редактирование: 15.04.2016, 14:39:50 от Doctor Death »
*

Doctor Death

  • Захожу иногда
  • 145
  • 1 / 12
внес некоторые исправления в код
*

ArtFrank

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Все сделал как описано выше, но ничего не изменилось? Где должен появиться бланк (кнопка его печати)?
*

Doctor Death

  • Захожу иногда
  • 145
  • 1 / 12
в списке заказов должна появиться вторая кнопка печати
*

ArtFrank

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
А если заказ был сделан без регистрации, кнопка тоже появится?
*

Doctor Death

  • Захожу иногда
  • 145
  • 1 / 12
это неважно
главное чтобы был заказ
*

dizain-master

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Добрый день, получилось доделать проект?
Нужно что то похожее но в моем бланке - может дадите пару советов. Скайп, аська. Буду благодарен
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

выставление PDF счета (печать счета)

Автор kugaenkoinna

Ответов: 4
Просмотров: 1248
Последний ответ 28.11.2017, 18:06:30
от kugaenkoinna
Как добавить в тело письма (orderemail.php) зависимые переменные?

Автор Simple-t

Ответов: 9
Просмотров: 1661
Последний ответ 23.03.2017, 01:18:02
от Simple-t
Сумма заказа в теме письма

Автор timson

Ответов: 7
Просмотров: 1550
Последний ответ 30.05.2016, 10:22:46
от dmitry_stas
Отслеживание почтовых отправление! - Реально ли внедрить в JS если есть скрипт?

Автор aLLex177

Ответов: 35
Просмотров: 9833
Последний ответ 13.06.2015, 20:24:23
от vurazov
Генерация письма с заказом

Автор vaganov

Ответов: 1
Просмотров: 1587
Последний ответ 30.04.2013, 10:13:27
от nevigen