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

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Имеется в виду не модальное окно внутри самого сайта, которое появляется, если мышка приближается к крестику, а системное окошко с текстом, которое будет появляться уже после нажатия крестика - не раз такое видел, а как сделать не знаю.

Нагуглил решение:
http://mattweb.ru/moj-blog/javascript-jquery/item/107-js-skript-podtverzhdenie-zakrytiya-stranitsy
Но что-то оно у меня не сработало. Использовал код ниже.

Может кто подскажет как завести этот код? Я в js полный нуль(

Код
<script type="text/javascript">
function Unloader(){
 
    var o = this;
 
    this.unload = function(evt)
    {
        var message = "Вы уверены, что хотите покинуть страницу оформления заказа?";
        if (typeof evt == "undefined") {
            evt = window.event;
        }
        if (evt) {
            evt.returnValue = message;
        }
        return message;
    }
 
    this.resetUnload = function()
    {
        $(window).off('beforeunload', o.unload);
 
         setTimeout(function(){
            $(window).on('beforeunload', o.unload);
        }, 2000);
    }
 
    this.init = function()
    {
         
        $(window).on('beforeunload', o.unload);
 
        $('a').on('click', function(){o.resetUnload});
        $(document).on('submit', 'form', function(){o.resetUnload});
        $(document).on('keydown', function(event){
            if((event.ctrlKey && event.keyCode == 116) || event.keyCode == 116){
                o.resetUnload;
            }
        });
    }
    this.init();
}
 
$(function(){
    if(typeof window.obUnloader != 'object')
    {
        window.obUnloader = new Unloader();
    }
})
</script>

Спасибо.
« Последнее редактирование: 17.05.2018, 21:01:21 от dm-krv »
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а вас не смущает что для большинства клиентов это будет последний раз когда они зайдут на ваш сайт?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
а вас не смущает что для большинства клиентов это будет последний раз когда они зайдут на ваш сайт?

Нет, просто там целевая аудитория очень специфическая и очень нужно такое окно, что бы до них донести пару мыслей.
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Типо такого?

window.onbeforeunload = function() {
  return "Данные не сохранены. Точно перейти?";
};
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Типо такого?

window.onbeforeunload = function() {
  return "Данные не сохранены. Точно перейти?";
};

Ага, только что бы срабатывало только при попытке закрыть вкладку, т. е. при переходах по ссылкам со страницы не должно быть уведомления. Тот скрипт который я привел в первом посте, по примечания автора как раз такой, но я не смог заставить его работать(
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Странно, тот код который вы привели работает только в Firefox.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Бесплатный звонок с сайта, через интернет [РЕШЕНО]

Автор dm-krv

Ответов: 8
Просмотров: 787
Последний ответ 03.04.2019, 09:43:32
от dm-krv
Скрипт социальных голосований для любого сайта

Автор perehvat

Ответов: 2
Просмотров: 5389
Последний ответ 13.07.2011, 18:55:35
от voland
Первые шаги в создании сайта.

Автор EvgeniyV

Ответов: 6
Просмотров: 2400
Последний ответ 14.02.2011, 12:53:45
от Rave-N