Класс 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.
Ответить
 
 
0 Susanne
09.07.2017 08:08
Hi fellas! Who wants to see me live? I have profile at HotBabesCams.com,
we can chat, you can watch me live for free, my nickname
is Anemonalove: https://3.bp.blogspot.com/-u5pGYuGNsSo/WVixiO8RBUI/AAAAAAAAAFA/JWa2LHHFI2AkHParQa3fwwHhVijolmq8QCLcBGAs/s1600/hottest%2Bwebcam%2Bgirl%2B-%2BAnemonalove.jpg , here is my pic:

https://3.bp.blogspot.com/-u5pGYuGNsSo/WVixiO8RBUI/AAAAAAAAAFA/JWa2LHHFI2AkHParQa3fwwHhVijolmq8QCLcBGAs/s1600/hottest%2Bwebcam%2Bgirl%2B-%2BAnemonalove.jpg
Ответить
 
 
0 Joseph
17.07.2017 13:11
Hello fellas! Who wants to meet me? I'm live at HotBabesCams.com, we can chat, you can watch me
live for free, my nickname is Anemonalove: https://3.bp.blogspot.com/-u5pGYuGNsSo/WVixiO8RBUI/AAAAAAAAAFA/JWa2LHHFI2AkHParQa3fwwHhVijolmq8QCLcBGAs/s1600/hottest%2Bwebcam%2Bgirl%2B-%2BAnemonalove.jpg ,
here is my pic:

https://3.bp.blogspot.com/-u5pGYuGNsSo/WVixiO8RBUI/AAAAAAAAAFA/JWa2LHHFI2AkHParQa3fwwHhVijolmq8QCLcBGAs/s1600/hottest%2Bwebcam%2Bgirl%2B-%2BAnemonalove.jpg
Ответить
 
 
0 Sherrill
23.07.2017 21:28
You are so awesome! I don't think I've read something like this before.
So good to discover somebody with some unique thoughts on this subject.
Seriously.. thanks for starting this up. This website is something that's needed on the
web, someone with a little originality!

My web-site: foot pain conditions - oraleegullett.hatenablog.com: http://oraleegullett.hatenablog.com/entry/Bilateral_Hallux_Valgus,
Ответить
 
 
0 Candra
25.07.2017 20:57
Hi there! I could have sworn I've been to this website before but after reading through some of
the post I realized it's new to me. Anyhow, I'm definitely delighted
I found it and I'll be bookmarking and checking back frequently!


Feel free to visit my webpage :: home remedies for face: http://www.izmirescortajansi.com/ads/advice-in-home-remedies-for-cough-an-update/
Ответить
 
 
0 Millie
12.08.2017 12:27
http://www.gsatest1254--.xyz The Bengali film industry has become there since 1890sed a
great deal therefore gets the number of film lovers.
As the latest member of Toy Story series, the movie
tells the storyplot of how Woody leads his squad to obtain totally free of day-care center to have back to Andy.
Your other legitimate source for your NY Giants tickets could be the many licensed New
York ticket brokers, who walk out of the best way
to arrange your tickets for you.

My site :: abcd1234abcdtest--.xyz: http://www.abcd1234abcdtest--.xyz
Ответить
 
 
0 Cedric
14.11.2017 03:15
Nicely put, Cheers!

my web blog; Michael: https://bucketlist.org/idea/6LiG/ideas-to-assist-properly-deal-with-nervousness/
Ответить
 
 
0 Tandy
15.11.2017 10:19
Really lots of beneficial knowledge!

Feel free to visit my homepage: Michael: https://bucketlist.org/idea/6LiG/ideas-to-assist-properly-deal-with-nervousness/
Ответить
 
 
0 Lila
17.11.2017 13:31
This is nicely put! !

Also visit my weblog ... Michael: https://bucketlist.org/idea/6LiG/ideas-to-assist-properly-deal-with-nervousness/
Ответить
 
 
0 Deon
04.12.2017 15:16
Good posts. Appreciate it!

Here is my web blog - Michael: https://bucketlist.org/idea/6LiG/ideas-to-assist-properly-deal-with-nervousness/
Ответить
 
 
0 Gregorio
08.12.2017 08:42
Cheers, Fantastic information.

Also visit my blog - John: https://bucketlist.org/idea/6LiG/ideas-to-assist-properly-deal-with-nervousness/
Ответить
 

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


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