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

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
В принципе все работает и можно было оставить так, как есть, но мне кажется его можно улучшить:

Спойлер
[свернуть]

Все это должно превратиться в это:
Спойлер
[свернуть]
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Создать массива или дроработать
« Ответ #1 : 03.08.2015, 10:19:22 »
В принципе все работает и можно было оставить так, как есть, но мне кажется его можно улучшить:
Спойлер
[свернуть]


Все это должно превратиться в это:
Как PHP код может превратиться в JS код? Может все это должно обрабатываться тем JS кодом который там полностью не выведен?
Как и не понятны подобные строки: "$use_wm1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1"
Не выведет ли это кучу раз одно и тоже?
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #2 : 03.08.2015, 11:14:41 »
Istaan
Простите за предыдущую беседу.
Спасибо, очень хорошо сократился код.
Код
"$use_wm1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1"
Подобный список мне тоже не очень нравиться.
Нет, не выводит:
Спойлер
[свернуть]
Проверил ваш вариант, не совсем верно он работает:
Спойлер
[свернуть]
Спойлер
[свернуть]
:o
« Последнее редактирование: 03.08.2015, 11:31:04 от leo78 »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Создать массива или дроработать
« Ответ #3 : 03.08.2015, 11:32:27 »
Если я правильно понимаю то что то типа этого
Спойлер
[свернуть]
Но мне тестировать неначем, может не работать! Просто приблизительно как можно сократить написал!

