CMS – Datenmodell, Berechtigungen und Einschränkungen
Speicherung der Blogartikel und Themen, Kommentarverwaltung und Spamfilter, Art der Rechteprüfung und bekannte Abweichungen von anderen Modulen.
Überblick
Eine Kopie des eingebauten Blogs des Web-Frameworks mit systemeigenen Tabellen. Das Recht ergibt sich aus dem routenbezogenen modify-Recht des Frameworks; das Funktionsrecht des Systems wirkt nur auf die Hinzufügen-Schaltfläche (canAction(add)) und die Sichtbarkeit des Menüpunkts (canSee(list)).
Datenmodell
Die Tabellennamen tragen in der Datenbank das installationseigene Präfix.
| Tabelle | Rolle |
|---|---|
article, article_description | Artikel und Name, Meta, Autor, Text je Sprache |
article_to_store, article_to_label, article_to_layout | Verknüpfung mit Shop, Label und Layout |
article_rating, article_comment | Bewertungen und Kommentare |
topic, topic_description, topic_to_store | Blogthemen |
Framework-Tabellen seo_url, antispam | Webadressen und gesperrte Schlüsselwörter |
Ablauf
- Artikel speichern: Name, Meta-Titel und Autor je Sprache Pflicht; das SEO-Schlüsselwort muss eindeutig und gültig sein;
addArticleodereditArticle(Beschreibung, Shop, Label, Layout,seo_url). Löschen:deleteArticle. article.rating: berechnet die Artikelbewertung aus Gefällt-mir- und Gefällt-mir-nicht-Stimmen neu.- Kommentare: Freigabe (der Kommentator wird im Kundenmodell des Frameworks als vertrauenswürdig markiert, seine wartenden Kommentare werden freigegeben), Spam-Markierung, Löschen, Bewertung — über das Framework-Modell
cms/article. - Spamfilter: gesperrte Schlüsselwörter über das Framework-Modell
cms/antispam.
Berechtigungen
- Artikel speichern, löschen, bewerten:
hasPermission('modify', 'cms/article'); Thema:cms/topic. - Kommentare und Spamfilter: Das
modify-Recht bezieht sich auf die Framework-eigene Route (cms/comment,cms/antispam), nicht auf die Route des Systems. - Das
list-Recht der Listen prüft der Controller nicht.
Bekannte Einschränkungen
- Die Sprachschlüssel von Menü und Untermenü fehlen in der englischen Sprachdatei.
cms/article.seedDemoArticles: öffentliche Methode, die Demo-Artikel mit festen Label-IDs ohne Rechteprüfung einfügt.cms/article.tagselect: liefert zufällige Demo-Labels und schreibt keine Daten.