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

Djahat

  • Осваиваюсь на форуме
  • 30
  • 1 / 2
Кто знает - подскажите - Как русифицировать подсказку например для поля, которая используется по умолчанию - в каком файлике она лежит - не могу найти.
*

Djahat

  • Осваиваюсь на форуме
  • 30
  • 1 / 2
*

ramzan0603

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Выбираем пункт меню Forms Management, ставим галочку напротив нужной формы и нажимаем “Wizard Edit” (кнопочки справа сверху окна). Затем прописываем для каждого поля свой текст в Properties. (Напимер: Validation Message: Это обязательное поле).
*

Djahat

  • Осваиваюсь на форуме
  • 30
  • 1 / 2
Выбираем пункт меню Forms Management, ставим галочку напротив нужной формы и нажимаем “Wizard Edit” (кнопочки справа сверху окна). Затем прописываем для каждого поля свой текст в Properties. (Напимер: Validation Message: Это обязательное поле).

Не так не делайте - это отстой!

Можно включить все и сразу - ничего вручную не подписывая.

Но так как говорит ramzan0603, можно сделать особенную - уникальную подпись для валидируемого поля!
*

Hot_Gomer

  • Захожу иногда
  • 296
  • 12 / 0
  • sudo su
вот тут можно это сделать:
/libraries/cegcore/assets/gplugins/gvalidation/gvalidation.js
Joomla, Drupal, Ruby on Rails -
что может быть лучше?)
*

hazard23

  • Новичок
  • 3
  • 0 / 0
Написал как надо в файле /libraries/cegcore/assets/gplugins/gvalidation/gvalidation.js (начинается с 16 строки), сохранил с кодировкой utf-8 без bom, эффекта 0  :( Помогите пожалуйста(
*

hazard23

  • Новичок
  • 3
  • 0 / 0
Так же делал перевод через Setup/JavaScript. В поле JS Code добавил:
GValidation.errors.required='Это поле обязательно для заполнения.';
GValidation.errors.alpha='В это поле можно вводить только буквенные символы.';
GValidation.errors.alphanum='В это поле можно вводить только цифры и буквы.';
GValidation.errors.digit='Пожалуйста, введите целое число.';
GValidation.errors.nodigit='Цифры не допускаются.';
GValidation.errors.number='Пожалуйста, введите правильный номер.';
GValidation.errors.email='Пожалуйста, введите действительный адрес электронной почты.';
GValidation.errors.image='Это поле должно содержать только изображения';
GValidation.errors.phone='Пожалуйста, введите правильный номер телефона.';
GValidtaion.errors.phone_inter='Пожалуйста, введите действительный международный номер телефона.';
GValidation.errors.url='Пожалуйста, введите правильный url.';
GValidation.errors.group='Пожалуйста, сделайте, по крайней мере, %1 выделение(я).';
GValidation.errors.confirm='Пожалуйста, убедитесь, что значение совпадает с %1 значением поля.';
GValidation.errors.custom='Введенное значение не является допустимым.';
Но опять ничего не получилось(
*

Пастор Шлаг

  • Осваиваюсь на форуме
  • 28
  • 8 / 0
  • Праведный гнев
В 5 версии эти фразы находятся в packages/com_chronoforms5/admin/chronoforms/locales/en_gb/lang.php
Для перевода нужно читать официальную документацию, но предположу, что русский ставится в папку packages/com_chronoforms5/admin/chronoforms/locales/ru_ru/lang.php
с записями в самом файле:
namespace GCore\Admin\Extensions\Chronoforms\Locales\RuRu; :dry:
А может и нет.
*

hazard23

  • Новичок
  • 3
  • 0 / 0
вот тут можно это сделать:
/libraries/cegcore/assets/gplugins/gvalidation/gvalidation.js
Странно, на Joomla 2.5.24 эти действия не принесли результатов, а как поставил Joomla 3.3.3 все получилось :D спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как очистить поле при клике?

Автор UlverUA

Ответов: 6
Просмотров: 2007
Последний ответ 17.02.2017, 13:17:08
от vipiusss
Лишние символы при вводе данных в поле с маской

Автор ivan.andreyev

Ответов: 2
Просмотров: 2887
Последний ответ 08.05.2015, 15:59:17
от Hot_Gomer
Вставить ссылку в поле формы

Автор shiftyshmifty

Ответов: 1
Просмотров: 1414
Последний ответ 11.08.2014, 11:59:32
от Hot_Gomer
Предельные значения поля ввода

Автор tsimba

Ответов: 0
Просмотров: 1160
Последний ответ 29.06.2014, 06:35:54
от tsimba
Плавающее обязательное поле

Автор Unik

Ответов: 0
Просмотров: 1004
Последний ответ 21.05.2014, 08:07:13
от Unik