it-swarm.com.de

Wie bekomme ich ALLE Parameter eines Objekts?

Wenn ich einen einzelnen Parameter aus einer Komponente abrufen möchte, ist der Code ziemlich einfach. Beispiel:

$app = JFactory::getApplication();

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

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

Dies funktioniert jedoch nur wenn Sie den genauen Namen des abzurufenden Parameters kennen. Gibt es eine Möglichkeit, stattdessen ALLE Parameter zu erhalten? Manchmal kennen Sie möglicherweise nicht alle Parameter einer Komponente. Wie können Sie eine Liste dieser Parameter abrufen, wenn dies der Fall ist?

Ich bin auf Joomla! 3.4

2
Gruber

Sie können einfach Folgendes verwenden:

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

var_dump($componentParams);

Dies liefert ein Objekt wie das folgende:

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....

Da es sich um ein geschütztes Objekt handelt, müssen Sie natürlich die get() -Methode von Joomla verwenden, um darauf zuzugreifen.

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

Wenn Sie die Parameter abrufen möchten, ohne deren Namen zu kennen oder ohne get() zu verwenden, können Sie eine foreach -Schleife wie folgt verwenden:

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

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

Hoffe das hilft

6
Lodder