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

Тип поля password создает защищенное поле ввода, в котором символы маскируются (скрываются точками) для предотвращения подглядывания. В Joomla 4.x, 5.x и 6.x поле автоматически интегрируется с системой Password Policy, предоставляя встроенную проверку сложности пароля и визуальный индикатор надежности (Strength Meter).

Важно: Это поле отвечает только за визуальное скрытие ввода при наборе. Оно не шифрует данные при сохранении. Если значение сохраняется в параметрах (params) или базе данных, оно может храниться в открытом виде, если не реализовано дополнительное хэширование на уровне PHP-кода расширения.

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

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

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

Атрибут Тип Описание
name string Обязательно. Уникальный системный идентификатор поля. Используется для получения значения в PHP ($input->get('name')).
type string Обязательно. Должно быть равно "password". Определяет тип поля и его поведение (маскировка ввода).
label string Заголовок поля, видимый пользователю. Может быть языковой константой (например, JGLOBAL_PASSWORD) или текстом.
description string Текст подсказки или описания. В Joomla 3 отображался как tooltip при наведении. В Joomla 4/5/6 обычно выводится под полем или в зависимости от макета формы.
required boolean Делает поле обязательным для заполнения. Если true, форма не отправится без значения. Возможные значения: true, false.
validate string Правило валидации данных. Для паролей часто используется validate="password" (проверка сложности) или validate="equals" (для подтверждения пароля). В J4+ интегрировано с политикой паролей ядра.
strengthmeter boolean Включает отображение индикатора сложности пароля (Strength Meter). Работает "из коробки" в Joomla 4/5/6. В Joomla 3.x игнорируется. Значения: true, false.
filter string Фильтр очистки входных данных перед сохранением. Для паролей рекомендуется использовать filter="string", чтобы сохранить спецсимволы, но убрать управляющие байты. Не используйте alnum или cmd.
default string Значение по умолчанию. Внимание: Никогда не указывайте реальный пароль в этом атрибуте в открытом виде в XML-файлах. Обычно оставляется пустым.
showon string Позволяет показывать или скрывать поле динамически в зависимости от значений других полей формы. Пример: showon="enable_password:1". Работает через JavaScript.
maxlength integer Максимальное количество символов, которое можно ввести в поле. Ограничение на уровне HTML.
min_length integer Минимальная длина пароля для валидации. Используется совместно с validate. В J4+ может переопределять глобальные настройки политики паролей.
size integer Визуальная ширина поля ввода в символах. Не ограничивает количество вводимых символов, только отображаемую область.
hint string Текст-подсказка (placeholder), который отображается внутри пустого поля до начала ввода.
autocomplete string Управление автозаполнением браузера. Для полей смены пароля рекомендуется autocomplete="new-password", чтобы браузер предложил сгенерировать новый, а не подставил старый. Для отключения: off.
readonly boolean Режим «только для чтения». Пользователь видит значение, но не может его изменить. Значения: true, false.
disabled boolean Делает поле недоступным. Значение не отправляется на сервер и не сохраняется. Значения: true, false.
class string Дополнительные CSS-классы для стилизации поля. Например, class="form-control input-xlarge".
lock boolean Специфичный атрибут для админ-форм Joomla. Если true, поле заблокировано, но рядом появляется кнопка «Изменить» для разблокировки. Значения: true, false.
autofocus boolean Устанавливает фокус на поле автоматически после загрузки страницы. Значения: true, false.
onchange string Устанавливает фокус на поле автоматически после загрузки страницы. Значения: true, false.
spellcheck boolean Включает или отключает проверку орфографии браузером. Для паролей рекомендуется false. Значения: true, false.
pattern string Регулярное выражение (Regex) для валидации формата пароля на стороне клиента (HTML5). Например, pattern=".{8,}" требует минимум 8 символов.
title string Текст подсказки, который появляется при нарушении правила pattern. Полезно для объяснения требований к паролю.

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

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

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

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

Добавьте этот код внутрь формы вашего XML-манифеста. Атрибут type="password" указывает браузеру маскировать вводимые символы, а в Joomla 4+ автоматически активирует встроенную проверку сложности пароля.

