Стандартный тип поля Joomla XML - Text

Тип поля text является стандартным элементом форм в Joomla. Он отображает однострочное поле ввода для получения произвольных строковых данных от пользователя. Это базовый тип поля, который поддерживается во всех версиях Joomla, начиная с 1.5 и заканчивая новейшими релизами 4.x, 5.x и 6.x.

Joomla 3.x Joomla 4.x Joomla 5.x Joomla 6.x

Атрибуты поля

Ниже приведены основные атрибуты, поддерживаемые типом поля . Используйте их внутри тега <field> вашего XML-манифеста.

Атрибут Тип Описание
name string Обязательно. Уникальный системный идентификатор поля. Используется для сохранения данных в БД и получения значения в PHP ($input->get('name')).
type string Обязательно. Должно быть равно "text". Определяет тип поля как стандартное однострочное текстовое поле.
label string Заголовок поля, видимый пользователю. Рекомендуется использовать языковые константы (например, COM_EXAMPLE_FIELD_LABEL).
description string Текст подсказки или описания. В Joomla 3 отображался как tooltip при наведении. В J4/5/6 часто выводится как небольшой текст под полем.
default string Значение по умолчанию, которое будет установлено в поле при создании новой записи или если значение не сохранено.
filter string Критически важно. Определяет правило очистки данных перед сохранением. Стандарт: filter="string" (удаляет HTML-теги). Другие варианты: raw, safehtml, int, email.
required boolean Если true, поле становится обязательным для заполнения. Браузер не позволит отправить форму без значения. Добавляет визуальный маркер (звездочку) в J4/5/6.
hint string Текст-подсказка внутри пустого поля (реализует HTML5 атрибут placeholder). Например: "Введите ваше имя".
maxlength integer Максимальное количество символов, которое можно ввести. Работает на стороне клиента (в браузере). Не заменяет серверную проверку длины.
size integer Визуальная ширина поля в символах (HTML-атрибут size). Не ограничивает ввод, только влияет на отображение.
readonly boolean Если true, пользователь видит значение, но не может его изменить. Данные из такого поля отправляются на сервер.
disabled boolean Если true, поле заблокировано (серое). Данные из такого поля НЕ отправляются на сервер при сабмите формы.
pattern string Регулярное выражение (Regex) для валидации ввода на стороне клиента. Например: pattern="[0-9]+" разрешит только цифры.
autocomplete string Управление автозаполнением браузера. off — отключить, on — включить. Также поддерживает значения типа email, username, new-password.
inputmode string (Joomla 4/5/6) Подсказывает мобильным браузерам, какую клавиатуру показать. Значения: numeric, tel, email, url, search.
showon string Позволяет показывать/скрывать поле динамически в зависимости от значений других полей. Пример: showon="other_field:1".
class string Дополнительные CSS-классы для тега . Позволяет кастомизировать стилизацию конкретного поля.
autofocus boolean Если true, фокус автоматически устанавливается на это поле при загрузке страницы.
spellcheck boolean Включает (true) или выключает (false) проверку орфографии браузером.
message string Пользовательское сообщение об ошибке, которое заменит стандартное, если валидация (через pattern или validate) не пройдена.

Визуальные примеры

Ниже представлены скриншоты отображения поля в разных версиях Joomla и темах административной панели.

Joomla 3 Isis
Поле типа Text в настройках Joomla 3.x (шаблон админки Isis)
Классический вид поля в шаблоне Isis.
Joomla 4 / 5 / 6 Cassiopeia (Светлая)
Визуальное отображение поля Text в Joomla 4/5/6 - светлая тема админки Cassiopeia
Современный дизайн Cassiopeia. Светлая тема.
Joomla 4 / 5 / 6 Cassiopeia (Темная)
Визуальное отображение поля Text в Joomla 4/5/6 - темная тема админки Cassiopeia
Темная тема админки. Контрастный текст и темный фон.

Пример использования в XML

Добавьте этот фрагмент в структуру вашей XML-формы. Поле с типом text является универсальным элементом для ввода коротких строковых значений и поддерживает все стандартные атрибуты HTML5.

<field
    name="my_text_field"
    type="text"
    label="Текстовое поле"
    description="Введите произвольный текст"/>

Получение значения в PHP

Для получения значения поля в PHP-коде используйте объект Input. Метод getString() автоматически применяет фильтр безопасности, удаляя потенциально опасные HTML-теги из введенных данных. Это стандартный и наиболее безопасный способ работы с текстовыми полями в Joomla.

// --- ВАРИАНТ ДЛЯ JOOMLA 4 / 5 / 6 (Современный) ---
use Joomla\CMS\Factory;

$input = Factory::getApplication()->input;
$myText = $input->getString('my_text_field', '');


// --- ВАРИАНТ ДЛЯ JOOMLA 3.x (Устаревший) ---
$input = JFactory::getApplication()->input;
$myText = $input->get('my_text_field', '', 'string'); 


// --- ПОДГОТОВКА ДАННЫХ ДЛЯ ВЫВОДА ---
// Сохраняем безопасное значение в отдельную переменную.
// Это удобно, если значение нужно использовать в коде несколько раз.
$safeText = htmlspecialchars($myText, ENT_QUOTES, 'UTF-8');

//  HTML-ВЕРСТКА (VIEW) 
echo '<div class="my-text-container">';
echo '<h3>Введенный текст:</h3>';
echo '<p>'.$safeText.'</p>';
echo '</div>';

Обратите внимание: использование htmlspecialchars() при выводе данных является критически важным шагом для защиты вашего сайта от XSS-атак (межсайтового скриптинга). Даже если вы применили фильтр string при получении данных, экранирование специальных символов гарантирует, что пользовательский ввод будет отображен как обычный текст, а не исполнен браузером как код.

Совет: Всегда используйте атрибут filter="string" в XML-разметке или метод $input->getString() в PHP-коде. Это автоматически удалит HTML-теги и скрипты из пользовательского ввода, предотвращая сохранение вредоносного кода в базе данных. Для полей, где теги нужны (например, краткое описание), используйте filter="raw", но будьте предельно осторожны с выводом таких данных.

Подводные камни

  • Фильтр string не заменяет экранирование при выводе: Атрибут filter="string" или метод getString() удаляют HTML-теги, но не экранируют специальные символы. Для защиты от XSS-атак при выводе значения в HTML всегда необходимо использовать функцию htmlspecialchars().
  • Атрибут maxlength работает только на стороне клиента: Ограничение длины ввода через maxlength легко обходится злоумышленниками. Если размер поля в базе данных ограничен (например, VARCHAR(50)), обязательно добавляйте серверную проверку длины строки в PHP перед сохранением, чтобы избежать ошибок базы данных.
  • Риск обрезки многобайтных символов: При программной обрезке текста из этого поля стандартными функциями PHP (например, substr) кириллица или эмодзи могут повреждаться. Используйте мультибайтные функции (mb_substr) или хелперы Joomla StringHelper для корректной работы с UTF-8.
0 items Корзина
Консультация по услуге:

Вам нужно оказать услугу по формированию файла с XML полями для Joomla? Заполните форму ниже с информацией о необходимых вам данных и получите цену готового файла с полями Joomla XML