Es sollen Informationen über einen oder mehrere Rahmen in den Datenbestand gesichert werden. Diese Informationen können zu einem späteren Zeitpunkt abgerufen und wieder auf die entsprechenden Rahmen angewendet werden.
Es werden eine Reihe von Rahmeninformationen in den Datenbestand abgelegt, inklusive der Informationen, aus welchem Dokument die Rahmeninformationen stammen.
Da je nach Anforderungen eine eindeutige Zuordnung der Rahmeninformationen zu einem Rahmen nicht immer gleich stattfinden kann, gibt es die Möglichkeit, Suchkriterien beim Schreiben (zum überschreiben bestehender Informationen) und beim Wiederherstellen zu definieren. Außerdem kann bestimmt werden, welches Verhalten bei mehreren Suchergebnissen verwendet wird.
Die Verwendung der Frame Infos erfolgt ausschließlich über cScript-Funktionen und die Gestaltungsregel "Rahmengeometrie setzen".
Die Daten der Frame-Infos werden wie folgt gespeichert:
Folgende Informationen werden in der Datenstruktur für einen Rahmen abgelegt:
Attribut Publishing Server | Attribut XML, ODBC, SOAP | Datentyp | Beschreibung |
PLACEHOLDER_ID | placeholderId | Integer (not null) | ID des Rahmen Platzhalters. Muss nicht zwingend gesetzt sein. Falls nicht wird 0 gesetzt. |
FRAME_UID | frameUID | Integer (not null) | InDesign® Rahmen ID |
COMETGROUP_ID | cometGroupID | Integer (not null) | ID der comet Gruppe, die in InDesign® vergeben wird.Falls der Rahmen zu keiner comet Gruppe gehört, wird 0 gesetzt. |
TEMPLATE_ID | templateId | Integer (not null) | Mit welchem Template (pageitem) der Rahmen aufgebaut wurde (Haupt Id bei Smart Template). Sollte der Rahmen ohne Template erstellt worden sein, wird 0 gesetzt. |
FRAME_LABEL | frameLabel | varchar(255) (null) | Wird in der Palette "Templateverhalte" gesetzt. Wird nur gesetzt, falls Rahmen über Template aufgebaut wurde und der Rahmen eine Kennung hat. |
PUBPLAN_DOCUMENT_ID | publicationPlannerDocumentId | Integer (not null) | Verweis auf das Dokument im planner (puc_document). |
DOCUMENT | documentName | varchar(255) (null) | Dateiname des InDesign® Dokumentes aus denen die Information geschrieben wurde. |
PATH | documentPath | varchar(1000) (null) | Pfad des Ordners, in dem sich das InDesign® Dokument befindet aus denen die Informationen geschrieben wurde. |
PAGE | page | varchar(255) (null) | Seite auf den der Rahmen im Dokument steht. Dies ist wichtig, wenn ein Template über mehrere Seiten umbricht und ein Rahmen wiederholt wird und mehrmals zurückgeschrieben wird. Hinweis: Die Zählung der Seiten beginnt bei 1, nicht bei der Paginierung des Dokumentes in einer Publikation. |
LAYER | layer | varchar(255) (null) | Ebene des Rahmens. |
SCRIPT_TAGS | scriptTags | CLOB | XML Struktur, die die Tags eines Rahmens enthält (siehe Palette priint:comet plugins "Rahmenetiketten"). z.B.:
<scriptTags>
<scriptTag>
<key>AAA</key>
<value>BBB</value>
</scriptTag>
<scriptTag>
<key>FFF</key>
<value>HHH</value>
</scriptTag>
</scriptTags>
|
FRAMEINFO_ID | frameInfoId | varchar(255) (null) | Wert des Rahmenetikettes "frameInfoID" wenn vorhanden. |
RECORD_ID | recordId | Integer (null) | Record ID des Rahmenplatzhalters |
RECORD_ID2 | recordId2 | Integer (null) | Record ID 2 des Rahmenplatzhalters |
RECORD_ID3 | recordId3 | Integer (null) | Record ID 3 des Rahmenplatzhalters |
RECORD_STRING_ID | recordStringId | varchar(255) (null) | Record String ID des Rahmenplatzhalters |
OBJ_ENTITY_CLASS | objectEntityClass | varchar(255) (null) | ObjectEntityClass des Rahmenplatzhalters |
OBJ_ENTITY_ID | objectEntityId | varchar(255) (null) | ObjectEntityId des Rahmenplatzhalters |
OBJ_GRP_ID | objectGroupId | varchar(255) (null) | ObjectGroupId des Rahmenplatzhalters |
OBJ_ID | objectId | varchar(255) (null) | ObjectId des Rahmenplatzhalters |
PARENT_OBJ_ENTITY_CLASS | parentObjectEntityClass | varchar(255) (null) | ParentObjectEntityClass des Rahmenplatzhalters |
PARENT_OBJ_ENTITY_ID | parentObjectEntityId | varchar(255) (null) | ParentObjectEntityId des Rahmenplatzhalters |
PARENT_OBJ_GRP_ID | parentObjectGroupId | varchar(255) (null) | ParentObjectGroupId des Rahmenplatzhalters |
PARENT_OBJ_ID | parentObjectId | varchar(255) (null) | ParentObjectId des Rahmenplatzhalters |
BUILT_BY_RECORD_ID | builtByRecordId | Integer(null) | |
BUILT_BY_RECORD_ID2 | builtByRecordId2 | Integer(null) | |
BUILT_BY_RECORD_ID3 | builtByRecordId3 | Integer(null) | |
BUILT_BY_RECORD_STRING_ID | builtByRecordStringId | varchar(255) (null) | |
BUILT_BY_OBJ_ENTITY_CLASS | builtByObjectEntityClass | varchar(255) (null) | |
BUILT_BY_OBJ_ENTITY_ID | builtByObjectEntityId | varchar(255) (null) | |
BUILT_BY_OBJ_GRP_ID | builtByObjectGroupId | varchar(255) (null) | |
BUILT_BY_OBJ_ID | builtByObjectId | varchar(255) (null) | |
BUILT_BY_OBJ_GRP_ID | builtByObjectGroupId | varchar(255) (null) | |
BUILT_BY_PARENT_OBJ_ENTITY_CLASS | builtByParentObjectEntityClass | varchar(255) (null) | |
BUILT_BY_PARENT_OBJ_ENTITY_ID | builtByParentObjectEntityId | varchar(255) (null) | |
BUILT_BY_PARENT_OBJ_GRP_ID | builtByParentObjectGroupId | varchar(255) (null) | |
BUILT_BY_PARENT_OBJ_ID | builtByParentObjectId | varchar(255) (null) | |
PLACEHOLDER_INFO1 | placeholderInfo1 | varchar(255) (null) | PlaceholderInfo1 des Rahmenplatzhalters |
PLACEHOLDER_INFO2 | placeholderInfo2 | varchar(255) (null) | PlaceholderInfo2 des Rahmenplatzhalters |
ASSORTMENT | assortment | varchar(255) (null) | |
COUNTRY | country | varchar(255) (null) | |
LANGUAGE | language | varchar(255) (null) | |
WELL | well | varchar(255) (null) | |
X_POS_ABSOLUTE | xPositionAbsolute | Float (not null) | X-Position linke obere Ecke des InDesign® Dokumentes (Angabe in Punkten) |
Y_POS_ABSOLUTE | yPositionAbsolute | Float (not null) | Y-Position linke obere Ecke des InDesign® Dokumentes (Angabe in Punkten) |
X_POS_RELATIVE | xPositionRelative | Float (null) | X-Position relativ zur linken obere Ecke der comet Gruppe (Angabe in Punkten). Falls keine comet Gruppe dann wird 0 gesetzt. |
Y_POS_RELATIVE | yPositionRelative | Float (null) | Y-Position relativ zur linken obere Ecke der comet Gruppe (Angabe in Punkten). Falls keine comet Gruppe dann wird 0 gesetzt. |
WIDTH | width | Float (not null) | Breite des Rahmens (Angabe in Punkten) |
HEIGHT | height | Float (not null) | Höhe des Rahmens (Angabe in Punkten) |
FRAME_ROTATION | frameRotation | Float (not null) | Drehung des Rahmens |
FRAME_SKEW | frameSkew | Float (not null) | Scherwinkel des Rahmens |
FRAME_TYPE | frameType | varchar(30) (not null) | Typ des Rahmens. Mögliche Werte: "text", "graphic", "unknown" |
OBJECT_STYLE | objectStyle | varchar(255) (null) | Name des Objektstils des Rahmens |
IMAGE_X_OFFSET | imageXOffset | Float (null) | X-Offset des Bildes innerhalb des Bildrahmens (Angabe in Punkten).Hinweis: nur bei Bildrahmen |
IMAGE_Y_OFFSET | imageYOffset | Float (null) | Y-Offset des Bildes innerhalb des Bildrahmens (Angabe in Punkten).Hinweis: nur bei Bildrahmen |
IMAGE_X_SCALE | imageXScale | Float (null) | X-Skalierungsfaktor des Bildes innerhalb des Bildrahmens.Hinweis: nur bei Bildrahmen |
IMAGE_Y_SCALE | imageYScale | Float (null) | Y-Skalierungsfaktor des Bildes innerhalb des Bildrahmens.Hinweis: nur bei Bildrahmen |
IMAGE_ROTATION | imageRotation | Float (null) | Drehung des Bildes innerhalb des Bildrahmens.Hinweis: nur bei Bildrahmen |
IMAGE_SKEW | imageSkew | Float (null) | Scherwinkel des Bildes innerhalb des Bildrahmens.Hinweis: nur bei Bildrahmen |
CREATEDON | createdOn | Datetime | Wann wurde die Rahmeninformation zum ersten mal geschrieben. |
UPDATEDON | updatedOn | Datetime | Wann wurde die Rahmeninformation zum letzten mal aktualisiert. |
CREATEDBY | createdBy | varchar(50) (not null) | Benutzer, der die Rahmeninformation geschrieben hat. |
UPDATEDBY | updatedBy | varchar(50) (not null) | Benutzer, der die Rahmeninformation zuletzt aktualisiert hat. |
Um gespeicherte Rahmeninformationen einem Rahmen in InDesign® zuordnen zu können, sind je nach Projekt unterschiedliche Suchkriterien notwendig. Die Suchkriterien sind aufgeteilt in Suchmenge (Filtert Dokumente) und Rahmensuchmethode (Filtert Rahmeninformationen). Alle relevanten cScript-Funktionen und die Gestaltungsregel "Rahmengeometrie setzen" erwarten beide Parameter. Erfüllt ein gespeicherter Datensatz alle Suchkriterien (es stimmen die Daten mit denen des aktuellen InDesign® Rahmens überein), ist der passende Datensatz gefunden.
Die Suchmenge beschränkt die Suche auf eine bestimmte Menge von Dokumenten. Die Suchmenge entspricht dem Skriptparameter docType. Folgende Werte stehen zur Verfügung:
Name | Bezeichner im Skript |
Aktuelles Dokument | kLocalDoc |
Die Rahmensuchkriterien geben an, welche Werte eines Datensatzes mit denen des aktuellen InDesign® Rahmens verglichen werden sollen. Die Rahmensuchkriterien entsprechen dem Skriptparameter frameSearchFlags. Folgende Rahmensuchkriterien stehen zur Verfügung:
Name | Bezeichner im Skript | Hinweis |
Default | kUseDefault | |
templateId | kUseTemplateId | |
frameLabel | kUseFrameLabel | |
recordStringId | kUseRecordStringId | |
buildByRecordStringId | kUseBuildByRecordStringId | |
placeHolderId | kUsePlaceholderId | |
frameType | kUseFrameType | |
scriptTags | kUseScriptTags | |
frameUID | kUseFrameUID | |
placeHolderInfo1 | kUsePlaceholderInfo1 | |
placeHolderInfo2 | kUsePlaceholderInfo2 | |
placeHolderInfo2 | kUsePlaceholderInfo2 | |
frameInfoId | kUseFrameInfoId | |
recordId | kUseRecordId | Nicht bei Pubserver Verbindungen verfügbar! |
recordId2 | kUseRecordId2 | |
recordId3 | kUseRecordId3 | |
buildByRecordId | kUseBuildByRecordId | |
buildByRecordId2 | kUseBuildByRecordId2 | |
buildByRecordId3 | kUseBuildByRecordId3 |
Hinweis:Der Parameter kUseDefault entspricht kUseTemplateId + kUseFrameLabel + kUseRecordStringId + kUseBuildByRecordStringId.
Hinweis:Der Parameter kUseFrameInfoId verwendet zur identifizierung das Rahmenetikett (Scripttag) mit dem Key "frameInfoId". Dieses muss zurvor gesetzt werden. Hierzu wird die Hilfsfunktion frame::set_frameinfoid zur Verfügung gestellt.
Alle Suchkriterien können beliebig miteinander in cScript als Summe kombiniert werden.
Wenn die Suchkriterien auf mehrere gespeicherte Datensätze zutreffen, kann über den Skriptparameter conflictBehavior entschieden werden, was geschieht. Folgende Werte stehen dafür zur Verfügung:
Name | Bezeichner im Skript | Beschreibung |
Ignorieren | kThrowError | Ignoriert den Rahmen und führt keine Aktion durch. Zusätzlich wird ein Fehler in das Logfile geschrieben. |
Letze bevorzugen | kUseLatest | Verwendet den Datensatz mit dem jüngsten updatedOn Datum. |
Beim Wiederherstellen von Frame Infos müssen nicht zwingend alle gespeicherten Daten auf den Rahmen angewendet werden. Der Skriptparameter propertyFlags bestimmt, welche gespeicherten Informationen angewendet werden. Folgende Werte stehen dafür zur Verfügung:
Datenfeld-Name | Bezeichner im Skript |
SCRIPT_TAGS | kApplyScriptTags |
PAGE | kApplyPage |
LAYER | kApplyLayer |
X_POS_ABSOLUTE | kApplyXPosAbs |
Y_POS_ABSOLUTE | kApplyYPosAbs |
X_POS_RELATIVE | kApplyXPosRel |
Y_POS_RELATIVE | kApplyYPosRel |
WIDTH | kApplyWidth |
HEIGHT | kApplyHeight |
FRAME_ROTATION | kApplyFrameRotate |
FRAME_SKEW | kApplyFrameSkew |
IMAGE_X_OFFSET | kApplyImageXOffset |
IMAGE_Y_OFFSET | kApplyImageYOffset |
IMAGE_X_SCALE | kApplyImageXScale |
IMAGE_Y_SCALE | kApplyImageYScale |
IMAGE_ROTATION | kApplyImageRotate |
IMAGE_SKEW | kApplyImageSkew |
OBJECT_STYLE | kApplyObjectStyle |
Es stehen cScript-Funktionen zum Schreiben und Wiederherstellen für einzelne Rahmen, Rahmen einer Comet Gruppe, beliebige Rahmenlisten und für Rahmen eines Dokumentes zur Verfügung.
Um Konstanten wie z.B. kApplyWidth oder kUseFrameLabel zu verwenden, muss die Datei internal/frameinfos.h in Ihren cScripten included werden.
Folgende Funktionen zum Schreiben von Frame Infos stehen zur Verfügung:
Folgende Funktionen zum Wiederherstellen von Frame Infos stehen zur Verfügung:
Um Frame Infos wiederherzustellen wird die Gestaltungsregel "Rahmengeometrie setzen" zur Verfügung gestellt. Ihre Parameter entsprechen wie folgt den Skriptparametern:
Name | Skriptparameter |
Suchmenge | documentType |
Suchmethode | frameSearchFlags |
Wiederherstellen | propertyFlags |
Bei Konflikten | conflictBehavior |
Zur Verwendung der Frame Infos ist eine Erweiterung des Datenmodells notwendig. Folgendes MySQL Statement legt die notwendige Tabelle an:
CREATE TABLE `comet_frameinfo` ( `ID` int(30) NOT NULL AUTO_INCREMENT, `placeholderId` int(30) NOT NULL DEFAULT '0', `frameUID` int(30) NOT NULL, `cometGroupId` int(30) NOT NULL DEFAULT '0', `templateId` int(30) NOT NULL, `frameLabel` varchar(255) DEFAULT NULL, `publicationPlannerDocumentId` varchar(255) DEFAULT NULL, `documentName` varchar(255) DEFAULT NULL, `documentPath` varchar(1000) DEFAULT NULL, `page` int(30) DEFAULT NULL, `layer` varchar(255) DEFAULT NULL, `scriptTags` text, `recordId` int(30) DEFAULT NULL, `recordId2` int(30) DEFAULT NULL, `recordId3` int(30) DEFAULT NULL, `recordStringId` varchar(255) DEFAULT NULL, `objectEntityClass` varchar(255) DEFAULT NULL, `objectEntityId` varchar(255) DEFAULT NULL, `objectGroupId` varchar(255) DEFAULT NULL, `objectId` varchar(255) DEFAULT NULL, `parentObjectEntityClass` varchar(255) DEFAULT NULL, `parentObjectEntityId` varchar(255) DEFAULT NULL, `parentObjectGroupId` varchar(255) DEFAULT NULL, `parentObjectId` varchar(255) DEFAULT NULL, `builtByRecordId` int(30) DEFAULT NULL, `builtByRecordId2` int(30) DEFAULT NULL, `builtByRecordId3` int(30) DEFAULT NULL, `builtByRecordStringId` varchar(255) DEFAULT NULL, `builtByObjectEntityClass` varchar(255) DEFAULT NULL, `builtByObjectEntityId` varchar(255) DEFAULT NULL, `builtByObjectGroupId` varchar(255) DEFAULT NULL, `builtByObjectId` varchar(255) DEFAULT NULL, `builtByParentObjectEntityClass` varchar(255) DEFAULT NULL, `builtByParentObjectEntityId` varchar(255) DEFAULT NULL, `builtByParentObjectGroupId` varchar(255) DEFAULT NULL, `builtByParentObjectId` varchar(255) DEFAULT NULL, `placeholderInfo1` varchar(255) DEFAULT NULL, `placeholderInfo2` varchar(255) DEFAULT NULL, `assortment` varchar(255) DEFAULT NULL, `country` varchar(255) DEFAULT NULL, `language` varchar(255) DEFAULT NULL, `well` varchar(255) DEFAULT NULL, `xPositionAbsolute` float NOT NULL, `yPositionAbsolute` float NOT NULL, `xPositionRelative` float DEFAULT NULL, `yPositionRelative` float DEFAULT NULL, `width` float NOT NULL, `height` float NOT NULL, `frameRotation` float NOT NULL DEFAULT '0', `frameSkew` float NOT NULL DEFAULT '0', `frameType` varchar(30) NOT NULL, `objectStyle` varchar(255) DEFAULT NULL, `imageXOffset` float DEFAULT NULL, `imageYOffset` float DEFAULT NULL, `imageXScale` float DEFAULT NULL, `imageYScale` float DEFAULT NULL, `imageRotation` float DEFAULT NULL, `imageSkew` float DEFAULT NULL, `createdOn` datetime DEFAULT NULL, `updatedOn` datetime DEFAULT NULL, `createdBy` varchar(50) DEFAULT NULL, `updatedBy` varchar(50) DEFAULT NULL, `frameInfoId` varchar(255) DEFAULT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;