Skip to content

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:

  1. Löschen Sie die Datei site/secure/sysid in Ihrem Testsystem.
  2. Melden Sie sich anschließend an dem System an. Dabei wird automatisch eine neue SystemID generiert.
  3. 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 von Meta.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:

  1. Öffnen Sie die OCE-Konfiguration über Menü->System->One-Click-Edit. Die Seite "ONE-CLICK-EDIT KONFIGURATION" erscheint: Seite "ONE-CLICK-EDIT KONFIGURATION"
  2. Klicken Sie auf Neuen Eintrag anlegen. Das Dialogfenster "NEUER EINTRAG" erscheint.
    Im Folgenden werden die Optionen bzw. Eingabefelder anhand des OCE-Buttons "Bearbeiten" erläutert:
    KONFIGURATION BSP. Bearbeiten

    • "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
      • Einen URL mit einem vorangestellten "/". imperia interpretiert dies relativ zum DOCUMENT-ROOT-Pfad :
        /cgi-bin/my_script.pl?param=1
      • Einen voll ausgeschriebenen URL:
        http://validator.w3.org/check?uri=<!--LIVE-CC:ABSOLUTE_URI-->
    • "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#

Bitte beachten

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#

Bitte beachten

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#

Bitte beachten

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 Wert 1, unabhängig von seinem vorhergehenden Wert. Dieser Parameter wird vom MetaEdit-Plug-in verarbeitet. Ist er vorhanden und nicht 0, wird <!--XX-METAMODE--> zu true 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.

    Bitte beachten

    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#

Bitte beachten

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#

Bitte beachten

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