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

Тип поля URL в Joomla XML предназначен для ввода и валидации веб-адресов. Поле отображает стандартный текстовый инпут с проверкой формата ссылки браузером. Поддерживается во всех актуальных версиях CMS (Joomla 3.x, 4.x, 5.x, 6.x).

Ключевая особенность — полная поддержка международных доменов (IDN), таких как сайт.рф или сайт.бел. Joomla автоматически корректно обрабатывает и сохраняет кириллические и другие национальные символы, преобразуя их при необходимости в формат Punycode для внутренней работы, что гарантирует целостность данных независимо от кодировки.

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

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

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

Атрибут Тип Описание
name string Обязательно. Уникальный системный идентификатор поля. Используется для получения значения в PHP ($input->get('name')).
type string Обязательно. Должно быть равно "url". Определяет тип поля и его поведение.
label string Заголовок поля, видимый пользователю в админке. Может быть языковой константой (например, COM_EXAMPLE_URL_LABEL).
description string Текст подсказки. В Joomla 3 отображается при наведении на заголовок (tooltip), в J4/5/6 — может выводиться под полем или во всплывающем окне.
default string Значение по умолчанию, которое появится в поле при первом открытии формы (например, https://iws.by).
required boolean Если true, поле становится обязательным. Форма не сохранится без заполненного значения. Браузер покажет предупреждение.
relative boolean Важно для URL! Если true, разрешает ввод относительных путей (без http://). Полезно для внутренних ссылок Joomla. По умолчанию false (требует полный внешний URL).
scheme string Список разрешенных протоколов через запятую (например, http,https,ftp). Ограничивает ввод только указанными схемами для безопасности.
filter string Фильтр данных при сохранении. Для URL рекомендуется оставить пустым (по умолчанию применяется фильтр url) или явно указать url.
validate string Правило валидации Joomla. Можно указать url для дополнительной строгой проверки формата ссылки на стороне сервера.
maxlength integer Максимальное количество символов, которое можно ввести в поле. Защищает от переполнения базы данных.
readonly boolean Если true, поле доступно только для чтения. Пользователь видит значение, но не может его изменить. Значение сохраняется.
disabled disabled Если true, поле полностью отключено (серое). Его значение не отправляется и не сохраняется при отправке формы.
hint string Текст-заполнитель (placeholder), который виден в пустом поле и исчезает при начале ввода.
class string Дополнительные CSS-классы для стилизации самого элемента . Например, form-control или другие классы.
size integer Видимая ширина поля в символах. Не ограничивает длину ввода, влияет только на визуальный размер вводимой области.
showon string Условие отображения поля. Позволяет показывать поле только если другое поле имеет определенное значение (пример: showon="enable_url:1").
autocomplete string Управляет автозаполнением браузера. Используйте off для отключения (часто для уникальных ID) или on для включения.
autofocus boolean Если true, курсор автоматически окажется в этом поле после загрузки страницы. Удобно для первых полей формы.
spellcheck boolean Включает (true) или отключает (false) проверку орфографии браузером. Для URL обычно отключают (false).
onchange string JavaScript-код, который выполняется при каждом изменении значения в поле.
translate_default boolean Если true, Joomla попытается перевести значение default. Для статических URL рекомендуется ставить false.
label_class string CSS-классы, применяемые к тегу
layout string Путь к альтернативному макету (layout) для рендеринга поля. Используется в Joomla 4/5/6 для глубокой проработки HTML шаблона поля.

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

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

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

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

Добавьте этот код внутрь тега вашего XML-манифеста. Атрибут type="url" автоматически активирует валидацию ссылки браузером.

<field
	name="url"
	type="url"
	label="URL адрес"
	description="Введите необходимый URL адрес"/>

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

Для получения данных из полей формы в Joomla используется объект JInput. Он обеспечивает безопасную фильтрацию входных данных. Ниже приведены примеры получения URL-адреса для современных версий (J4/J5/J6) и устаревших (J3). Обратите внимание на использование метода getUrl(), который автоматически проверяет наличие протокола и корректность ссылки. Также рассмотрен важный нюанс обработки кириллических доменов (IDN).

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

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

// getUrl() строго проверяет протокол и безопасность ссылки
$myUrl = $input->getUrl('my_url_field', '');


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


// --- ОБРАБОТКА IDN (КИРИЛЛИЧЕСКИЕ ДОМЕНЫ) ---
// Если URL содержит кириллицу (например, сайт.рф), он хранится как Punycode.
// Для вывода в читаемом виде (UTF-8) используйте преобразование:

// Для J4/J5/J6:
use Joomla\String\Punycode;
$displayUrl = Punycode::urlToUTF8($myUrl);

// Для J3:
$displayUrl = \JStringPunycode::urlToUTF8($myUrl);

// Вывод ссылки
echo '<a href="' . htmlspecialchars($myUrl) . '">' . htmlspecialchars($displayUrl) . '</a>';

В Joomla 4+ класс JFactory заменен на Joomla\CMS\Factory. Метод getUrl() является наиболее надежным способом получения ссылок, так как он отбрасывает некорректные данные.

Важно про IDN: Кириллические домены (IDN) в базе данных Joomla хранятся в формате Punycode (xn--...). Без преобразования через Punycode::urlToUTF8() пользователь увидит непонятный набор символов вместо красивого адреса сайта. Всегда используйте htmlspecialchars() при выводе в HTML для защиты от XSS.

Совет: Для полей типа URL всегда используйте фильтр getUrl(). Если вы поддерживаете Joomla 3, убедитесь, что экранируете вывод. Для IDN доменов преобразование в UTF-8 критично для правильного отображения ссылки пользователю.

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

  • Требование протокола: По умолчанию поле использует HTML5 тип . Это означает, что браузер и Joomla потребуют наличия протокола (http:// или https://). Ввод просто example.com может вызвать ошибку валидации в браузере или сохранить некорректную ссылку.
  • IDN домены (Кириллица): При вводе доменов на кириллице (например, сайт.рф или сайт.бел) убедитесь, что ваша версия Joomla корректно обрабатывает кодировку. В некоторых случаях может потребоваться преобразование в Punycode (xn--d1acufc.xn--p1ai) для корректной работы в атрибуте href.
  • Ограничение длины (255 символов): Если в вашей базе данных колонка для этого поля имеет тип VARCHAR(255), длинные URL с GET-параметрами могут быть обрезаны при сохранении. Для сложных ссылок рекомендуется использовать тип колонки TEXT или VARCHAR(500+).
  • Фильтрация в PHP: При получении значения через $input->getUrl() Joomla применяет строгую фильтрацию. Если ссылка будет сочтена невалидной (например, отсутствует протокол), метод может вернуть пустое значение. Для более мягкого получения данных используйте $input->getString() и проверяйте наличие протокола вручную.
0 items Корзина
Консультация по услуге:

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