... | ... | @@ -73,9 +73,9 @@ Diese werden bei einem Quiqqer setup automatisch durchgeführt. |
|
|
</database>
|
|
|
```
|
|
|
|
|
|
+ `<database>` beginnt das Datenbank XML
|
|
|
+ `<global>` Legt eine globale Tabelle an (dieses Tabelle wird einmal angelegt)
|
|
|
+ `<projects>` Legt eine Projekt Tabelle an. Für jedes Projekt mit dem Projektnamen wird diese Tabelle angelegt
|
|
|
+ `<database>` beginnt das Datenbank-XML
|
|
|
+ `<global>` Legt eine globale Tabelle an (diese Tabelle wird einmal angelegt)
|
|
|
+ `<projects>` Legt eine Projekttabelle an. Für jedes Projekt mit dem Projektnamen wird diese Tabelle angelegt
|
|
|
+ `<table>` der Tabellen Bereich, gibt die Struktur der Tabelle vor
|
|
|
+ `<field>` ein Tabellenfeld
|
|
|
+ `<index>` ein Index festlegen
|
... | ... | @@ -102,8 +102,8 @@ Folgende Werte sind möglich: |
|
|
`<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 automatisch 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.
|
|
|
Eine Tabelle, die in `<projects>` definiert ist, erhält automatisch 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:**
|
|
|
|
... | ... | @@ -117,13 +117,14 @@ Jeder Eintrag in dieser Tabelle ist also ein Eintrag für eine einzelne Seite. T |
|
|
```
|
|
|
|
|
|
Mit dieser Definition wird nun jeweils für jedes Projekt und jeder Projekt-Sprache eine Tabelle *awesome* angelegt.
|
|
|
Sind in QUIQQER nun 2 Projekte angelegt mit jeweils der Sprache de und en, werden also folglich folgende Tabellen angelegt:
|
|
|
Sind in QUIQQER nun 2 Projekte angelegt mit jeweils der Sprache `de` und `en`, werden also folgende Tabellen angelegt:
|
|
|
|
|
|
```
|
|
|
projects1_de_awesome
|
|
|
projects1_en_awesome
|
|
|
projects2_de_awesome
|
|
|
projects2_en_awesome
|
|
|
|
|
|
```
|
|
|
|
|
|
### `<field>`
|
|
|
|
... | ... | @@ -207,7 +208,7 @@ Mit dem `<comment>` Node ist es möglich Datenbank Kommentare für die Tabellen |
|
|
|
|
|
## Projekt Tabellen und Site Objekt
|
|
|
|
|
|
Wenn in einem Plugin eine Projekt Tabelle angelegt wird, sind die Daten direkt in dem Siteobjekt vorhanden.
|
|
|
Wenn in einem Plugin eine Projekttabelle angelegt wird, sind die Daten direkt in dem Siteobjekt vorhanden.
|
|
|
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.
|
... | ... | @@ -219,7 +220,7 @@ Nehmen wir an, Sie legen eine Tabelle namens Liste im Plugin firma/plugin an. |
|
|
</table>
|
|
|
```
|
|
|
|
|
|
Das Site Objekt besitzt dadurch zwei weitere Eigenschaften.
|
|
|
Das Siteobjekt besitzt dadurch zwei weitere Eigenschaften.
|
|
|
|
|
|
```php
|
|
|
$Site->getAttribute( 'firma.plugin.liste.erstes_feld' );
|
... | ... | @@ -228,7 +229,7 @@ $Site->getAttribute( 'firma.plugin.liste.zweites_feld' ); |
|
|
|
|
|
### no-auto-update="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"
|
|
|
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">
|
... | ... | @@ -268,7 +269,8 @@ Als Wildcards können Sie alle gängigen [Shell Patterns](https://www.gnu.org/so |
|
|
|
|
|
### no-project-lang=""
|
|
|
|
|
|
Möchten Sie eine Tabelle nur für das Projekt verwendet und nicht für jede Projektsprache können Sie das Attribute *no-project-lang* verwenden. Dieses Attribute bestimmt, das QUIQQER die Projekt Tabelle nur für das Projekt anlegt.
|
|
|
Möchten Sie eine Tabelle nur für das Projekt verwendet und nicht für jede Projektsprache können Sie das Attribut *no-project-lang* verwenden?
|
|
|
Dieses Attribut bestimmt, das QUIQQER die Projekttabelle nur für das Projekt anlegt.
|
|
|
|
|
|
Das folgende Beispiel legt nur eine Tabelle meta für alle Projekte an.
|
|
|
|
... | ... | @@ -290,8 +292,8 @@ projects2_meta |
|
|
</database>
|
|
|
```
|
|
|
|
|
|
** Achtung **
|
|
|
Wenn Sie no-project-lang="1 nutzen, werden keine Site Beziehungen aufgebaut, möchten Sie Site Daten trotzdem speichern müssen Sie dies über die Site Events erledigen und dies in der [events.xml](/Events-Xml) definieren.
|
|
|
** Achtung: **
|
|
|
Wenn Sie `no-project-lang="1"` nutzen, werden keine Site Beziehungen aufgebaut, möchten Sie Site Daten trotzdem speichern müssen Sie dies über die Site Events erledigen und dies in der [events.xml](/Events-Xml) definieren.
|
|
|
|
|
|
Damit Sie im PHP Code den Tabellennamen auflösen können, helfen Ihnen folgende Methoden:
|
|
|
|
... | ... | |