Мой вариант может неработать по нескольки причинам:
1. Код пишется в уме, и не отлаживается, нет целостности понимания что делает код
2. в строке $use_cbank1 = $params->get( 'use_rupay' ) == 0 ? '' : ' #cbank,'; ошибка вместо use_rupay должно быть use_cbank
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Создать массива или дроработать
« Ответ #4 : 03.08.2015, 11:37:10 »
Хотя правильно ли я понимаю, вам нужно если человек выбрал систему оплаты webmoney то все остальные системы скрываются? Если выбрал PayPal то все остальные системы скрываются!
Если так вам вообще не нужно ни строчки PHP кода и три строчки JS кода!
Если так! То удаляете весь PHP код
И делаете так:
для блоков которые отображают ваши платежные системы даете класс class="payments"
а дальше
$('.payments).hide();
$('#нужная_система').show();
PHP код нужен будет только для того что бы выводить или не выводить иконку включенной системы! Все!
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #5 : 03.08.2015, 11:45:17 »
Istaan
В том и дело 9 платежных систем, их можно выбрать в админ панели, включить все, или на собственный выбор, конечно не продумано если пользователь отключит их все но даётся выбор.
демонстрация
Массив не проще сделать?
Код
$selectors = array();
array_push($selectors, "#1");
array_push($selectors, "#2");
array_push($selectors, "#3");
echo implode(", ", $selectors); // "#1, #2, #3"
Только как потом выдергивать ненужный ID?
« Последнее редактирование: 03.08.2015, 12:01:21 от leo78 »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #6 : 03.08.2015, 13:35:58 »
Такой  JS код был:
Спойлер
[свернуть]
Думал упростить его  >:(
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Создать массива или дроработать
« Ответ #7 : 03.08.2015, 14:01:00 »
https://jsfiddle.net/Frisian/enwmps9o/35/
Как я и говорил все что вы делаете в PHP вам не нужно!
Я поправил ваш код там так как нужно делать!
Основа:
1. Ссылка: <a id="ammh1" style="margin:3px;" class="south" href="#wm" title="WebMoney"></a>
её заключить в
Код: php
<?php if($params->get('show_wm')): ?>
<a id="ammh1" style="margin:3px;" class="south" href="#wm" title="WebMoney"></a>
<?php endif; ?>

2. Блок с платежной системой должен быть в контейнере:
Код: php
<?php if($params->get('show_wm')): ?>
<div id="wm" class="amoney">
... тут платежная система
</div>
<?php endif; ?>
Класс у всех этих блоков должен быть amoney! ID должен быть тот что в href="#wm" (без решетки конено)

Дальше в JS код всего:
Код: javascript
jQuery(function($) {
    $(document).on('click', '.south', function(){
        $('.amoney').hide(); //скрываем все блоки с классом amoney
        $($(this).attr('href')).slideDown(500); //отображаем блок с id которой пришол у нас из аттрибута href текущей ссылки
        return false;
    });
});

Все! Вот ту порнографию что вы писали удалить, она не нужна! Добавлять можно неограниченное количество блоков...
« Последнее редактирование: 03.08.2015, 14:10:04 от Istaan »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #8 : 03.08.2015, 14:13:32 »
Istaan
Так просто, класс, спасибо!
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #9 : 03.08.2015, 15:06:37 »
Istaan
Просто уточнить хотел, так все нормально.
Оставили случайно:
Код
.removeAttr('title');
Код
jQuery(function($) {
    $('#amoney').on('click', '.south', function(){
        $('#amoney .south.active').removeClass('active').removeAttr('title');
        $(this).addClass('active');
- оно Неправильно работает, удаляет но не возвращает.
у меня так работает
Код
jQuery(function($) {
    $('#amoney').on('click', '.south', function(){
     $('#amoney .south').removeClass('active');
     $(this).addClass('active');
    });
});
« Последнее редактирование: 03.08.2015, 15:10:30 от leo78 »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Создать массива или дроработать
« Ответ #10 : 03.08.2015, 15:24:16 »
ну я не знал что тот код делает по этому дописал ниже свой на https://jsfiddle.net/Frisian/enwmps9o/35/
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #11 : 03.08.2015, 16:00:24 »
Еще вопрос, что делать с этим:
Код
<a class="south" href="javascript:void(0);" style="margin:3px;text-decoration: none;" onclick="hide_all()" title="Скрыть все">Благодарность Автору</a>
Пишет ошибки:
Цитировать
Uncaught ReferenceError: hide_all is not definedonclick @ universal-module.html:314
jquery.min.js:2 Uncaught Error: Syntax error, unrecognized expression: javascript:void(0);

изменил на
Код
<a rel="nofollow" class="south hasTooltip active" style="margin:3px;text-decoration: none;" title="Скрыть все">Благодарность Автору</a>

https://jsfiddle.net/enwmps9o/36/

И править не чего особо не пришлось только изменил ссылки и все

А если поставить .toggle(500);
https://jsfiddle.net/enwmps9o/38/
« Последнее редактирование: 03.08.2015, 16:37:57 от leo78 »
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Создать массива или дроработать
« Ответ #12 : 03.08.2015, 17:17:47 »
Я в предыдущей ваше теме отписывался, что могу сделать вообще без скриптов, как время будет. Задача у вас простая. Размеры кнопок фиксированные, высота выпадающего блока тоже.
Держите.
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #13 : 03.08.2015, 17:24:50 »
Shustry
А убрать блок как?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Создать массива или дроработать
« Ответ #14 : 03.08.2015, 17:25:37 »
Какой блок убрать? У вас в примере ничего не убирается.
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #15 : 03.08.2015, 18:02:11 »
Ладно пока буду ломать это
Код
<?php
$use_wm1 = $params->get( 'use_wm' ) == 0 ? '' : ' #wm,';
$use_rupay1 = $params->get( 'use_rupay' ) == 0 ? '' : '  #rupay,';
$use_yandex1 = $params->get( 'use_yandex' ) == 0 ? '' : ' #yandex,';
$use_paypal1 = $params->get( 'use_paypal' ) == 0 ? '' : ' #paypal,';
$use_moneybookers1 = $params->get( 'use_moneybookers' ) == 0 ? '' : '#moneybookers,';
$use_robox1 = $params->get( 'use_robox' ) == 0 ? '' : ' #robox,';
$use_liqpay1 = $params->get( 'use_liqpay' ) == 0 ? '' : ' #liqpay,';
$use_smscoin1 = $params->get( 'use_smscoin' ) == 0 ? '' : ' #smscoin,';
$use_cbank1 = $params->get( 'use_cbank' ) == 0 ? '' : ' #cbank,';

$hideall = trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' );
$payments = array(
   'wm' => trim( rtrim( "$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),
   'rupay' => trim( rtrim( "$use_wm1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),
   'yandex' => trim( rtrim( "$use_wm1$use_rupay1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),
   'paypal' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),
   'moneybookers' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_robox1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),
   'robox' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_liqpay1$use_smscoin1$use_cbank1", "," ), ' ' ),
   'liqpay' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_smscoin1$use_cbank1", "," ), ' ' ),
   'smscoin' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_cbank1", "," ), ' ' ),
   'cbank' => trim( rtrim( "$use_wm1$use_rupay1$use_yandex1$use_paypal1$use_moneybookers1$use_robox1$use_liqpay1$use_smscoin1", "," ), ' ' )
);
?>
<script>
   (function ($) {
      <?php foreach($payments as $payment => $value): ?>
         <?php if($params->get('use_' . $payment)): ?>
            this.show_<?php echo $payment; ?> = function () {
               $('<?php echo $value; ?>').hide();
               $('#<?php echo $payment; ?>').<?php echo $jfadtogquery;?>;
               return false;
            };
         <?php endif; ?>
      <?php endforeach; ?>
      this.hide_all = function () {
         $('<?php echo $hideall; ?>').hide();
         return false;
      }
   })(jQuery);
   <?php if ($jammfadtogquery1 == 1): ?>
   jQuery(function ($) {
      $('#amoney').on('click', '.south', function () {
         $('#amoney .south').removeClass('active');
         $(this).addClass('active');
      });
   });
   <?php endif; ?>
</script>

правда не работает
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #16 : 03.08.2015, 18:34:13 »
Istaan
брать из массива нашел как
Код
<?php

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!

?>
Спойлер
[свернуть]

Код
echo $payments['wm'];

 *DRINK*
« Последнее редактирование: 03.08.2015, 18:49:23 от leo78 »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Создать массива или дроработать
« Ответ #17 : 03.08.2015, 20:58:58 »
Не понял, зачем вам то если я показал рабочий пример без этой ненужной простыни на PHP!
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #18 : 03.08.2015, 21:25:58 »
Ваш пример:
https://jsfiddle.net/Frisian/enwmps9o/35/
мой:
http://jsfiddle.net/enwmps9o/40/
Разница в том, что нажимая повторно на кнопку нечего не происходит, в вашем примере оно открывается сколько не нажимай. 
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Создать массива или дроработать
« Ответ #20 : 03.08.2015, 21:56:57 »
Так?

https://jsfiddle.net/Shustry/f5o6hcw4/1/

Код: javascript
jQuery(function($) {
    $('.south').each(function(idx, el){
        $(this).on('click', function(){
            if ($(this).hasClass('active')) {
               return false;
            } else {
                $(this).addClass('active').siblings().removeClass('active');
                $('.amoney').eq(idx-1).slideDown(500).siblings('.amoney').hide();
            }
        });
    });
});
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Создать массива или дроработать
« Ответ #21 : 03.08.2015, 22:28:54 »
Istaan, Shustry
надо подумать, слишком много информации  >:(
« Последнее редактирование: 04.08.2015, 01:53:30 от leo78 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как создать дополнительный параметр(по типу published) для элемента списка?

Автор borro

Ответов: 4
Просмотров: 1870
Последний ответ 08.02.2018, 17:03:11
от borro
Как создать модуль PayMaster ?

Автор tsinchugova

Ответов: 0
Просмотров: 1651
Последний ответ 27.11.2013, 07:18:44
от tsinchugova
Как создать поле типа "sql" для Joomla 2.5

Автор tasknet

Ответов: 9
Просмотров: 3690
Последний ответ 15.05.2012, 17:36:45
от SDKiller
Как создать zip архив средствами Joomla API

Автор tasknet

Ответов: 14
Просмотров: 5420
Последний ответ 06.01.2012, 12:54:55
от Фей
Как создать установочный .xml файл для компонента

Автор swordholder

Ответов: 4
Просмотров: 3216
Последний ответ 17.03.2011, 03:09:31
от Ortnox