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

Jazzzz

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Некоторые пользователи пользуются веб-интерфейсом для публикации статей (прямо на сайте). Создают статьи они нормально, но редактировать не могут через веб (запрет доступа). Хотя в админке Joomla все нормально редактируется. Проверял под админом - то же самое. Видно проблема с доступом на файловом уровне... Куда копать?
*

fedragon

  • Захожу иногда
  • 232
  • 22 / 0
  • You move like an insect
Сайт-общие настройки-права
Выбираете группу, в которую при регистрации определяются юзеры  и ставите "изменять" на разрешено.
Your flesh is an insult to the perfection of the digital.
*

botanic

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
скажите пожалуйста. а где вообще располагается тот самый веб-интерфейс для создания статей юзером?
есть группа Author, у которых стандартно стоят в правах разрешенные действия:
Вход на сайт
Создавать
Изменять свои
Для теста зарегистрировал аккаунт (регистрировал через "морду" сайта, модуль Вход на сайт). Присвоил акку из админки группу Author.
Пытаюсь логинится под этим аккаунтом и попытаться создать какой-то материал. В итоге после ввода данных акк логинится и в окошке модуля на морде сайта я вижу "здравствуйте, такой-то," . Ожидал увидеть какие то кнопочки добавления материалов, или что-то подобное.
Кстати вхожу через эту же форму под админом, тоже так: "Здравстуйте, админ,".
Скажите пожалуйста, может что-то поставить дополнительно надо, а я и не в курсе, или входить нужно по-особенному, ну или какой плагин отредактировать.
Спасибо.
*

fedragon

  • Захожу иногда
  • 232
  • 22 / 0
  • You move like an insect
Your flesh is an insult to the perfection of the digital.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться