Der Content Navigator kann um zusätzliche Befehle erweitert werden, um Redakteuren und Administratoren die Arbeit zu erleichtern.
Neben dem eigentlichen Code in Tcl oder Java, mit dem die Funktionen eines zusätzlichen Befehls implementiert werden, müssen die Eigenschaften des Befehls (beispielsweise ein Name, mehrsprachige Titel, erforderliche Rechte) definiert werden. Wo und in welcher Form dies vorgenommen wird, ist in diesem Dokument beschrieben. Anschließend muss der Befehl ins Menü oder in die Werkzeugleiste oder in die Vorschau des Content Navigators eingebunden werden, damit er verwendet werden kann.
Es gibt drei Typen zusätzlicher Befehle:
Zusätzlicher Befehl (Typ) | Kurzbeschreibung |
---|---|
Tcl-Prozedur | Tcl-Skript, dessen Ausgabe im Browser angezeigt wird. |
Wizard (Assistent) | Tcl-Skript, das GUI-Dialoge erzeugt und steuert. |
Servlet-Aufruf | JSP oder Servlet, das innerhalb der Session abläuft und lesend auf sie zugreifen kann. |
Zusätzliche Befehle können global, d. h. unabhängig von Dateien, für
genau eine Datei oder eine beliebige Anzahl von Dateien verfügbar gemacht
werden. Jeder Befehl ist ein bean
-Eintrag in der
Konfigurationsdatei itemRegistry.xml
im
config
-Verzeichnis der GUI-Web-Applikation, oder der Datei
contentMenu.xml
, die sich im instanzenspezifischen
config
-Verzeichnis befindet. Beispiel:
<bean id="editImageWizard" class="com.infopark.cm.htmlgui.browse.menuaction.CustomCommand"> <property name="titles"><map> <entry key="en"><value>Image Editing</value></entry> <entry key="de"><value>Bildbearbeitung</value></entry> </map> </property> <property name="selectionType"><value>single</value></property> <property name="requiredObjectPermissions"><set> <value>write</value> <value>createChildren</value></set> </property> <property name="command"> <value>editImage::render</value> </property> <property name="dialog"><value>true</value></property> <property name="objectTypes"><set> <value>image</value></set> </property> <property name="necessaryPermission"> <value>wizardPermission</value> </property> </bean>
Die Elemente und Attribute in einer solchen Definition haben die folgende Bedeutung:
bean
: Definiert den
kundenspezifischen Befehl. Die anzugebende Klasse ist
für alle Befehle gleich.
id
: ein eindeutiger Bezeichner.class
: muss
com.infopark.cm.htmlgui.browse.menuaction.CustomCommand
sein.property name="titles"
: definiert im Unterelement
map
die im GUI angezeigten Titel in den verfügbaren
Sprachen. Diese Sprachen sind in Dateien mit dem Namen
localizer.xy.xml
(ersetzen Sie xy
durch das
Sprachkürzel) im Verzeichnis share
enthalten.property name="selectionType"
: Definiert den
Geltungsbereich des Befehls. Im Unterelement value
kann
angegeben werden:
none
für globale Befehle,single
für Befehle, die auf
genau eine Datei angewendet werden können,extended
für Befehle, die
auf eine beliebige Anzahl von Dateien angewendet
werden können.property name="requiredObjectPermissions"
: Definiert die dateispezifischen Rechte, nach denen dateispezifische
Menübefehle (mit dem selectionType
single
oder
extended
) gefiltert werden. single
-Menübefehle werden
nicht angeboten, wenn die Rechte nicht vorhanden sind,
extended
-Menübefehle werden angeboten, dem dazugehörenden
Befehlsskript wird jedoch die gefilterte und nicht die ursprüngliche Dateiliste
übergeben. Es können die Rechte write
, root
und
createChildren
angegeben werden.property name="necessaryPermission"
: Definiert im Unterelement
value
das globale Recht, das ein Benutzer haben muss, damit ihm dieser
Befehl angeboten wird und er ihn ausführen kann. Es kann eines der vordefinierten
globalen
Rechte oder ein selbst definiertes globales Recht wie
wizardPermission
angegeben werden.property name="command"
: Definiert im Unterelement
value
den Namen der auszuführenden Tcl-Prozedur, wenn der
kundenspezifische Befehl aufgerufen wird. Die Prozedur muss im
instanzenspezifischen Verzeichnis script/cm/serverCmds
oder im entsprechenden Verzeichnis unterhalb von
FionaDir/share
abgelegt sein.property name="objectClasses"
: Definiert im
Unterelement set
eine Menge von Dateivorlagen, auf die der
Befehl beschränkt werden soll. Innerhalb von set
wird jede
Dateivorlage in einem value
-Element angegeben. Sind keine
Dateivorlagen angegeben, so ist der Befehl nicht auf bestimmte
Dateivorlagen beschränkt.property name="objectTypes"
: Analog zur
Einschränkung auf Dateivorlagen lassen sich Befehle auf eine Auswahl
der fünf Dateitypen beschränken.property name="servletURI"
: Legt fest, dass der
Befehl als Servlet realisiert ist. Der URI des Servlets, relativ zur
GUI-Webapplikation, wird im Unterelement value
angegeben.
Es darf nicht gleichzeitig ein property
-Element mit
name="dialog"
existieren.property name="dialog"
: Legt fest, dass der Befehl
als Assistent realisiert ist. Es darf nicht gleichzeitig ein
property
-Element mit name="servletURI"
existieren. Die Tcl-Prozedur, die den Assistenten realisiert, muss im
instanzenspezifischen Verzeichnis script/cm/serverCmds
oder im entsprechenden Verzeichnis unterhalb von FionaDir/share
abgelegt sein.property name="dialogSize"
:
Legt die Größe des Dialogfensters fest. Mögliche Werte sind:
tiny
: sehr klein (wie beispielsweise der
Dialog zum Ändern des Passworts)small
: klein (wie der Dialog zum Einstellen
der lokalen Anwendungen)large
: groß (wie das Fenster, das beim Menüpunkt
Hilfe > Über CMS Fiona
erscheint)parent
: dieselbe Größe wie das Fenster, aus dem
der Assistent aufgerufen wurde – in der Regel das Hauptfensternone
: kein Fenster; Ausgaben des Assistenten
werden ignoriertproperty name="outputsHtml"
: Gibt an, ob der
Tcl-Code HTML-Text zurückgibt (true
oder
false
). Wenn true
, werden HTML-spezifische
Zeichen nicht umkodiert und die Elemente html
,
body
und head
dürfen nicht auftreten.property name="displayHeaderAndFooter"
: Gibt an,
ob die Kopf- und Fußleiste dargestellt werden sollen oder
nicht (true
oder false
).
Fehlt diese Angabe, so wird true
angenommen und die Kopf- und Fußleiste werden
dargestellt. Werden Kopf- und Fußleiste ausgeblendet,
so werden nicht nur die Standard-Buttons, sondern auch
Buttons, die mit Hilfe des
npsButton
-Tags
innerhalb der Fußleiste (inButtonArea
)
erzeugt wurden, ausgeblendet.property name="descriptions"
und
property name="sortKey"
: Diese optionalen Elemente beeinflussen die
Darstellung innerhalb des
Startbereichs
Assistenten-Auswahl. Analog zu
titles
legt descriptions
im
Unterelement map
die angezeigten
Untertitel in mehreren Sprachen fest. Mit Hilfe von
sortKey
kann die Reihenfolge der
Assistenten in der Auswahlliste geändert werden.