如何获取组件参数?

Nic*_*ico 32 php joomla joomla-extensions joomla2.5

我在这里有一个问题,无法解决它: - /

我正在开发一个带后端的Joomla组件.在后端我设置了一个参数,dashboardId但我无法在视图中访问它们.我总是得到data:protected(当我转储params).好像我不允许访问该对象.

这是default.xml:

<?xml version="1.0" encoding="utf-8"?>
<metadata>
    <layout title="Dashboard">
        <message>
            <![CDATA[dashboard LAYOUT DESCRIPTION]]>
        </message>
    </layout>
    <fields name="params">
        <fieldset name="params">
            <field
                name="dashboardId" 
                type="text" 
                label="Dashboard ID"
                description="com_dashboard_desc"
                default="1"
            >   
            </field>
        </fieldset>
    </fields>
</metadata>
Run Code Online (Sandbox Code Playgroud)

现在,在view.html.php我尝试访问这样的参数:

$app = &JFactory::getApplication();
$params = JComponentHelper::getParams('com_dashboard');
$dashboardId = $params->get('dashboardId');
var_dump($dashboardId);
Run Code Online (Sandbox Code Playgroud)

当我做var_dump($dashboardId);我得到的NULL,但是当我倾倒$app,我可以看到dashboardID

每一个帮助将不胜感激!谢谢

小智 60

有一种更简单的方法.首先导入Joomla组件助手:

jimport('joomla.application.component.helper'); // not required in Joomla 3.x
Run Code Online (Sandbox Code Playgroud)

然后检索您想要的任何属性,如下所示:

$params = JComponentHelper::getParams('com_dashboard');
$dashboardID = $params->get('dashboardID');
Run Code Online (Sandbox Code Playgroud)

问候.

  • 这是在J!2.5和>(到目前为止)中执行此操作的最佳方式 (3认同)

Ber*_*Siu 12

$app = JFactory::getApplication('site');
$componentParams = $app->getParams('com_example');
$param = $componentParams->get('paramName', defaultValue);
Run Code Online (Sandbox Code Playgroud)