Новости Joomla

Новый способ добавления и рендера полей в 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.

<?php // В Controller/View добавляем поля $this->form ->addControlField('task', '') ->addControlField('return', $input->getBase64('return', '')) ->addControlField('forcedLanguage', $forcedLanguage);

А в layout'е просто используем метод

renderControlFields()

<?php // В layout формы echo $this->form->renderControlFields();

Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.

Смотреть Pull Request

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

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Если внутри fieldset поля типа repeatable создать поле даты (тип calendar), то календарь по нажатию на кнопку поля не раскрывается

Код: xml
<field name="list" type="repeatable" >
<fieldset hidden="true" name="list_modal" repeat="true">
<field name="dt" type="calendar" />
</fieldset>
</field>

И может наконец сделают уже repeatable-поле, избавленное от модалки?

Кто умеет, создайте пожалуйста запись в офбагтрекере.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4

И может наконец сделают уже repeatable-поле, избавленное от модалки?
Да просто надо время найти да спилисть свой тип. Но одна проблема нужно, время. А введу его нехваты и лени можно и с модалкой пострадать
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Да, но даже с модалкой проблемы: если тип поля требует своего js, этот js не работает. кроме как на стандартном селекте: календарь, выделение цветом значений селекта поля состояния, возможно еще что-то...
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Так никто и не пожелал помочь создать палл-реквест на баг-трекере, пичально (((
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Так никто и не пожелал помочь создать палл-реквест на баг-трекере, пичально (((
Опишите как воспроизвести проблему пошагово, я создам топик на багтрекере.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Стандартное поле типа repeatable, внутри которого описано поле типа calendar, согласно документации
в админке в форме в компоненте или модуле (на фронте не проверял) поле отображает дату, позволяет откорректировать значение вручную, а вот выбрать значение из раскрывающегося календарпя не позволяет - календарь не раскрывается, в консли чисто
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Я когда-то похожий баг постил, мне пришлось создать болванку плагина, чтобы тамошнему народу продемонстрировать. Мож прикрепите?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
уже не вижу смысла, все равно воз останется на том же месте
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
уже не вижу смысла, все равно воз останется на том же месте
Под лежачий камень вода не течёт.
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Отчего же нет смысла.
Правят баги.
Но да, надо всё очень детально с примерами кода писать и не быстро.

А если не писать, то и не поправят
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
ну, создайте болванку модуля. кому не лень. мне уже все равно
заодно и сами проверите, - вдруг это баг моего мозга?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться