web-dev-qa-db-fra.com

Comment obtenir TOUS les paramètres d'objet?

Si je veux récupérer un seul paramètre d'un composant, le code est assez simple, exemple:

$app = JFactory::getApplication();

$params = $app->getParams('com_content');

echo $params->get('num_leading_articles');

Cela fonctionne si seulement si vous connaissez le nom exact du paramètre que vous voulez récupérer. Y a-t-il un moyen d'obtenir TOUS les params à la place? Parfois, vous ne connaissez peut-être pas tous les paramètres d'un composant. Comment pouvez-vous obtenir une liste de ces paramètres si c'est le cas?

Je suis sur Joomla! 3.4

2
Gruber

Vous pouvez simplement utiliser les éléments suivants:

$componentParams= JComponentHelper::getParams('com_content');

var_dump($componentParams);

Cela fournira un objet comme ceci:

object(Joomla\Registry\Registry)[175]
  protected 'data' => 
    object(stdClass)[503]
      public 'article_layout' => string '_:default' (length=9)
      public 'show_title' => string '1' (length=1)
      public 'link_titles' => string '1' (length=1)
      etc....

Puisqu'il s'agit d'un objet protégé, vous devrez bien sûr utiliser la méthode get() de Joomla pour y accéder, comme suit:

$foo = $componentParams->get('show_title');

Si vous souhaitez obtenir les paramètres sans connaître leur nom ou sans utiliser get(), vous pouvez utiliser une boucle foreach comme suit:

$componentParams = JComponentHelper::getParams('com_content');

foreach ($componentParams as $key => $val)
{
    echo $key . ' - ' . $val;
}

J'espère que cela t'aides

6
Lodder