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

Стандартный тип поля Joomla XML - URL отображает обычное текстовое поле, в котором заполняется прямая ссылка (URL). Тип поля Joomla XML - URL работает в версиях Joomla 2.5 и выше. Поле работает с сохранение любого типа URL адреса, в том числе с idn - это гарантирует сохранение любого введенного электронного адреса не зависимо от типа и среды.

Поле поддерживает атрибуты:

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

Ниже представлены скриншоты отображения поля в разных версиях 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() и проверяйте наличие протокола вручную.
Войти

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

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

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