Новости Joomla

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+). При отображении форм компонента в админке раньше разработчикам нужно было описывать скрытые поля в лейаутах. И выглядело это так:

<?php     // Это файл в /layouts/components/com_component/your_layout.php?><input type="hidden" name="task" value=""><input type="hidden" name="return" value="<?php echo $input->getBase64('return'); ?>"><input type="hidden" name="forcedLanguage" value="<?php echo $input->get('forcedLanguage', '', 'cmd'); ?>"><?php echo HTMLHelper::_('form.token'); ?>
Начиная с Joomla 5.3 добавлен новый способ добавления таких полей (их называют control fields) - программно. И теперь это можно сделать просто в Controller / View.
// В Controller/View добавляем поля$this->form  ->addControlField('task', '')  ->addControlField('return', $input->getBase64('return', ''))  ->addControlField('forcedLanguage', $forcedLanguage);
А в layout'е просто используем метод
renderControlFields()
// В layout формыecho $this->form->renderControlFields();
Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.Смотреть
Pull Request@joomlafeed#joomla #разработка #php

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

Новая итерация компонента продолжает развиваться, ведь с v.4.x компонент был переписан практически с нуля.

v.4.1.0. Что нового?

Редактирование метаданных изображений. Теперь метаданные можно не только читать, но и напрямую редактировать и записывать обратно в изображение JPG. Поддерживаются данные EXIF ​​и IPTC.

Полная совместимость с Joomla! 4.x, 5.x и 6.x. Компонент почистили от устаревших методов в коде.

Заметно ускорили загрузку больших галерей. Списки в админке, особенно для очень больших галерей ( >30 000 изображений), теперь загружаются значительно быстрее.

Несколько сеток lightGallery на одной странице. Будь то плагины контента или модули изображений: теперь вы можете отображать несколько галерей или категорий на одной странице без каких-либо ограничений.

Множество мелких исправлений ошибок и оптимизаций.

Сайт проекта

GitHub расширения

Скачать

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

Wharfadale

  • Захожу иногда
  • 194
  • 24 / 0
Ребят, помогите пожалуйста в форме в форме Select region сделать так, чтобы во втором списке элементам была присвоена ссылка, и при нажатии на кнопку осуществлялся переход по ссылке, соответствующей выбранному элементу.

Пример. Вот так сейчас у меня, а нужно, чтобы при выборе, к примеру, Москва, я попадал на сайт Москвы.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Select region - ссылки в элементах списка
« Ответ #1 : 19.07.2009, 09:15:17 »
Код
<script>
function _go() {
    alert(document.getElementById('address').options[document.getElementById('address').selectedIndex].value);
    location.href=document.getElementById('address').options[document.getElementById('address').selectedIndex].value;
}
</script>
<select onchange="_go()" id="address">
    <option></option>
    <option value="http://www.html.by">http://www.html.by</option>
    <option value="http://www.yahoo.com">http://www.yahoo.com</option>
</select>
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wharfadale

  • Захожу иногда
  • 194
  • 24 / 0
Re: Select region - ссылки в элементах списка
« Ответ #2 : 19.07.2009, 09:20:14 »
beliyadm, смотрите, дело в том, что элементы второго списка формируются вот таким образом (где centrcher - название элемента первого списка, которому соответствуют нижеследующие элементы второго):
Код
var centrcherArray = new Array(
        'Egypt', 'Iran', 'Israel', 'Kuwait', 'Lebanon', 'Morocco',
        'Saudi Arabia', 'Syria', 'Turkey', 'U.A.Emirates', 'Other'
    );

