【问题标题】:Get component parameters return empty value on joomla 3.4.1获取组件参数在 joomla 3.4.1 上返回空值
【发布时间】:2015-06-28 20:04:05
【问题描述】:

我在管理部分的组件中有我的“config.xml”,配置输入在 Joomla 的管理上是可以的。

例如,我有一个带有“my_custom_test”的字段,我设置了一个值,例如“test”。我点击“保存”按钮。

如果我在一个视图中并且我想获得我的价值,我正在写那个

$compo_params = JComponentHelper::getParams('com_xxxxx');
var_dump($compo_params).'<br />';
echo $compo_params->get('my_custom_test', 'EMPTY');

结果是这样的

object(Joomla\Registry\Registry)#19 (2) { ["data":protected]=> object(stdClass)#20 (1) { ["params"]=> object(stdClass)#57 (1) { ["my_custom_test"]=> string(4) "test" } } ["separator"]=> string(1) "." }
EMPTY

结果是“EMPTY”而不是“test”。

你有什么想法吗?

【问题讨论】:

    标签: joomla components params


    【解决方案1】:

    其实我已经找到问题的根源了,是在组件config.xml文件中。如果您将参数包含在标签中(这是过去 Joomla 的标准做法),则参数存储在名为“params”的对象中,例如

    <?xml version="1.0" encoding="utf-8"?>
    <config>
    <fields name="params" label="Some label">
    <fieldset name="basic" label="Basic Options" description="">
         <field name="some_option" label="label" type="text" description="" />
    </fieldset>
    </fields>
    </config>
    

    要纠正问题,只需省略标记:-

    <?xml version="1.0" encoding="utf-8"?>
    <config>
    <fieldset name="basic" label="Basic Options" description="">
         <field name="some_option" label="label" type="text" description="" />
    </fieldset>
    </config>
    

    如果您查看任何核心 Joomla 组件 config.xml 文件,它们现在就是这样做的。

    那么获取组件参数的标准方法就起作用了:-

    $compo_params = JComponentHelper::getParams('com_xxxxx');
    $my_custom_test = $compo_params->get('my_custom_test', '');
    

    【讨论】:

    • 谢谢,您的解决方案更好。
    • 但实际上,如果没有您的原始帖子,我不会意识到解决方案是什么,所以也感谢您。
    【解决方案2】:

    解决办法是

    echo $compo_params->get('params')->my_custom_test;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-18
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      • 2014-08-19
      • 1970-01-01
      • 2014-06-09
      相关资源
      最近更新 更多