3 новых полезных класса в Joomla 2.5

31/01/2012 Документация Joomla 2.5

В платформе Joomla 11.3 разработчики добавлил несколько полезных новых классов для разработчиков. Рассмотрю некоторый из них - JGrid (для построения HTML таблиц), JWebClient (для получения информации о клиенте, особенно полезен для мобильных устройств) и JImage (для работы с изображениями).

JGrid

Данный класс был создан для генерации HTML таблиц. Довольная полезный класс для разработчиков, раньше им приходилось придумывать свои приемы для этого. Для полной информации о классе и его методах можно посмотреть файл - libraries/joomla/html/grid.php

Пример использования данного класса для генерации простой HTML таблицы:

<?php 
jimport('joomla.html.grid');
//$options - ассоциативный массив для атрибутов тега <table>
$table = new JGrid($options = array());
//добавляем новые элементы в заголовок таблицы
//$options - ассоциативный массив для атрибутов тега <tr>
//1 - заголовок, любое другое значение - футер, если значение не установлено, то просто будут теги <tr><td>...
$table->addRow($options = array(), 1);
for ($i = 1; $i < 4; $i++) {
 $name = 'Нeader'.$i;
 //добавляем колонку с установленным именем
 $table->addColumn($name);
 //добавляем контент в колонку с указанным именем
 //$option - ассоциативный массив для атрибутов тега <td>
 $table->setRowCell($name, 'Content for ' .$name, $option = array());
}
//добавляем новые элементы в тело таблицы
$table->addRow($options = array());
for ($i = 1; $i < 4; $i++) {
 $name = 'Сontent'.$i;
 $table->addColumn($name);
 $table->setRowCell($name, 'Content for ' .$name);
} 
//добавляем новые элементы в footer таблицы
$table->addRow($options = array(), 2);
for ($i = 1; $i < 4; $i++) {
 $name = 'Footer'.$i;
 $table->addColumn($name);
 $table->setRowCell($name, 'Content for ' .$name);
} 
//вывод полученной таблицы 
echo $table->toString();
?>

JWebClient

Данный класс предназначен для определения инофрмации о клиенте (пользователе), такой как ОС, браузер, язык и другой. Здесь стоит отметить поддержку мобильных устройств iPhones, iPads, Androids и других систем. Это позволяет разработчикам на основе этих данных выполнять те или иные действия. Данный класс описан в файле - libraries/joomla/application/web/webclient.php

Пример:

<?php
 jimport('joomla.application.web.webclient'); 
 //$userAgent - опционально для разбора строки user-agent
 //$acceptEncoding - опционально для разбора строки encoding
 //$acceptLanguage - опционально для разбора строки language
 $client = new JWebClient($userAgent = null, $acceptEncoding = null, $acceptLanguage = null);
 var_dump($client);
?>

Выдаст результат:

object(JWebClient)[613]
  protected 'platform' => null
  protected 'mobile' => boolean false
  protected 'engine' => null
  protected 'browser' => null
  protected 'browserVersion' => null
  protected 'languages' => 
    array
      empty
  protected 'encodings' => 
    array
      empty
  protected 'userAgent' => string 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1' (length=74)
  protected 'acceptEncoding' => string 'gzip, deflate' (length=13)
  protected 'acceptLanguage' => string 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3' (length=35)
  protected 'detection' => 
    array
      empty

Для получения свойста класса можно использовать метод __get($name) данного класса. Например, для того что бы узнать, зашел ли пользователь с мобильного устройства можно использовать:

<?php
 jimport('joomla.application.web.webclient'); 
 $client = new JWebClient();
 $client->__get('mobile');
?>

JImage

Данный класс предназначен для работы с изображениями. С помощью данного класса можно получить информацию о изображении, а также делать различные манипуляции с ним (изменять размеры, устанавливать различные фильтры и прочее). Данный класс описан в файле - libraries/joomla/image/image.php, различные фильтры для изображение находятся в директории libraries/joomla/image/filters/

В качестве простого примера можно взять стандартный баннер "open source matters" (файл изображения - /images/banners/osmbanner1.png), уменшим его размеры в 2 раза и сохраним в ту же директорию в файл "osmbanner1_thumb.png":

<?php
 jimport('joomla.image.image')
 //создаем новый объект JImage
 $image = new JImage();
 $path = JPATH_BASE.DS.'images'.DS.'banners'.DS;
 //загружаем исходный файл
 $image->loadFile($path.'osmbanner1.png');
 //уменьшаем размеры в 2 раза
 $new_width = round($image->getWidth() / 2);
 $new_height = round($image->getHeight() / 2);
 //задаем размеры для нового изображения.
 //параметр "true" означает, что данный метод вернет новый объект JImage уже с измененным изображением 
 $newimg = $image->resize($new_width, $new_height, true);
 //сохраняем изображение в новый файл
 $newimg->toFile($path.'osmbanner1_thumb.png', IMAGETYPE_PNG);
?>

14 

Комментарии   

 
-3 alex
25.04.2012 07:37
а это можно увеличить???

