Definition der Datenquellen für Platzhalter.
Definition der Datenquellen für Platzhalter. Daten für Platzhalter können aus verschiedenen Quellen kommen:
Haben Sie in InDesign® eine Datenbankverbindung hergestellt, kann durch den Aufruf datapool::set_dbc (pool, 0) verhindert werden, dass Aufrufe, die diesen Pool verwenden, die Datenbank abfragen. So wird beispielsweise die Funktion document::place_items danach nicht versuchen, ihre nötigen Daten (die Beschreibung der Templates) aus der Datenbank zu lesen, sondern aus dem aktuell definierten XML-Ordner. Verändern Sie mit datapool::set_files (pool, "neuer Pfad") auch diese Einstellung, werden die Templates aus den Dateien dieses Pfades geholt.
static DataPool datapool::alloc()
Erzeuge eine neue Variable vom Datentyp DataPool. Die Variable wird automatisch mit den aktuellen Einstellungen in InDesign® gefüllt. Die Datenbankverbindung enthält den Wert von sql::dbconnection. Die Dateiverbindung enthält den Wert xml::app_path. Die Variable muss mit datapool::release wieder gelöscht werden.
Name | Typ | Default | Beschreibung |
Return | DataPool | Ein neues Objekt von Typ DataPool |
DataPool pool = datapool::alloc ();
: datapool::release (pool);
static int datapool::release(DataPool pool)
Lösche eine Variable vom Typ DataPool. Auf die Werte der Variable darf nach dem Aufruf dieser Funktion nicht mehr zugegriffen werden.
Name | Typ | Default | Beschreibung |
Return | DataPool | Ein neues Objekt von Typ DataPool |
DataPool pool = datapool::alloc ();
: datapool::release (pool);
static int datapool::type(DataPool pool = 0)
Typ der (aktuellen) Datenverbindung.
Name | Typ | Default | Beschreibung |
Return | int | kNotConnected kDBCConnection kXMLConnection kSOAPConnection |
|
pool | DataPool | 0 | Von welcher Datenverbindung soll der Typ ermittelt werden? 0 - aktuelle Datenverbindung sonst - Definierte Datenverbindung |
static String datapool::get_label(DataPool pool = 0)
Ermittle den (eindeutigen) Namen einer Datenverbindung. Der Name entspricht der Beschreibung, die auch in den priint:comet-Paletten verwendet wird.
Name | Typ | Default | Beschreibung |
Return | String | Name der gegebenen Datenverbindung Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
pool | DataPool | 0 | Gültige Datenverbindung 0 oder leer : Aktuelle Datenverbindung der Plug-Ins |
Im Beispiel wird der Aufruf in einem Javascript verwendet.
var gScript = "int main () \ {\ \ strcpy (gOutput, datapool::get_label (0));\ return 0;\ }\ ";
var conLabel = app.comet.eval (script, '', '');
static int datapool::get_vendor(DataPool pool = 0)
Datenbankhersteller der Datenverbindung. Bei ODBC-Verbindungen wird der zuvor mit datapool::set_vendor gesetzte Wert zurückgegeben. Sonst gibt die Funktion den Wert -1 zurück.
Beachten Sie bitte, dass der Vendor auch in ODBC-Verbindungen nicht automatisch gesetzt wird!
Name | Typ | Default | Beschreibung |
Return | int | Bei ODBC-Verbindungen der zuvor mit datapool::set_vendor gesetzte Wert sonst : -1 |
|
pool | DataPool | 0 | Von welcher Datenverbindung soll der Hersteller ermittelt werden? 0 - Aktuelle Datenverbindung sonst - Definierte Datenverbindung |
static int datapool::set_vendor(DataPool pool = 0, int vendor = -1)
Setze den Datenbankhersteller der Datenverbindung. Die Funktion hat nur bei ODBC-Verbindungen eine Wirkung, sonst wird der Aufruf ignoriert.
Name | Typ | Default | Beschreibung |
Return | int | 0 : Bei ODBC-Verbindungen sonst : noDatabaseErr (= 400) |
|
pool | DataPool | 0 | In welcher Datenverbindung soll der Hersteller gesetzt werden? 0 - Aktuelle Datenverbindung sonst - Definierte Datenverbindung |
vendor | int | -1 | 1 : Oracle 2 : Sybase 3 : mySQL 4 : DB2 6 : PostGre 7 : SAP -1 : Undefiniert |
static int datapool::set_dbc(DataPool pool, int* dbc)
Setze die Datenbankverbindung des Datenpools. Der Befehl dient insbesondere dazu, das Laden und Schreiben von Daten aus/in Datenbanken zu unterdrücken, obwohl über InDesign® eine Datenbankverbindung besteht. Als Datenbankverbindung darf nur 0 oder die aktuell gültige Verbindung (sql::dbconnection) verwendet werden.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
pool | DataPool | - | Definierter DatenPool |
dbc | int*, DBC oder SOAP | - | Datenbankverbindung oder 0 Als Datenbankverbindung darf nur 0 oder die aktuell gültige Verbindung (sql::dbconnection, soap::connection) verwendet werden. |
DataPool pool = datapool::alloc ();
datapool::set_dbc (pool, 0);
: datapool::release (pool);
static int datapool::set_files(DataPool pool, char* fpath)
Setze die Dateidatenquelle des Datenpools. Als Dateiquelle muss ein Ordner angegeben werden, der den Definitionen von WERK II entspricht.
Die richtige Definition der Dateiquelle und ihren Platz in der Ordnerstruktur entnehmen Sie jeweils der Dokument der Funktionen, die eine Datenquelle verwenden.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
pool | DataPool | - | Definierter DatenPool |
fpath | String oder char* | - | Dateiquelle des Pools |
DataPool pool = datapool::alloc (); char myxmlpath[4069];
document::folder (myxmlpath); strcat (myxmlpath, "/"); strcat (myxmlpath, "xmldata"); datapool::set_files (pool, myxmlpath);
: datapool::release (pool);
static int* datapool::get_dbc(DataPool pool)
Ermittle die Datenbankverbindung des Datenpool. Nach datapool::alloc ist dieser Wert die aktuelle Datenbankverbindung von Indesign® und entspricht dem Ergebnis der Funktion sql::dbconnection.
Name | Typ | Default | Beschreibung |
Return | int*, DBC oder SOAP | Datenbankverbindung des Pools. Nach datapool::alloc ist dieser Wert die aktuelle Datenbankverbindung von Indesign® und entspricht dem Ergebnis der Funktion sql::dbconnection bzw. soap::connection | |
pool | DataPool | - | Definierter DatenPool |
static char* datapool::get_files(DataPool pool, char* result)
Ermittle die Datenbankverbindung des Datenpool. Nach datapool::alloc ist dieser Wert die aktuelle Dateiverbindung von InDesign® und entspricht dem Wert von xml::app_path.
Name | Typ | Default | Beschreibung |
Return | String oder char* (Abhängig vom Parameter result) | Dateiverbindung des Pools. Nach datapool::alloc ist dieser Wert die aktuelle Dateiverbindung von InDesign® und entspricht dem Wert von xml::app_path. Entspricht dem Parameter result | |
pool | DataPool | - | Definierter DatenPool |
result | String oder char* | - | Reservierter Speicher für das Ergebnis |
static int datapool::get_products(
char* statement,
List l1,
List l2 = 0,
List l3 = 0,
StringList s1 = 0,
int flags = 0,
int checkTemplates = 0)
Ausgehend von der aktuellen Auswahl in der Produktepalette werden eine oder mehrere Listen von Produkt-IDs ermittelt. Dabei können automatisch Untereinträge geladen werden. Zum Laden der Untereinträge werden die Anweisungen verwendet, die auch in der Produktpalette beim Öffnen eines Eintrages ausgeführt werden. Die Reihenfolge in den Ergebnislisten entspricht der Reihenfolge in der Palette Produktrecherche.
Der Befehl benötigt das Plugin Produktrecherche. Die Produktrecherche muss geöffnet sein.
Die Produktliste kann mit dem Parameter statement festgelegt werden. Mit der in statement gemachten Anweisung können Produkte rekursiv erweitert oder durch ihre Unterprodukte ersetzt werden. Die neu eingefügten Produkte sind dabei exakt die gleichen Produkte, die auch in der Produktrecherche erscheinen (würden), wenn Sie dort einen Eintrag öffnen.
Die Anweisungen zum Laden der Untereinträge können in zwei Versionen gemacht werden. Für die Beschreibungen der jeweiligen Syntax wird die sog. EBNF-Notation verwendet :
Diese historische Syntax der Statements wird seit vielen Jahren erfolgreich verwendet und wird auch weiterhin unterstützt. Für neuere Implementierungen empfehlen wir die Version 2 der Anweisungen.
Die folgende Tabelle beschreibt die einzelnen Teile des Parameters statement. Ist der Parameter leer, werden alle Produkte mit einem Auge in die Ergebnisliste(n) aufgenommen.
Part | Default | Beschreibung |
Panel | Leer | Die Angabe hat keine Bedeutung mehr. Als Basis wird immer die Produktrecherche (Products) verwendet. Die Angabe ItemPool wird seit v3.0 der priint:comet Plugins nicht mehr unterstützt. |
Base | watched |
Auswahl der Produktrecherche Welche sichtbaren Objekte der Produktrecherche sollen gesammelt werden?
selected : Alle ausgewählten Produkte der Liste (Listenauswahl). Achten Sie darauf, dass die Listenauswahl sehr veränderlich ist. Sie wird immer der aktuellen Dokumentauswahl angepasst! clean : Alle Dokumentseiten ab der aktuellen Rahmenposition aufräumen. Dieser Selector hat nur im Befehl document::build_products eine Bedeutung. Weitere Optionen [ab v3.3 R3303, 26.11.2012] Sie können außerdem angeben, ob die Liste Doppler enthalten soll oder nicht. Ist nichts angegeben, sind Doppler erlaubt.
|
[Expand] {Expand} |
Leer | Dieser Teil der Anweisung ist der wichtigste - und meist auch der schwierigste: Sie geben an, nach welchen Kriterien
Unterprodukte in die Ergebnisliste aufgenommen werden sollen. Unterprodukte eines Produktes sind dabei genau
die Produkte, die Sie auch sehen, wenn Sie das Produkt in der Produkterecherche aufklappen. Es gilt generell :
Bedingungen können in der üblichen Syntax wie etwa in SQL oder xmlquery geschrieben werden, z.B. id1 > 0 and level > 0. Eine Liste der definierten Attribute finden Sie hier. Die Attribute werden dabei jeweils durch aktuellen Werte der gefundenen Produkte ersetzt. Bedingung1 ? Bedingung2 Enthält die Bedingung zwei durch ? getrennte Teile, wird zuerst der erste Teil geprüft. Passt ein Produkt, wird der zweite Teil der Bedingung ignoriert (und das Produkt in die Ergebnisliste aufgenommen). Passt ein Produkt jedoch nicht, wird auch die zweite Bedingung geprüft. Passt diese Bedingung auf das Produkt, wird tatsächlich ersetzt/erweitert. Sonst wird das Produkt aus der Liste entfernt ([...]) oder unverändert übernommen ({...}) Die zweite Bedingung dient damit als Abbruchkriterium, denn möglicherweise bildet der Produktbaum ja Kreise. Hinweise Die Verwendung von {...} erfordert meist, auch die Option "with doubles allowed" zu verwenden: Immer dann, wenn nämlich in der Auswahl der Produktrecherche Produkten und Unterprodukte dieser Produkte enthalten sind, erhalten Sie die Unterprodukte doppelt in der Ergebnisliste. |
Proof | Leer | Nachdem alle Produkte (und Unterprodukte) ermittelt wurden, kann mit dieser Bedingung geprüft werden, ob das Objekt überhaupt in der Liste bleiben soll. Ist die Bedingung nicht erfüllt, wird das Objekt aus der Ergebnisliste wieder entfernt. |
Diese Syntax wird a v.4.3 R36020 unterstützt und wird auch im Aufbaudialog der Produktrecherche verwendet.
Optional (und nur aus Platzgründen in der EBNF weggelassen) kann am Ende eine der folgenden Floskeln in genau dieser Schreibweise angefügt werden:
Symbole | Beschreibung |
selected | watched |
Welche Auswahl der Produktrecherche soll verwendet werden? selected : Normale Listenauswahl watched : Mit Auge markiertes Einträge |
first | all |
Wenn die Conditions passen, wird der Eintrag in die Zielliste übernommen.
Sollen danach mögliche Untereinträge gesucht werden? first : Nein, keine weitere Suche all : Ja, mögliche Untereinträge prüfen |
Condition | Prüfe, ob das Produkt die gegebenen Bedingungen erfüllt. Hier die Syntax für Bedingungen. |
until | Ist until gegebenen, werden alle erreichbaren Zwischenebenen besucht. Sonst wird ohne Prüfung der Condition bis zum gegebenen Level getaucht und erst die Produkte der letzten Ebene werden geprüft. |
level | rlevel |
0-basierte unterste Ebene der Suche: level : Absolute Tiefe in der Produktrecherche rlevel : Relativ zum ausgewählten Produkt bzw. dessen obersten ausgewählten Eltern-Produktes |
Wie oben erwähnt, verwendet der Aufbaudialog der Produktrecherche zum Ermitteln der Produkte die Version 2 der Suchanweisung. Hier als Beispiele die dort verwendeten Abfragen:
Nur Ebene 2
selected first [ pageitemid > 0 ] rlevel 2
Suche bis max. Ebene 2
selected first [ pageitemid > 0 ] until rlevel 2
Alle bis Ebene 2
selected all [ pageitemid > 0 ] until rlevel 2
Nein (Keine Unterprodukte prüfen und/oder laden)
selected
Bedingungen prüfen die Eigenschaften der Produkte und können wahr oder falsch sein. Bedingungen können mit and und or verknüpft und geklammert werden. Hier die Beschreibung der Syntax einer Bedingung:
and und or haben die allgemein übliche Priorität and vor or, A or B and C bedeutet also A or (B and C). Für eine bessere Lesbarkeit empfehlen wir aber, die Klammern im Ausdruck anzugeben.
Die Werte von Produkteigenschaften können mit einfachen Funktionen bearbeitet werden. Achten Sie dabei bitte darauf, dass Funktionen nur auf den angegebenen Datentypen gültig sind!
Für Ganzzahlen (int) sind die üblichen Grundrechenarten definiert:
+, -, *, /
Für Strings (char*) sind die folgenden Funktionen definiert:
Die folgende Tabelle beschreibt alle in den Anweisungen definierten Eigenschaften von Produkten der Palette Produktrecherche.
Name | Typ/Wert | Beschreibung |
id | int | ID des Objektes, bestehend aus 3 Zahlen und einem (optionalen) String |
id2 | ||
id3 | ||
stringid | char* | |
pageitemid | int | Die im Objekt hinterlegte Template-ID |
docid | int | Die im Objekt hinterlegte Dokument-ID |
masterpage | char* | Die im Objekt hinterlegte Musterseite |
grid | char* | Das im Objekt hinterlegte Raster |
gridid | int | Die im Objekt hinterlegte Raster-ID |
element | char* | Das im Objekt hinterlegte Rasterelement |
elementid | int | Die im Objekt hinterlegte Rasterelement-ID |
needsrequest | int [0, 1] | Sind die Platzierungen des Objektes vollständig? |
defined | int [0, 1] | Sind Platzierungen in der Datenverbindung möglich? |
level | int | Schachtlungstiefe im Produktbaum, oberste Ebene ist 0 |
relative_level | [ab v3.2.3 R2440] Relative Schachtlungstiefe ausgehend von den Stammprodukte der Liste (list, selected, watched) | |
substatement | int | ID des Panelstatements zum Laden der Unterobjekte |
classid | int | Klassennummer des Objektes |
row1 | char* | Text der ersten Spalte der Palette |
row2 | char* | Text der zweiten Spalte der Palette |
pre_ruleid | int | Prehandler des Objektes |
pre_ruleparams | char* | Parameter für den Prehandler |
post_ruleid | int | Posthandler des Objektes |
post_ruleparams | char* | Parameter für den Posthandler |
adparams | char* | Parameter für die Platzierung von Werbebannern |
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
statement | String oder char* | - | siehe oben |
l1 | List | - | Allokierte Liste für die IDs der gefundenen Objekte. |
l2 | List | 0 | Allokierte Liste für die ID2s der gefundenen Objekte. |
l3 | List | 0 | Allokierte Liste für die ID3s der gefundenen Objekte. |
s1 | StringList | 0 | Allokierte String-Liste für die StringIDs der gefundenen Objekte. |
flags | int | 0 | Unbenutzt |
checkTemplates | int | 0 | Sollen geprüft werden, ob die Produkte definierte Templates haben? 0 : Nein, keine Prüfung nötig 1 : Ja, bitte prüfen. Produkte ohne definiertes Template in der Produktrecherche werden dann nicht in die Ergebnislisten eingefügt. |
Hier ein Beispiel für ein statement, mit dem alle Produkte und Unterprodukte der aktuellen Auswahl (markiert, nicht Auge!) gesammelt werden. Dabei wird in die Objekte eingetaucht, wenn das Template eines Objektes nicht definiert ist. Bei einer Schachtlungstiefe von 10 wird aufgegeben. Aus der so entstandenen Liste werden dann alle Einträge entfernt, deren id2 <= 0 ist.
selected [pageitemid > 0 ? level < 10] id2 > 2
Das zweite Besipiel sammelt die ersten IDs aller ausgewählten Produkte mit definiertem Template.
int main () { int result; List l1 = list::alloc (); int i;
if (gRun != 0) return 0;
result = datapool::get_products ( "selected [pageitemid > 0]", l1); if (result && result != -1199) { showmessage ("Error %d", result); } else { for (i=0; i < list::length (l1); i++) { showmessage ("%d: %d", i+1, list::get (l1, i)); } }
return 0; }
Das dritte Beispiel demonstriert die Verwendung von Stringlisten mit und ohne Class-ID. Markieren Sie dazu einige Einträge der Produktrecherche mit einem Auge und selektieren Sie einige andere Einträge durch Listenauswahl.
int main () { int id1, id2, id3; int num = 0; List prod = list::alloc(); List prod2 = list::alloc(); List prod3 = list::alloc(); StringList prod4 = stringlist::alloc (); // StringList without Class-ID StringList ppp = stringlist::alloc (3, 1); // StringList with Class-ID char strid[4000]; char name[4000]; char temp[4000];
if (gRun > 1) return 0; // only once
datapool::get_products ("selected ", prod, prod2, prod3, prod4); while (num<list::length(prod)) { id1 = list::get (prod ,num,0); id2 = list::get (prod2,num,0); id3 = list::get (prod3,num,0); stringlist::gettext (prod4, num, "", strid);
strcpy (temp, "get_products %d : \n\n"); strcat (temp, "id1=%d\n"); strcat (temp, "id2=%d\n"); strcat (temp, "id3=%d\n"); strcat (temp, "stringid via stringlist::gettext='%s'\n"); strcat (temp, "stringid via stringlist::get='%s'");
showmessage(temp, num+1, id1, id2,id3, strid, stringlist::get (prod4, num));
num = num+1; }
num = 0; while (num<stringlist::length(ppp)) { stringlist::gettext (ppp, num, "StringID", strid); stringlist::gettext (ppp, num, "Num", name);
strcpy (temp, "alloc by class 3 : entry %d\n\n"); strcat (temp, "stringid='%s'\n"); strcat (temp, "name='%s'");
showmessage(temp, num+1, strid, name);
num = num+1; }
list::release (prod); list::release (prod2); list::release (prod3); list::release (prod4);
return 0; }
static int* datapool::login(
int type,
char* dsn,
char* user = 0,
char* password = 0,
char* dbOrLang = 0,
char* client = 0,
int lazy = 1,
int charset = 0)
Herstellen oder Ändern der globalen Datenverbindung. Dieser Befehl fällt etwas aus dem Rahmen des Moduls. Notwendig und sinnvoll ist die Verwendung nur in speziellen Situation im Server-Betrieb, wenn Batch und Anwendungsdaten aus verschiedenen (wechselnden) Datenbankverbindungen geladen werden sollen.
Name | Typ | Default | Beschreibung |
Return | int*, DBC, SOAP | Neue Datenverbindung oder 0 (bei XML-Daten) | |
type | int | - | Typ der Datenverbindung 1 : ODBC 2 : XML 3 : SOAP |
dsn | String oder char* | - | je nach Verbindungstyp ODBC : DSN XML : path SOAP : Host. |
user | String oder char* | 0 | Benutzername, dieser und alle folgenden Parameter werden bei XML ignoriert |
password | String oder char* | 0 | Passwort |
dbOrLang | String oder char* | 0 | Datenbankname (ODBC) oder Sprache (SOAP) |
client | String oder char* | 0 | Mandant / Client |
lazy | int | 1 | nur neu verbinden, wenn die Daten von denjenigen der aktuellen Verbindung abweichen |
coding | int | 0 | Zeichensatz 0 : Systemzeichensatz 1 : Unicode 2 : Unicode 32Bit 3 : UTF-8 |
static int datapool::logout(int type)
Beende die globale Datenverbindung.
Name | Typ | Default | Beschreibung |
Return | int | 1 Okay 0 : Fehler |
|
type | int | - | Typ der Datenverbindung 1 : ODBC 2 : XML 3 : SOAP |
static int datapool::suppress_warnings(int state = -1)
Nur für den internen Gebrauch Unterdrücken von Warn-Dialogen.
Das Unterdrücken von Warnungen kann zu Fehlern im Dokumentinhalt führen und sollte keinesfalls im Produktvbetrieb verwendet werden! Die Funktion dient ausschließlich zu Testzwecken und sollte nur verwendet werden, wenn Platzhalterinhalte nicht aktualisiert werden müssen.
In den priint:comet Plugins sind aktuell an genau 1510 Stellen Warndialoge und Hinweise. Bitte beachten Sie, dass die Funktion lediglich die Warndialoge für fehleden oder fehlerhafte Skripte und Abfragen (xmlquery, SQL, soapquery) unterdrücken kann. Alle anderen Warnungen und Hinweise bleiben weiterhin aktiv.
Name | Typ | Default | Beschreibung |
Return | int | Bisheriger Wert der Einstellung | |
state | int | -1 | 0 : Alle Dialoge wieder zeigen 1 : Skript- und Abfragefehler unterdrücken 2 : Fehlende und fehlerhafte Platzhalteraktionen nicht warnen 3 : 1 und 2 sonst : Abfrage des aktuellen Statuses Die Einstellung wird beim Beenden der aktuellen Datenverbindung zurückgesetzt auf 0. |
static int datapool::get_main_template(
int pid,
int* l = 0,
int* u = 0,
int* r = 0,
int* cl = 0,
int* cu = 0,
int* cr = 0)
Hole das Haupttemplate eines Templates. Templategruppen bestehen aus bis zu vier Untertemplates für die verschiedenen Seitentypen und die Fortsetzungen.
Name | Typ | Default | Beschreibung |
Return | int | ID des Haupttemplates oder 0 im Fehlerfall | |
pid | int | - | ID des Templates |
l, u, r, cl, cu, cr | jeweils int* | 0 | IDs der Sub-Templates. Wollen Sie einen Werte nicht abholen, bekommt der jeweilge Parameter den Wert 0, sonst die Adresse einer Int_Var. Folgende Werte sollten bei richtiger Konfiguration des Templates definiert sein: Templates für beliebige Seiten l : 0 u : TemplateID r: 0 cl: 0 cu : Fortsetzung oder 0 cl: 0 Seitenspezifische Templates l : linke Seiten u : 0 r: rechte Seiten cl: Fortsetzung auf linken Seiten oder 0 cu : 0 cl: Fortsetzung auf rechten Seiten oder 0 |
Ermittle das Template, das einen Rahmen ins Dokument eingefügt hat und berechne die IDs der Untertemplates.
int main () { char ename [2000]; int tid; int ttid, l, m, r, cl, cm, cr;
tid = frame::get_template (gFrame); ttid = datapool::get_main_template (tid, &l, &m, &r, &cl, &cm, &cr);
wlog ("", "# Frame %d\n", item::getint (gFrame)); wlog ("", "# Template : %d of %d (%s) with [%d, %d, %d, %d, %d, %d]\n", tid, ttid, datapool::get_template_name (tid), l, m, r, cl, cm, cr);
return 0; }
static char* datapool::get_template_name(int pid)
Ermittle den Namen eines Templates.
Name | Typ | Default | Beschreibung |
Return | char* | Name des Templates.
Im Fehlerfall ist das Ergebnis leer ("").
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
pid | int | - | ID des Templates |
Ermittle das Template, das einen Rahmen ins Dokument eingefügt hat und berechne die IDs der Untertemplates.
int main () { char ename [2000]; int tid; int ttid, l, m, r, cl, cm, cr;
tid = frame::get_template (gFrame); ttid = datapool::get_main_template (tid, &l, &m, &r, &cl, &cm, &cr);
wlog ("", "# Frame %d\n", item::getint (gFrame)); wlog ("", "# Template : %d of %d (%s) with [%d, %d, %d, %d, %d, %d]\n", tid, ttid, datapool::get_template_name (tid), l, m, r, cl, cm, cr);
return 0; }
static int datapool::aem_get_list(
PublicationList pli,
char* url,
char* user,
char* password,
char* assetpath = 0,
int inclRenditions = 0)
EXPERIMENTELL! Hole das Inhaltsverzeichnis eines Ordners eines AEM® (Adobe Experience Manager®).
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
pli | PublicationList | - | Zielliste für die gefundenen Einträge des Asset-Ordners. Die Variable
muß mit publication::publicationlist::alloc zuvor allokiert worden sein.
Konnte das Inhaltsverzeichnis erfolgreich gelesen werden, wird die Liste vor
dem Neufüllen automatisch geleert. Die Einträge der Liste können mit publication::gets gelesen werden: kName : Name des Eintrages kType : Typ des Eintrages, "assets/folder" oder "assets/asset" kPath : Pfad des Eintrages in der Asset-Komponente des AEM® |
url | String oder char* | - | URL des AEMs® |
user | String oder char* | - | Benutzername für den Login im AEM® |
password | String oder char* | - | Passwort für den Login im AEM® |
assetpath | String oder char* | - | Vollständiger Pfad des Ordners in der Asset-Komponente des AEMs®. 0 oder leer : Root-Verzeichnis ("/") |
inclRenditions | int | 0 | Renditions mit in die Ergebnisliste aufnehmen? 0 : Nein 1 : Ja |
#include "internal/publications.h"
char stHost [] = "http://192.168.0.208:4502"; char stUser [] = "admin"; char stPwd [] = "***";
int main () { PublicationList pl = publication::publicationlist::alloc (); Publication p; int i;
wlog ("", "==== /my folder ====\n"); datapool::aem_get_list (pl, stHost, stUser, stPwd, "/my folder", 0); for (i = 0; i < publication::publicationlist::length (pl); i++) { p = publication::publicationlist::get (pl, i); wlog ("", "Name : %s\n", publication::gets (p, kName)); wlog ("", "Type : %s\n", publication::gets (p, kType)); wlog ("", "Path : %s\n", publication::gets (p, kPath)); wlog ("", "\n"); }
publication::publicationlist::release (pl);
return 0; }
Alphabetic index HTML hierarchy of classes or Java