simpleMultiUser

Plugin für CMSimple

Version 1.1, unterstützt von CMSimple 2.7+ , Plugin Loader 2, Svarrers Memberpages ver 1.0 beta und höher.

5. März 2009

 

simpleMultiUser ermöglicht es Editoren bzw. Moderatoren mit unterschiedlichen Rechten, ihnen zur Verfügung gestellte Webseiten zu editieren. Diese Editoren/Moderatoren haben dabei keinen Zugang zur CMSimple Administration. Sie haben nur Zugang zu den Ihnen zur Verfügung gestellten Webseiten. Dieses Plugin ist gedacht, unter den Memberpages von Michael Svarrer zu laufen, das mit einem Benutzer Management ausgestattet ist. Das heißt: es macht eigentlich keinen Sinn, simpleMultiUser ohne die Memberpages zu benutzen. Mit ihnen können so viele Editoren mit eigenen Zugangsrechten ausgestattet werden, wie die Memberpages es verkraften. Die Memberpages können heruntergeladen werden von CMSimpleWiki.

 

1. Wie geht das?

Der CMSimple Administrator muss leere Seiten zur Verfügung stellen, die dann von den Editoren/Moderatoren gefüllt werden sollen, um anschließend der Öffentlichkeit präsentiert zu werden. Um das zu realisieren, muss der CMSimple Admin 2 Sets an Webseiten erstellen: die Seiten, die später der Öffentlichkeit präsentiert werden sollen, sowie die Spiegel-Seiten, mit jeweils einem kleinen Editor und einer Vorschau, für die Editoren bzw. Moderatoren. Diese Spiegelseiten sind hinter Svarrers Memberpages versteckt. Wir haben also ein "Frontend" für die Öffentlichkeit und Backends mit verschiedenen Zugangsberechtigungen für die Editoren.

Sagen wir mal, wir hätten 4 Editoren - Babsi, Fritz, Marcel und Susanne. Der CMSimple Administrtor erzeugt 4 Sets an Webseiten, ein Set für jede Person. Ein Set kann aus H1, H2 und H3 Seiten bestehen (Die Editoren selbst können keine Seiten erstellen!!!). Anschließend erstellt der CMSimple Admin die gleiche Menge an Spiegelseiten, die hinter der Wand - bestehend aus Svarrers Memberpages - verborgen sind.

Example
openWYSIWYG Editor mit Vorschau

+ Babsi
|
+ Fritz
|
+ Marcel
|
+ Susanne
|
| für die Öffentlichkeit
|
+-Memberpage Barriere
|
| nur für Mitglieder
|
+ Babsi
|
+ Fritz
|
+ Marcel
|
+ Susanne

Was immer Babsi - oder jeder andere Editor/Moderator - mit dem ihr zur Verfügung stehenden Editor eintippt, kann sofort von der Öffentlichkeit begutachtet werden, sobald Babsi den SPEICHERN Knopf drückt. Und wenn die Zugangsrechte mit Hilfe der Memberpages richtig gesetzt sind, kann auch nur Babsi auf die ihr anvertrauten Seiten als Editorin zugreifen.

 

2. Installation des Plugins

Das simpleMultiUser Plugin zu installieren ist furchtbar einfach. Es wird in das Plugin-Unterverzeichnis von CMSimple kopiert. Das war es auch schon!

Server Rechte: OK, da ja etwas editiert und wieder weggespeichert werden soll, müssen natürlich einige Rechte für Verzeichnisse geändert werden. Es müssen im simpleMultiUser Verzeichnis das Unterverzeichnis "content/" sowie das Unter-Unterverzeichnis "content/images/" auf chmod777 gesetzt werden.

Zudem muss das Plugin mit den leeren, vom CMSimple Admin erstellten Seiten verknüpft werden, damit es überhaupt funktioniert. Um zu erklären, wie das geht, nehmen wir wieder Babsis Account. Babsi soll eine H1 Seite zum Editieren bekommen. Dafür muss der CMSimple Admin eine leere Seite erstellen und folgendes eingeben:

<h1>Babsi</h1>
#CMSimple $output .= simpleMultiUser("babsi1");#

Dieses Skript wird später den Content für die Öffentlichkeit aufrufen und anzeigen. Hier wird all das gezeigt, was Babsi mit ihrem Editor eingegeben hat. Man muss im Skript nicht unbedingt das Wort "babsi1" benutzen, jedes andere Wort tut es auch. Man muss nur darauf achten, dass es einmalig ist, doch es muss dasselbe Wort sein, wie das auf seiner Spiegelseite hinter der Memberpages Wand. Auch die Überschrift darf eine andere sein.

Auf der Spiegelseite wird folgendes eingegeben:

<h1>Babsi - Edit</h1>
#CMSimple $output .= simpleMultiUser("babsi1", "editor_on" );#

"editor_on" ruft den inkludierten openWYSIWYG Editor auf. Dieser Editor wurde von "Haggi" derart erweiter, dass nun auch Bild-Upload und -Management möglich sind. (Verantwortlich für openWYSIWYG ist openWebWare, Haggis Arbeit ist im openWYSIWYG Forum dokumentiert.)

