<префикс>.<имя файла>.<имя метода> и будет вызван метод <префикс>.<Имя файла>.<имя метода>().
Методы класса JHTML
Класс JHTML содержит восемь методов для вывода элементов XHTML.
Поле для ввода даты и пиктограмма, по щелчку на которой появляется календарь
string calendar(string $value, string $name, string $id, string $format = '%Y-%m-%d', array $attribs = null)
где:
$value - значение даты; $name - имя текстового поля; $id - id текстового поля; $format - формат даты; $attribs - дополнительные атрибуты, которые должны быть выведены в теге <input>.
Для примера выведем текущую дату (рис. 3.1):
echo JHTML::_('calendar', date('Y-m-d',time()), 'created', 'created', '%Y-%m-%d', array('size'=>10,'style'=>"class='inputbox'"));
Рис. 3.1. Поле для ввода даты и пиктограмма для вывода календаря
Строка, содержащая дату в заданном формате и часовом поясе
string date(string $input = 'now', string $format = null, mixed $tz = true, bool $gregorian=false)
где:
$input - строка в формате, подходящем для функции date(); $format - формат, к которому необходимо привести дату; $tz - одна из временных зон, поддерживаемых PHP (их список можно найти на странице ссылка: http://www.php.net/manual/ru/timezones.php). Кроме того, $tz может иметь логическое значение: при $tz=true временная зона берется из настроек пользователя, при $tz=false - из настроек сервера; $gregorian - при false для форматирования даты будет использоваться локальный календарь.
Для примера выведем текущую дату:
echo JHTML::_('date',date('Y-m-d',time()), 'Y-m-d h:m', 'Europe/Moscow', false);
Элемент <iframe></iframe>
string iframe(string $url, string $name, array $attribs = null, string $noFrames = '')
где
$url - относительный URL, будущее значение атрибута src; $name - название будущего элемента <iframe>; $attribs - ассоциативный массив атрибутов будущего тега <iframe>; $noFrames - содержимое будущего тега: текст, который будет показан, если браузер не поддерживает тег <iframe>.
Пример:
echo JHTML::_('iframe','index.php', 'myelement', array('width'=>500,'height'=>300), 'Ваш браузер не поддерживает плавающие фреймы');
Элемент <img></img>
string image(string $file, string $alt, mixed $attribs = null, bool $relative = false, bool $path_only = false)
где
$file - абсолютный или относительный URL изображения; $alt - альтернативный текст; $attribs - ассоциативный массив атрибутов будущего тега (может быть задан сразу в виде строки, например: "width="100%" height="100%""); $relative - перебирать ли варианты пути к файлу; $path_only - возвращать ли только путь к изображению или тег <img> со всеми атрибутами.
Для методов image(), script() и stylesheet() будет выполнена следующая процедура поиска файла. Если $file начинается с "http", то метод просто вернет $file. В противном случае он производит поиск файла, перебирая возможные варианты его названия в зависимости от браузера пользователя. Например, для значения "/pics/pic.png" и браузера Mozilla 5.0 будут перебираться варианты "/pics/pic.png", "/pics/pic_mozilla.png", "/pics/pic_mozilla_5.png", "/pics/pic_mozilla_5_0.png". При $relative=true перебираются также различные варианты пути к файлу в папке текущего шаблона и папке /media. В противном случае метод будет искать файл JPATH_ROOT/<имя файла>для каждого варианта названия файла.
Например, следующий код
echo JHTML::_('image','req.png','Восклицательный знак', array('width'=>25,'height'=>25), true, false);
выведет
<img src="/joomla/templates/beez_20/images/req.png" alt="Восклицательный знак" width="25" height="25"/>
Если последним параметром указать true, то эта же строка выведет на экран
/joomla/templates/beez_20/images/req.png
Обратите внимание, что этот путь мы не задавали, его обнаружил метод image().
Элемент <a></a>
string link(string $url, string $text, array $attribs = null)
где:
$text - текст ссылки; $attribs - ассоциативный массив атрибутов будущего тега.
Пример:
echo JHTML::_('link','index.php','На главную страницу', array('title'=>'На главную','id'=>'linktomainpage'));
Элемент <script></script>
mixed script(string $file, bool $framework = false, bool $relative = false, bool $path_only = false, bool $detect_browser = true)
где
$file - путь к файлу; $framework - загружать ли фреймворк Javascript; $path_only - возвращать путь к файлу или добавить все найденные файлы к текущему документу; $detect_browser - определять ли браузер пользователя для включения файлов Javascript для этого браузера.
При $path_only=false метод не возвращает никакого значения.
Пример:
echo JHTML::_('script', 'media/system/js/calendar.js', false, false, true, false);
Элемент <link rel="stylesheet" style="text/css"/>
mixed stylesheet(string $file, array $attribs = array(), bool $relative = false, bool $path_only = false, bool $detect_browser = true)
Все параметры аналогичны рассмотренным выше.
Пример:
echo JHTML::_('stylesheet', 'media/system/css/system.css', array("title"=>"Название стиля","media"=>"screen, print"), false, true, false);
Всплывающая подсказка
string tooltip(string $tooltip, mixed $title = '', string $image = 'tooltip.png', string $text = '', string $href = '', string $alt = 'Tooltip', string $class = 'hasTip')
где
$tooltip - текст подсказки; $title - название подсказки или ассоциативный массив с ключами title, image, text, href, alt и соответствующими значениями; $image - изображение, для которого будет выводиться подсказка (если не задано значение $text); $text - текст, для которого будет выводиться подсказка (если не задано значение $image); $href - URL, на который будет произведен переход по щелчку на изображение или текст; $alt - значение атрибута alt тега <img>; $class - название класса элемента <span>, в который будет заключен тег <img>.
Изображение с подсказкой:
echo JHTML::tooltip('Текст подсказки', 'Заголовок подсказки', 'tooltip.png', '', 'http://www.mysite.ru');
Текст с подсказкой:
echo JHTML::tooltip('Текст подсказки', 'Заголовок подсказки', '', 'Наведите на этот текст курсор мыши, чтобы увидеть подсказку');
Поддерживающие классы
Рассмотрим некоторые методы поддерживающих классов. Полный список этих методов можно найти в документации, однако на текущий момент она не достаточно полная и содержит ошибки, поэтому для детальной справки по какому-либо методу вы можете обратиться напрямую к исходным кодам в папке /libraries/joomla/html/html.
JHTMLBehavior
Методы этого класса загружают код Javascript в заголовок документа. Методы JHTMLBehavior позволяют вывести календарь, дерево элементов, файловый загрузчик и некоторые другие элементы управления. Рассмотрим один из методов, позволяющий вывести всплывающее модальное окно без перезагрузки страницы: