Beitragsdatum | 13.11.2016 |
---|---|
Letzte Aktualisierung | 14.11.2016 |
Betrifft | Xataface, diverse Versionen |
In diesem Beitrag erkläre ich die Umsetzung einer m:n-Beziehung in Xataface als eine Art Tutorial.
Die offizielle Dokumentation fand ich teilweise etwas unübersichtlich und habe daher meine eigene Doku erstellt, die ich hier im Blog nun gerne auch Ihnen zur Verfügung stelle.
root@s00156:/var/www/vhosts/it-muecke.de/db.it-muecke.de/projects/journal/tables# ll * tbl_entry: fields.ini relationships.ini tbl_entry2tags: fields.ini valuelists.ini tbl_tags: fields.ini
tbl_entry/fields.ini
ein zusätzliches Feld anfügen, das es nicht in der DB gibt. Über dieses erfolgt bei Eingabe oder Änderung eines Datensatzen die Auswahl der Tags:[tags] widget:label = "Tags" widget:type = checkbox ; ### Hier wird die Beziehung definiert: relationship = rel_tags ; ### Gibt an, dass das Feld angezeigt werden soll, obwohl es in der DB nicht existiert: transient = 1
rel_tags
wird in tbl_entry/relationships.ini
definert. Aus diesen Angaben zieht sich Xataface bei Eingabe oder Änderungn eines Datensatzen die Tags und bietet diese zur Auswahl an.:; ### Der Name der Beziehung wird in der fields.ini angebenen (s.o.): [rel_tags] tbl_tags.tags_id = tbl_entry2tags.entry2tags_tagsid tbl_entry2tags.entry2tags_entryid = "$entry_id" ; ### Aufbau: [<relationship name>] <tabelle partner>.<partner id> = <tabelle join>.<partner id> <tabelle join>.<id> = "$<id>" ; ### wobei sich id auf die id des Eintrags in dieser Tabelle bezieht (in deren relationships.ini wir gerade sind)
tbl_entry2tags/fields.ini
und tbl_entry2tags/valuelists.ini
an:### tbl_entry2tags/fields.ini ### [entry2tags_id] visibility:list = hidden visibility:browse = hidden [entry2tags_tagsid] vocabulary = voc_tags filter = 1 [entry2tags_entryid] vocabulary = voc_entry ### tbl_entry2tags/valuelists.ini ### [voc_tags] __sql__ = "SELECT tags_id, tags_name FROM tbl_tags ORDER BY tags_name" [voc_entry] __sql__ = "SELECT entry_id, entry_text FROM tbl_entry ORDER BY entry_text"
tbl_entry2tags/tbl_entry2tags.php
erstellt:<?php class tables_tbl_entry2tags { function getPermissions(){ return Dataface_PermissionsTool::READ_ONLY(); } } ?>
tbl_entry2tags/tbl_entry2tags.php
erweitert:<?php class tables_tbl_entry2tags { function __sql__(){ return "select tbl_entry2tags.*, tbl_entry.entry_date, tbl_entry.entry_timestamp from tbl_entry2tags left join tbl_entry on tbl_entry2tags.entry2tags_entryid=tbl_entry.entry_id"; } function getPermissions(){ return Dataface_PermissionsTool::READ_ONLY(); } } ?>
tbl_entry2tags/fields.ini
definiert und angepasst werden.Quellen:
Ähnliche Themen im blog:
xataface