|
|
# database.xml
|
|
|
|
|
|
Mit der **database.xml** können Sie eigene Datanbank Tabellen erstellen lassen. Sie können komplett eigenständige Tabellen erstellen oder auch projektabhängige Tabellen. QUIQQER übernimmt für Sie das anlegen (bei einer Installation / Update) und löschen der Tabellen (bei einer Deinstallation).
|
|
|
Mit der **database.xml** können Sie eigene Datanbank Tabellen erstellen lassen. Sie können komplett eigenständige Tabellen erstellen oder auch projektabhängige Tabellen. QUIQQER übernimmt für Sie das Anlegen (bei einer Installation / Update) und Löschen der Tabellen (bei einer Deinstallation).
|
|
|
|
|
|
Das Anlegen geht denkbar einfach, legen Sie in root Verzeichnis Ihres Plugin / Package eine database.xml an und definieren Sie hier Ihre Tabellen. Bei einem Update oder bei der Installation wird diese database.xml automatisch von QUIQQER eingelesen.
|
|
|
Das Anlegen geht denkbar einfach, legen Sie im root Verzeichnis Ihres Plugin / Package eine database.xml an und definieren Sie hier Ihre Tabellen. Bei einem Update oder bei der Installation wird diese database.xml automatisch von QUIQQER eingelesen.
|
|
|
|
|
|
## Aufbau
|
|
|
|
... | ... | @@ -58,7 +58,7 @@ Das Anlegen geht denkbar einfach, legen Sie in root Verzeichnis Ihres Plugin / P |
|
|
|
|
|
### \<table name="NAME_DER_TABELLE"\>
|
|
|
|
|
|
Ein \<table\> Node legt die Struktur einer neuen Tabelle fest die im System erstellt werden soll. Alle \<field\> Nodes unter dem \<table\> Node legen die Struktur der Tabelle fest.
|
|
|
Ein \<table\> Node legt die Struktur einer neuen Tabelle fest, die im System erstellt werden soll. Alle \<field\> Nodes unter dem \<table\> Node legen die Struktur der Tabelle fest.
|
|
|
|
|
|
Das \<table\> Node kann nur unter \<global\> oder \<projects\> sein.
|
|
|
Mit dem name Attribute wird der Name der Tabelle festgelegt.
|
... | ... | @@ -66,12 +66,12 @@ Mit dem name Attribute wird der Name der Tabelle festgelegt. |
|
|
|
|
|
## \<global\> und \<projects\>
|
|
|
|
|
|
\<global\> und \<projects\> legen fest für welchen Bereich die Tabelle zuständig ist. Mit \<global\> wird definiert das die Tabelle wirklich nur einmal existieren darf. Diese Tabelle steht für sich und muss wirklich auch nur einmal erstellt werden. Die Beziehungen zu anderen Tabellen oder Objekten macht das Plugin / Package für sich selbst.
|
|
|
\<global\> und \<projects\> legen fest, für welchen Bereich die Tabelle zuständig ist. Mit \<global\> wird definiert, dass die Tabelle wirklich nur einmal existieren darf. Diese Tabelle steht für sich und muss wirklich auch nur einmal erstellt werden. Die Beziehungen zu anderen Tabellen oder Objekten macht das Plugin / Package für sich selbst.
|
|
|
|
|
|
\<projects\> hingegen legt fest das diese Tabellen mit einem Projekt in Beziehung stehen.
|
|
|
\<projects\> hingegen legt fest, dass diese Tabellen mit einem Projekt in Beziehung stehen.
|
|
|
Für jedes Projekt welches in QUIQQER angelegt wird oder angelegt ist, werden diese Tabellen angelegt.
|
|
|
|
|
|
Eine Tabelle welche in \<projects\> definiert ist erhält automtatisch ein id Feld für die Seiten Beziehungen.
|
|
|
Eine Tabelle welche in \<projects\> definiert ist, erhält automtatisch ein id Feld für die Seiten Beziehungen.
|
|
|
Jeder Eintrag in dieser Tabelle ist also ein Eintrag für eine einzelne Seite. Tabellen die in \<projects\> definiert sind werden auch für die jeweilige Sprache des Projektes angelegt.
|
|
|
|
|
|
**Beispiel:**
|
... | ... | @@ -96,10 +96,10 @@ projects2_en_awesome |
|
|
|
|
|
### \<field\>
|
|
|
|
|
|
Das \<field\> Node besitzt ein type Attribute, dieses Attribute setzt den Typ der Tabellenspalten. Der Typ der Tabellenspalten kann jeden Typ besitzen den es in einer Datenbank gibt, zusätzlich setzt er auch die Grösse der Spalte. Sie verwenden dieses Attribute gleich wie bei einem normalen Tabellen **CREATE**
|
|
|
Das \<field\> Node besitzt ein type Attribut, dieses Attribut setzt den Typ der Tabellenspalten. Der Typ der Tabellenspalten kann jeden Typ besitzen, den es in einer Datenbank gibt, zusätzlich setzt er auch die Größe der Spalte. Sie verwenden dieses Attribut gleich wie bei einem normalen Tabellen **CREATE**
|
|
|
|
|
|
Ein **varchar(200)** wäre also eine Tabellenspalte mit dem Typ varchar für 200 Zeichenlänge.
|
|
|
Ein **type="text"** würde somit ein Textspalte erzeugen.
|
|
|
Ein **varchar(200)** wäre also eine Tabellenspalte mit dem Typ varchar für 200 Zeichen pro Spalte.
|
|
|
Ein **type="text"** würde somit eine Textspalte erzeugen.
|
|
|
|
|
|
Der Inhalt des \<field\> Nodes gibt den Namen der Tabellenspalten an.
|
|
|
|
... | ... | @@ -129,7 +129,7 @@ Das \<primary\> Node legt ein oder mehrere Felder als Primary Keys an. |
|
|
|
|
|
### \<index\>
|
|
|
|
|
|
Das \<index\> Node bestimmt das das angegebene Feld indexiert wird.
|
|
|
Das \<index\> Node bestimmt, dass das angegebene Feld indexiert wird.
|
|
|
|
|
|
**Beispiel**
|
|
|
|
... | ... | @@ -139,7 +139,7 @@ Das \<index\> Node bestimmt das das angegebene Feld indexiert wird. |
|
|
|
|
|
### PHP Methode ausführen
|
|
|
|
|
|
Über \<global> kann ein execute attribute gesetzt werden. In diesem Attribute kann eine PHP Methode deklariert werden, welche bei dem Setup ausgeführt werden soll.
|
|
|
Über \<global> kann ein execute attribute gesetzt werden. In diesem Attribut kann eine PHP Methode deklariert werden, welche bei dem Setup ausgeführt werden soll.
|
|
|
|
|
|
**Beispiel**
|
|
|
|
... | ... | @@ -153,7 +153,7 @@ Das \<index\> Node bestimmt das das angegebene Feld indexiert wird. |
|
|
## Projekt Tabellen und Site Objekt
|
|
|
|
|
|
Wenn in einem Plugin eine Projekt Tabelle angelegt wird, sind die Daten direkt in dem Siteobjekt vorhanden.
|
|
|
Das Attribute setzt sich wie folgt zusammen: Packet.Packet.Tabelle.Attribute
|
|
|
Das Attribut setzt sich wie folgt zusammen: Packet.Packet.Tabelle.Attribute
|
|
|
|
|
|
Nehmen wir an, Sie legen eine Tabelle namens Liste im Plugin firma/plugin an.
|
|
|
|
... | ... | @@ -173,7 +173,7 @@ $Site->getAttribute( 'firma.plugin.liste.zweites_feld' ); |
|
|
|
|
|
### no-auto-update="1"
|
|
|
|
|
|
In manchen Fällen ist es nötig das Daten nicht automatisiert in das Site Objekt gespeichert werden. Wenn Sie während des Speichern (->save()) kein automatisiertes füllen der extra Projekt Tabellen möchten, setzen Sie no-auto-update auf "1"
|
|
|
In manchen Fällen ist es nötig, dass Daten nicht automatisiert in das Site Objekt gespeichert werden. Wenn Sie während des Speicherns (->save()) kein automatisiertes Füllen der extra Projekt Tabellen möchten, setzen Sie no-auto-update auf "1"
|
|
|
|
|
|
```xml
|
|
|
<table name="project_extra_table_name" no-auto-update="1">
|
... | ... | @@ -181,8 +181,8 @@ In manchen Fällen ist es nötig das Daten nicht automatisiert in das Site Objek |
|
|
|
|
|
### no-site-reference="1"
|
|
|
|
|
|
Möchten Sie eine Tabelle für jedes Projekte und jede Sprache anlegen, jedoch keine ID Beziehung haben, können Sie no-site-reference auf "1" stellen.
|
|
|
Dies veanlasst das System keine ID spalte für die Tabelle anzulegen.
|
|
|
Möchten Sie eine Tabelle für jedes Projekt und jede Sprache anlegen, jedoch keine ID Beziehung haben, können Sie no-site-reference auf "1" stellen.
|
|
|
Dies veranlasst das System keine ID Spalte für die Tabelle anzulegen.
|
|
|
|
|
|
```xml
|
|
|
<table name="project_extra_table_name" no-site-reference="1">
|
... | ... | |