В платформе 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
Для получения свойста класса можно использовать метод __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 уже с измененным изображением
3 новых полезных класса в Joomla 2.5 - Генератор расширений Joomla и многое другое на нашем сайте посвященном работе расширений, компонентов, модулей, плагинов для линейки Joomla.
Отправляйте ссылку на страницу своим друзьям и в социальные сети воспользовавшись графическими иконками выше.
Небольшой пример из повседневной практики. Организация меняет реквизиты, и они вступят в силу через пару недель. На сайте идет приём объявлений и объявления принимаются на несколько месяцев в...
Сегодня у товарища, сайт которого находится на старой Joomla 1.0.3, была сильная нагрузка на сервере, просматривая логи обнаружил не вежливый запрос такого порядка:
http://сайт/index2...
Первоначальный осмотр сайта обнаружил, что у клиента закрыт доступ по фтп, что сузило круг подозреваемых уязвимостей, стало быть отверстие в какомто скрипте движка joomla. Касперский яро...
Снова грянул гром зарежения сайтов новым вирусом Troj/JSRedir-MH.
И так в коротко по вирусу Troj/JSRedir-MH. Вирус или троян куда интереснее чем свои предшествиники, тепер...
Сегодня поделюсь немного интересной информацией для владельцев сайтов собранных ан joomla. Рано и поздно возникает задача подписки и рассылки информации с сайта, это может быть разная постановка зада...
И вот и мне пришлось столкнулся с проблемами перехода на win 8 в придачу с ie 10, некоторых постоянных пользователей моих сайтов. На многих сайтах имеющих раздел по приёму объявлений, использ...
Всем привет, снова снова кунена, получил задание на допиливание популярного форума Kunena, сегодня потребовалось поменять ссылку на профиль пользователя. Это связано с тем, что на сайте стоит социа...
Все у кого стоит форум kunena мешает надпись с двумя ссылкам внизу форума "Работает на Kunena". Сея надпись висит на каждой странице форма, а также страница разработчиков содержит множество вн...
Для тех кто действительно делает сайт для людей, моя следующая заметка. Расскажу вам, как избавиться от лишних quote в постах на форуме kunena. У меня несколько тематических сайтов с нормальной посеща...
Так и вот мы обновись до последней версии кунены, сразу видно компонент внутри сильно изменился, и вот незадача у некоторых пользователей пропали аватары, физически они есть но неотображаются.
...
При разработке расширений для CMS Joomla, таких как плагины, модули, компоненты или шаблоны, часто возникает необходимость получить параметры разрабатываемого или любого другого расширения. В этой ...
1. В папке \components\com_kunena\template\ваш_шаблон\ находим файл template.xml и вставляем в него такой кусок (чтобы была возможность выбора показывать это поле или нет):
<param name="l...
Иногда случается, что набор собственных функций или библиотек нужно подключить в Joomla. Но иногда подключить их нужно так, чтобы они присутсвовали во всей системе, вне зависимо...
В платформе Joomla 11.3 разработчики добавлил несколько полезных новых классов для разработчиков. Рассмотрю некоторый из них - JGrid (для построения HTML таблиц), JWebClient (для получения информац...
Создадим две вложенные директории /files/files в корне сайта. Если вы пожелаете использовать другие имена директорий, то вам необходимо будет внести соответствующие правки в дальнейшем.
...