Класс JHTML в Joomla. Описание базовых методов

31/03/2010 Документация Joomla 1.5

В этой части я постараюсь немного рассказать как использовать базовые методы класса JHTML. В Joomla есть свои методы для вывода того или иного кода. Но это не значит, что все и всегда так нужно делать, и это не лекарство от всех болезней. Иногда бывает полезно использовать этот функционал, для того что бы не писать лишний раз тот или иной код. Но повторюсь, злоупотреблять им все же думаю не стоит, т.к. лучше все таки вписать пару строчек ручками, чем вызывать тот или иной метод. Как никак на производительность это может влиять, пусть даже и не сильно.

По этой же причине описывать все методы, думаю, не имеет смысла. Опишу только те, которые могут пригодиться в той или иной ситуации.

Вывод изображений с помощью средст Joomla

<?php echo JHTML::_('image', 'images/apply_f2.png', 'ALT Картинки', 'heght="30" width="30"'); ?>

Результатом будет следуещие

<img width="30" heght="10" alt="ALT Картинки" src="/template/images/apply_f2.png">
  • images/apply_f2.png - путь к картинке относительно корня сайта. Здесь стоит отметить, что если путь не начинается с http, то он будет браться относительно корня сайта и первый слеш нужно не ставить;
  • ALT Картинки - это соответсвенно атрибут alt;
  • heght="30" width="30" - в последней переменной соответсвенно передаем нужные параметры (атрибуты);

Существует еще дополнительный класс JHTMLImage, который расширяет стандартные возможности.
Например можно вызвать картинку из используемого шаблона, папки images

<?php echo JHTML::_('image.site', 'login-bg.gif', null, null, null, 'ALT', 'attributs' ); ?>

Выведит картинку login-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.

Еще один способ подключения этого же календаря

1. Подключаем скрипты

<?php JHTML::_('behavior.calendar'); ?>

2. В документе пишем

<input value="5" type="text" name="created" id="fromdate" />
<input type="reset" value="..." onclick="return showCalendar('fromdate','%Y-%m-%d');" />

При этом нужно учитывать формат выводимой даты в value и формат который мы задаем в скрипт.
Так же нужно следить что бы id инпутбокса (fromdate) соответствовало первой переменной, передаваемой в скрипт.

Подключение файлов скриптов в 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

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']


42 

Комментарии   

 
+3 guffer
02.04.2010 11:18
Очень полезная инфа. а где можно почитать про остальные методы и классы?
Ответить
 
 
+1 ecolora
24.06.2010 10:04
Полагаю, было бы неплохо Вам организовать на сайте функционал оповещения об орфографических ошибках. К примеру у Вас в этой строке "Эта конструкция выведит инпут бокс с оответствующими атрибутами:" слово "выведет" написано неправильно.
Я использую, к примеру, com_proofreader

Я не пытаюсь придираться. Наоборот - читаю вдумчиво Ваш текст. Поэтому заметил. А за ликбез спасибо!
Ответить
 
 
+1 csoldier
16.03.2011 21:02
спасибо за статью
Ответить
 
 
+1 Андрей
03.06.2011 04:27
Можно узнать возможность организации вывода статей по нынешней дате!?
Ответить
 
 
+1 Владимир
28.08.2011 13:44
Очень полезная статья. Почти то что мне нужно, но ... сразу в процессе создания сайта я пытаюсь его оптимизировать в меру сил. Одно из правил, добавление внешних Javascript файлов после добавления файлов CSS стилей. При этом желательно вообще все JS размещать в конце страницы. Вопрос как раз в том, как "сказать" Joomle, чтобы вывод JS был в самом конце секции Body.
Ответить
 
 
+2 SmokerMan
20.09.2011 00:44
Цитирую Владимир:
Очень полезная Вопрос как раз в том, как "сказать" Joomle, чтобы вывод JS был в самом конце секции Body.

Никак, для этого нужно переделывать ядро. Даже плагинами такое, думаю, проблематично будет реализовать.
Да и в общем, то что скрипты должны прописываться в конце страницы - это глубокое заблуждение. Почитайте документацию htmlbook.ru/html/script
Единственное когда это может быть полезно, так это для загрузки внешних JS (c других сайтов). Но их можно прописать в шаблоне самому где угодно.
Ответить
 
 
+1 Павел
24.08.2013 17:07
А что значит behavior?
Ответить
 
 
0 Василий
04.01.2015 15:24
хороший сайт, спасибо за статью.
но в голосовалке стукнул на 1чку, начал читать и с первых строй вопрос что читаю, о чём как рекоммендовано использовать этот класс авторами ..
а как общий расширитель сознания таблетка хорошая
Ответить
 
 
0 Alicia
17.05.2016 10:56
Это действительно здорово, что я был найти все это время. совершенно удивительно, и я до сих пор удивляюсь, как я могу посетить этот сайт reflective vest
Ответить
 
 
0 Vickey
28.03.2017 21:42
Stunning story there. What happened after? Good luck!

