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.