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.

TabelleRolle
article, article_descriptionArtikel und Name, Meta, Autor, Text je Sprache
article_to_store, article_to_label, article_to_layoutVerknüpfung mit Shop, Label und Layout
article_rating, article_commentBewertungen und Kommentare
topic, topic_description, topic_to_storeBlogthemen
Framework-Tabellen seo_url, antispamWebadressen und gesperrte Schlüsselwörter

Ablauf

  1. Artikel speichern: Name, Meta-Titel und Autor je Sprache Pflicht; das SEO-Schlüsselwort muss eindeutig und gültig sein; addArticle oder editArticle (Beschreibung, Shop, Label, Layout, seo_url). Löschen: deleteArticle.
  2. article.rating: berechnet die Artikelbewertung aus Gefällt-mir- und Gefällt-mir-nicht-Stimmen neu.
  3. 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.
  4. 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.