Vorlagen kopieren

Die folgende Prozedur, copyObjClass, erstellt eine neue Vorlage aus einer bestehenden, indem die Werte der setKeys der bestehenden Vorlage in die neue Vorlage geschrieben werden. Die Prozedur hat zwei Argumente, die Namen der bestehenden und der zu erzeugenden Vorlagen (in dieser Reihenfolge).

# $Id: copyObjClass.tcl, v. 0.9 2010-11-23 13:51:46
#
# Last changed: 2010-11-23
# Use at your own risk!
#
# Purpose:
#   Creates a new file fromat from an existing one
# Parameters:
#   Name of source file format,
#   Name of file format to create

proc copyObjClass {sourceClassName destClassName} {
  set sourceClassType [objClass withName $sourceClassName get objType]

  set setKeys [objClass withName $sourceClassName get setKeys]
  set nameIndex [lsearch $setKeys {name}]
  set setKeys [lreplace $setKeys $nameIndex $nameIndex]
  set values [eval [list objClass withName $sourceClassName mget] $setKeys]

  set setValues [list]
  foreach key $setKeys value $values {
    lappend setValues $key $value
  }

  eval [list objClass create name $destClassName objType $sourceClassType] $setValues
}

Speichern Sie bitte das Skript in einer Tcl-Datei ab. Öffnen Sie eine Tcl-Shell, stellen Sie eine Verbindung zum Content Manager her und lesen Sie die Tcl-Datei mit dem Befehl source ein. Nun können Sie die Prozedur verwenden. Beispiel:

copyObjClass articleDocument newsDocument