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

vendn

  • Захожу иногда
  • 105
  • 1 / 2
с установкой Joomla 2.5.8 и шаблона по новой перестало работать верхнее меню, а именно drop-down меню перестали отображаться, почему-то скрипт не действует должным образом, помогите пожалуйста!
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Перестало работать javascript-menu
« Ответ #1 : 30.01.2013, 10:51:25 »
Меню модулем сделано ?
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
Re: Перестало работать javascript-menu
« Ответ #2 : 30.01.2013, 11:27:29 »
Меню модулем сделано ?
да
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
Re: Перестало работать javascript-menu
« Ответ #3 : 30.01.2013, 12:19:02 »
блин теперь во втором хосте погнала ява( помогите пожалуйста, в яве не силен!
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Перестало работать javascript-menu
« Ответ #4 : 30.01.2013, 12:45:42 »
да
Модуль подходит для Joomla 2.5 ?
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
Re: Перестало работать javascript-menu
« Ответ #5 : 30.01.2013, 13:48:13 »
Модуль подходит для Joomla 2.5 ?
меню то выходит, но не выходит выпадающее меню, видимо проблема в конфликте java или хз еще где..
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Перестало работать javascript-menu
« Ответ #6 : 30.01.2013, 13:53:19 »
меню то выходит, но не выходит выпадающее меню, видимо проблема в конфликте java или хз еще где..
Возможен конфликт mootools и jQuery . Если меню работает на jQuery , попробуйте прописать noconflict
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
Re: Перестало работать javascript-menu
« Ответ #7 : 30.01.2013, 18:53:18 »
Возможен конфликт mootools и jQuery . Если меню работает на jQuery , попробуйте прописать noconflict
непонятно на чем работает менюшка, где именно прописывать?
какие еще рекомандации есть?
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Перестало работать javascript-menu
« Ответ #8 : 30.01.2013, 18:54:38 »
какие еще рекомандации есть?
Возможно путь к скрипту Неправильно указан .
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
Re: Перестало работать javascript-menu
« Ответ #9 : 30.01.2013, 19:30:53 »
Возможно путь к скрипту Неправильно указан .
где именно это может быть?
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Перестало работать javascript-menu
« Ответ #10 : 30.01.2013, 19:32:23 »
Перестало само или после каких-то изменений на сайте?
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
Re: Перестало работать javascript-menu
« Ответ #11 : 30.01.2013, 19:40:25 »
Перестало само или после каких-то изменений на сайте?
дело в том, что на quickstart версии шаблона пашет норм
но я делаю с нуля на новой версии, из-за проблем с junewsultra
смотрел через "Происпектировать элемент" , где меню пашет выводится class=menu dualfish, на неработающем - просто class=menu
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
Re: Перестало работать javascript-menu
« Ответ #12 : 30.01.2013, 20:22:51 »
вот код этого меню
Код
function xtcMenu(container, menuClass, sp, del, a, tr, afps, cnt, ali){
  var topmenu;
  if(container === null) { topmenu = $(document.body); }
  else { topmenu = $(container); }
 
  if( !$defined(tr) ) { tr = new Fx.Transition(Fx.Transitions.Quint.easeInOut); }
  if( !$defined(afps) ) {afps = 50; }
  if( !$defined(cnt) ) { cnt = false; }
  if( !$defined(del) ) { del = 0; }
 
  if(topmenu) {
    var menus = topmenu.getElements('ul.' + menuClass);
   
    menus.each(function(menu){
      var menu_lis = menu.getElements('li');
      var uMain = menu.getCoordinates();
         
      menu_lis.each(function(l,i){
        var u = l.getElement('ul');
        if(u) {
          /* u.setStyles({'visibility':'visible'}); */
          if(menu.hasClass('suckerfish')) { u.addClass('suckerfish'); }
          if(menu.hasClass('dualfish')) { u.addClass('dualfish'); }
          if(menu.hasClass('dropline')) { u.addClass('dropline'); }
         
          var uLevel = ((u.getParent()).getParent()).hasClass(menuClass);
          var fx = new Fx.Morph(u, { duration: sp, link:'cancel', transition: tr, fps: afps } );
          var uDim = u.getCoordinates([menu]);
          var uPaddingTop = ( u.getStyle('padding-top') )? u.getStyle('padding-top').toInt() : 0;
          var uPaddingBottom = ( u.getStyle('padding-bottom') )? u.getStyle('padding-bottom').toInt() : 0;
          var uh = uDim.height - (uPaddingTop + uPaddingBottom);
          var mAnimIn;
          var mAnimOut;
                   
          /* IF 1st level dropdown */
          if(uLevel) {
            if (window.ie){ uDim.left = u.getBoundingClientRect().left; }
            //if( (uMain.left + uMain.width) < (uDim.left + uDim.width) ) { u.setStyles({'right': 0 + 'px'}); }
            if(cnt) {
              if( l.getSize().x <= uDim.width ) {
                u.setStyles({'margin-left': ((l.getSize().x - uDim.width)/2) + 'px'});
              }
              else {
                u.setStyles({'margin-left': ((uDim.width - l.getSize().x)/2) + 'px'});
              }
              uDim = u.getCoordinates([menu]);
            }
            if( ali && (uMain.left + uMain.width) < (uDim.left + uDim.width) ) { u.setStyles({'right': 0 + 'px', 'margin-left': 0 + 'px'}); }
            if( ali && (uMain.left) > (uDim.left) ) { u.setStyles({'left': 0 + 'px', 'margin-left': 0 + 'px'}); }


          /* IF 2nd or deeper dropdown */
          }else {
            if (window.ie){ uDim.left = u.getBoundingClientRect().left; }
            if(ali) {
              if( (uMain.left + uMain.width) < (uDim.left + uDim.width) ) { u.setStyles({'left': -uDim.width + 'px'}); }
            }
          }
         
          /* u.addClass('xtcHide'); */
                   
          switch(a) {
            case 'h':
              u.setStyles({'height':'0px'});
              mAnimIn = {'height': uh + 'px'};
              mAnimOut = {'height': 0 + 'px'};
            break;
           
            case 'f':
              u.setStyles({'opacity':0});
              mAnimIn = {'opacity': 1};
              mAnimOut = {'opacity': 0};
            break;
           
            case 'hf':
              u.setStyles({'height':'0px', 'opacity':0});
              mAnimIn = {'height': uh + 'px', 'opacity': 1};
              mAnimOut = {'height': 0 + 'px', 'opacity': 0};
            break;
          }
         
          var timer;
          l.addEvent('mouseenter', function(){
            l.addClass('xtcHover');
            if(window.ie7) { u.setStyle('display', 'block'); }
            timer = $clear(timer);
            fx.cancel();
            fx.start(mAnimIn);
          });
         
          l.addEvent('mouseleave', function(){
            timer = (function(){
              fx.start(mAnimOut).chain(function(){
                l.removeClass('xtcHover');
                if(window.ie7) { u.setStyle('display', 'none'); }
              })
            }).delay(del); 
          });
         
        }/* If there is submenu */
       
      });
     
    });/* if(menu) END */
  }/* if(topmenu) END */
}
дайте понять его пожалуйста, как лучше и с чем совмещать?
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
Re: Перестало работать javascript-menu
« Ответ #13 : 30.01.2013, 22:01:01 »
бывает, что заработает, но только не на главной странице, а уже когда заходишь на страницу с подразделами...
*

Alldar

  • Завсегдатай
  • 1504
  • 195 / 1
Re: Перестало работать javascript-menu
« Ответ #14 : 30.01.2013, 22:02:36 »
У вас случаем на Jquery 1.9 грузится например с Google?
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
Re: Перестало работать javascript-menu
« Ответ #15 : 31.01.2013, 00:25:12 »
У вас случаем на Jquery 1.9 грузится например с Google?
нет, полный 0... сайт на денвере, может проблема в нем?
что в основном отвечает за вывод ява скрипта на главную страницу?
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
Re: Перестало работать javascript-menu
« Ответ #16 : 31.01.2013, 19:21:39 »
в настройке модуля меню есть menu class suffix - думаю надо ставить на dualfish...
но всеравно есть свои недочеты( кто поможет??
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Menu и Header

Автор everlog

Ответов: 0
Просмотров: 3711
Последний ответ 18.02.2019, 13:40:54
от everlog
Не работает mega menu в шаблоне sj_jare

Автор premisse

Ответов: 5
Просмотров: 4102
Последний ответ 28.02.2017, 21:35:24
от ddenov
zt conto left menu

Автор Roman62

Ответов: 2
Просмотров: 1256
Последний ответ 12.11.2015, 18:12:11
от Roman62
Как убрать отступ в chinch-menu?

Автор xandr

Ответов: 7
Просмотров: 1374
Последний ответ 20.08.2015, 13:26:54
от vipiusss
Как активировать (jQuery Superfish Menu) в шаблоне ( JP Model Agency v4 )?

Автор million777

Ответов: 0
Просмотров: 1272
Последний ответ 30.09.2014, 22:04:32
от million777