При разработке расширений для CMS Joomla, таких как плагины, модули, компоненты или шаблоны, часто возникает необходимость получить параметры разрабатываемого или любого другого расширения. В этой статье вы узнаете, как это сделать в среде Joomla 2.5.

Параметры плагина

Получить параметры плагина изнутри плагина

 

$param = $this->params->get('paramName', defaultValue);

 

 

Получить параметры плагина извне плагина

use Joomla\Registry\Registry;
............
...............
$plugin = JPluginHelper::getPlugin('exampleType', 'example');
$pluginParams = new Registry();
$pluginParams->loadString($plugin->params);

$param = $pluginParams->get('paramName', 'defaultValue');

 

 

Параметры модуля

Получить параметры модуля изнутри модуля

 

$param = $params->get('paramName', 'defaultValue');

 

Получить параметры модуля извне модуля

 

use Joomla\Registry\Registry;
............
...............
$module = JModuleHelper::getModule('example');
$moduleParams = new Registry();
$moduleParams->loadString($module->params);

$param = $moduleParams->get('paramName', 'defaultValue');

 

Получить параметры категории из модуля

 

$itemparams = JHtml::_('content.prepare', $item->params, $item->getParams(), 'mod_my_module.content'); 
$itemparams = json_decode($itemparams);
echo $itemparams->image; // или любой другой параметр

 

 

Параметры компонента

Получить параметры компонента

 

$componentParams = JComponentHelper::getParams('com_example');
$param = $componentParams->get('paramName', 'defaultValue');

 

 

Параметры шаблона

Получить параметры шаблона изнутри шаблона

 

$param = $this->params->get('paramName');

 

Получить параметры шаблона извне шаблона

 Для параметров текущего шаблона на морде сайта

$app = JFactory::getApplication('site');
$template = $app->getTemplate(true);
$param = $template->params->get('paramName', defaultValue);

 

 Если этим рецептом пользоваться при операции внутри админки, то получите шаблон админки.

Чтобы получить параметры заданного шаблона надо делать запрос к БД.

примерно так:

    private function getParams($template)
    {
        $db = JFactory::getDbo();
 
        $query = $db->getQuery(true);
 
        $query->select($db->quoteName('params'))
                ->from($db->quoteName('#__template_styles'))
                ->where($db->quoteName('template').' = '. $db->quote($template));
 
        $db->setQuery($query);
 
        $result = json_decode($db->loadResult());
 
        return $result;
    }

 

 и соответственно само получение

    $params = $this->getParams('usertemplate');
 
    $field = isset($params->field_name)?$params->field_name:'';