Baustelle:Parameter in Komponenten

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[Bearbeiten] Joomla! standard in einer Lightbox

Joomla! bietet eine einfache Möglichkeit Parameter in Ihrer Komponente zu erstellen und zu verwalten.

Im Allgemeinen reicht dafür das Erstellen einer entsprechenden XML Parameterdatei in welcher die Parameter definiert werden, sowie ein Eintrag in der Toolbar Ihrer Komponente durch den die Komponente com_config aufgerufen wird.

Automatisch werden nun die Parameter Ihrer XML Datei in einer Lightbox mit den entsprechenden HTML Elementen als Formular dargestellt, und beim speichern in das entsprechende Feld Ihrer Komponente in der Tabelle __components eingetragen.

[Bearbeiten] Benutzerdefinierte Darstellung

Die Möglichkeit der Darstellung der Parameter ist zwar recht hübsch, jedoch wird sie ab einer gewissen Anzahl von Parametern etwas unübersichtlich.

Joomla! bietet jedoch auch hier die Möglichkeit die Ausgabe mit Hilfe einiger weniger Zeilen Code ganz an Ihre Bedürfnisse anzupassen. Wir wollen hier zeigen wie sich Parameter gruppieren lassen, was natürlich erst bei einer gewissen Anzahl an Parametern Sinn macht.

[Bearbeiten] Definition der Parameter

Beispiel der Datei File white.png config.xml einer Komponente.

<config>
    <params group="credits">
        <param name="author" type="text" size="30" label="Author" />
        <param name="author_email" type="text" size="30" label="Author e-mail" />
        <param name="author_url" type="text" size="30" label="Author URL" />
    </params>
 
    <params group="various">
        <param name="various_1" type="text" size="40" label="Custom name" default="custom option 1" />
        <param name="various_2" type="text" size="40" label="Custom name" default="custom option 2" />
    </params>
 
</config>

[Bearbeiten] Anzeigen der Parameter zum bearbeiten der Werte

Die Anzeige der Parameter geschieht innerhalb eines Formulars welches Sie noch "aussen herum" bauen müssen.

<form...
 
<?php
$table = JTable::getInstance('component');
$table->loadByOption('com_KOMPONENTENNAME');
 
$parameters = new JParameter($table->params, JPATH_COMPONENT.DS.'config.xml');
 
$groups = $parameters->getGroups();
 
foreach (array_keys($groups) as $group)
{
    echo '<p>'.$group.'</p>';
 
    echo $parameters->render('params', $group);
}//foreach
?>
 
</form>

[Bearbeiten] Ausgabe

Parameter-Gruppierung.png

[Bearbeiten] Speichern der Parameter

Der folgende Code kann z.B. in einem Controller Ihrer Komponente stehen.

$table = JTable::getInstance('component');
if( ! $table->loadByOption('com_KOMPONENTENNAME') )
{
    JError::raiseWarning(500, 'Not a valid component');
    return false;
}
 
$post = JRequest::get('post');
$table->bind($post);
 
//-- Pre-save checks
if ( ! $table->check())
{
    JError::raiseWarning(500, $table->getError());
    return false;
}
 
//-- Save the changes
if ( ! $table->store())
{
    JError::raiseWarning(500, $table->getError());
    return false;
}
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge