Joomla - преобразование строки params в массив $params

Бывают ситуации когда надо вытащить параметры какого нибудь модуля для использования его настроек на собственные нужды. Один из таких примеров интеграция плагина с модулем для корректной работы в компоненте. В общем с чем я сталкиваюсь в проектировании сложных систем на Joomla

И так. Как вытащить параметр модуля думаю не стоит описывать. Тупо подключаемся к БД, делаем запрос на нужный модуль и получаем строку с параметрами. К примеру в таком виде

{"layout":"default","method":"get","limit":"10","Parent_Category_id":["4","6"]}

Для преобразования строки в массив воспользуемся функцией JParameter

jimport('joomla.html.parameter'); // импорт библиотеки

$str = '{"layout":"default","method":"get","limit":"10","Parent_Category_id":["4","6"]}';

$params = new JParameter( $str ); // Создание объектного массива

echo $params->get('layout'); // Результат - default
echo $params->get('method'); // Результат - get
echo $params->get('limit'); // Результат - 10
echo $params->get('Parent_Category_id'); // Результат - array(2)

Еще один способ преобразовать JSON в объектный массив средствами php

$str = '{"layout":"default","method":"get","limit":"10","Parent_Category_id":["4","6"]}';

$params = json_decode($str);

echo $params->layout; // Результат - default
echo $params->method; // Результат - get
echo $params->limit; // Результат - 10
echo $params->Parent_Category_id; // Результат - array(2)

Вот и вся соль. Ничего сложного, просто заметка на память.

Joomla 2.5 реализация SEF / ЧПУ

Для тех кто впервые создает или подходит к грамотному созданию компонент, модуль, плагин для Joomla данный мини мануал будет полезен. Речь пойдет о SEF URL (search engines friendly url) ну или для русскоязычного юзера ЧПУ (человекопонятные УРЛ), кому как одобней. Как же заставить средствами движка (в нашем случае Joomla 2.5) конвертировать кириллический url в транскрипцию латиницы?

Делается все средствами фреймворка, для создания alias (алиаса) используем class JApplication

$title = "Создаем ЧПУ / SEF заголовок";
$alias = JApplication::stringURLSafe($title);
// В результате $alias присвоит
// sozdaem-chpu-sef-zagolovok

Так же можно воспользоваться обычной транскрипцией без удаления (преобразования) спец символов следующей функцией

$lang = JFactory::getLanguage();
$text = "Создаем ЧПУ / SEF заголовок";
$text_conv = $lang->transliterate($text);
// В результате $text_conv присвоит
// sozdaem chpu / sef zagolovok

По мере надобности дополню описание...

Virtuemart 2: Оптимизация Category

На данный момент в разработке интернет-магазин Virtuemart2 с интеграцией . Решил посмотреть на запросы виртмала и ужаснулся. Грандиозная утечка в БД. Как можно ради того что бы узнать Media изображение категории дополнительно обращаться к базе данных? Я в шоке. Это же все делается в том же запросе категорий. Капец, до сих пор успокоиться не могу.