在Joomla中编辑组件配置

时间:2014-06-23 02:26:51

标签: joomla

因此,在我正在编辑的组件上,我看到一个“模板”,显示在它自己的组件页面上显示的列表。

我找到了每个模板的文件:

Component option

我复制了“默认”模板并为我自己的编辑创建了一个新名称

但我无法弄清楚它将如何添加到^列表

if($Config['config_view_template'] == 1) {

    $view->setLayout('rounded');

}elseif($Config['config_view_template'] == 2) {

    $view->setLayout('basic');

}


$Params = JComponentHelper::getParams('com_xxxxxx');

$ParamsArray = $pcParams->toArray();

foreach($ParamsArray['params'] as $name => $value){

  $Config[(string)$name] = (string)$value;

}

我的问题是,如何在Joomla组件的选择选项中添加另一个选项? (见图)

替代问题:组件如何添加选项?

我试着查看这个组件的目录,但是我什么也没找到,似乎只有那个JComponentHelper::getParams('com_xxxxxx')已经知道它被调用时设置的选项?安装后,它如何注册它的选项?

1 个答案:

答案 0 :(得分:1)

对现代Joomla版本不是100%肯定,但过去必须在Joomla 1.5(这是最常见的版本之一)中为组件添加参数,所以希望这会有所帮助。

大多数组件在components目录中都有一个主要组件,以及在administrator下的administrator/components/目录中连接到它们的管理员组件。

com_xxxxxx为例 - &假设你的文档根目录是/var/www/ - 它就在这里:

/var/www/administrator/components/com_xxxxxx/config.xml

config.xml是关键。它将包含text项目的类似项目:

<param type="text" name="something_cool" size="36" label="Cool Thing:" description="A very cool thing." />

然后,如果你想要一个选择列表:

<param name="cool_list" type="list" default="1" label="Select Cool Options" description="Here are some cool options to select.">
    <option value="0">Awesome</option>
    <option value="1">Amazing</option>
    <option value="2">Super Amazing</option>
</param>

那些config.xml与这些项目的过度结构将是这样的:

<root>
  <params>

    <param type="text" name="something_cool" size="36" label="Cool Thing:" description="A very cool thing." />

    <param name="cool_list" type="list" default="1" label="Select Cool Options" description="Here are some cool options to select.">
        <option value="0">Awesome</option>
        <option value="1">Amazing</option>
        <option value="2">Super Amazing</option>
    </param>

  </params>
</root>

然后,如果你想为其中任何一个设置默认值,你会进入manifest.xml和底部附近 - 至少当我这样做时 - 将是一个你可以设置的参数默认值列表这样:

<params>
    <param name="something_cool" default="" />
</params>

我只使用manifest.xml中的text条目的默认值,因为似乎默认情况下可以为list值设置默认值,但我会尝试。