One-Click-Edit
Mit One-Click-Edit (OCE) können Sie ein veröffentlichtes Dokument, das Sie auf einem Zielsystem betrachten direkt von dort aus zum Bearbeiten öffnen. Im Hintergrund sorgt imperia für die Einhaltung des zugehörigen Workflows und der Freigabemechanismen:
- imperia erkennt, ob ein Benutzer bereits angemeldet ist und bietet bei entsprechender Konfiguration automatisch die Login-Maske an.
- Die Benutzer brauchen lediglich eine Browser-Erweiterung zu installieren, um OCE nutzen zu können.
- Bei installierter OCE-Toolbar gleicht One-Click-Edit nach der Anmeldung des Benutzers am zugehörigen Entwicklungssystem bei jedem Seitenaufruf automatisch die Benutzer-Rechte sowie Dokumenteninformationen mit dem Entwicklungsserver ab, wenn die aufgerufene Seite von diesem System stammt.
- Der Benutzer kann immer nur die Funktionen der Toolbar aufrufen bzw. sehen, zu deren Ausführung er für das jeweilige Dokument berechtigt ist.
Innerhalb eines imperia-Dokuments werden bei entsprechender Programmierung des Templates die NodeID und die SystemID verschlüsselt gespeichert. Hierzu wird entweder ein eigener Namespace oder ein Meta-Tag verwendet. Bei der Meta-Tag-Variante ist außerdem die Speicherung von Pfad und Dateiname der betreffenden Seite möglich. So lassen sich beispielsweise Copy-Seiten unabhängig vom Master-Dokument oder anderen Kopien vom Zielsystem entfernen.
Wichtige Informationen zur SystemID
Beachten Sie, dass beim Kopieren eines Systems, etwa zu Testzwecken, die SystemID ebenfalls mit kopiert wird!
Dies kann zu Problemen führen, da die kopierte SystemID eingelesen wird, wenn auf dem Testsystem Content freigeschaltet oder mit OCE Dokumente bearbeitet werden. Somit arbeiten die Benutzer nicht auf dem Testsystem, sondern auf dem Entwicklungssystem, von dem die Kopie angefertigt wurde.
Damit nicht die kopierte SystemID eingelesen wird, müssen Sie für das kopierte System eine neue SystemID erzeugen. Gehen Sie hierzu folgendermaßen vor:
- Löschen Sie die Datei
site/secure/sysid
in Ihrem Testsystem. - Melden Sie sich anschließend an dem System an. Dabei wird automatisch eine neue SystemID generiert.
- Reparsen Sie den kompletten Content Ihres Testsystems, damit die neue SystemID in die Dokumente eingebunden wird.
Nun können Sie gefahrlos auf dem Testsystem arbeiten.
OCE installieren#
OCE-Installer
Der OCE-Installer unterstützt die unbeaufsichtigte (De-)Installation der OCE-Funktionen.
- Um OCE in diesem Modus zu installieren, geben Sie folgende Kommandozeile ein:
OneClick.exe /S
. Die Installation läuft im Hintergrund. - Um OCE im Hintergrund zu deinstallieren, geben Sie ein:
uninst.exe /S
.
Tip
Unter Benutzerkonto -> Profil haben Sie auch die Möglichkeit, OCE als Bookmarklet herunterzuladen. Dies ist besonders für Windows Server geeignet.
Neue OCE-Funktion anlegen#
1. Controller programmieren
- Um benutzerdefinierte OCE-Funktionen erstellen zu können, müssen Sie zuerst den Controller beziehen.
- OCE-Controller liegen im Verzeichnis
site/modules/core/Imperia/Controller/Document/Oce
. -
Kopieren Sie einen der Standard-Controller, um ihn als Basis für Ihren benutzerdefinierten Controller zu verwenden, z.B.
Meta.pm
. Bei der Verwendung vonMeta.pm
beachten Sie folgende Einstellungen:-
imperia ermöglicht die Ausführung einer Run-time-Prüfung, die sicherstellt, dass der Controller durch den entsprechenden Button aufgerufen wird. Diese Prüfung wird durch folgenden Security-Call durchgeführt:
my $access = $oce_conf->checkAccess($node_id);
im
go()
method body.- Die zu prüfenden Parameter sind definiert in:
$Imperia::Lib::Controller::Document::Oce::ALLOWED->{$imperia->uri( '/document/oce/meta' )} = { params => { __imperia_node_id => 1, directory => 1, filename => 1, }, class => __PACKAGE__, };
-
* Diese Parameter stimmen mit denen überein, die Sie im URL-Feld des Dialogfensters "NEUER EINTRAG" eingeben, siehe nachfolgende Anleitung "OCE-Button anlegen".
* Wenn die Prüfung fehlschlägt, meldet das System den Fehler "Ungenügende Berechtigungen".
2. OCE-Button anlegen
Nachdem Sie den Controller erstellt haben, legen Sie die neue OCE-Funktion an, die in Form eines Buttons in der OCE-Toolbar erscheint:
- Öffnen Sie die OCE-Konfiguration über das Menü System -> One-Click-Edit.
-
Klicken Sie auf Neuen Eintrag anlegen.
Im Folgenden werden die Optionen und Eingabefelder anhand des OCE-Buttons "Kopieren" erläutert:
- In OCE anzeigen: Mit dieser Checkbox wird die Funktion global aus- bzw. eingeschaltet. Im Standard (aktiviertes Kontrollkästchen) wird eine neue Funktion immer im OCE angezeigt.
- Label: In dieses Eingabefeld wird der Titel der Funktion eingegeben. Der Titel erscheint in der OCE-Toolbar neben dem Icon.
- Icon: In dieser Liste wird das Icon ausgewählt, das in der OCE-Toolbar angezeigt werden soll.
-
URL: Sie haben folgende Möglichkeiten für die Eingabe eines Werts für das URL:
- Einen abstrakten Controllerpfad (ohne vorangestelltes "/") mit dem gewünschten cgi-Parameter. imperia geht davon aus, dass der Controller im Verzeichnis
site/modules/core/Imperia/Controller/
liegt. Beispiel:document/oce/my_controller?param=1
- Eine URL mit einem vorangestellten "/". imperia interpretiert dies relativ zum DOCUMENT-ROOT-Pfad :
/cgi-bin/my_script.pl?param=1
- Eine voll ausgeschriebenen URL:
http://validator.w3.org/check?uri=<!--LIVE-CC:ABSOLUTE_URI-->
- Einen abstrakten Controllerpfad (ohne vorangestelltes "/") mit dem gewünschten cgi-Parameter. imperia geht davon aus, dass der Controller im Verzeichnis
-
Bedingung: Definieren Sie eine optionale Bedingung, die erfüllt sein muss, damit die OCE-Funktion in der OCE-Toolbar erscheint. Die Notation erfolgt in der Template-Syntax der IF-Abfragen, z.B.:
"<!--XX-directory-->" NE "/no_quick_edit"
-> In diesem Beispiel erscheint OCE nicht im angegebenen Verzeichnis. - Tooltip: Hier wird der Text eingegeben, der angezeigt wird, wenn der Benutzer den Mauszeiger über dem Icon in der OCE-Toolbar hält.
- Tooltip (bei fehlender Berechtigung): Hier wird der Text eingegeben, der angezeigt wird, wenn der Benutzer den Mauszeiger über dem Icon in der OCE-Toolbar hält, er aber nicht über die notwendigen Rechte verfügt.
- Tooltip (für nicht erfüllte Bedingung): In Analogie zu dem Feld "Bedingung", siehe oben, wird hier der Text eingegeben, der angezeigt wird, wenn der Benutzer den Mauszeiger über dem Icon in der OCE-Toolbar hält, jedoch die eingestellte Bedingung nicht erfüllt ist, z.B. "Diese Funktion ist in diesem Verzeichnis nicht erlaubt".
- Sichtbar für folgende Gruppen: In diesem Feld werden die Gruppen markiert, die zur Verwendung der OCE-Funktion berechtigen.
- Benötigte Zugriffsrechte für Dokument: In diesem Feld werden die Zugriffsrechte für ein Dokument bestimmt, die der Benutzer mindestens haben muss, um die Funktion ausführen zu können.
- Ausführbar, wenn nicht sichtbar: Aktivieren Sie diese Checkbox, wenn der Button für Benutzer bspw. aus Sicherheitsgründen nicht sichtbar sein soll (analogisch zur Checkbox "In OCE anzeigen", siehe oben), aber dennoch ausführbar sein soll, i.d.F. über die URL-Eingabe bzw. -Erweiterung.
OCE und Copy-Seiten#
Normalerweise arbeitet OCE auf Dokumentenbasis. Das bedeutet für Dokumente mit Copy-Seiten, dass die OCE-Funktion, die Sie auf der Copy-Seite ausführen, sich immer auf das gesamte Dokument auswirkt. Beispielsweise löschen Sie also im Normalfall mit der Funktion Live-Löschen nicht nur die jeweilige Kopie vom Zielsystem, sondern auch alle anderen existierenden Kopien des Dokuments. Dieses Verhalten kann im Template des Dokuments oder durch eine Variable in der Systemkonfiguration verändert werden.
OCE-Skripte#
Hinweis
Ein Parameter in der OCE-Konfiguration kann den Wert *
enthalten. Diese Einstellung macht den entsprechenden Parameter optional, sodass das System diesen nicht prüft bei der Verifizierung der Zugriffsberechtigung. Bei sichtbaren OCE-Buttons ist das Hinzufügen des Wertes *
zu einem Parameter daher nicht empfohlen.
Folgende OCE-Funktionen sind verfügbar. In der obigen Abbildung "Seite "ONE-CLICK-EDIT KONFIGURATION"" unter dem Schritt OCE-Button anlegen finden Sie die deutschen Bezeichnungen der OCE-Funktionen zum Vergleich:
oce_edit#
Hinweis
Dieses Skript ist auch mit der OCE-Funktion Quick-Edit verknüpft.
Dieses Skript öffnet das Dokument zum Bearbeiten bzw. führt direkt in den Edit-Schritt. Befindet sich das Dokument nicht im Workflow, wird die letzte gespeicherte Version aus dem Archiv importiert, bevor es zum Editieren geöffnet wird.
Vorausgesetzte Dokumenten-Zugriffsrechte
Für dieses Skript sollten als Dokumenten-Zugriffsrechte eingestellt werden:
- read (Lesen)
- write (Schreiben)
Folgende Parameter können dem Skript übergeben werden:
- __imperia_node_id Die NodeID des Dokuments.
- finished Wird dieser Parameter als
true
(bzw.1
) übergeben, wird die letzte beendete Version und nicht die zuletzt gespeicherte Version aus dem Archiv importiert. - __imperia_quick_edit Wird dieser Parameter gesetzt, werden alle Workflow-Plug-ins, die QuickEdit nicht unterstützen, ausgelassen.
oce_clone#
Hinweis
Dieses Skript ist auch mit der OCE-Funktion Kopie verknüpft.
Dieses Skript erzeugt einen fast identischen Klon eines imperia-Dokuments. Das neue Dokument unterscheidet sich zumindest in den Meta-Variablen __imperia_node_id
, __imperia_created
und __imperia_modified
. Auch der Wert von anderen Meta-Variablen kann mit Hilfe passender Parameter verändert werden.
Vorausgesetzte Dokumenten-Zugriffsrechte
- read
- write
- create (Erzeugen)
Folgende Parameter können dem Skript übergeben werden:
- __imperia_node_id Die NodeID des Dokuments.
- __imperia_created, __imperia_modified Diese beiden Variablen enthalten die aktuelle Zeit in Sekunden seit der Epoche (Sekunden seit 00:00:00, 01.01 1904 GMT für MacOS und 00:00:00, 01.01.1970 für UNIX®- und Windows®-Betriebssysteme).
- __imperia_uid Enthält die Benutzer-ID des aktuell angemeldeten Benutzers.
-
__imperia_meta_expand Sofern die Meta-Variable
directory
nicht vorhanden ist, enthält dieser Parameter den Wert1
, unabhängig von seinem vorhergehenden Wert. Dieser Parameter wird vom MetaEdit-Plug-in verarbeitet. Ist er vorhanden und nicht0
, wird<!--XX-METAMODE-->
zutrue
expandiert. Der Parameter wird nach der ersten Verarbeitung gelöscht. Infolgedessen wird ein neues Dokument vom MetaEdit-Plug-in wie ein gerade erzeugtes Dokument behandelt, wenn der Parameter einen wahren Wert hat. Dies wird meist für die Expansion von<!-- XX-count-->
in Meta-Dateien verwendet.Hinweis
Unter normalen Bedingungen sollte das Meta-Feld
directory
immer gelöscht werden, bevor ein Dokument geklont wird. Denn dann wird es durch die neu zugeordnete Rubrik initialisiert. -
__imperia_parent Dieser Parameter enthält die NodeID des Eltern-Dokuments.
- __imperia_children Dieser Parameter enthält die NodeID des Kind-Dokuments, die an die Liste aller Kind-Dokumente eines Eltern-Dokuments(!) angehängt wird.
oce_erase#
Mit diesem Skript wird ein imperia-Dokument komplett gelöscht, sog. "Shreddern". Es wird von allen Zielsystemen und aus dem Entwicklungssystem gelöscht. Ferner werden alle Archivinformationen und alle zugehörigen Objekte (Bilder, etc.) gelöscht.
Vorausgesetzte Dokumenten-Zugriffsrechte
- read
- write
- create
- delete (Löschen)
Folgende Parameter können dem Skript übergeben werden:
- __imperia_node_id Die NodeID des Dokuments.
- force Wird dieser Parameter auf
true
gesetzt, erfolgt das Löschen ohne Bestätigungsdialog. Andernfalls erscheint eine Liste aller gelöschten Objekte.
oce_delete#
Mit oce_delete können Sie ein Dokument von allen Zielsystemen löschen.
Vorausgesetzte Dokumenten-Zugriffsrechte
- read
- write
- create
- delete
Folgende Parameter können dem Skript übergeben werden:
- __imperia_node_id Die NodeID des Dokuments.
- directory Dies ist das Verzeichnis auf dem Zielsystem.
- filename Dies ist der Dateiname des Dokuments im Verzeichnis des Zielsystems.
- copies Wenn Sie diesen Parameter auf
true
setzen, werden auch alle Kopien des Dokuments entfernt. - del_develop Wenn Sie diesen Parameter auf
true
setzen, wird die Löschaktion auch auf dem Entwicklungssystem ausgeführt.
oce_history#
Dieses Skript zeigt die Dokumenten-History an.
Vorausgesetzte Dokumenten-Zugriffsrechte
- read
Folgender Parameter kann dem Skript übergeben werden:
- __imperia_node_id Die NodeID des Dokuments.
oce_info#
Dieses Skript zeigt eine Reihe von Informationen zum Dokument an, die unter Meta-Informationen angegeben wurden.
Vorausgesetztes Dokumenten-Zugriffsrecht
- write
Folgender Parameter kann dem Skript übergeben werden:
- __imperia_node_id Die NodeID des Dokuments.
oce_meta#
Dort können die gesetzten Meta-Informationen des Dokuments nur eingesehen werden, nicht bearbeitet (im Gegensatz zu Info).
oce_linkcheck#
Dieses Skript überprüft alle internen und externen Links in einem Dokument.
Vorausgesetztes Dokumenten-Zugriffsrecht
- read
Folgende Parameter können dem Skript übergeben werden:
- __imperia_node_id Die NodeID des Dokuments.
- finished Wird dieser Parameter auf
1
(true) gesetzt, wird die letzte beendete Version überprüft und nicht standardmäßig die letzte bearbeitete Version. - __imperia_quick_edit Wird dieser Parameter gesetzt, werden alle Workflow-Plug-ins, die OCE nicht unterstützen, ausgelassen.
oce_reparse#
Hinweis
Dieses Skript ist auch mit der OCE-Funktion Erneut freischalten verknüpft.
Dieses Skript reparst das Dokument, sodass eventuelle Änderungen am Template übernommen werden. Optional kann das Freischalten auf alle Zielsysteme erzwungen werden.
Vorausgesetzte Dokumenten-Zugriffsrechte
- read
- write
- create
Folgende Parameter können dem Skript übergeben werden:
- __imperia_node_id Die NodeID des Dokuments.
- finished Wird dieser Parameter auf
1
(true) gesetzt, wird die letzte beendete Version überprüft und nicht standardmäßig die letzte bearbeitete Version. - publish Wird dieser Parameter auf
true
gesetzt, werden erfolgreich reparste Dokumente automatisch auf die Zielsysteme freigeschaltet. Dies geschieht jedoch nur, wenn das Dokument vorher schon einmal freigeschaltet wurde. - publish_all Wird dieser Parameter gesetzt, wird das Dokument inklusive dessen Copy-Pages mit einer kurzen URL z.B.
&publish_job=/publish/5302/129353/uri:all
freigeschaltet.
oce_unpublish#
Dieses Skript entfernt das Dokument von allen Zielsystemen.
Vorausgesetzte Dokumenten-Zugriffsrechte
- read
- create
Folgende Parameter können dem Skript übergeben werden:
- __imperia_node_id Die NodeID des Dokuments.
- directory Dies ist das Verzeichnis auf dem Zielsystem.
- filename Dies ist der Dateiname des Dokuments im Verzeichnis des Zielsystems.
oce_validate#
Dieses Skript validiert Dokumente auf korrektes HTML gegen validator.w3.org. Dabei wird der aktuelle Pfad zur Validierung abgefragt.
Vorausgesetzte Dokumenten-Zugriffsrechte
- read
Folgender Parameter können dem Skript übergeben werden:
- URL Da für die Validierung ein externer Dienst genutzt wird, wird der komplette URI des Dokuments auf dem Zielsystem benötigt. Um den URI zu erweitern, nutzen Sie folgende Befehle:
<!--LIVE:ABSOLUTE_URI-->
oder<!--LIVE-CC:ABSOLUTE_URI-->
. Dieser Befehl gibt die URL des Zielsystems, auf dem man sich gerade befindet, aus dem Meta-Info-Objekt zurück.
oce_adoptAllRoles#
Hinweis
Aus historischen Gründen wird in diesem Fall die Bezeichnung "Rollen" verwendet. Hierbei geht es allerdings um die "Gruppen", die ein Benutzer annehmen kann.
Dieses Skript ermöglicht es dem Benutzer, die ihm/ihr verfügbaren Gruppen anzunehmen. Wenn die Funktion aktiviert ist, ist der Button Alle Rollen annehmen immer sichtbar in der Toolbar. Wenn der Benutzer allerdings bereits alle möglichen Gruppen angenommen hat, wird die Funktion ausgegraut.
Wenn aktiv, verweist die Funktion auf /imp/roles/adopt_role/all
. Der Dialog Verfügbare Gruppen wird in einem neuen Fenster/Tab geöffnet (falls so konfiguriert). Sobald der Benutzer alle Gruppen angenommen hat, gelangt er/sie wieder auf das Dashboard; die OCE-Ttolbar wird automatisch aktualisiert.
Um diese Funktion zu aktiveren, muss eine Bedingung gesetzt werden. Standardmäßig wird folgende Bedingung gesetzt:
NOT <!--HAS_ALL_ROLES-->