Новости 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 Гость просматривают этот раздел.

 

Обычная тема
Популярная тема (более 25 ответов)
Очень популярная тема (более 50 ответов)

Заблокированная тема
Прикрепленная тема
Голосование