Новости Joomla

Вышли релизы безопасности Joomla 6.0.4 и Joomla 5.4.4

Релиз безопасности Joomla 6.0.4 и Joomla 5.4.4

Проект Joomla! рад сообщить о выходе Joomla 6.0.4 и Joomla 5.4.4. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

👩‍💻 WT CDEK library v.1.3.0 - обновление PHP SDK для Joomla + CDEK.

👩‍💻 WT CDEK library v.1.3.0 - обновление PHP SDK для Joomla + CDEK.

Небольшая нативная PHP Joomla библиотека для работы с API v.2 службы доставки CDEK. Библиотека представляет собой клиент для авторизации в CDEK API по OAuth, работы с некоторыми методами API: получения ряда данных и расчета стоимости доставки. Поддерживается Joomla 4.2.7 и выше.

В пакет входят:
- библиотека Webtolk/Cdekapi
- системный плагин System - WT Cdek для хранения настроек и AJAX-интеграций
- task-плагин Task - Update WT Cdek data для обновления локальных копий справочников CDEK по расписанию
- web asset с официальным JavaScript-виджетом СДЭК

👉 v.1.3.0. Что нового?
- Полный рефакторинг библиотеки. Библиотека переработана в entity-based API с фасадом Cdek и отдельным слоем запросов. Обратная совместимость не нарушена, поэтому версия библиотеки - 1.3.0.
- Добавлена поддержка новых разделов API СДЭК. Добавлена поддержка новых разделов API СДЭК: webhooks, prealert, печатные формы, payment, passport, reverse, intakes и других сущностей.
- Улучшена интеграция с Joomla.
Улучшена интеграция с Joomla: installer script для layouts, новые поля Joomla Form для тарифов и обновлённые js виджета CDEK.
- документация библиотеки. Все методы библиотеки подробно описаны, а так же текст документации собран в отдельной папке в git репозитории и будет опубликован на сайте.

Библиотека эта нужна для разработчиков, создающих свои расширения для интеграции Joomla и курьерской службы CDEK.

Страница расширения
GitHub расширения

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 21 Ответов
  • 2390 Просмотров
*

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
Просмотров: 1723
Последний ответ 08.02.2018, 17:03:11
от borro
Как создать модуль PayMaster ?

Автор tsinchugova

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

Автор tasknet

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

Автор tasknet

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

Автор swordholder

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