Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get component parameters?

I have a problem here and just cant solve it :-/

I am developing an Joomla component with backend. In the backend I set a parameter, the dashboardId, but I can't access them in the view. I always get data:protected (when I dump params). It seems like I'm not allowed to access the object.

Here is the 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>

Now, in the view.html.php I try to access the parameter like this:

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

When I do var_dump($dashboardId); I get NULL but when I dump $app, I can see the dashboardID

every help would be appreciated! Thanks

like image 560
Nico Avatar asked May 03 '12 13:05

Nico


3 Answers

There's a more simple way. First import Joomla Component Helper:

jimport('joomla.application.component.helper'); // not required in Joomla 3.x

And then retrieve any attribute you want like this:

$params = JComponentHelper::getParams('com_dashboard');
$dashboardID = $params->get('dashboardID');

Greetings.

like image 200
Lobo-X Avatar answered Nov 19 '22 18:11

Lobo-X


$app = JFactory::getApplication('site');
$componentParams = $app->getParams('com_example');
$param = $componentParams->get('paramName', defaultValue);
like image 38
Bernardo Siu Avatar answered Nov 19 '22 16:11

Bernardo Siu


Similar to the answer provided by LoboX, I'd recommend using the component helper to get component parameters:

jimport('joomla.application.component.helper'); // Import component helper library
$params = JComponentHelper::getParams(JRequest::getVar('option')); // Get parameter helper (corrected 'JRquest' spelling)
$params->get('parameter_name'); // Get an individual parameter

The JRequest::getVar('option') returns your component's name with the com_ prefix. Aside from that, it looks like you're trying to mix a little bit of 1.5/1.6 syntax into your configuration file. If you haven't seen it yet, try reading through the 2.5 version of the documentation. I hope that helps!

like image 3
J.T. Blum Avatar answered Nov 19 '22 16:11

J.T. Blum