object(JWebClient)[613]
protected 'platform' => null
protected 'mobile' => boolean false
protected 'engine' => null
protected 'browser' => null
protected 'browserVersion' => null
protected 'languages' =>
array
empty
protected 'encodings' =>
array
empty
protected 'userAgent' => string 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1' (length=74)
protected 'acceptEncoding' => string 'gzip, deflate' (length=13)
protected 'acceptLanguage' => string 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3' (length=35)
protected 'detection' =>
array
empty

thx
Ответить
 
 
0 Myron
22.03.2016 13:52
I was very happy to find this website. I wanted to thank you for your time for
this particularly wonderful read!! I definitely savored every part
of it and I have you book-marked to check out new
information in your site.

My blog post :: the: http://www.youube.com
Ответить
 
 
0 Alycia
08.01.2017 16:33
Woah! I'm really digging the template/theme of this blog.
It's simple, yet effective. A lot of times it's very hard to get that "perfect balance" between user friendliness and appearance.

I must say you have done a awesome job with this. In addition, the blog loads extremely quick for me on Safari.
Superb Blog!

My blog :: online games arcade: http://sano.xsrv.jp/userinfo.php?uid=278492
Ответить
 
 
0 Inez
15.04.2017 09:33
Cesarine semblait gouverner ses emotions avec un calme
olympien; mais, quand il fallut prononcer le oui fatal, elle se troubla,
et fut prise de cette sorte institut de massage lyon: http://www.sophiechassat.com begaiement auquel, dans l'emotion, elle etait sujette.
Ответить
 
 
0 Aubrey
17.04.2017 17:07
Wohh exactly what I was looking for, appreciate it for posting.



Also visit my page: Адрес сайта (geschenkefuermaenner.info: http://geschenkefuermaenner.info/)
Ответить
 
 
0 Flynn
18.04.2017 10:37
That is a very good tip particularly to those fresh to the blogosphere.
Simple but very accurate info? Thanks for sharing this one.

A must read post!

Here is my web-site Секс с девушками в чулочках: http://geschenkefuermaenner.info/
Ответить
 
 
0 Louis
30.04.2017 14:59
I and also my pals were going through the nice procedures on the website then immediately I had a terrible feeling I had
not expressed respect to the blog owner for
them. These guys are already warmed to read through all of them and
now have unquestionably been tapping into these things.
Appreciate your turning out to be simply
helpful and also for selecting varieties of marvelous themes millions of individuals are really desirous to be informed on. My honest regret for not expressing gratitude
to you earlier.

Check out my page - линк: http://geschenkefuermaenner.info
Ответить
 
 
0 Thad
18.05.2017 06:52
Hi there very cool web site!! Guy .. Excellent ..
Superb .. I'll bookmark your website and take the feeds additionally?

I am happy to search out numerous helpful info right here within the publish,
we'd like work out more techniques on this regard, thanks for
sharing. . . . . .

Stop by my web page; wearing cleats (ameblo.jp: http://ameblo.jp/stephaniekolar/entry-12048431871.html)
Ответить
 
 
0 Siobhan
27.05.2017 08:45
Plus que tous tu as besoin d'instruction, lui criait la tyrannie,
puisque tu es plus pauvre que tous; tu demandes l'education pour devenir honnete homme et citoyen utile; ramasse un couteau et
fais-toi bandit!

my website ... massage lyon: http://www.elisacavanna.club
Ответить
 
 
0 Jeanna
27.05.2017 21:33
Hi there i am kavin, its my first occasion to commenting anywhere, when i read this paragraph i thought i could also make comment due to this good piece of writing.


My homepage; massage lyon france: https://goo.gl/maps/RLPFGxUQTms
Ответить
 
 
0 Georgiana
07.06.2017 11:01
Yоu ouǥht to taкe pаrt in a contest fоr one of thе
most useful sites on the net. I wіll highly recommend tɦis blog!


Check out mү webpage; thong ke dac biet mien bac: http://soicaupro.com/thong-ke-bac-nho.html
Ответить
 
 
0 Octavio
16.06.2017 11:56
You've gotten great knowlwdge in this article.

see
it here: http://uni-potsdam.de/lff/index.php/Benutzer:AnnabelleRoby - [url=http://dbangel.db24h.com/forum/home.php?mod=space hypnose pour maigrir lyon: http://pecertificationbody.com/?option=com_k2&view=itemlist&task=user&id=21102
Ответить
 
 
0 Andra
17.06.2017 19:52
Great looking internet site. Presume you did a bunch of your
very own coding.

[url=http://www.lobot-robot.com/bbs/home.php?mod=space hypnose ericksonienne
lyon: http://www.ferrocables.com/?option=com_k2&view=itemlist&task=user&id=5111
Ответить
 
 
0 Henry
18.06.2017 05:48
I like this site - its so usefull and helpfull.

[url=http://s-composition.eu/?option=com_k2virboard=;title=PostReply - http://jaydees.co.za/?option=com_k2 http://www.essentielbio.us: http://www.j2mih.com/mboard/msg/62576.html
Ответить
 

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


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