А вообще, вот код полностью:
Код
function ff_CselRegion_action(element, action)
{
    country = ff_getElementByName('CselCountry');
    state   = ff_getElementByName('CselState');

    var centrArray = new Array(
        <a href="http://www.summitapec2012.ru">rgrg</a>, '33. Владимирская область', '37. Ивановская область', '40. Калужская область'
    );

    var centrcherArray = new Array(
        'Egypt', 'Iran', 'Israel', 'Kuwait', 'Lebanon', 'Morocco',
        'Saudi Arabia', 'Syria', 'Turkey', 'U.A.Emirates', 'Other'
    );

    var vostochsibArray = new Array(
        'Armenia', 'Bangladesh', 'Cambodia', 'China', 'India', 'Indonesia',
        'Japan', 'Malaysia', 'Myanmar', 'Nepal', 'Pakistan', 'Philippines',
        'Singapore', 'South Korea', 'Sri Lanka', 'Taiwan', 'Thailand',
        'Uzbekistan', 'Vietnam', 'Other'
    );

    var dalnevostochArray = new Array(
        'Albania', 'Austria', 'Belarus', 'Belgium', 'Bosnia', 'Bulgaria',
        'Croatia', 'Cyprus', 'Czech Rep.', 'Denmark', 'Estonia', 'Finland',
        'France', 'Germany', 'Greece', 'Hungary', 'Iceland', 'Ireland',
        'Italy', 'Latvia', 'Liechtenstein', 'Lithuania', 'Luxembourg',
        'Macedonia', 'Malta', 'Monaco', 'Netherlands', 'Norway', 'Poland',
        'Portugal', 'Romania', 'Russia', 'Slovakia', 'Slovenia', 'Spain',
        'Sweden', 'Switzerland', 'Ukraine', 'United Kingdom', 'Other'
    );

    var severnArray = new Array('Australia', 'New Zealand', 'Other');

    var severokavArray = new Array(
        'Costa Rica', 'Cuba', 'El Salvador', 'Guatemala', 'Haiti', 'Jamaica',
        'Mexico', 'Panama', 'Other'
    );

    var severozapArray =  new Array('Canada', 'USA', 'Other');

    var povoljskArray =  new Array('Canada', 'USA', 'Other');

    var uralskArray =  new Array('Canada', 'USA', 'Other');

    var volgoviatsk =  new Array('Canada', 'USA', 'Other');

    var zapsib =  new Array(
        'Argentina', 'Bolivia', 'Brazil', 'Chile', 'Colombia', 'Ecuador',
        'Paraguay', 'Peru', 'Suriname', 'Uruguay', 'Venezuela', 'Other'
    );

    if (element.value == 'none') {
        // drop countries
        while (country.options.length > 0)
            country.options[country.options.length-1] = null;
    } else {
        // get the matching array
        var selectedArray = eval(element.value+'Array');

        // drop supernumerous option
        while (selectedArray.length < country.options.length-1)
            country.options[country.options.length-1] = null;

        // add the new options
        country.options[0] = new Option('Выберите регион', 'none', true, true);
        for (var i=0; i < selectedArray.length; i++)
            country.options[i+1] =
                new Option(selectedArray[i], selectedArray[i]);
    } // if

    // drop states
    while (state.options.length > 0)
        state.options[state.options.length-1] = null;
} // ff_CselRegion_action
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Select region - ссылки в элементах списка
« Ответ #3 : 19.07.2009, 09:30:57 »
ну так создайте для элементов\городов двухуровневый массив, в втором параметре храните значение куда переходить по событию onchange
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wharfadale

  • Захожу иногда
  • 194
  • 24 / 0
Re: Select region - ссылки в элементах списка
« Ответ #4 : 19.07.2009, 10:29:46 »
beliyadm, а как? Подскажите пожалуйста. Сам я никогда так не сделаю:(
Всё осложняется тем, что я делаю это через  BreezingForms , поэтому вообще мне нифига непонятно.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Select region - ссылки в элементах списка
« Ответ #5 : 19.07.2009, 10:43:56 »
вот за это и не люблю конструкторы форм, бо так не понимаешь что происходит
Могу предложить погуглить на тему многоуровневых массивов и их реализации в JS, найти похожий функционал и разобрать, готового кода под рукой нет
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wharfadale

  • Захожу иногда
  • 194
  • 24 / 0
Re: Select region - ссылки в элементах списка
« Ответ #6 : 19.07.2009, 10:46:39 »
Вчера искал, нашел. Есть много полезных материалов. Видимо, придётся их и использовать...
*

Wharfadale

  • Захожу иногда
  • 194
  • 24 / 0
Re: Select region - ссылки в элементах списка
« Ответ #7 : 19.07.2009, 11:13:49 »
Решил использовать данный пример: http://webamator.ru/public_14-3_spiski_eto_neslojno.html
« Последнее редактирование: 19.07.2009, 11:41:33 от Wharfadale »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Передача параметров от checkgroup box и списка

Автор james may

Ответов: 4
Просмотров: 3399
Последний ответ 31.01.2011, 03:15:39
от Dominus
Зависимые select-list'ы получающие данные из БД

Автор alex-inc

Ответов: 1
Просмотров: 4120
Последний ответ 13.07.2010, 01:47:59
от alex-inc