Also visit my web blog: manicure: http://toolbarqueries.google.com/url?sa=t&rct=j&q=data+destruction+%22powered+by+smf%22+inurl%3a%22register.php%22&source=web&cd=1&cad=rja&ved=0cdyqfjaa&url=http%3a%2f%2fsweetasmoiok.com&ei=umr2uvztditarae9zog4dw&usg=afqjcnh8-aphzxrbmmugd4o6jdnh6bu8ma
Ответить
 
 
0 Ofelia
02.04.2017 23:29
Thank you for sharing your thoughts. I really appreciate your efforts and
I am waiting for your further post thank you once again.

Here is my blog - BHW: http://forum88.website/member.php?action=profile&uid=6343
Ответить
 
 
0 Patrick
06.04.2017 16:46
Voulez-vous bien me permettre de vous demander, dit-il en se tournant du cote ou Barnabe se tenait, les
yeux fixes sur lui, a vous qui n'etes pas prive du don precieux de
la vue, si vous ne voudriez pas aller m'acheter avec
cela un peu de pain pour me soutenir en route.



my webpage institut massage lyon: http://www.sophiechassat.com
Ответить
 
 
0 Rachelle
09.04.2017 19:57
It's not my first time to visit this web site, i
am visiting this web site dailly and get good information from here every day.


Review my website :: BHW: http://tingsenhakeabcong.mihanblog.com/post/94
Ответить
 
 
0 Leland
13.04.2017 14:48
massage lyon croix rousse: http://www.sophiechassat.com
Ответить
 
 
0 Carmon
15.04.2017 21:10
I loved as much as you will receive carried out right here.
The sketch is attractive, your authored material stylish.
nonetheless, you command get bought an impatience over that you
wish be delivering the following. unwell unquestionably come further formerly again as exactly the same nearly a lot often inside case you
shield this hike.

Also visit my web page ... BHW: http://meshkat114.mihanblog.com/post/86
Ответить
 
 
0 Kevin
03.05.2017 16:40
It's hard to find experienced people for this subject, but you sound like you
know what you're talking about! Thanks

Stop by my web blog Адрес страницы (http://free-gambling.info: http://free-gambling.info)
Ответить
 
 
0 Roscoe
04.05.2017 15:07
The numerous numbers of free lesbian porn websites: http://cxpco-a.ru/user/KatieMusquito0/ stars who apply to join our agency go through a rigorous choice course of to
establish that only probably the most certified get by means of.
Ответить
 
 
0 Carmela
08.05.2017 02:54
I simply could not depart your website before suggesting that
I extremely loved the usual information a person provide
to your guests? Is going to be back frequently in order to investigate cross-check new posts

My web site; manicure: http://abcsport.ru/go.php?url=http://www.sweetasmoiok.com
Ответить
 
 
0 Warren
16.05.2017 01:49
Precisely what I was searching for, regards for posting.


Take a look at my web site fast weight (overratedtechni13.snack.ws: http://overratedtechni13.snack.ws/factors-that-cause-functional-leg-length-discrepancy.html)
Ответить
 
 
0 Nelson
20.05.2017 16:59
Hi there, You've done a great job. I will definitely digg it and personally
suggest to my friends. I am confident they'll be benefited
from this web site.

My web site long term weight; bettyekeaveney.jimdo.com: http://bettyekeaveney.jimdo.com/2015/06/28/rectifying-hammer-toes-in-children,
Ответить
 
 
0 Chet
22.05.2017 22:57
Je debutai par l'invocation de Faust a la Nature,
ne cherchant ni a traduire, ni meme a imiter le chef-d'oeuvre, mais
a m'en inspirer seulement et a en extraire la substance musicale qui y est contenue.


massage lyon: http://www.elisacavanna.club
Ответить
 
 
0 Boyd
24.05.2017 22:20
I am truly pleased to glance at this website posts which contains lots
of valuable information, thanks for providing these kinds
of data.

My webpage - شركة تنظيف بينبع: http://www.shamselkhaleeg.com/%D8%AE%D9%80%D9%80%D9%80%D9%80%D9%80%D9%80%D8%AF%D9%85%D9%80%D9%80%D9%80%D8%A7%D8%AA-%D8%A8%D9%80%D9%80%D9%85%D9%80%D9%80%D8%AF%D9%86-%D8%A7%D8%AE%D9%80%D9%80%D9%80%D9%80%D9%80%D8%B1%D9%89/%D8%B4%D8%B1%D9%83%D9%87-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%81%D9%84%D9%84-%D8%A8%D9%8A%D9%86%D8%A8%D8%B9/
Ответить
 
 
0 Danilo
20.06.2017 14:39
I enjoy this site - its so usefull and helpfull.

[url=http://forum.vnrgroups.com/viewtopic.php?f=22 massage lyon 4: http://penigwiki.org/index.php?title=Benutzer:JosetteBaecker3
Ответить
 
 
0 Damon
26.06.2017 07:19
Piece of writing writing is also a fun, if you know then you can write
or else fuck it (http://mirnanunemaker.hatenablog.com: http://mirnanunemaker.hatenablog.com) is difficult to
write.
Ответить
 

Добавить комментарий


Защитный код
Обновить