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

Vadym.O

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
обновил до 3.8.4 и получил при просмотре метки/тега публикаций с этой меткой такую ошибку.

Цитировать
Call to a member function get() on string

В процессе обработки вашего запроса произошла ошибка.

Вы не можете посетить текущую страницу по одной из причин:

    просроченная закладка/избранное
    неправильный адрес
    кэш поисковой системы ссылается на несуществующий документ
    у вас нет права доступа на эту страницу
*

Mitriy

  • Захожу иногда
  • 86
  • 0 / 0
Такая же ошибка, обновился до 3.8.5 и только сейчас заметил
Код
Ошибка: 0 Call to a member function get() on string
*

Mitriy

  • Захожу иногда
  • 86
  • 0 / 0
обновил до 3.8.4 и получил при просмотре метки/тега публикаций с этой меткой такую ошибку.

Случайно не стоит плагин Disqus - комментариев?
*

Vadym.O

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
Случайно не стоит плагин Disqus - комментариев?
да, блин :(
*

stydent

  • Захожу иногда
  • 150
  • 1 / 0
  • vlad-link.ru
да, блин :(
и как их подружить? такая же проблема
*

stydent

  • Захожу иногда
  • 150
  • 1 / 0
  • vlad-link.ru
решение
/plugins/content/jw_disqus/jw_disqus.php
105-108 строчки
было
Код
// External parameter for controlling plugin layout within modules
if (!$params)
$params = version_compare(JVERSION, '1.6.0', 'lt')? new JParameter(null) : new JRegistry(null);
$parsedInModule = $params->get('parsedInModule');

нужно

Код
// External parameter for controlling plugin layout within modules
if (!$params)
{
$params = version_compare(JVERSION, '1.6.0', 'lt')? new JParameter(null) : new JRegistry(null);
}
elseif(is_string($params))
{
$params = new JRegistry($params);
}
$parsedInModule = $params->get('parsedInModule');
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает менеджер материалов, ошибка 500 SSL certificate problem

Автор Екатерина М

Ответов: 5
Просмотров: 1345
Последний ответ 06.04.2025, 09:27:20
от wishlight
Ошибка 0 Call to undefined function GuzzleHttp\choose_handler()

Автор Alllex

Ответов: 0
Просмотров: 847
Последний ответ 15.03.2024, 21:03:09
от Alllex
Ошибка version_compare(): Argument #3 ($operator)

Автор Шмайсер

Ответов: 1
Просмотров: 1197
Последний ответ 07.11.2023, 20:44:21
от fsv
reCapcha во всплывающем окне - "Ошибка защиты от спама"

Автор Dannik

Ответов: 12
Просмотров: 2434
Последний ответ 14.09.2023, 18:59:24
от all_zer
Модуль Похожие метки – только более ранние статьи!

Автор Gerostrat

Ответов: 6
Просмотров: 1022
Последний ответ 24.08.2023, 21:56:09
от sivers