Das Tutorial führt Sie in Einzelschritten von der Erstellung eines Templates zum Seitenaufbau von Produkten.
Zeitaufwand 3-4 Stunden. Wenn Sie die im Testcase definierten Templates und Seitentemplates und die damit aufgebauten Dokumente des Ordners Finish verwenden - 1/2 bis 1 Stunde. Aber auch in diesem Fall lohnt es sich mglw., das Dokument ab Palette Produkte des Dokumentes zu lesen.
Sie benötigen mindestens:
InDesign®-Dokumente sind immer nur mit der InDesign®-Version kompatibel, mit der sie zuletzt gesichert wurden.
Ältere InDesigns können neuere InDesign®-Dokumente nicht öffnen. Inziwschen bietet Adobe dafür zwar eine halbautomatische Konvertierung an, bei der das Dokument auf einen Adobe-Server hochgeladen wird und dort über IDML konvertiert und zurückgesendet wird - für die praktische Arbeit mit Templates ist das aber keine Lösung.
Die Unfähigkeit, neuere Dokumentversionen öffnen zu können, ist inbesondere beim Sichern von Templates und Musterdokumenten störend. Achten Sie bitte immer darauf, Dokumente und Templates in einer InDesign®-Version zu speichern, die auch im Rest Ihres Unternehmens verwendet wird.
Neuere InDesigns können InDesign®-Dokumente der letzten Vorgängerversion öffnen. In der Regel sind Dokumente auch über mehrere Versionen rückwärts fehlerfrei zu öffnen - aber eine Garantie dafür gibt Adobe nicht. Beim Öffnen älterer Dokumentes werden die Dokumente automatisch in die aktuelle InDesign-Version konvertiert und als neue, ungesicherte Dokumente geöffnet.
Die automatische Konvertierung ist besonders im Serverbetrieb störend: Da die konvertierten Dokumente keinen Dateopfad haben, werden die Funktionen document::save, app.comet.documentSave und document.save zum Sichern hier fehlschlagen. Achten Sie deshalb bitte immer darauf, dass Dokumente und Musterdokumente, die automatisch bearbeitet werden sollen, in der aktuellen InDesign®-Version vorliegen!
Für einen vollständigen Aufbau benötigen Sie Templates, die außer einer linken und einer rechten Variante auch jeweils einen Nachfolger haben. Die Nachfolger werden benötigt, wenn Seitenelemente ihren Inhalt fortsetzen können und der eingesetzte Text des Platzhalters zu lang für dieses Element ist. Die Erstellung von Smart-Templates wird weiter unten beschrieben.
Um Smart-Templates anlegen zu können, muss Ihr Datenpool entsprechend konfugiert sein, mehr dazu finden Sie hier. Eine ausführliche Beschreibung der Smart- oder Fortsetzungstemplates finden Sie hier.
Beim Seitenaufbau werden für die Reorganisation wichtige Informationen in den Produktrahmen hinterlegt. Diese Informationen werden erst ab Comet 3.2 R2100 geschrieben. Alle Produkte des Dokumentes benötigen diese Informationen. Sie benötigen also mind. v3.2 R2100 der Comet-Plugins.
Seitenaufbau und -reorganisation können in allen von Comet unterstützten Datenverbindungen verwendet werden. Spezielle Anpassungen sind nicht nötig.
Das Datenmodell muss die folgenden Features unterstützen können :
Mehr Informationen zu den Erweiterungen des Comet-Standarddatenmodelles finden Sie hier.
Stellen Sie sicher, dass die folgenden Attribute/Dateien verfügbar sind. Im mitgelieferten Datenordner xmldata (siehe unten) finden Sie jeweils die gültigen Definitionen.
Mehr Informationen zu den Erweiterungen des Comet-Standarddatenmodelles finden Sie hier.
Die Konfigurationsdaten werden unter SOAP in XML-Dateien verwaltet. Diese Dateien müssen denen eines XML-Offline-Datenordners (siehe oben) entsprechen.
Stellen Sie sicher, dass die folgenden Attribute/Tabellen verfügbar sind:
Mit den folgenden Anweisungen (mySQL) können Sie die Attribute/Tabellen definieren :
alter table pageitems add continueid int (10);
update pageitems set continueid=0;
commit;
alter table pageitems add magnets int (10);
update pageitems set magnets=0;
commit;
alter table pageitems add active int (10);
update pageitems set active=3;
commit;
create table framerules
(
id int (10),
pageitemid int (10),
prerule_id int (10),
prerule_params varchar (4000),
postrule_id int (10),
postrule_params varchar (4000),
grid_id int (10),
element_id int (10),
pagerelative int (10),
intersection int (10),
distance float,
primary key (id)
);
commit;
Das Tutorial verwendet einen XML-Datenordner als Datenquelle. Ein ZIP-Archiv des Ordnes finden Sie hier. So installieren Sie diese Datenquelle:
Das Template soll ein Bild mit folgenden Eigenschaften enthalten
Legen Sie also zuerst einen Bildrahmen an und gestalten Sie diesen Rahmen wie auch immer Sie wollen. Wir haben lediglich einen transparenten Rahmen mit einem dünnen schwarzen Rand erzeugt. Ein Bild muss der Rahmen zu diesem Zeitpunkt noch nicht enthalten:
Mit Hilfe der Palette Platzhalter (Menü Fenster -> Comet Admin -> Platzhalter) verknüpfen Sie den Rahmen mit dem Platzhalter Coverbild. Wählen Sie dazu den Bildrahmen aus und klicken Sie einmal in den Listeneintrag mit dem Namen Coverbild:
Platzhalter von Rahmen und Texten unterscheiden sich in der Aufgabe, die sie erfüllen müssen. Die Plugins achten selbstständig darauf, das nur Platzhalter vom richtigen Typ gesetzt werden können. Der Typ eines Platzhalters wird in der Palette Platzhalter von dem Namen des Platzhalters als kleines Icon angezeigt. Bei Bildplatzhaltern ist das Icon ein kleiner Bildrahmen :
Der Platzhalter soll später das Bild laden. Damit er das kann, enthält eine entsprechende Anweisung zum Laden des Bildes. Im vorliegenden Fall ist das die Anweisung:
"$DATAFILE"
select "$COMETDATA" || "/" || image, 5
node books.productgroup where productgroupID = <ID2>
node book where bookID = <ID>
Die 5 hinter dem Bildpfad ist eine Platzierungsinformation (siehe hier). Wie Sie im nächsten Schritt sehen werden, kann auf diese Angabe verzichtet werden.
Alle Einstellungen zur Größen- und Positionsanpassung des Bildes können Sie in der Palette Gestaltungsregeln machen. Wählen Sie den Bildrahmen aus und fügen Sie die unten angegebenen Regeln hinzu. Achten Sie dabei auf folgendes:
Zum Test können Sie den Rahmen mit einem beliebigen Bild laden und ein wenig verschieben oder in seiner Größe verändern:
Weitere Regeln benötigen Sie hier nicht. Sollten die Standardregeln einmal nicht ausreichen, können Sie eigene Regeln anlegen, mehr dazu finden Sie hier.
Das Template soll zur Buchinnenkante drei Texte zeigen, außen soll das oben definierte Bild eingefügt werden. Die Erstellung der Textplatzhalter erfolgt analog dem Erstellen des Bildplatzhalters:
Hier ein Screenshot der im Beispielordner verwendeten Rahmen. Wir haben den Text Autor mit dem Platzhalter Autor (usw.) verknüpft. Aber natürlich ist der Text des Platzhalters im Dokument vollkommen unabhängig vom Namen des verwendeten Platzhalters:
Ist ein Text zu lang, erzeugt er einen Übersatz im Textrahmen. Um den Übersatz zu beseitigen kann man entweder den Rahmen vergrößern oder den Text verkleinern. Beide Möglichkeiten sind als Gestaltungsregeln im Comet-Standard enthalten. Wir haben den Autor-Rahmen mit der Regel Text anpassen versehen und den Rahmen Titel mit der Regel Rahmen anpassen. Beide Regeln sollen ausgeführt werden, wenn Platzhalter neu geladen wurden:
Testen Sie das Laden eines Produktes, indem Sie alle vier Rahmen auswählen und mit gehaltener Shift-Taste in das Link-Button ( - ) des Produktes Der schwarze Incal der Produktrecherche klicken:
Sie sollten folgendes Ergebnis erhalten:
Wenn Sie die Rahmen jedoch mit dem Produkt In tiefsten Tiefen laden, ist das Ergebnis gar nicht mehr ganz so schön:
Der Autor-Text wurde zwar richtig verkleinert und passt, aber der vergrößerte Rahmen mit dem langen Titel ragt jetzt in den Preis hinein. Lösung sind die in Comet integrierten Nägel und Magnete. Zum Setzen von Nägeln und Magneten gehen Sie wie folgt vor :
Die Rahmen sollten jetzt so aussehen:
Und die laden wir jetzt noch einmal mit dem Produkt In tiefsten Tiefen (und stellen fest, dass das jetzt brauchbar ausieht):
Aus den Rahmen können wir jetzt dss Basis-Template erstellen. Dazu gehen Sie wie folgt vor:
In der Template-Palette wird jetzt ein neuer Eintrag sichtbar sein:
Nach Neuladen der Liste wird die rote Beschriftung rechts im Eintrag verschwinden und das Template in seinem richtigen Ordner einsortiert sein. Wollen Sie Templates erstellen, die für rechte und linke Seiten gleich sind, lassen Sie den Seitentyp auf beliebig stehen. Der Seitentyp eines Templates kann nachträglich nur schwer geändert werden. Sie sind gut beraten, wenn Sie hier gleich den richtigen Seitentyp zuweisen.
Das Template Buchtitel verfügt jetzt über die Rahmen, die auf linken Dokumentseiten verwendet werden können, hat aber noch keine Version, die auf rechten Dokumentseiten verwendet werden kann. Um Templates zu ändern, öffnen Sie das Template aus der Palette Templates durch Doppelklick in seinen Namen. Im erscheinenden Fenster, dem sog. Template-Editor, sehen Sie in den linken oberen Ecken ein kleines Bildchen. Das Bild ist grau, wenn das entsprechende Untertemplate leer ist, sonst ist es farbig:
Schräg über die einzelnen Seiten wird der Templatename und seine ID geschrieben. Templates mit linken und rechten Seiten und Fortsetzungen haben fünf Seiten:
Templates für beliebige Seiten haben nur zwei Dokumentseiten.
Rahmen, die Sie auf den Seiten des Template-Editors anlegen, werden beim Sichern des Templates automatisch dem entsprechenden Untertemplate zugeordnet. Existiert das Untertemplate nicht, wird es angelegt. Zum Sichern des Templates verwenden Sie das Button der Palette Templates. Zum Sichern von Templates muß die Alt-Taste gehalten sein.
Templateänderungen werden aus guten Gründen nicht automatisch in Dokumente, die dieses Template verwenden, übertragen. Um Änderungen zu übernehmen, müssen die Dokumente geeignet reorganisiert werden. Automatische Anpassungen können Sie mit den Skripten der Dokument-Beobachtung implementieren.
Um die fehlenden Templates mit den gleichen Rahmen wie das Basistemplate zu füllen, klicken Sie das Spiegeln-Button der Palette Template-Verhalten. Die rechten Seiten werden dabei mit Spieglungen der linken Seiten gefüllt. Die Fortsetzungen werden jeweils kopiert. Bestehende Rahmen werden beim Spiegeln der Rahmen gelöscht! Template und Fortsetzungen sollten jetzt so aussehen:
Das neue Template verfügt jetzt auch über Fortsetzungen. Es gibt aber keinen Rahmen im Template, der eine Fortsetzung erfordern könnte - die Fortsetzungen werden also nie verwendet werden. Wir wollen deshalb ein zweites Template erstellen, das auch Fortsetzungen verwendet. Gehen Sie dazu wie folgt vor:
Der neue Rahmen soll im nächsten Schritt zu einem Fortsetzungrahmen gemacht werden. Die Höhenänderungen, die durch die Regel Rahmen anpassen gemacht werden, macht der Produktaufbau bei solchen Rahmen wieder rückgängig. Die Regel ist hier trotzdem sinnvoll für Fälle, in denen Sie Produkte mit diesem Template manuell einfügen oder ändern.
Hier ein Screenshot des neuen Templates:
Jetzt müssen nur noch die fehlenden Untertemplates von Buchbeschreibung angelegt werden : Öffnen Sie das neue Template Buchbeschreibung und legen Sie mit der Palette Template-Verhalten die fehlenden Untertemplates an. Danach Sichern Sie das Template mit
der Palette Templates. Zum Sichern von Templates muß die Alt-Taste gehalten sein.
Textrahmen mit Übersatz erzeugen natürlich nicht automatisch eine Fortsetzung. Zwei Dinge sind nötig, um eine Fortsetzung einzurichten:
Zur Markierung des Rahmens wählen Sie diesen Rahmen im Dokument aus. In der Palette Template-Verhalten klicken Sie dann in die dritte Spalte des Optionenfeldes bis Sie dort ein gefülltes Dreieck sehen. Das müssen Sie in allen vier Templates machen. (Oder Sie machen es nur auf Seite 2 und spiegeln erneut.)
Mit der Festlegung, dass ein Rahmen eine Fortsetzung haben darf, übergeben Sie Kontrolle über dessen Höhe an den Produktaufbau. Höhenänderungen in Ladenskripten oder Gestaltungsregeln werden dann ignoriert. Rahmen können immer maximal bis zum unteren Ende des Seitenelementes, in das sie eingefügt werden, wachsen. Enthält ein Template mehere Fortsetzungen, kann die Höhe durch darunterliegende Rahmen mit Fortsetzung weiter eingeschränkt werden.
Den Zierahmen für die Fortsetzung definieren Sie über die sog. Rahmenkennung : Rahmen und Zielrahmen müssen die gleiche eindeutige Kennung bekommen. Die Kennung setzen Sie im unteren Teil der Palette Template-Verhalten:
Als Kennung sind beliebige Unicode-Zeichen erlaubt. Geben Sie allen Rahmen der Kette die gleiche Kennung. Im Dokument wird die Kennung rot hinterlegt oben rechts am Rahmen gezeigt:
Aus mehreren Gründen (siehe hier) ist es sinnvoll, auch den anderen Rahmen des Templates eine Kennung zu geben. Vergeben Sie also allen Rahmen des Templates eindeutige Kennungen. Achten Sie dabei darauf, dass die Kennungen paarweise übereinstimmen oder verwenden Sie das Spiegeln-Werkzeug .
Mehr zu den Rahmenkennungen finden Sie hier. Mit dem Sichern-Button der Palette Templates können Sie das Templates jetzt in den Datenbestand zurückschreiben. Zum Sichern von Templates muß die Alt-Taste gehalten sein.
Bevor wir die Templates auf den Seitenaufbau loslassen, sollten die Templates manuell getestet werden. Um ein Produkt mit einem bestimmten Template zu platzieren, wählen Sie das Produkt in der Produktrecherche aus. Das gewünschte Template setzen Sie im Template-Popup oben rechts in der Palette:
Zum Testen ziehen Sie das Produkt jeweils auf eine linke und auf eine rechte Dokumentseite. Hier die Ergebnisse:
Über die sog. Rahmen-Kennung können Rahmen einer Cometgruppe eindeutig identifiziert werden. Die Kennung wird im unteren Bereich der Palette Template-Verhalten eingestellt:
Im Template-Editor werden die Kennungen groß in der Rahmemitte gezeigt:
Rahmen-Kennungen können vielseitg eingesetzt werden:
Soll bei Textübersatz eines Rahmens eine Fortsetzung eingesetzt werden, erklärt die Rahmenkennung, welcher Rahmen der Fortsetzung für die Textverkettung verwendet werden soll:
Bei Seitenreorganisationen können Produkte auf andere Seiten verschoben werden und dabei das Template wechseln. Haben die Rahmen der Templates dabei die gleiche Rahmen-Kennung (ungleich leer!), werden die Inhalte des alten Rahmens in den neuen Rahmen übertragen. Neben Performance-Gründen ist das inbesondere dann sinnvoll, wenn Textplatzhalter oder Bilder im Dokument manuell bearbeitet wurden und diese Änderungen erhalten bleiben sollen.
Über die Rahmenkennung wird die Reihenfolge festgelegt, in der die Gestaltungsregeln ausgeführt werden. Die Regeln von Rahmen mit kleinerer Kennung werden zuerst ausgeführt. Mit der Kennung T legen Sie fest, dass die Regeln dieses Rahmens nach den Rahmen mit den Kennungen A-S ausgeführt werden (aber, wie ein Blick in die ASCII-Tabelle zeigt, vor a-z).
Die kleine Zahl rechts unten in den Rahmen ist die Sequenznummer und bestimmt die Reihenfolge, in der die Rahmen geladen oder in den Textfluß eingefügt werden. Die Reihenfolge können Sie mit den Buttons und
der Palette Template-Verhalten ändern. Rahmen können dabei nicht über die Grenzen des Subtemplates hinaus verschoben werden.
Kennungen können verwendet werden, um in Skripte einen Rahmen einer Cometgruppe eindeutig identifizieren zu können. Verwenden Sie dazu die Funktion frame::get_cometgroup_member.
Mit wiederholenden Elemente können mit Hilfe eines Platzhalters N Objekte aufgebaut werden. Die Platzierung der Objekte wird dabei über die Aufbauanweisung des wiederholenden Elementes selbst gesteuert und alle so eingefügten Elemente gehören zur selben Cometgruppe wie der auslösende Rahmen. Wiederholdene Elemente sind nicht Teil dieses Tutorial, mehr Informationen dazu finden Sie hier.
Zur Konfiguration Wiederholender Elemente verwenden Sie die neue Palette Bereichsaufbau.
Achtung : In Releases vor R14610 wurde die Reihenfolge der Bereichsrahmen über Kennung und Sequenznummer der Template-Rahmen festgelegt: Alle Rahmen, die die gleiche Kennung wie der Rahmen haben, der den Aufbau auslöst, bilden dabei den Bereich, der mit den Elementen gefüllt werden kann. Die Reihenfolge der Füllung wird über die Sequenznummer der Rahmen festgelegt (Kennung und Reihenfolge stellen Sie in der Palette Templateverhalten ein.). Diese Einstellungen werden ab R14610 nicht mehr verwendet!
Im letzten Abschnitt haben wir gesehen, wie mit Rahmenkennungen gesteuert werden kann, welche Rahmeninhalte innerhalb eines Smart-Templates austauschbar sind. Templategruppen gehen einen Schritt weiter : Hier legen Sie fest, welche Smart-Templates miteinander kompatibel sind.
Werden bei Seitenreorganisationen oder bei manuellem Template-Tausch ganze Templates ausgetauscht, können Sie nicht sicher sein, dass die Kennungen der Rahmen jeweils zueinander passen. So kann die Kennung A im Template 1 einen Titel und im Template 2 eine Produktbeschreibung enthalten. Beide wollen Sie natürlich nicht miteinander tauschen. Die Comet-Plugins übertragen deshalb Inhalte von Templaterahmen nicht automatisch, nur weil die Rahmen die gleiche Kennung haben. Das wird nur innerhalb des gleichen Smart-Templates gemacht.
Damit Inhalte von Rahmen gleicher Kennung auch über Template-Grenzen ausgetauscht werden können, müssen die Tempates befreundet sein. Dazu ordnen Sie die Templates einer gleichen Gruppe zu. Die Gruppenmitgliedschaften werden in der Template-Palette verwaltet. Klicken Sie dazu das + Button neben dem Gruppen-Popup und definieren Sie im erscheinenden Dialog einen eindeutigen Gruppennamen:
Wählen Sie dann die Gruppe aus. Rechts neben dem Gruppen-Popup ändert sich das Farbfeld der Gruppe. Bei Klick in das Farbfeld werden alle ausgewählten Templates dieser Gruppe hinzugefügt. Ein Template kann zu beliebig vielen Gruppen gehören. Ist die Gruppe "Keine" ausgewählt, werden alle Gruppenmitgliedschaften entfernt. Die Gruppenmitgliedschaften werden durch kleine farbige Quadrate neben der Templategröße angezeigt. Das Template Buchtitel gehört hier zu drei Gruppen:
Seitentemplates steuern den Seitenaufbau von Produkten. Die Seitenelemente der Seitentemplates legen dabei fest, wo und wie Produkte platziert werden sollen. Im Seitentemplate selbst werden Gestaltungsebenen, Seitenvarianten und Nachfolger festgelegt.
Zum Anlegen eines neuen Seitentemplates gehen Sie wie folgt vot:
Das Seitentemplate für rechte Dokumentseiten können Sie aus dem Original der linke Seite erstellen:
Es ist nicht unbedingt erforderlich, für linke und rechte Seiten verschiedene Seitentemplates zu erstellen. Wollen Sie gleiche Seitentemplates verwenden, setzen Sie im letzten Schritt als Seitentyp beliebig.
Sie haben jetzt zwei Seitentemplates - aber diese Seitentemplates "kennen" sich noch nicht. Damit die Seitentemplates seiten-spezifisch angewendet werden können, muß beiden Seitentemplates das jeweis andere bekannt gemacht werden. So gehen Sie dazu vor:
Es würde funktionieren, Seitenwechsel über Nachfolger zu regeln, schließlich folgt auf eine rechte Seite ein linke und umgekehrt. Sie sollten das aus zwei naheliegenden trotzdem vermeiden: Sie müßten nämich erstens sehr sehr aufpassen, den Seitenaufbau immer mit dem richtigen Seitentemplate zu beginnen. Und zweitens würde ihr Dokumente bei Seiteneinschüben nicht mehr richtig reorganisiert werden!
Seitenelemente können mit beliebig vielen Produkten gefüllt werden und Seitentemplates können beliebig vieler socher N:1-Elemente enthalten. Die Anlage von N:1-Elementen ist vollkommen identisch mit den oben beschriebenen Schritten. S ie stellen lediglich andere Optionen im Seitenelement ein. Hier ein Seitenelement mit zeilenweisem Aufbau und 7mm Minimalabstand zwischen den Produkten:
Mit diesem Seitenelement haben wir im Tutorial ein zweites Seitentemplate Leuchttisch angelegt, das wir später zu Testzwecken benutzen werden.
[seit v4.3 R36135] Wenn neue Produkte in ein N:1-Element eingefügt werden sollen, werden bestehende Produkte des Elements vorher automatisch aufgeräumt. Mit productlist::establish und dem Flag kSuppressAutoExtent können Sie das automatische Aufräumen unterdrücken. Die neuen Produkte werden dann in einem neuen 'Streifen' unter (bei zeilenweiser Anordnung) bzw. rechts neben (bei spaltenweiser Anordnung) den bestehenden Produktrahmen eingefügt.
Im manuellen Produktaufbau wird dieses Feature nicht unterstützt!
Bitte beachten Sie, bestehende Rahmen werden wirklich nicht aufgeräumt. Dadurch können Lücken im Dokument entstehen. Hintergrund ist, dass die Neuordnung bestehender Produkte und die nachfolgende Berechnung der ersten neuen Einfügeposition exakt so aufwändig sind wie eine Reorganisation des Seitenelementes - die ja gerade vermieden werden sollte. Hier ein Screenshot bei dem vor dem Einfügen der blaue Rahmen erst nach links verschoben müsste, um dann den blauen Rahmen rechts daneben platzieren zu können:
Mit den Templates und Seitentemplates können wir jetzt endlich den ersten Produktaufbau machen:
Sicher fanden Sie es auch mühsam, die Auswahl in der Produktrecherche festzulegen. Die Comet-Plugins sehen daher verschiedene Methoden zur Produktauswahl vor.
Mit einer einfachen Einstellung im Aufbau-Dialog können Sie den Seitenaufbau veranlassen, in die ausgewählten Produkte einzutauchen. Mit der folgenden Einstellung werden die gleichen Produkte aufgebaut wie vorher, wenn die Auswahl nur mind. die beiden Hauptprodukte John Difool und Alef-Thau enthält. (Dass dabei mglw. auch Unterprodukte ausgewählt sind, ignoriert der Seitenaufbau):
Für häufig verwendete Auswahlen können Sie eigene Sets vordefinieren. Die Liste der verfügbaren Sets wird im Aufbau-Dialog angezeigt :
Um das ausgewählte Set zu verwenden, muss Auswahlmethode aktiviert sein.
So definieren Sie eigene Sets :
In der Palette Platzhalterwerte können Sie die Anweisung editieren. Tragen Sie dazu in das Feld Skript im unteren Teil der Palette die ID der Aktion ein (oder wählen Sie den Eintrag Produktauswahl 1 im darüberstehenden Popup aus) und klicken Sie dann das Bearbeiten-Button .
Das Beispiel sucht alle Produkte der ersten Unterebene der aktuellen Produktauswahl, die das Template 1 verwenden. Produkte mit anderen Templates werden ignoriert.
#pragma plain #include "internal/text.h" #include "internal/types.h" int main() { ProductList pl = productlist::get ("selected [level=1] pageitemid=1"); Product p; // Take care! // Only the CONTENT of gProducts may be changed! // gProducts itself must NOT be changed. // These assignments will therefore not work : // gProducts = productlist::get ("selected [level=1] pageitemid=1"); // gProducts = productlist::get ("selected [level=1] row1 like '%11%'"); // gProducts = pl; // // The loop transfers the products from pl to gProducts. // for (p = productlist::first (pl); p; p = productlist::next (pl)) { productlist::append (gProducts, p); } return 0; }
Und hier ein (recht statisches) Skript. Sie können das sicher besser! Sie können den Aufbau der vorigen Seite jetzt noch einmal mit diesem Skript wiederholen. Die Produktliste enthält auch das zu löschende Produkt In höchsten Höhen. Die Liste hat Vorrang vor dieser Einstellung und das Buch wird jetzt mit aufgebaut.
#include "internal/types.h" #include "internal/products.h" int append_product (ProductList pp, int id1, int id2, int id3, char * ids) { Product p; p = product::alloc (kGlobalStack); product::set (p, kID, id1); product::set (p, kID2, id2); product::set (p, kID3, id3); product::set (p, kStringID, ids); productlist::append (pp, p); } int main () { append_product (gProducts, 100, 10, 0, ""); append_product (gProducts, 300, 10, 0, ""); append_product (gProducts, 400, 10, 0, ""); append_product (gProducts, 500, 10, 0, ""); append_product (gProducts, 600, 10, 0, ""); append_product (gProducts, 1000, 20, 0, ""); append_product (gProducts, 1001, 20, 0, ""); append_product (gProducts, 1002, 20, 0, ""); append_product (gProducts, 1003, 20, 0, ""); return 0; }
Wechsel von Seitentemplates in der Produktliste führen zu reorganisations-festen Seitenumbrüchen im Seitenaufbau. Um Produkte in einen bereits bestehenden Aufbau einzufügen, verwenden Sie die Option Bestehende Seiten und -templates bevorzugen des Aufbaudialoges. Produkte werden dann im gleichen "Kapitel" wie die bestehenden Produkte eingefügt. Leere Stellplätze zwischen den Produkten werden bei Reorganisationen gefüllt.
Ist die Option Bestehende Seiten und -templates bevorzugen abgeschaltet , wird der aktuellen Startseite des Aufbaus das neue Seitentemplate zugewiesen. Ist die Seite leer und das Seitentemplate unterscheidet sich vom Seitentemplate der Vorgängerseite, wird automatisch ein reorganisations-fester Seitenumbuch für die Produkte eingefügt (ab v4.1 R22300).
Die Seitenreorganisation platziert alle Produkte gemäß dem verwendeten Seitentemplate. Manuelle Änderungen in Text- oder Bildplatzhaltern bleiben bei der Reorganisation erhalten.
Die folgenden Beschreibungen beziehen sich auf das Dokument Finish/Buchtitel auf Stellplatz aus dem Beispielordner. Öffnen Sie also zuerst dieses Dokument.
Verschieben Sie einige Rahmen und klicken Sie dann das Aufräumen-Button der Produktrecherche. Das Dokument wird ab der aktuellen Dokumentseite bis zum Ende aufgeräumt.
>>
Achten Sie beim Verschieben von Produkten darauf, dass Sie das gesamte Produkt verschieben. Mit dem verwendeten Template ist das einfach. Bei größeren Produkte könne Sie zur Auswahl ganzer Produkte auch das Kontextmenü Comet-Gruppen -> Auswählen verwenden.
Änderungen des Seitentemplates ändern die Position der Produkte und mglw. die Anzahl der benötigten Seiten. Übrig gebliebene Leer-Seiten werden nicht automatisch gelöscht! So können Sie Seitentemplates von Dokumentseiten ändern:
Wählen Sie einen beliebigen Rahmen des ersten Produktes aus und räumen Sie das Dokument auf. Auf dem Leuchttisch ist viel mehr Platz. Deshalb enthält die erste Seite jetzt sechs Produkte (und die zwei letzten Dokumentseiten sind leer):
⇒
Änderungen des Seitentemplates werden auch angewendet, wenn das ursprüngliche Seitentemplate selbst geändert wird. Sie können das probieren, wenn Sie das Seitentemplate 2 Stellplätze öffnen und dort Änderungen vornehmen. Die Änderungen werden sofort in allen Dokumenten gezeigt, die das Seitentemplate gerade anzeigen.
"Löcher" im Produktaufbau werden automatisch wieder gefüllt.
Wenn Sie aus der obigen Seite das dritte und vierte Produkt entfernen und dann die aktuelle Seite (halten Sie dazu die ALT-Taste gedrückt) aufräumen, sieht die Seite danach so aus:
⇒
Zusatztasten für Buttons werden jeweils in den gelben Hilfetexten der Buttons gezeigt.
Vor dem Aufräumen erstellt die Seitereorganistation anhand der aktuellen Dokumentrahmen eine interne Liste aller Produkte. Die Reihenfolge der Produkte ergibt sich daraus aus den Seitentemplates, die für das Aufräumen verwendet werden. Sie können also durch Verschieben von Produkten die Reihenfolge der Produkte im Dokument ändern.
Verschieben Sie das erste Produkte der Seite soweit nach unten, dass es unter dem zweiten Produkt liegt. Wenn Sie danach die erste Dokumentseite aufräumen (ALT-Taste nicht vergessen!) verschiebt sich das zweite Produkt nach oben. Sie sehen das im Screenshot daran, dass das Produkt mit dem gelben Bild jetzt ganz oben steht.
⇒
Auf die gleiche Weise werden neu hinzugefügte Produkte in das Dokument einsortiert.
Lassen Sie die Comis mit den albernen Namen "Das Schwert" und "Planet der Illusionen" zwischen das erste und zweite Produkt fallen. Zur besseren Sichtbarkeit habe ich die Bilder der 'alten' Comics rot eingefärbt. Die beiden neuen Comics werden automatisch so gestapelt, dass die Seitereorganisation daraus die Produktreihenfolge wieder ableiten kann. Nach dem Auräumen der Seite (ALT-Taste nicht vergessen!) sind die beiden neuen Comics ordentlich einsortiert:
⇒
Wenn Sie beim Loslassen der Produkte gleichzeitig die CMD-Taste festhalten, wird die Reorganisation automatisch gleich mit ausgeführt.
Öffnen Sie die Palette Produkte des Dokumente. Ist die Liste der Palette leer, klicken Sie einmal auf . Die Palette enthält alle Cometgruppen (Rahmen- und Textgruppen) des Dokumentes in der Reihenfolge, in der sie im Dokument stehen. Das Dokument kann möglicherweise weitere Produkte in Textplatzhaltern, Tabellen und Rahmen enthalten - in der Regel sollten das Unterprodukte oder Varianten der Produkte der Cometgruppen sein. Die Produkte von Platzhaltern sind nicht in der Liste enthalten. Die Einträge in fetter roter Schrift sind die für die folgende Produkte verwendeten Seitentemplates. Jedes Seitentemplate bedeutet einen Seitenwechsel.
In der Liste werden entweder die IDs der Produkte oder deren Namen angezeigt (Checkbox Produktnamen zeigen). Der Name eines Produktes ist erst sichtbar, wenn das Produkt einmal in der Produktrecherche geladen wurde. Der Name bleibt aber weiter verfügbar, wenn das Produkt nicht mehr in der Produktrecherche sichtbar ist. Ist Auswahl synchronisieren aktiviert, werden die zu einem Listeneintrag gehörenden Rahmen auch im Dokument ausgewählt.
Achtung : Dadurch können Sie Rahmen unterschiedlicher Spreads auswählen, ein Feature, das von Adobe nicht vollständig unterstützt wird. So führt etwa das Verschieben von Rahmen unterschiedlicher Spreads auf eine andere Ebene zum Absturz von InDesign®.
Die Produktliste ist die Basis, auf der Seitenreorganisationen gemacht werden. Sie können:
berechnet die Liste neu. Ebenso wird die Liste neu geladen, wenn Sie das Dokument in den Hintergrund schicken oder die Palette vorübergehend schließen. Manuelle Änderungen und insbesondere eingefügte Seitentemplates und Produkte gehen dabei verloren
Wenn Sie die Liste für eine Reorganisation vorbereiten, sollten Sie keine Änderungen am Dokument mehr vornehmen. Die Liste enthält eine Vielzahl von Informationen über das aktuelle Dokument, die für die Reorganisation benötigt werden. Es kann zu Problemen führen, wenn diese Informationen in der Zwischenzeit geändert wurden.
Wenn Sie die Liste für eine Reorganisation vorbereiten, sollten Sie die Einstellung Auswahl synchronisieren abschalten.
Ein Klick auf das Reorganisations-Button startet die Reorganisation des Dokumentes. Über Tastenkombinationen erfahren Sie im gelben Hilfetext des Button mehr. Bei der Reorganisation werden die in der Liste enthaltenen Produkte und ihre Templates auf das jeweilige Seitentemplate angewandt. Dabei gilt:
Im unteren Teil der Palette gibt es einen Bereich für Sonderfälle zum Bearbeiten der Rahmen der aktuellen Dokumentauswahl. Hintergrund ist folgender: Cometgruppen von Produkten können über viele Seiten gehen. Da mit InDesign®-Bordmitteln aber nur Rahmen eines Spreads ausgewählt werden können, können Sie nie das gesamte Produkt auswählen. Diese Einschränkung umgeht die Palette Produkte des Dokumentes: Bei Auswahl eines Eintrages der Palette werden alle zugehörigen Dokumentrahmen ausgewählt - auch dann, wenn das Produkt über viele Seiten geht. Das ist natürlich eine gute Gelegenheit, die wir uns nicht entgehen lassen wollen um z.B. ein gesamtes Produkt auf eine andere Ebene zu verschieben.
Mit dem Ausführen-Button wird die aktuell ausgewählte Aktion mit den darunter angegebenen Parametern ausgeführt.
Das Popup Auswahl bearbeiten kann mit eigenen Skripten gefüllt werden. Eigene Aktionen können im Datenpool mit der ClassID 39 definiert werden. Mit Alt-Klick in das Popup können die im Pool definierten Skripte auch direkt editiert werden. Denken Sie bei der Implementiertung Ihrer Skripte aber bitte daran, dass Sie sich gerade auf einer kleinen Eisscholle bewegen und das Wasser runderherum sehr kalt ist. Bevor Sie anfangen, herumzuspringen, überlegen Sie lieber dreimal
Zwei besonders kritische Aktionen sind fest implementiert :
Alt-Klick in den Standardeintrag Ebene ändern zeigt Ihnen als Beispiel das Skript zum Verschieben auf eine andere Ebene.
Im folgenden sehen Sie einige Anwedungsfälle der Palette Produkte des Dokumentes.
Die folgenden Beschreibungen beziehen sich auf das Dokument Finish/Buchtitel auf Stellplatz aus dem Beispielordner. Öffnen Sie also zuerst dieses Dokument.
Löschen Sie In tiefsten Tiefen auf eine der drei Arten:
Nach Reorganisation ist der Titel In tiefsten Tiefen nicht mehr im Dokument. Wählen Sie vor der Reorganisation den Seitentemplate-Eintrag 2 Stellplätze aus - die Reoragisation beginnt immer immer ersten ausgewählten Eintrag. Sie können beliebig viele Produkte in einem Schritt entfernen.
Verschieben Sie das zweite Produkt (also die dritte Zeile) mit der Maus um eins nach oben:
Die blaue Raute vor dem Eintrag signalisiert, dass der Eintrag verschoben wurde. Die Seitennummern der dahinterliegenden Einträge beziehen sich jetzt auf den IST-Zustand im Dokument und können sich bei der Reorganisation ändern. Nach ist der Titel In weiter Ferne der erste im Dokument.
Stellen Sie vor dem Einfügen weiterer Produkte sicher, dass die Paletten Produktrecherche und Produkte des Dokumentes offen sind und verschiedene Fenster haben.
Nach ist der Titel Das Schwert im Dokument. Wählen Sie vor der Reorganisation den Seitentemplate-Eintrag 2 Stellplätze aus - die Reoragisation beginnt immer immer ersten ausgewählten Eintrag. Sie können beliebig viele Produkte in einem Schritt einügen. Die Liste kann gelöschte, verschobene und neue Produkte enthalten.
In diesem Schritt sehen Sie, wie das für ein Produkt verwendete Template geändert werden kann. Befreundete Templates übernehmen dabei die Rahmeninhalte von Rahmen gleicher Kennung. Zur Verdeutlichung dieses Features werden wir deshalb zunächst einen Platzhaltertext manuell ändern.
Nach ist In weiter Ferne unter Verwendung des Templates Buchbeschreibung ersetzt worden. Der Titel hat seine Änderung behalten, aber der Übersatz ist beseitigt:
Hinweis: Um das Template einer einzelenen Cometgruppe zu tauschen, ziehen Sie das gewünschte Template bei gehaltener Control-Taste (unter Windows Strg) auf einen beliebigen Rahmen der Cometgruppe.
Ändern Sie das für die Anordnung der Produkte verwendete Seitentemplate. Das Dokument bekommt dadurch ein gründlich anderes Aussehen.
Stellen Sie sicher, dass die Paletten Seitentemplates und Produkte des Dokumentes offen sind und verschiedene Fenster haben.
Nach sieht das gesamte Dokument anders aus. Die Produkte wurden jetzt nach dem Schema des Seitentemplates Leuchttisch angeordnet. Die Reihenfolge der Produkte hat sich nicht geändert. Inhalte wurden, soweit möglich, übernommen.
Seitentemplates in der Liste der Produkte bewirken jeweils einen Seitenwechsel. Die auf das Seitentemplate folgenden Produkte werden dabei zu einem Kapitel zusammengefasst. Beim Löschen von Produkten eines Kapitels bleiben die Seitenumbrüche erhalten. Erst wenn das letzte Produkt eines Kapitels gelöscht wird, wird das Kapitel - und damit der Seitenumbruch - entfernt.
Mehrere direkt aufeinander folgende Seitentemplates in der Produktliste erzeugen entsprechend viele Seitenumbrüche. Da die zugehörigen Kapitel leer sind, werden diese Seitenumbrüche bei der übernächsten Seitenreorganisation aber wieder entfernt.
Stellen Sie sicher, dass die Paletten Seitentemplates und Produkte des Dokumentes offen sind und verschiedene Fenster haben.
Nach ist die zweite Seite des Dokumentes ist jetzt leer.
Mit Diamantha geht es erst auf Seite 3 weiter.
Mit rechtem Mausklick (Kontextmenü) können Sie jetzt Seitentemplate einblenden auswählen. Dann sehen Sie von Seite 1 auf Seite 4 (die eine linke Seite ist!) den Seitentemplatewechsel.
Es ist nicht erforderlich, dass das zweite Seitentemplate ein anderes ist als das erste. Sie hätten genauso gut noch mal den Leuchttisch verwenden können.
Die nächsten Schritte zeigen, dass der Seitenumbruch aufräum-resistent ist:
Nach befinden sich die neuen Produkte jetzt im Dokument und Diamanta beginnt weiterhin auf einer neuen rechten Seite:
Beliebige Ebenen des Dokumentes können zu Gestaltungsebenen erklärt werden. Rahmen dieser Ebenen werden bei der Reorganisation ignoriert. Jedem Seitentemplate können beliebig viele Gestaltungsebenen zugeordnet werden.
Nach sind die in Punkt 1 verschobenen Rahmen wieder an ihrer Ursprungsposition. Der Hintergrundrahmen hat die Reorganisation nicht gestört.
Achtung: Sollen Cometgruppen auf Gestaltungsebenen liegen, müssen alle Rahmen der Cometgruppe auf (mglw. auch verschienden) Gestaltungsebenen liegen.
[Ab v4.0.5 R17030] Rahmen können unabhängig von Gestaltungsregeln von der Reorganisation ausgeschlossen werden. Setzen Sie dazu in der Palette Template-Verhalten in letzten Spalte der Eigenschaften (Verwendung beim Produktaufbau) ein +.
Achtung: Sollen Cometgruppen von der Reorganisation ausgeschlossen werden, müssen alle Rahmen der Cometgruppe diese Eigenschaft haben!
Der Seitenaufbau kann auf verschiedene Weise durch Skripte unterstützt werden. Beschreibungen dazu finden Sie in der Doku:
[Seit v4.0.5 R18603] Eine schöne Anwendung des Aufbauhilfeskriptes sind die sogenannten Produkt-Trailer, die aufgebaute Produkte nach bestimmten Kriterien voneinander trennen sollen.
Wenn Sie die Produkte des Beispielordners aufklappen, sehen Sie, dass einige Bücher zur Publikation John Difool gehören und einige zu Alef-Thau. Ein sinnvolle Trennung der Bücher im Dokument wäre also die Zugehörigkeit zur Publikation.
Im folgenden beschrieben wir, wie Produkt-Trailer realisiert werden können.
Das Template Zwischenüberschrift (ID 413) enhält einen Textplatzhalter, der den Namen der Publikation eines Buches anzeigt:
Natürlich darf das Template aus auch mehreren Rahmen bestehen und Bilder und alle Zutaten von priint:comet Templates enthalten.
Für die Bücher selbst haben wir eine Kopie des Templates Buchbeschreibung angelegt, das Template Buchbeschreibung mit Zwischenüberschrift. Warum hier ein eigenes Template benötigt wird, sehen Sie in den nächsten Schritten.
Das Aufbauhilfe-Skript wird als Action mit der Class-ID 48 angelegt. Im Beispielordner haben wir diese Aktion Zwischenüberschriften genannt. Zwischenüberschriften sollen jeweils am Anfang jeder Seite und beim Wechsel der Publikation der Bücher eingefügt werden.
Den Skripttext finden Sie im Beispielordner in der Datei Scripte/build_supports.c. Modifizierungen für eigenen Produkt-Trailer können leicht gemacht werden:
Die Aufbauhilfe ist eine Template-Eigenschaft: Im Template wird festgelegt, ob und welches Aufbauhilfe-Skript ein Template zur Unterstützung des Produktaufbaues verwenden soll. (Deshalb benötigt der Aufbau mit Produkt-Trailern auch ein eigenes Template.) So setzen Sie das Aufbauhilfe-Skript:
Jetzt haben wir alles zusammen und können die Buchtitel mit Zwischenüberschriften aufbauen.
Öffnen Sie ein neues Dokument und wählen Sie mindestens die beiden Einträge John Difool und Alef Thau der Produktrecherche. Dann klicken Sie das Aufbaubutton der Produktrecherche. Im erscheinenden Aufbau-Dialog machen Sie die gezeigten Einstellungen.
Der Aufbau füllt zwei Dokumentseiten, in denen Sie sehr schön die angelegten (roten) Zwischenüberschriften sehen können.
Im nächsten Schritt wollen wir ein weiteres Buch ins Dokument einfügen und das Dokument dann aktualisieren lassen:
Ziehen Sie das Buch "Der Verrat" (der Titel schien uns angemessen) zwischen das zweite und dritte Buch der ersten Seite, also in den Bereich der ersten Publikation. Drücken Sie dann das Aufräumen-Button der Produktrecherche. Sie erhalten folgendes Ergebnis, in dem Sie den jetzt neuen Publikationswechsel auf der ersten Seite sehr gut sehen können:
Bitte beachten Sie: Die Produkt-Trailer werden bei jeder Reorganisation neu angelegt. Änderungen an den alten Trailern werden dabei nicht in die neuen Trailer übernommen.
Im Textflußaufbau (der nicht Thema des Tutorials war) sind meist Trenntexte zwischen den einzelnen Produkten nötig. Mehr dazu erfahren Sie hier.
Wir sind damit am Ende dieses jetzt doch umfangreichen Tutorials angelangt.
Bei der Arbeit an Ihren eigenen Projekten werden Sie sicher schnell merken, dass Seitenaufbau und Seitenreorganisation zwei sehr mächtige Werkzeuge sind die Ihnen viel Arbeit abnehmen können. Sollten Sie dennoch einmal Probleme haben, können Sie hier Hilfe finden :