Wenn Sie einen zusätzlichen Menübefehl als Tcl-Prozedur erstellt haben, sind die folgenden Schritte erforderlich, um diesen Befehl in den Content-Navigator einzubinden:
Legen Sie Ihre Prozedur als Skript-Datei im
instanzenspezifischen Verzeichnis script/cm/serverCmds
ab.
Sorgen Sie dafür, dass die Prozedur im sicheren Tcl-Interpreter registriert wird. Sie können den entsprechenden Befehl ans Ende der Skriptdatei hängen. Beispiel:
safeInterp alias serverProcName clientProcName
Dieser Schritt ist nur erforderlich, wenn die Tcl-Prozedur
kein Assistent ist, also das Property dialog
den Wert
false
hat.
Registrieren Sie den
Menübefehl im Abschnitt beans
der Datei
config/contentMenu.xml
, indem Sie ein entsprechendes Bean
hinzufügen. Geben Sie als command
-Property den
Client-Alias an, unter dem die Prozedur im sicheren Interpreter
registriert wurde.
Referenzieren Sie das erstellte Bean im Abschnitt
menuBar
der Datei config/contentMenu.xml
, um
den Menübefehl an der gewünschten Stelle ins GUI-Menü einzubinden. Sie
können den Befehl zusätzlich oder alternativ in den Abschnitt
toolBar
einbinden, damit er in der Werkzeugleiste
verfügbar ist.
Starten Sie den CM und den Trifork mit bin/rc.npsd
restart CM trifork
neu.
Hinweise zur Erstellung der Skriptdatei für den Menübefehl
Wenn ein zusätzlicher Menübefehl aufgerufen wird, der mit dem
property name="command"
-Element auf eine Tcl-Prozedur verweist,
so übergibt der Content Manager dieser Prozedur je nach Geltungsbereich die
folgenden Argumente. Der Geltungsbereich ergibt sich aus dem Element
property name="selectionType"
des betreffenden Beans. Als value
dieses Propertys kann
einer der folgenden Werte eingetragen werden kann:
Geltungsbereich | Argumente |
---|---|
none (global) |
Keine |
single (eine Datei) |
Die ID der betreffenden Datei als einziges Argument. |
extended (beliebig viele Dateien) |
Eine Liste, die die IDs der betreffenden Dateien enthält, als einziges Argument. |
Die Prozedur muss so definiert werden, dass die Argumente als Liste verfügbar sind, also mit args
:
proc tclProcedureName {args} { foreach i $args { } ... }