contao/test — Issue #1087: additional meta.txt parameter / additional meta format
Author: fbender
Created: 2011-11-29 07:19:59+00:00
State: open
Labels: Feature, framework

Prinzipiell kann man ja beliebig viele Parameter in der Meta.txt speichern (zumindest schließe ich das aus dem Code). Das Problem ist nur: An welcher Position steht welcher Parameter? Das ist bisher kein Problem, da keine Erweiterung weitere Infos in der meta.txt anlegen wollte (meist wurde als Umweg die DB genommen).

Mein Vorschlag ist jetzt folgender: Als viertes (?) Element soll die Möglichkeit gegeben werden, ein serialisiertes Array anzugeben. Damit kann man spezifische Infos leicht angeben, ohne dass es zu "Namensraumverschmutzung" kommt.

Beispiel (Array nicht serialisiert zur besseren Lesbarkeit):

```
bild.jpg = Titel | {{link_url::link}} | Beschreibung | array('centerX'=>100,'centerY'=>140, 'thumb_url':'tl_files/thumbs/bild.jpg')
```

Diese Infos sollten im $arrMeta gespeichert werden (z. B. $arrMeta['params']), sodass Erweiterungen leicht darauf zurückgreifen können.

Dieses Feature soll als Grundlage für mehr Kontrolle über Bilder dienen und die Trennung von Dateisystem und Datenbanken unterstützen. Es bringt wenig, wenn jede Erweiterung seine eigene DB-Tabelle mit Meta-Infos für Dateien anlegt, nur weil es sonst keine Möglichkeit gibt, diese in der dafür zuständigen Datei (meta.txt) zu speichern.

Vielleicht könnte man sich auch überlegen, neben der meta.txt eine erweiterte Meta-Datei anzulegen: Im JSON- (mein Favorit) oder XML-Format kann man Informationen deutlich besser strukturiert ablegen. Außerdem fällt z. B. die Redundanz bei der URL-Angabe weg – Bilder können extern verlinkt werden (zweiter Meta.txt-Parameter), bei anderen Dateien ist das sinnlos.
Beispiel für eine meta.json:

```
bild.jpg = {[title]("Titel",) [desc]("Beschreibung",) [url]("typolight.org",) [centerX](100,) [centerY](140,) [thumb_url]("tl_files/thumbs/bild.jpg"})
datei.zip = {[title]("Paket",) [desc]("wichtige) Dateien", [thumb_url]("tl_files/thumbs/datei.zip.jpg"})
```

Zugriff auf die Infos erfolgt dann wieder über das Array, aber mit expliziter Schlüsselangabe: $arrMeta['thumb_url'], $arrMeta['title']. Zwecks Abwärtskompatibilität kann man ja die bisherigen 3 Parameter noch in die numerischen Indizes "übersetzen":

```
$arrMeta[0] = $arrMetaJSON['title'];
// etc.
$arrMeta = array_merge($arrMeta, $arrMetaJSON);
```

Related issues: #1467

--- _Originally created on October 12th, 2009, at 12:26am (ID 1087)_