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
- Joomla /
- Virtuemart
- 16.10.2013
- job
- 6352
На данный момент в разработке интернет-магазин Virtuemart2 с интеграцией 1С. Решил посмотреть на запросы виртмала и ужаснулся. Грандиозная утечка в БД. Как можно ради того что бы узнать Media изображение категории дополнительно обращаться к базе данных? Я в шоке. Это же все делается в том же запросе категорий. Капец, до сих пор успокоиться не могу.