Класс JHTML. Описание базовых методов
В этой статье я расскажу как можно использовать базовые методы класса JHTML. В Joomla есть свои методы для вывода того или иного объекта. Это совсем не значит, что их обязательно использовать. Иногда бывает полезно использовать этот функционал, для того что бы не писать лишний раз тот или иной код. Но все же злоупотреблять им не стоит. Как никак на производительность это может влиять, пусть даже и не сильно.
По этой же причине описывать все методы, думаю, не имеет смысла. Опишу только те, которые могут пригодиться в той или иной ситуации.
Вывод изображений с помощью средств Joomla
<?php echo JHTML::_('image', 'images/image2.png', 'ALT Картинки', 'heght="30" width="30"'); ?>
Результатом будет следующее:
<img width="30" heght="30" alt="alt картинки" src="/images/image2.png" />
- images/image2.png - путь к картинке относительно корня сайта. Здесь стоит отметить, что если путь не начинается с http, то он будет браться относительно корня сайта и первый слеш нужно не ставить;
- alt картинки - это соответсвенно атрибут alt;
- heght="30" width="30" - в последней переменной передаем нужные параметры (атрибуты); Существует еще дополнительный класс JHTMLImage, который расширяет стандартные возможности.
Например можно вызвать картинку из используемого шаблона, папки images
<?php echo JHTML::_('image.site', 'bg.gif', null, null, null, 'alt', 'attributs' ); ?>
Этот код выводит картинку bg.gif из папки images, используемого шаблона, с соответствующим альтом и атрибутами.
Вывод даты с помощью средств Joomla
<?php echo JHTML::_('date', $date = null, $format = '%Y-%m-%d %H:%M:%S', $offset = NULL ); ?>
- $date - сама дата. В примере я вывел текущую (null), так же для вывода текущей даты можно использовать 'now';
- $format - формат вывода даты. Joomla использует свой формат, поэтому timestamp здесь работать не будет. Все числовые данные я показал как выводить в примере. Что касается отдельно вывода название месяца и дня недели:
%a - вывод сокращенного названия дня недели;
%A - вывод полного названия дня недели;
%b - вывод сокращенного названия месяца;
%B - вывод полного названия месяца;
- $offset - переменная, которая устанавливает часовой пояс для даты. Если переменная будет NULL, то часовой пояс будет браться из общих настроек Joomla.
Вывод календаря используемого в Joomla
<?php echo JHTML::_('calendar', $value = '5', $name='test', $id='test', $format = '%Y-%m-%d', $attribs = null); ?>
При этом подключаются скрипты для календаря (calendar.js и calendar-setup.js), а так же стили (calendar-jos.css). Mootools для него не нужен.
Эта конструкция выведит текстовое поле с соответствующими атрибутами:
<input type="text" value="5" id="test" name="test">
И рядом с ним стандартный календарик, который использутся, к примеру, в админке Joomla.
Подключение файлов скриптов в Joomla
<?php JHTML::_('script', $filename = 'calendar.js', $path = 'media/system/js/', $mootools = true ); ?>
- $filename - название подключаемого скрипта (я для примера взял calendar.js);
- $path - путь к файлу скрипта (по умолчанию media/system/js/). Здесь стоит отметить, что если путь не начинается с http, то он будет браться относительно корня сайта и первый слеш нужно не ставить.
- $mootools - подключать или не подключать mootools. По умолчанию стоит в true, т.е. подключается. Так же для того что бы подключить отдельно mootools можно использовать такую конструкцию:
<?php JHTML::_('behavior.mootools'); ?>
Скрипты подключаются к документу в области, где в шаблоне стоит следующая строка:
<jdoc:include type="head" />
Так же файлы скриптов и сами скрипты можно подключать следующим образом:
$document = &JFactory::getDocument(); $document->addScript(string $url, [string $type = "text/javascript"]); $document->addScriptDeclaration(string $content, [string $type = 'text/javascript'])
Подключение файлов стилей в Joomla
<?php JHTML::_('stylesheet', $filename = 'file.css', $path = 'media/system/css/' , $attribs = array() ); ?>
Стили подключаются также как и скрипты. За исключением того, что в последнюю переменную передаются дополнительные атрибуты, если они нужны, в виде массива. Другой способ:
$document = &JFactory::getDocument(); $document->addStyleSheet (string $url, [string $type = 'text/css'], [string $media = null], [ $attribs = array()]); $document->addStyleDeclaration (string $content, [string $type = 'text/css']);
Подключение и вывод ТoolTip
ToolTip - это всплывающая подсказка, которая возникает при наведении мыши на объект. Для создания tooltip Вы можете использовать следующий код:
<?php JHTML::_('behavior.tooltip'); $tooltip = array('tip' => JText::_('VIEW_ATTRIBUTES'), 'title' => JText::_('ATTRIBUTES_LIST'), 'image' => 'edit.png', 'text' => null, 'href' => null); echo JHTML::_('tooltip', $tooltip['tip'], $tooltip['title'], $tooltip['image'], $tooltip['text'], $tooltip['href']); ?>
Если нужно вывести картинку вводим $tooltip['image'], если текст $tooltip['text']. Если нужно добавить еще и ссылку то вписываем $tooltip['href'].