Если мы делаем компонент, модуль или плагин на Joomla, то без получения параметров, думаю, не обойтись.
Параметры плагина
Получение параметров внутри плагина:
$param=$this->params->get('paramName','defaultValue');
получение параметров вне плагина:
$plugin=&JPluginHelper::getPlugin('exampleType','example');
$pluginParams=new JParameter($plugin->params);
$param=$pluginParams->get('paramName','defaultValue');
Параметры модуля
получение внутри модуля:
$param=$params->get('paramName','defaultValue');
получение вне модуля:
$module=&JModuleHelper::getModule('example');
$moduleParams=new JParameter($module->params);
$param=$moduleParams->get('paramName','defaultValue');
Параметры компонента
получение параметров компонента:
$compo_params = JComponentHelper::getParams('com_filecheck');
$excludeFileList = $compo_params->get('excludeFileList', '');
Сохранение изменений:
$db = JFactory::getDbo();
$compo_params = JComponentHelper::getParams('com_filecheck');
$compo_params->set(param_name,param_value);
$query = $db->getQuery(true);
$query->update($db->quoteName('#__extensions'));
$query->set($db->quoteName('params') . '= ' . $db->quote((string)$compo_params));
$query->where($db->quoteName('element') . ' = ' . $db->quote('com_filecheck'));
$query->where($db->quoteName('type') . ' = ' . $db->quote('component'));
$db->setQuery($query);
$db->execute();
Параметры шаблона
получение параметров из шаблона:
$param=$this->params->get('paramName');
получение параметров вне шаблона:
jimport('joomla.filesystem.file');
$mainframe=&JFactory::getApplication();
$params=$mainframe->getParams(JFile::read(JURI::root().'/templates/template_name/params.ini'));
$param=$params->get('paramName','defaultValue');
Параметры шаблона из файла, минуя Joomla framework:
// Get params.ini relative to the current file location (use your own relative path here)
$paramsFile=dirname(__FILE__).'/../../params.ini';
// Only continue if the file exists
if(file_exists($paramsFile)){
// Get contents from params.ini file
$iniString=file_get_contents($paramsFile);
// Escape double quotes in values and then double-quote all values (because Joomla doesn't do that for us..)
$iniQuoted=preg_replace('/=(.*)\\n/',"=\"$1\"\n",addcslashes($iniString,'"'));
// Parse the ini string to an associative array
$iniParsed= parse_ini_string($iniQuoted);
}else{
$iniParsed='';
}
// Set params to obtained values or empty array
$params=(!empty($iniParsed)) ? $iniParsed:array();
// Get param value from array
$param=$params['paramName'];