Новости Joomla

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

Релиз безопасности Joomla 6.1.1 и Joomla 5.4.6

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

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

Добрый день!
Появилась такая задача: создать модуль, который бы отображал Горячие туры.
Сделал такой файл 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
Просмотров: 1638
Последний ответ 20.01.2020, 18:00:44
от sivers
AJAX для модуля на 1.5

Автор voland

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

Автор Professor

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

Автор aanvale

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

Автор enshtein

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