joomla获取并设置组件的配置

时间:2014-02-26 17:20:00

标签: php joomla configuration joomla-extensions

有一段时间以来,我一直在尝试创建一个简单的管理表单来保存配置,以及从站点端访问这些配置而无需访问数据库的方法。我似乎无法理解这个documentation如何帮助我实现这一目标。这个link阐明了如何获得保存的配置,但我仍然坚持如何以及在何处保存配置。

我正在使用joomla 2.5

这是我正在努力开发的一个组件。在应用程序的站点端,我有一个方法来获取配置:

//We add config code.
$componentParams = &JComponentHelper::getParams('com_rocket');
$param = $componentParams->get('speed', 'null'); 

我认为这样可以正常工作但是我不知道如何在某处保存配置并且还有办法编辑它。

感谢您的努力。

2 个答案:

答案 0 :(得分:1)

要获取Joomla 2.5的组件参数,请尝试使用以下命令:

$app = JFactory::getApplication('site');
$componentParams = $app->getParams('com_rocket');
$param = $componentParams->get('speed', null);

// Display the result
echo $param;

要设置组件参数,请尝试以下操作:

$value = "some value here";
$param->set('speed', $value);

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->update($db->quoteName('#__extensions') . ' AS a')
      ->set('a.params = ' . $db->quote((string)$param))
      ->where('a.element = "com_rocket"');

$db->setQuery($query);
$db->query();

答案 1 :(得分:0)

为了完整起见。我终于设法得到了如何以更简单的方式做到这一点。 要管理组件的配置,我需要做的就是:

  1. 在管理文件夹

    中创建配置类

           

    <field
        name="speed"
        type="text"
        label="COM_ROCKET_CONFIG_FIELD_SPEED_LABEL"
        description="COM_ROCKET_CONFIG_FIELD_SPEED_DESC"
        default="200"
    /> 
    
    
        </fieldset>
    
    1. 在视图类中,我添加了以下代码

      protected function addToolBar() { JToolBarHelper::title('settings'); JToolBarHelper::preferences('com_rocket'); }
      
    2. 在显示方法中我添加了对上述工具栏方法的调用

                  // Set the toolbar
              $this->addToolBar();
      
    3. 和whallaa一切都得到了照顾。