Новости Joomla

👩‍💻 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 Гость просматривают эту тему.
  • 2 Ответов
  • 2784 Просмотров

Добрый день!
Появилась такая задача: создать модуль, который бы отображал Горячие туры.
Сделал такой файл xml:
Код
<params addpath="/modules/mod_hot_tours/elements">
        <param name="tour_dates" type="text" default="" label="Дата вылета" description="Дата вылета в тур" />
        <param name="tour_nights" type="text" default="" label="Ночей в туре" description="Количество ночей в туре" />
        <param name="tour_country" type="country" default="" label="Страна" description="Страна, в которую прибывают в тур" />
        <param name="@spacer" type="spacer" default="" label="" description="" />
        <param name="tour_name_hotel1" type="text" size="40" default="" label="Название 1-го отеля" description="Название 1-го отеля" />
        <param name="tour_price_hotel1" type="text" default="" label="Цена 1-го отеля" description="Цена 1-го отеля" />
        <param name="tour_name_hotel2" type="text" size="40" default="" label="Название 2-го отеля" description="Название 2-го отеля" />
        <param name="tour_price_hotel2" type="text" default="" label="Цена 2-го отеля" description="Цена 2-го отеля" />
        <param name="tour_name_hotel3" type="text" size="40" default="" label="Название 3-го отеля" description="Название 3-го отеля" />
        <param name="tour_price_hotel3" type="text" default="" label="Цена 3-го отеля" description="Цена 3-го отеля" />
        <param name="tour_name_hotel4" type="text" size="40" default="" label="Название 4-го отеля" description="Название 4-го отеля" />
        <param name="tour_price_hotel4" type="text" default="" label="Цена 4-го отеля" description="Цена 4-го отеля" />
        <param name="tour_name_hotel5" type="text" size="40" default="" label="Название 5-го отеля" description="Название 5-го отеля" />
        <param name="tour_price_hotel5" type="text" default="" label="Цена 5-го отеля" description="Цена 5-го отеля" />
        <param name="tour_name_hotel6" type="text" size="40" default="" label="Название 6-го отеля" description="Название 6-го отеля" />
        <param name="tour_price_hotel6" type="text" default="" label="Цена 6-го отеля" description="Цена 6-го отеля" />
        <param name="tour_name_hotel7" type="text" size="40" default="" label="Название 7-го отеля" description="Название 7-го отеля" />
        <param name="tour_price_hotel7" type="text" default="" label="Цена 7-го отеля" description="Цена 7-го отеля" />
        <param name="tour_descr" type="textarea" rows="10" cols="50" default="" label="Краткое описание" description="Краткое описание" />
    </params>

Но в этом случае отображается много блоков (Название отеля, Цена отеля), а нужно, чтобы отображались один такой блок.
А при нажатии на кнопку "Добавить отель" в параметры модуля добавлялся еще один блок с полями Название отеля, Цена отеля.

Подскажите как это реализовать? Может воспользоваться elements?
*

migus

  • Давно я тут
  • 992
  • 144 / 0
  • OPEN THE BOX
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Да,если постараться то можно такое сделать. Нужно создать свой тип элемента. Но тут загвоздка есть. Параметр может хранить либо единичное значение либо массив, но не массив массивов что тут требуется. Вот пример элемента который отображает поля и кнопку Давить поле. Сделать пары полей уже не получится.

Код: php
class JElementMultiText extends JElement
{
/**
* Element name
*
* @access protected
* @var string
*/
var $_name = 'MultiText';

function fetchElement($name, $value, &$node, $control_name)
{
$size = ( $node->attributes('size')? 'size="'.$node->attributes('size').'"' : '' );
$class = ( $node->attributes('class')? 'class="'.$node->attributes('class').'"' : 'class="text_area"' );
$document =& JFactory::getDocument();
        /*
         * Required to avoid a cycle of encoding &
         * html_entity_decode was used in place of htmlspecialchars_decode because
         * htmlspecialchars_decode is not compatible with PHP 4
         */
       

$script = '
function addInput(button) {
var input = button.parentNode.insertBefore(document.createElement(\'input\'), button);
input.parentNode.insertBefore(document.createElement(\'br\'), button);
input.name = \''.$control_name.'['.$name.'][]\''.';
return false;
}
';
$document->addScriptDeclaration($script);
$inputs = array();
foreach ((array) $value as $val)
{
$val = htmlspecialchars(html_entity_decode($val, ENT_QUOTES), ENT_QUOTES);
$inputs[] = '<input type="text" name="'.$control_name.'['.$name.'][]" value="'.$val.'" '.$class.' '.$size.' />';
}
return implode('<br />', $inputs).'<button type="button" onclick="addInput(this)">Add Input</button>';
}
}
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужна помощь в исправлении ошибок модуля

Автор megaboy161

Ответов: 16
Просмотров: 1485
Последний ответ 20.01.2020, 18:00:44
от sivers
AJAX для модуля на 1.5

Автор voland

Ответов: 2
Просмотров: 1637
Последний ответ 04.03.2016, 12:08:41
от b2z
[how to] Красота JHTML, или создание элементов формы с

Автор Professor

Ответов: 11
Просмотров: 24563
Последний ответ 27.12.2012, 18:14:38
от BaR
Как вы "въехали" в создание расширений?

Автор aanvale

Ответов: 4
Просмотров: 2829
Последний ответ 13.10.2012, 21:44:25
от passer
Как получить ID для каждого выводимого модуля на странице

Автор enshtein

Ответов: 6
Просмотров: 6508
Последний ответ 12.01.2012, 08:54:19
от enshtein