Autor muss als Entwurf 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.

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.

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

Code

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  ...

Code

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

Code

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  ...

Code

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.


Mein Name ist Oliver Lohse. Ich bin diplomierter Wirtschafts-Informatiker und Organisations-Programmierer in verschiedenen Sprachen bzw. Markup-Dialekten, z.B. Java, JEE, COBOL, PHP, Python, MySQL, HTML, CSS, ANSI C, Lisp, Rexx, JavaScript, Scheme, ActionScript 2.0, Maschinensprache, Assembler und JCL. Seit mehr als 25 Jahren arbeite ich in einem großen Softwareunternehmen für Versicherungen in Hannover Niedersachsen.

Oliver Lohse
2023-12-21
Konstanten
post
Kontakt@Oliver-Lohse.de

Bludit

Das kostenlose Flatfile CMS Bludit ist das beliebteste Content Management System, das dem großen WordPress sehr nahe kommt, jedoch deutlich mehr Sicherheit bietet.

Datenschutz

Die Webseite verwendet keinerlei Tracking- oder Speichermechanismen, die einen Rückschluss auf das Leserverhalten und Ihre Identität zulassen. Die Webseite verwendet keine Cookies, denn Cookies haben einen schlechten Ruf.

Impressum

CMSWorkbench ist eine Entwicklerseite über meine Arbeit im Bereich der Content Management Systeme. Die vielen Codeschnipsel sind im wesentlichen als kleine Notizzettel zu werten als das es ausgereifte Beiträge wären.