<field 
	name="my_password"
	type="password" 
	label="Пароль"
	description="Введите ваш пароль" />

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

Значение поля извлекается через объект JInput. Примеры ниже демонстрируют различия в синтаксисе для Joomla 3.x и J4/J5/J6. Для корректной обработки паролей применяется фильтр string, позволяющий использовать спецсимволы без риска инъекций управляющих символов.

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

// Получаем объект ввода через Factory
$input = Factory::getApplication()->input;

// getString() очищает ввод от управляющих символов, но сохраняет спецсимволы пароля (!@#$%)
$myPassword = $input->getString('my_password_field', '');


// --- ВАРИАНТ ДЛЯ JOOMLA 3.x (Устаревший) ---
// В J3 использовался JFactory
$input = JFactory::getApplication()->input;
$myPassword = $input->get('my_password_field', '', 'string'); 

// ИЛИ старым способом (не рекомендуется к использованию в новом коде):
// $myPassword = JRequest::getVar('my_password_field', '', 'post', 'string');


// --- ВАЖНОЕ ПРИМЕЧАНИЕ ---
// Переменная $myPassword теперь содержит "сырой" пароль, введенный пользователем.

// 1. Никогда не выводите это значение на экран (echo, print_r) даже в режиме отладки.
// 2. Используйте эту переменную только для сравнения (password_verify) 
//    или передачи в защищенные методы аутентификации.

Полученная переменная содержит «сырое» значение, введенное пользователем. Используйте её только для безопасной проверки (например, сравнения хэшей) или передачи в защищенные API. Категорически не рекомендуется выводить это значение в лог-файлы, ответы JSON или на экран, даже в режиме отладки.

Совет: Если вы используете это поле для ввода API-ключей или токенов, которые должны храниться в открытом виде (для последующего использования в запросах), убедитесь, что ваше расширение шифрует эти данные перед записью в базу данных или конфигурационный файл. Стандартное поле password не обеспечивает шифрование при сохранении — оно лишь скрывает символы при визуальном вводе.

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

  • Хранение в открытом виде: Поле type="password" маскирует ввод только в браузере. Если вы сохраните полученное значение напрямую в базу данных или params.ini без предварительного хэширования или шифрования, пароль будет доступен любому, кто имеет доступ к файлам или БД сайта.
  • Исчезновение значения при ошибке валидации: В Joomla 4/5/6 из соображений безопасности поле пароля не заполняется автоматически предыдущим значением, если форма не прошла валидацию (например, пользователь забыл заполнить другое обязательное поле). Пользователю придется вводить пароль заново. Это стандартное поведение HTML5 и Joomla, а не ошибка.
  • Различия в валидации J3 и J4+: В Joomla 3.x атрибут validate="password" часто требовал наличия отдельного JS-скрипта или плагина для проверки сложности. В Joomla 4/5/6 валидация и индикатор сложности (Strength Meter) встроены в ядро и работают автоматически, если включена политика паролей. Старые скрипты валидации из J3 могут конфликтовать с новыми веб-компонентами.
  • Автозаполнение браузером: Браузеры могут игнорировать маскировку или предлагать сохранить пароль даже в административной части. Для полей с API-ключами или токенами рекомендуется использовать атрибут autocomplete="off" или autocomplete="new-password", чтобы избежать случайной подстановки личных паролей пользователя вместо служебных ключей.
  • Регистрозависимость и пробелы: Фильтр string (используемый по умолчанию при получении через $input->getString()) может обрезывать пробелы в начале и конце строки (trim). Если ваш сервис требует точного совпадения с пробелами внутри пароля, убедитесь, что они не теряются при обработке, хотя большинство стандартов безопасности рекомендуют запрещать пробелы по краям.
Войти

Еще нет аккаунта?

Мы используем файлы cookie, чтобы улучшить ваше впечатление от нашего сайта, а так же его работоспособность. Просматривая сайт, вы соглашаетесь с использованием нами файлов cookie.
0 items Корзина
Консультация по услуге:

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