Autor muss Beitrag als Entwurf im CMS Bludit speichern
Das Bludit CMS ist Multiuserfähig und kann drei Rollen verwalten. Es kann sinnvoll sein, die Rolle Autor dazu zu zwingen, Beiträge als Entwurf zu speichern.
Juli 5, 2023 - Lesezeit: 3 Minuten
Inhalt
Bludit Rollen Admin, Mitarbeiter und Autor
Das CMS Bludit ist in der Lage die Rollen Admin, Mitarbeiter und Autor zu behandeln. Jede dieser Rollen darf Beiträge ungesehen veröffentlichen, das ist eher ungünstig. Sinnvoller ist es, wenn es mindestens eine Rolle im Rechtesystem des Bludit gibt, die zwar Beiträge erstellen darf, jedoch nicht veröffentlichen kann.

PHP 8 und MySQL: Das umfassende Handbuch zu PHP 8. Dynamische Webseiten, von den Grundlagen bis zur fortgeschrittenen PHP-Programmierung
Dynamische Webseiten mit PHP und MySQL programmieren: Alles, was Sie dafür wissen müssen, steht in diesem Buch. Profitieren Sie von einer praxisorientierten Einführung und lernen Sie alle neuen Sprachfeatures von PHP 8 kennen. Die Autoren Christian Wenz und Tobias Hauser sind erfahrene PHP-Programmierer und Datenbankspezialisten. Sie zeigen Ihnen, wie Sie MySQL und andere Datenbanksysteme effektiv einsetzen. Mit diesem Wissen machen Sie sich rundum fit für dynamische Websites. (*
Für diesen Zweck lässt sich die Rolle des Autors in zwei Bludit-Controllern leicht anpassen. Der Autor ist die geringste Berechtigung im CMS Bludit.
Neuanlage eines Posts
Für die Neuanlage eines Beitrags ist die Datei:
admin/controllers/new-content.php
zuständig. Dieses PHP Script wird von Bludit CMS gestartet, wenn der User einen ganz neuen Beitrag verfasst. Ab Zeile 23...29 können Sie das folgende Codeschnipsel einfügen:
20 ...
21 if ($_SERVER['REQUEST_METHOD'] == 'POST') {
22
23 // === start: neuer Code ===
23 if ($login->role() == 'author') {
24 $_POST['type'] = 'draft';
25 $syslog->add(array('dictionaryKey'=>'<kbd>Rolle</kbd>','notes'=>'Neuer Entwurf' ));
26 Alert::set('Als <strong>Entwurf</strong> angelegt');
27 }
29 // === ende: neuer Code ===
28 ...
Die Zeile 23 fragt die aktuelle Rolle des angemeldeten Users ab, ist er ein Autor, wird der Post in Zeile 24 den Status draft (Entwurf) versetzt. Die Zeile 25 gibt ein Log-Eintag im Dashboard aus und die Zeile 26 erzeugt eine Hinweismeldung für den Autor. Der Log-Eintrag im Dashboard kann dem Admin helfen, Beiträge von Autoren frei zu geben.
Bearbeiten eines Posts
Für das editieren bestehender Posts ist das PHP-Script:
admin/controllers/edit-content.php
zuständig und muss um das gleiche Codesegment ab Zeile 48...53 ergänzt werden.
39 ...
40 if ($_SERVER['REQUEST_METHOD'] == 'POST') {
41
42 if ($_POST['type']==='delete') {
43 if (deletePage($_POST['key'])) {
44 Alert::set( $L->g('The changes have been saved') );
45 }
46 } else {
47
48 // === start: neuer Code ===
49 if ($login->role() == 'author') {
50 $_POST['type'] = 'draft';
51 $syslog->add(array('dictionaryKey'=>'<kbd>Rolle</kbd>','notes'=>'Entwurf bearbeitet' ));
52 }
53 // === ende: neuer Code ===
54 ...
Das Codeschnipsel ist im wesentlichen vollkommen identisch mit dem Abschnitt davor, jedoch fehlt der Alert::set(), da im nachfolgenden Code bereits eine Meldung gesetzt wird und das System lediglich die letzte Meldung anzeigt. Wichtiger ist es ein Log für die Anzeige im Journal des Dashboards anzuzeigen.
Mit nur drei Zeilen Code erstellen Sie ein einfaches Freigabeverfahren für die Rolle Autor, in Folge dessen müssen Autoren ihre Beiträge durch die Rolle Mitarbeiter oder die Rolle Admin freigeben lassen. Autoren können Beiträge ausschließlich als Entwurf speichern und bearbeiten.
Schlagworte:
Autor User Rolle Rechte