|
|
# settings.xml
|
|
|
|
|
|
Mit der settings.xml können Sie eigene Einstellungen für Ihr Plugin / Paket definieren. Zusätzlich ist es möglich, den Aufbau des Einstellungs Panels zu bestimmen.
|
|
|
|
|
|
Legen Sie dazu in das root Verzeichnis Ihres Plugin / Paket eine settings.xml an und definieren Sie hier Ihre Einstellungen.
|
|
|
Die Einstellungen werden automatisch vom QUIQQER System eingelesen.
|
|
|
|
|
|
## Aufbau
|
|
|
|
|
|
```xml
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<quiqqer>
|
|
|
<settings>
|
|
|
|
|
|
<config name="my_conf_name">
|
|
|
<section name="first_section">
|
|
|
<conf name="var_1">
|
|
|
<type><![CDATA[string]]></type>
|
|
|
<defaultvalue>default value</defaultvalue>
|
|
|
</conf>
|
|
|
<conf name="var_2">
|
|
|
<type><![CDATA[integer]]></type>
|
|
|
</conf>
|
|
|
<conf name="var_3">
|
|
|
<type><![CDATA[bool]]></type>
|
|
|
</conf>
|
|
|
</section>
|
|
|
|
|
|
<section name="second_section">
|
|
|
<conf name="var_1">
|
|
|
<type><![CDATA[string]]></type>
|
|
|
</conf>
|
|
|
<conf name="var_2">
|
|
|
<type><![CDATA[integer]]></type>
|
|
|
</conf>
|
|
|
<conf name="var_3">
|
|
|
<type><![CDATA[bool]]></type>
|
|
|
</conf>
|
|
|
</section>
|
|
|
</config>
|
|
|
|
|
|
<window>
|
|
|
<title>My Settings</title>
|
|
|
<params>
|
|
|
<icon>URL_BIN_DIR/16x16/settings.png</icon>
|
|
|
</params>
|
|
|
|
|
|
<categories>
|
|
|
<category name="first_settings">
|
|
|
<text>Allgemein</text>
|
|
|
<icon>URL_BIN_DIR/22x22/quiqqer.png</icon>
|
|
|
|
|
|
<settings title="first_setting_section" name="first_setting_section">
|
|
|
<title>My First Settings</title>
|
|
|
<input conf="first_section.var1" type="checkbox">
|
|
|
<text>Here is a title text</text>
|
|
|
<description>
|
|
|
Here is a description
|
|
|
</description>
|
|
|
</input>
|
|
|
</settings>
|
|
|
|
|
|
<settings title="second_setting_section" name="second_setting_section">
|
|
|
<title>My second Settings</title>
|
|
|
<input conf="first_section.var2" type="text">
|
|
|
<text>Verwendete Template Engine</text>
|
|
|
</input>
|
|
|
<input conf="first_section.var3" type="checkbox">
|
|
|
<text>Smarty Compile Prüfung</text>
|
|
|
</input>
|
|
|
</settings>
|
|
|
</category>
|
|
|
|
|
|
<category name="second_settings">
|
|
|
<text>More Settings</text>
|
|
|
<icon>URL_BIN_DIR/22x22/database.png</icon>
|
|
|
|
|
|
<settings title="database" name="database">
|
|
|
<title>Some Settings</title>
|
|
|
<input conf="second_section.var1" type="text">
|
|
|
<text>Datenbank Typ</text>
|
|
|
</input>
|
|
|
<input conf="second_section.var2" type="text">
|
|
|
<text>Host</text>
|
|
|
</input>
|
|
|
<input conf="second_section.var3" type="text">
|
|
|
<text>Datenbank Name</text>
|
|
|
</input>
|
|
|
|
|
|
<text>
|
|
|
<locale group="" var=""/>
|
|
|
</text>
|
|
|
</settings>
|
|
|
</category>
|
|
|
|
|
|
<category
|
|
|
name="third_settings"
|
|
|
require="package/QUIBASED_Package"
|
|
|
>
|
|
|
<text>Button text</text>
|
|
|
<icon>icon-button-icon</icon>
|
|
|
</category>
|
|
|
|
|
|
<category name="fourth_settings">
|
|
|
<text>Element ohne Label</text>
|
|
|
<!-- Dieses Feld besitzt kein Label (linken Bereich in der Tabelle) -->
|
|
|
<input conf="second_section.var4" type="text" label="false" />
|
|
|
</category>
|
|
|
|
|
|
<category name="fourth_settings"
|
|
|
click="functions/myFunction"
|
|
|
>
|
|
|
<text>Element ohne Label</text>
|
|
|
<!-- Dieses Feld besitzt kein Label (linken Bereich in der Tabelle) -->
|
|
|
<input conf="second_section.var4" type="text" label="false" />
|
|
|
</category>
|
|
|
</categories>
|
|
|
</window>
|
|
|
|
|
|
</settings>
|
|
|
</quiqqer>
|
|
|
```
|
|
|
### \<quiqqer\> ###
|
|
|
|
|
|
Mit \<settings\> beginnen Sie die XML Deklartionen für das QUIQQER System.
|
|
|
|
|
|
|
|
|
### \<settings\> ###
|
|
|
|
|
|
Mit \<settings\> beginnen Sie die Definition der Einstellungen. Das \<settings\> Node kann \<config\> und oder \<window\> enthalten. Diese bestimmen welche Einstellungen es gibt und wie diese im Administrationsbereich dargestellt werden.
|
|
|
|
|
|
|
|
|
#### \<config\>
|
|
|
|
|
|
In dem \<config\> Node legen Sie fest, welche Einstellungen das Plugin / Paket mitbringt.
|
|
|
Das Attribut **name=""** definiert den Namen der Konfigurationsdatei. Verwenden Sie zum Beispiel **attribute="my_plugin"**, legt QUIQQER eine Konfigurationsdatei mit dem Namen **my_plugin.ini.php** an. Hier werden die definierten Konfigurationen gespeichert und wieder ausgelesen.
|
|
|
|
|
|
Die angelegte Konfigurationen können auch direkt auf dem Filesystem editiert werden.
|
|
|
|
|
|
|
|
|
##### \<section\> und \<conf\>
|
|
|
|
|
|
Damit Sie in ini.php Dateien auch Sektionen anlegen können, geben Sie Konfigurationsparameter wie folgt an: Entweder in einer \<section\> oder den Parameter direkt über \<conf\>.
|
|
|
Das `name`-Attribut darf nur Ziffern, die Kleinbuchstaben a-z, die Großbuchstaben A-Z und Unterstriche enthalten. Somit sind bspw. Punkte (.) nicht erlaubt, sodass die Einträge übersprungen werden.
|
|
|
|
|
|
Die folgende ini Datei:
|
|
|
|
|
|
```ini
|
|
|
[section]
|
|
|
var1="text"
|
|
|
var2="text"
|
|
|
var3="text"
|
|
|
```
|
|
|
|
|
|
Wäre die folgende XML Defnition
|
|
|
|
|
|
```xml
|
|
|
<section name="section">
|
|
|
<conf name="var_1">
|
|
|
<type><![CDATA[string]]></type>
|
|
|
</conf>
|
|
|
<conf name="var_2">
|
|
|
<type><![CDATA[string]]></type>
|
|
|
</conf>
|
|
|
<conf name="var_3">
|
|
|
<type><![CDATA[string]]></type>
|
|
|
</conf>
|
|
|
</section>
|
|
|
```
|
|
|
|
|
|
##### \<conf name="conf_name"\> #####
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### \<window\> ####
|
|
|
|
|
|
|
|
|
|
|
|
## Settings per PHP auslesen
|
|
|
|
|
|
Angenommen es ist folgende `settings.xml` gegeben:
|
|
|
```xml
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<quiqqer>
|
|
|
<settings>
|
|
|
<config>
|
|
|
<section name="meineSektion">
|
|
|
<conf name="meineEinstellung">
|
|
|
<type><![CDATA[integer]]></type>
|
|
|
<defaultvalue>42</defaultvalue>
|
|
|
</conf>
|
|
|
</section>
|
|
|
</config>
|
|
|
|
|
|
. . .
|
|
|
|
|
|
</settings>
|
|
|
</quiqqer>
|
|
|
```
|
|
|
|
|
|
Dann lässt sich der Wert, der unter `meineEinstellung` in `meineSektion` gespeichert wird, wie folgt auslesen:
|
|
|
|
|
|
```php
|
|
|
$Package = QUI::getPackage('quiqqer/meinPaket');
|
|
|
$Config = $Package->getConfig();
|
|
|
$meinWert = $Config->getValue('meineSektion', 'meineEinstellung');
|
|
|
```
|
|
|
|
|
|
**Wichtig:**
|
|
|
Wird beim `<settings>`-Tag das `name=`-Attribut gesetzt, so funktioniert die obige Variante nicht mehr.
|
|
|
Dies kommt daher, dass die Einstellungen dann in einer separaten Datei gespeichert werden, welche von der obigen Funktion nicht ausgelesen wird.
|
|
|
Hier muss dann mit `QUI::getConfig('pfad/zur/config/ab/cms/dir')` gearbeitet werden.
|
|
|
Ihre Config-Datei finden Sie im `etc/`-Ordner unter dem Namen, den Sie für das `name=`-Attribut gesetzt haben.
|
|
|
|
|
|
|
|
|
## Mit PHP aus dem XML HTML machen
|
|
|
|
|
|
Damit das Rad nicht neu erfunden werden muss, existieren in PHP Interpreter Hilfstklassen.
|
|
|
`QUI\Utils\XML\Settings` stellt die Grundlage bereit, damit settings.xml interpretiert werden können.
|
|
|
|
|
|
|
|
|
### Komplettes HTML bekommen
|
|
|
|
|
|
```php
|
|
|
<?php
|
|
|
|
|
|
$result = QUI\Utils\XML\Settings::getInstance()->getCategoriesHtml($files);
|
|
|
|
|
|
```
|
|
|
|
|
|
### Komplettes HTML einer einzelnen Kategorie bekommen
|
|
|
|
|
|
```php
|
|
|
<?php
|
|
|
|
|
|
$category = 'NameOfTheCategory';
|
|
|
$result = QUI\Utils\XML\Settings::getInstance()->getCategoriesHtml($files, $category);
|
|
|
|
|
|
```
|
|
|
|
|
|
### Collection aller Kategorien in den XML Files bekommen
|
|
|
|
|
|
```php
|
|
|
<?php
|
|
|
|
|
|
$Result = QUI\Utils\XML\Settings::getInstance()->parseCategoriesToCollection($files);
|
|
|
$result = $Result->toArray();
|
|
|
|
|
|
```
|
|
|
|
|
|
### Eigenen XML Pfad für eigene Settings verwenden
|
|
|
|
|
|
```php
|
|
|
<?php
|
|
|
|
|
|
$Settings = QUI\Utils\XML\Settings::getInstance();
|
|
|
$Settings->setXMLPath('//MyAwesomePlugin/settings/window');
|
|
|
|
|
|
$Result = $Settings->parseCategoriesToCollection($files);
|
|
|
$result = $Result->toArray();
|
|
|
|
|
|
``` |