Jetzt haben wir zwei Babsi-Webseiten - eine Frontend- und eine Backend-Seite. Die Backend-Seite ist allerdings noch nicht hinter Svarrers Memberpages versteckt. Um das tun zu können, müssen die Memberpages installiert sein. Wie man das macht, gehört nicht zu den Punkten dieser Ausführungen. Dafür sollten Michael Svarrers Erklärungen gelesen werden. Sollten allerdings die Memberpages installiert sein, wird eine geschützte Backend-Seite mit folgendem Skript aufgerufen:

<h1>Babsi - Edit </h1>
#CMSimple $output.=memberspage("Member_Not_logged_in","1"); $output .= simpleMultiUser("babsi1","editor_on");#

Das ist ein recht langes Skrip. Aber mit Kopieren und Wiedereinfügen ist das schnell gemacht mit den verschiedenen Seiten. Man muss nur auf die verschiedenen Zugangsberechtigungen achten (1,2,3,4,5 und so weiter) und für verschiedene Seitennamen für Babsi und die anderen Editoren sorgen (babsi1, babsi2, babsi3, babsi4 und so weiter).

Sobald ein Editor/Moderator mit einer neuen Seite startet, wird diese Seite im "content" Verzeichnis des Plugins erzeugt - und zwar mit dem Drücken des "Speichern" - Knopfes.

 

3. Konfiguration

Mit der Version 1.1 kommt das Plugin mit einer Konfigurationsmöglichkeit. Wenn im Konfigurationsmenü die Option "change lastupdate" auf "true" gesetzt ist, wird die "Last Update" Ausgabe, sofern im Template vorhanden, aktualisiert, sobald der Benutzer seinen Inhalt im Editor abspeichert.. Wird das Feld freigelassen oder das Wort "false" eingegeben, findet keine Aktualisierung statt.

 

4. Modifizierung des Editors

Als Editor wird openWebWare's openWYSIWYG eingesetzt. Er ist ein kleiner aber mächtiger Multiplatform Editor. Nur leider hat er durch die Arbeit von "Haggi" vieles seiner Multiplatform-Fähigkeit verloren. Er läuft unter Windows im IE, Firefox sowie auch Opera, soll jetzt aber im Mac Safari z.B. Schwierigkeiten machen.

Der Editor dieses Plugins ist derart installiert, dass er automatisch 100% der möglichen Breite einnimt, die ihm ein CMSimple Template anbietet. Die Breite kann bis auf ca 350 Pixel verringert werden. Sollte das immer noch zu breit sein, müssen ein oder mehrere Buttons entfernt werden.

Wie macht man das?

Man öffnet das Verzeichnis "plugins/simpleMultiUser/openwysiwyg/scripts/" und editiert die Datei "wysiwyg.js". Zwischen den Zeile 100 und 170 sind alle verfügbaren Knöpfe gelistet. Es werden nur der oder die Knöpfe auskommentiert (mit Doppelslash), die nicht benötigt werden. Wie das gemacht wird, ist durch die schon auskommentierten Knöpfe innerhalb der Liste erkennbar.

Mehr Informationen über den openWYSIWYG erhält man auf der Website von openWebWare.

 

5. Was tut simpleMultiUser so?

Der CMSimple Administrator erzeugt CMSimple-Seiten, die mit Hilfe eines Skripts mit dem simpleMultiUser Plugin verknüpft werden. Diese Verknüpfung ruft leere Seiten auf, die von den Editoren/Moderatoren mit Inhalten gefüllt werden. Diese Inhalte werden im "content" Verzeichnes des Plugins als individuelle Dateien weggespeichert. Jede einzelne Seite ist seiner Content-Datei zugeordnet. Der Name einer solcher Content-Datei setzt sich zusammen einmal aus dem Wort, das als Skript-Parameter benutzt wurde (in unserem Beispiel "babsi1"), zum anderen aus dem Sprach-Kode und der .txt Endung. In unserem Beispiel würde die zugehörige Textdatei folgendermaßen aussehen:

babsi1_de.txt

Eine solche Datei wird vom Plugin selbst erstellt und muss vom CMSimple Administrator nicht erzeugt werden.

Das simpleMultiUser Backend besteht aus zwei Teilen (siehe Bild oben). Der obere Teil wird vom openWYSIWYG Editor eingenommen. Der untere Teil umfasst die Vorschau, die den Inhalt genauso wiedergibt, wie er der Öffentlichkeit präsentiert wird. Das heißt also, ein Editor kann während der Arbeit verfolgen, wie sie sich entwickelt.

"Haggi's" openWYSIWYG Editor-Modifizierung ermöglicht Bild-Management, wie sie der ursprüngliche Editor nicht bietet. Bilder können auf den Server in das Verzeichnis "content/images/" hochgeladen und in den Content eingefügt werden. Hat der CMSimple Administrator sogar Unterverzeichnisse zum "content/images/" Verzeichnis erstellt, kann jeder Editor/Moderator sein eigenes Verzeichnis erhalten. Allerdings kann jeder Editor in das Bildverzeichnis eines jeden anderen schauen. Er kann die Bilder der anderen mitbenutzen aber nicht löschen.

 

6. Haftungs-Ausschluss

Dieses Plugin unterliegt keiner Garantie. Jeder Benutzer verwendet simpleMultiUser auf eigene Gefahr. Falls es zu Verlusten von Daten durch simpleMultiUser kommen sollte, unterliegen wir keiner Haftung.

 

7. Anerkennung

Großer Dank geht an Jan Neugebauer (djot), der mir mit seinem "example-plugin" die Arbeit sehr erleichtert hat.

© Tillman Schuster, NMuD, 2006 - 2009