XIP Package Import: Unterschied zwischen den Versionen
Ole (Diskussion | Beiträge) |
Ole (Diskussion | Beiträge) |
||
Zeile 5: | Zeile 5: | ||
*Artikelpools (inkl. Metadaten) | *Artikelpools (inkl. Metadaten) | ||
− | Eine Verknüpfung mit anderen Daten ist hierbei vollständig über Anker realisiert. Dadurch sind sowohl Beziehungen zu neuen, wie auch vorhandenen Daten möglich. Jedes Element muß für den Import über einen eindeutigen Anker verfügen. Dieser dient als Primärschlüssel. Bei einem nochmaligen Import wird das entsprechende Element hierüber identifiziert und | + | Eine Verknüpfung mit anderen Daten ist hierbei vollständig über Anker realisiert. Dadurch sind sowohl Beziehungen zu neuen, wie auch vorhandenen Daten möglich. Jedes Element muß für den Import über einen eindeutigen Anker verfügen. Dieser dient als Primärschlüssel. Bei einem nochmaligen Import wird das entsprechende Element hierüber identifiziert und aktualisiert. Auch Verknüpfungen mit anderen Elementen für z.B. Systemlinks erfolgen über den Anker. Auch die Angabe des "<code>parent</code>" für Elemente, wie auch die Beziehung zum Template erfolgt über einen Anker. |
Der Import kann beliebig oft ausgeführt werden. Ist ein Element bereits vorhanden, so werden die in XML beschriebenen Felder ersetzt bzw. ergänzt. Auf diese Weise können sich auch wechselseitige Beziehungen zwischen Elementen und Pools importieren. | Der Import kann beliebig oft ausgeführt werden. Ist ein Element bereits vorhanden, so werden die in XML beschriebenen Felder ersetzt bzw. ergänzt. Auf diese Weise können sich auch wechselseitige Beziehungen zwischen Elementen und Pools importieren. | ||
Importiert werden können: | Importiert werden können: | ||
− | |||
*Einzelne XML-Dateien | *Einzelne XML-Dateien | ||
:Ein XML-Dokument welches sich genau auf einen Artikel bzw. -pool bezieht kann einzeln importiert werden | :Ein XML-Dokument welches sich genau auf einen Artikel bzw. -pool bezieht kann einzeln importiert werden | ||
*Eine Ordnerstruktur von XML-Dateien | *Eine Ordnerstruktur von XML-Dateien | ||
− | :Eine verschachtelte Ordnerstruktur mit XML-Daten kann verwendet werden, um mehrere XML-Dokumente zu importieren. Dabei kann die Verschachtelung verwendet werden um auf die Reihenfolge des Imports Einfluss zu nehmen. Artikelpools sollten i.d.R. vor Artikeln, die in diesem neuen Pool gespeichert werden sollen, importiert werden. Die Verschachtelung der XML-Dokumente hat dabei keinen direkten Einfluß auf Beziehungen im IES. Diese Beziehungen werden ausschließlich über Anker realisiert. Aber dadurch, dass ein Pool oder Element in einem Ordner "oberhalb" eines anderen Elementes liegt, wird dieses | + | :Eine verschachtelte Ordnerstruktur mit XML-Daten kann verwendet werden, um mehrere XML-Dokumente zu importieren. Dabei kann die Verschachtelung verwendet werden, um auf die Reihenfolge des Imports Einfluss zu nehmen. Artikelpools sollten i.d.R. vor Artikeln, die in diesem neuen Pool gespeichert werden sollen, importiert werden. Die Verschachtelung der XML-Dokumente hat dabei keinen direkten Einfluß auf Beziehungen im IES. Diese Beziehungen werden ausschließlich über Anker realisiert. Aber dadurch, dass ein Pool oder Element in einem Ordner "oberhalb" eines anderen Elementes liegt, wird dieses zuerst importiert. Zum ersten Elemente kann das zweite dann eine Beziehung über den Anker aufbauen. |
*XIP-Dateien | *XIP-Dateien | ||
Zeile 20: | Zeile 19: | ||
==Import== | ==Import== | ||
− | Für den Import wird das Java-Commandline-Tool "iespkg" ausgeführt. | + | Für den Import wird das Java-Commandline-Tool "<code>iespkg</code>" ausgeführt. Es werden folgende Parameter benötigt: |
− | |||
<source lang="xml"> | <source lang="xml"> | ||
usage: iespkg import <login> <password> <client> <pkg-file> | usage: iespkg import <login> <password> <client> <pkg-file> | ||
Zeile 27: | Zeile 25: | ||
;<code>import</code> | ;<code>import</code> | ||
− | :Das eigentliche Kommando dieses Tools. Zur Zeit ist hier nur "import" möglich. | + | :Das eigentliche Kommando dieses Tools. Zur Zeit ist hier nur "<code>import</code>" möglich. |
;<code>login</code> | ;<code>login</code> | ||
− | :Account, mit dem die Daten angelegt werden sollen. Beachten Sie bitte, dass | + | :Account, mit dem die Daten angelegt werden sollen. Beachten Sie bitte, dass ausreichende Rechte für den Import gegeben sind. |
;<code>password</code> | ;<code>password</code> | ||
:Das Passwort des Accounts. | :Das Passwort des Accounts. | ||
Zeile 38: | Zeile 36: | ||
Alternativ kann der Import in einer Propertydatei konfguriert werden. Damit lassen sich auch Einstellungen zum Loggin vornehmen. Der Aufruf ist dann nur noch der folgende: | Alternativ kann der Import in einer Propertydatei konfguriert werden. Damit lassen sich auch Einstellungen zum Loggin vornehmen. Der Aufruf ist dann nur noch der folgende: | ||
− | |||
<source lang="xml"> | <source lang="xml"> | ||
usage: iespkg <property-file> <pkg-file> | usage: iespkg <property-file> <pkg-file> | ||
Zeile 44: | Zeile 41: | ||
==Artikel== | ==Artikel== | ||
− | Im Gegensatz zum SOAP-Import ist hier der Import von allen Medientypen möglich. Für die drei Artikeltypen steht jeweils ein eigener XML-Tag zur Verfügung, über den die Daten angelegt bzw. | + | Im Gegensatz zum SOAP-Import ist hier der Import von allen Medientypen möglich. Für die drei Artikeltypen steht jeweils ein eigener XML-Tag zur Verfügung, über den die Daten angelegt, bzw. aktualisiert werden. Die Regeln für den Import der eigentlichen Inhaltsfelder ist danach für alle Artikeltypen identisch. |
− | Die unterschiedlichen Inhaltsfelder werden in Contenttypen unterschieden. Alle Contenttypen werden über einen eigenen XML-Tag beschrieben. Die Typen sind analog zu den Typen aus InfoSite. Neben dem Attribute name wird auch das Attribut locale für alle Tags unterstützt. Die Tags im einzelnen sind: | + | Die unterschiedlichen Inhaltsfelder werden in Contenttypen unterschieden. Alle Contenttypen werden über einen eigenen XML-Tag beschrieben. Die Typen sind analog zu den Typen aus InfoSite. Neben dem Attribute <code>name</code> wird auch das Attribut <code>locale</code> für alle Tags unterstützt. Die Tags im einzelnen sind: |
;<code>text</code> | ;<code>text</code> | ||
Zeile 62: | Zeile 59: | ||
;<code>mail</code> | ;<code>mail</code> | ||
− | :Import von Text-Feldern vom Typ Mail. Inhalte werden nicht validiert und können über ".mail" ausgegeben werden. | + | :Import von Text-Feldern vom Typ Mail. Inhalte werden nicht validiert und können über "<code>.mail</code>" ausgegeben werden. |
:<code><mail name="sp_mail">Email: support@sitepark.com</mail></code> | :<code><mail name="sp_mail">Email: support@sitepark.com</mail></code> | ||
;<code>email</code> | ;<code>email</code> | ||
− | :Import von Text-Feldern vom Typ Email. Inhalte können validiert werden. Dieser Typ wird i.d.R. vom Newsletter o.ä. Modulen verwendet und kann über ".email" ausgegeben werden. | + | :Import von Text-Feldern vom Typ Email. Inhalte können validiert werden. Dieser Typ wird i.d.R. vom Newsletter o.ä. Modulen verwendet und kann über "<code>.email</code>" ausgegeben werden. |
:<code><text name="sp_mail">Email vom Sitepark Support</text></code> | :<code><text name="sp_mail">Email vom Sitepark Support</text></code> | ||
:<code><email name="sp_mail">support@sitepark.com</email></code> | :<code><email name="sp_mail">support@sitepark.com</email></code> | ||
Zeile 80: | Zeile 77: | ||
;<code>link, navlink, systemlink</code> | ;<code>link, navlink, systemlink</code> | ||
− | :Import von Links zu anderen Artikeln (können bereits bestehen oder werden ebenfalls importiert) Die Verknüpfung erfolgt über einen Anker. Wenn der angegebene Anker (noch) nicht verfügbar ist, so wird dieses Feld nicht importiert. | + | :Import von Links zu anderen Artikeln (können bereits bestehen, oder werden ebenfalls importiert) Die Verknüpfung erfolgt über einen Anker. Wenn der angegebene Anker (noch) nicht verfügbar ist, so wird dieses Feld nicht importiert. |
<source lang="xml"> | <source lang="xml"> | ||
<systemlink name="sp_link" anchor="article.x"/> | <systemlink name="sp_link" anchor="article.x"/> | ||
Zeile 87: | Zeile 84: | ||
;<code>list und item</code> | ;<code>list und item</code> | ||
− | :Mit diesen XML-Tags werden Listen erstellt. Über Listen werden vom System Iterate-Felder angelegt, die entsprechend der Inhalte gefüllt sind. Mehrere "item"-Blöcke untereinander erstellen mehrere Iterate-Blöcke. | + | :Mit diesen XML-Tags werden Listen erstellt. Über Listen werden vom System Iterate-Felder angelegt, die entsprechend der Inhalte gefüllt sind. Mehrere "<code>item</code>"-Blöcke untereinander erstellen mehrere Iterate-Blöcke. |
<source lang="xml"> | <source lang="xml"> | ||
<!-- ein Iterator (hier für Texte und Links) --> | <!-- ein Iterator (hier für Texte und Links) --> | ||
Zeile 103: | Zeile 100: | ||
;<code>binary</code> | ;<code>binary</code> | ||
− | :Mit diesem Tag werden Upload-Felder definiert. Dies ermöglicht das | + | :Mit diesem Tag werden Upload-Felder definiert. Dies ermöglicht das Einbinden von Medien in Artikel, oder das Anlegen von Medienartikeln. Das Attribut "<code>url</code>" gibt an, wo sich die zu importierende Datei befindet. Hier ist die Angabe eines relativen oder absoluten Pfades ebenso wie die Angabe einer externen URL möglich: |
<source lang="xml"> | <source lang="xml"> | ||
<binary name="sp_externalmedia_1" url="file://../media/a.gif"/> | <binary name="sp_externalmedia_1" url="file://../media/a.gif"/> | ||
Zeile 111: | Zeile 108: | ||
</source> | </source> | ||
− | ;publication-state | + | ;<code>publication-state</code> |
:Dieser Tag dient zur Steuerung der Publikation des Artikels. Die Angabe kann sowohl über die Publisher-ID, als auch über den entsprechenden Anker vorgenommen werden. Es sind hier nur die Publikationsbereiche anzugeben, in denen der Artikel publiziert werden soll. Alle übrigen Publikationsbereiche können weggelassen werden. Alternativ kann auch der Status auf 0 gesetzt werden. Beachten Sie, dass die Rechte des Import-Nutzer ausreichen. | :Dieser Tag dient zur Steuerung der Publikation des Artikels. Die Angabe kann sowohl über die Publisher-ID, als auch über den entsprechenden Anker vorgenommen werden. Es sind hier nur die Publikationsbereiche anzugeben, in denen der Artikel publiziert werden soll. Alle übrigen Publikationsbereiche können weggelassen werden. Alternativ kann auch der Status auf 0 gesetzt werden. Beachten Sie, dass die Rechte des Import-Nutzer ausreichen. | ||
<source lang="xml"> | <source lang="xml"> | ||
Zeile 122: | Zeile 119: | ||
:Dieser Tag dient zur Beschreibung von Terminen. Auch Angaben zur Freischaltung erfolgen über diesen Tag. Zu beachten ist, dass die Zeiten als Long-Werte (Millisekunden seit 00:00:00 Uhr 01.01.1970) angegeben werden müssen. | :Dieser Tag dient zur Beschreibung von Terminen. Auch Angaben zur Freischaltung erfolgen über diesen Tag. Zu beachten ist, dass die Zeiten als Long-Werte (Millisekunden seit 00:00:00 Uhr 01.01.1970) angegeben werden müssen. | ||
− | Details zu Terminen werden über den entry Tag beschrieben. Folgende Attribute sind hier möglich: | + | Details zu Terminen werden über den <code>entry</code>-Tag beschrieben. Folgende Attribute sind hier möglich: |
;<code>from</code> | ;<code>from</code> | ||
:Long Wert für den Beginn des Termins | :Long Wert für den Beginn des Termins | ||
Zeile 128: | Zeile 125: | ||
:Long Wert für das Ende des Termins | :Long Wert für das Ende des Termins | ||
;<code>type</code> | ;<code>type</code> | ||
− | :Typ des Termins (day, daily, weekly, monthlyByDay, monthlyByOccurrence, yearlyByDay, yearlyByOccurrence, yearlyByMonth) | + | :Typ des Termins (<code>day, daily, weekly, monthlyByDay, monthlyByOccurrence, yearlyByDay, yearlyByOccurrence, yearlyByMonth</code>) |
;<code>interval</code> | ;<code>interval</code> | ||
:Wiederholungsintervall der Termins (z.B. jeden 2-ten Tag) | :Wiederholungsintervall der Termins (z.B. jeden 2-ten Tag) | ||
;<code>all-day</code> | ;<code>all-day</code> | ||
− | :Ganztägiger Termin (true, false) | + | :Ganztägiger Termin (<code>true</code>, <code>false</code>) |
;<code>repetition-count</code> | ;<code>repetition-count</code> | ||
:Anzahl der Wiederholungen | :Anzahl der Wiederholungen | ||
Zeile 138: | Zeile 135: | ||
:Long Wert für das Ende der Wiederholungen | :Long Wert für das Ende der Wiederholungen | ||
;<code>dow</code> | ;<code>dow</code> | ||
− | :Tage der Woche, an denen der Termin stattfindet (sun,mon,tue,wed,thu,fri,sat) | + | :Tage der Woche, an denen der Termin stattfindet (<code>sun,mon,tue,wed,thu,fri,sat</code>) |
;<code>dom</code> | ;<code>dom</code> | ||
:Zahl für den Tag des Monats | :Zahl für den Tag des Monats | ||
Zeile 160: | Zeile 157: | ||
</source> | </source> | ||
− | Um einen Artikel von Zeitpunkt A bis zum Zeitpunkt B in den Publikationsbereichen "www" und "preview" freizugeben, ist folgender XML-Code zu generieren: | + | Um einen Artikel von Zeitpunkt A bis zum Zeitpunkt B in den Publikationsbereichen "<code>www</code>" und "<code>preview</code>" freizugeben, ist folgender XML-Code zu generieren: |
<source lang="xml"> | <source lang="xml"> | ||
<calendar name="publicationFrom"> | <calendar name="publicationFrom"> | ||
Zeile 179: | Zeile 176: | ||
===Eigene Seiten=== | ===Eigene Seiten=== | ||
− | Um einen Artikel zu importieren muss eine XML-Datei erstellt werden, die das Root-Element "article" verwendet. Attribute des Tags erlauben die Beschreibung des Artikels. Alle Angaben neben Systemwerten werden über den oben beschriebenen | + | Um einen Artikel zu importieren muss eine XML-Datei erstellt werden, die das Root-Element "<code>article</code>" verwendet. Attribute des Tags erlauben die Beschreibung des Artikels. Alle Angaben neben Systemwerten werden über den oben beschriebenen Tag vorgenommen. |
− | |||
;<code>anchor</code> | ;<code>anchor</code> | ||
− | :Anker des Artikels. Dient beim wiederholten Import als Primärschlüssel dieser Daten (String). | + | :Anker des Artikels. Dient beim wiederholten Import als Primärschlüssel dieser Daten ([[String]]). |
;<code>name</code> | ;<code>name</code> | ||
:Name des Artikels. | :Name des Artikels. | ||
;<code>parent</code> | ;<code>parent</code> | ||
− | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String). | + | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen ([[String]]). |
;<code>template</code> | ;<code>template</code> | ||
− | :Anker des Templates, welches diesem Artikel zugewiesen werden soll. Die Angabe muss über einen Anker erfolgen (String). | + | :Anker des Templates, welches diesem Artikel zugewiesen werden soll. Die Angabe muss über einen Anker erfolgen ([[String]]). |
;<code>filename</code> | ;<code>filename</code> | ||
− | :Der Dateiname des Artikels. Fehlt dieses Attribut, so wird der Dateiname automatisch vergeben (String). | + | :Der Dateiname des Artikels. Fehlt dieses Attribut, so wird der Dateiname automatisch vergeben ([[String]]). |
Hier ein vollständiges Beispiel eines Artikels: | Hier ein vollständiges Beispiel eines Artikels: | ||
Zeile 270: | Zeile 266: | ||
===Medien=== | ===Medien=== | ||
− | Um ein Medium zu importieren muss neben dem eigentlichen Medium eine XML-Datei erstellt werden, die das Root-Element "media" verwendet. In dieser Datei wird das Medium beschrieben und ein Anker zugewiesen. Alle Angaben neben Systemwerten werden über den oben beschriebenen | + | Um ein Medium zu importieren muss neben dem eigentlichen Medium eine XML-Datei erstellt werden, die das Root-Element "<code>media</code>" verwendet. In dieser Datei wird das Medium beschrieben und ein Anker zugewiesen. Alle Angaben neben Systemwerten werden über den oben beschriebenen Tag vorgenommen. |
Hier ein vollständiges Beispiel eines Medienimports: | Hier ein vollständiges Beispiel eines Medienimports: | ||
Zeile 308: | Zeile 304: | ||
===Resourcen=== | ===Resourcen=== | ||
− | Falls Resourceartikel importiert werden sollen, steht der Tag "resource" zur Verfügung. Die Beschreibung der Daten erfolgt analog zu den anderen Artikeltypen. Lediglich das Root-Element muss vom Typ "resource" sein. | + | Falls Resourceartikel importiert werden sollen, steht der Tag "<code>resource</code>" zur Verfügung. Die Beschreibung der Daten erfolgt analog zu den anderen Artikeltypen. Lediglich das Root-Element muss vom Typ "<code>resource</code>" sein. |
Hier ein vollständiges Beispiel eines Medienimports: | Hier ein vollständiges Beispiel eines Medienimports: | ||
Zeile 323: | Zeile 319: | ||
parent Anker des Parentpools (Angabe muss über einen Anker erfolgen) | parent Anker des Parentpools (Angabe muss über einen Anker erfolgen) | ||
template Anker des verwendeten Templates (Angabe muss über einen Anker erfolgen) | template Anker des verwendeten Templates (Angabe muss über einen Anker erfolgen) | ||
− | filename Dateiname des Artikels (nur für den Typ <article) | + | filename Dateiname des Artikels (nur für den Typ <article>) |
--> | --> | ||
<resource | <resource | ||
Zeile 350: | Zeile 346: | ||
==Nutzer== | ==Nutzer== | ||
− | Neben Artikeln können auch alle anderen IES-Elemente bzw. Pools über diese Schnittstelle importiert werden. Die Eigenschaften | + | Neben Artikeln können auch alle anderen IES-Elemente bzw. Pools über diese Schnittstelle importiert werden. Die Eigenschaften der Nutzer werden über Attribute bestimmt. Zusäzliche Inhalte (z.B. Telefonnummer) werden über eine Resource beschrieben. Hier gelten die selben Bedingungen wie bei Resource-Artikeln. |
Attribute des XML-Elements "user" | Attribute des XML-Elements "user" | ||
− | |||
;<code>anchor</code> | ;<code>anchor</code> | ||
− | :Anker des Nutzers. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String). | + | :Anker des Nutzers. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel ([[String]]). |
;<code>parent</code> | ;<code>parent</code> | ||
− | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String). | + | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen ([[String]]). |
;<code>firstname</code> | ;<code>firstname</code> | ||
− | :Vorname des Nutzers (String). | + | :Vorname des Nutzers ([[String]]). |
;<code>lastname</code> | ;<code>lastname</code> | ||
− | :Nachname des Nutzers (String). | + | :Nachname des Nutzers ([[String]]). |
;<code>login</code> | ;<code>login</code> | ||
− | :Login des Nutzers (String). | + | :Login des Nutzers ([[String]]). |
;<code>type</code> | ;<code>type</code> | ||
− | :Nutzertyp (Integer). | + | :Nutzertyp ([[Integer]]). |
;<code>password</code> | ;<code>password</code> | ||
− | :binäres Passwort Nutzers (i.d.R. wird das Attribut "clear-password" verwendet um ein Passwort zu setzen) (Base64-Encoded Bytes). | + | :binäres Passwort Nutzers (i.d.R. wird das Attribut "<code>clear-password</code>" verwendet, um ein Passwort zu setzen) (<code>Base64-Encoded Bytes</code>). |
;<code>clear-password</code> | ;<code>clear-password</code> | ||
− | :Klartextpasswort des Nutzers (String). | + | :Klartextpasswort des Nutzers ([[String]]). |
;<code>email</code> | ;<code>email</code> | ||
− | :System-Email-Adresse des Nutzers (String). | + | :System-Email-Adresse des Nutzers ([[String]]). |
;<code>locale</code> | ;<code>locale</code> | ||
− | :Sprache des Nutzers (z.B. "de" oder "de_DE") (String). | + | :Sprache des Nutzers (z.B. "<code>de</code>" oder "<code>de_DE</code>") ([[String]]). |
;<code>sex</code> | ;<code>sex</code> | ||
− | :Geschlecht des Nutzers (0=female, 1=male, -1=unknown) (Integer). | + | :Geschlecht des Nutzers (<code>0=female, 1=male, -1=unknown</code>) ([[Integer]]). |
;<code>valid-from</code> | ;<code>valid-from</code> | ||
− | :Ein Long-Wert mit der Angabe der Freischaltungszeit (Long). | + | :Ein Long-Wert mit der Angabe der Freischaltungszeit ([[Long]]). |
;<code>valid-to</code> | ;<code>valid-to</code> | ||
− | :Ein Long-Wert mit der Angabe der Freischaltungszeit (Long). | + | :Ein Long-Wert mit der Angabe der Freischaltungszeit ([[Long]]). |
;<code>disabled</code> | ;<code>disabled</code> | ||
− | :Sperre des Nutzers (Boolean). | + | :Sperre des Nutzers ([[Boolean]]). |
==Templates== | ==Templates== | ||
− | Die Eigenschaften für Templates werden ebenfalls über Attribute bestimmt. Zusäzliche Inhalte (z.B. das Layout) werden über eine Resource beschrieben. Hier gelten die selben | + | Die Eigenschaften für Templates werden ebenfalls über Attribute bestimmt. Zusäzliche Inhalte (z.B. das Layout) werden über eine Resource beschrieben. Hier gelten die selben Bedingungen wie bei Resource-Artikeln. |
− | |||
− | |||
+ | Attribute bzw. Unterelemente des XML-Elements "<code>template</code>" | ||
;<code>anchor</code> | ;<code>anchor</code> | ||
− | :Anker des Templates. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String). | + | :Anker des Templates. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel ([[String]]). |
;<code>name</code> | ;<code>name</code> | ||
− | :Name des Templates (String). | + | :Name des Templates ([[String]]). |
;<code>parent</code> | ;<code>parent</code> | ||
− | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String). | + | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen ([[String]]). |
;<code>type</code> | ;<code>type</code> | ||
− | :Optionaler Typ des Templates (Template: 6000, Tag: 6001) (Integer). | + | :Optionaler Typ des Templates (Template: 6000, Tag: 6001) ([[Integer]]). |
;<code>spml-version</code> | ;<code>spml-version</code> | ||
− | :Optionale Angabe der SPML-Version, auf der das Template basiert (String). | + | :Optionale Angabe der SPML-Version, auf der das Template basiert ([[String]]). |
;<code>suffix</code> | ;<code>suffix</code> | ||
− | :Dateiendung für Artikel die mit diesem Template angelegt werden (String). | + | :Dateiendung für Artikel die mit diesem Template angelegt werden ([[String]]). |
;<code>source</code> | ;<code>source</code> | ||
− | :Der SPML-Quellcode des Templates als sog. Body-Tag: <code>< source > ... < /source ></code> (String). | + | :Der SPML-Quellcode des Templates als sog. Body-Tag: <code>< source > ... < /source ></code> ([[String]]). |
− | Das Feld "layout" wird als "text" innerhalb einer "resource" definiert und hat folgende Werte: | + | Das Feld "<code>layout</code>" wird als "<code>text</code>" innerhalb einer "<code>resource</code>" definiert und hat folgende Werte: |
;<code>common</code> | ;<code>common</code> | ||
:Normales Template. | :Normales Template. | ||
;<code>handler</code> | ;<code>handler</code> | ||
− | :Template welches eigene Handler-Aufrufe | + | :Template welches eigene Handler-Aufrufe enthält. |
;<code>tag</code> | ;<code>tag</code> | ||
:Ein Tag-Template. | :Ein Tag-Template. | ||
Zeile 415: | Zeile 409: | ||
==Rollen== | ==Rollen== | ||
− | Die Eigenschaften für Rollen werden ebenfalls über Attribute bestimmt. Zusäzliche Inhalte können über eine Resource beschrieben. Hier gelten die selben | + | Die Eigenschaften für Rollen werden ebenfalls über Attribute bestimmt. Zusäzliche Inhalte können über eine Resource beschrieben. Hier gelten die selben Bedingungen wie bei Resource-Artikeln. Die Angabe der Publisher für diese Rolle wird über einen eigene Tag gesteuert. Dieser steht innerhalb des Tags "<code>role</code>". |
− | Attribute des XML-Elements "role" | + | Attribute des XML-Elements "<code>role</code>" |
;<code>anchor</code> | ;<code>anchor</code> | ||
− | :Anker des Rolle. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String). | + | :Anker des Rolle. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel ([[String]]). |
;<code>name</code> | ;<code>name</code> | ||
− | :Name der Rolle (String). | + | :Name der Rolle ([[String]]). |
;<code>parent</code> | ;<code>parent</code> | ||
− | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String). | + | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen ([[String]]). |
;<code>new-element</code> | ;<code>new-element</code> | ||
− | :Das Recht neue Elemente anzulegen (Boolean). | + | :Das Recht neue Elemente anzulegen ([[Boolean]]). |
;<code>read-element</code> | ;<code>read-element</code> | ||
− | :Das Recht Elemente zu lesen (Boolean). | + | :Das Recht Elemente zu lesen ([[Boolean]]]). |
;<code>modify-element</code> | ;<code>modify-element</code> | ||
− | :Das Recht Elemente zu verändern (Boolean). | + | :Das Recht Elemente zu verändern ([[Boolean]]). |
;<code>delete-element</code> | ;<code>delete-element</code> | ||
− | :Das Recht Elemente zu löschen (Boolean). | + | :Das Recht Elemente zu löschen ([[Boolean]]). |
;<code>duplicate-element</code> | ;<code>duplicate-element</code> | ||
− | :Das Recht Elemente zu duplizieren (Boolean). | + | :Das Recht Elemente zu duplizieren ([[Boolean]]). |
;<code>max-element</code> | ;<code>max-element</code> | ||
− | :Maximale Anzahl an Elementen (Integer). | + | :Maximale Anzahl an Elementen ([[Integer]]). |
;<code>read</code> | ;<code>read</code> | ||
− | :Das Recht den aktuellen Pool zu lesen (Boolean). | + | :Das Recht den aktuellen Pool zu lesen ([[Boolean]]). |
;<code>modify</code> | ;<code>modify</code> | ||
− | :Das Recht den aktuellen Pool zu verändern (Boolean). | + | :Das Recht den aktuellen Pool zu verändern ([[Boolean]]). |
;<code>duplicate</code> | ;<code>duplicate</code> | ||
− | :Das Recht den aktuellen Pool zu duplizieren (Boolean). | + | :Das Recht den aktuellen Pool zu duplizieren ([[Boolean]]). |
;<code>new-pool</code> | ;<code>new-pool</code> | ||
− | :Das Recht neue Pools anzulegen (Boolean). | + | :Das Recht neue Pools anzulegen ([[Boolean]]). |
;<code>delete-pool</code> | ;<code>delete-pool</code> | ||
− | :Das Recht Pools zu löschen (Boolean). | + | :Das Recht Pools zu löschen ([[Boolean]]). |
;<code>max-pool</code> | ;<code>max-pool</code> | ||
− | :Maximale Anzahl an Pools (Integer). | + | :Maximale Anzahl an Pools ([[Integer]]). |
;<code>editor-level</code> | ;<code>editor-level</code> | ||
− | :Angabe des Level (Kommaseparierte Liste von Strings) | + | :Angabe des Level (Kommaseparierte Liste von [[String|Strings]]) |
;<code>is-workflow-role</code> | ;<code>is-workflow-role</code> | ||
− | :Angabe, ob diese Rolle für Workflow verwendet werden soll (Boolean). | + | :Angabe, ob diese Rolle für Workflow verwendet werden soll ([[Boolean]]). |
;<code>publisher</code> | ;<code>publisher</code> | ||
− | :Dieser Tag dient zur Konfiguration der Publisher dieser Rolle. Die Angabe kann sowohl über die Publisher-ID, als auch über den entsprechenden Anker vorgenommen werden. Das Feld "hide" (Boolean) steuert, ob der Publisher sichtbar sein soll oder nicht. | + | :Dieser Tag dient zur Konfiguration der Publisher dieser Rolle. Die Angabe kann sowohl über die Publisher-ID, als auch über den entsprechenden Anker vorgenommen werden. Das Feld "<code>hide</code>" ([[Boolean]]) steuert, ob der Publisher sichtbar sein soll oder nicht. |
:<source lang="xml"> | :<source lang="xml"> | ||
<publisher publisher-id="pub1" hide="true"/> | <publisher publisher-id="pub1" hide="true"/> | ||
Zeile 461: | Zeile 455: | ||
==Artikelpools== | ==Artikelpools== | ||
− | Um einen Artikelpool zu importieren muss eine XML-Datei erstellt werden, die das Root-Element "articlepool" verwendet. Attribute des Tags erlauben die Beschreibung des Pools. Alle Angaben neben Systemwerten werden innerhalb eines | + | Um einen Artikelpool zu importieren, muss eine XML-Datei erstellt werden, die das Root-Element "<code>articlepool</code>" verwendet. Attribute des Tags erlauben die Beschreibung des Pools. Alle Angaben neben Systemwerten werden innerhalb eines Resource-Tags vorgenommen. Hier gelten die selben Bedingungen wie bei Resource-Artikeln. |
− | |||
− | |||
+ | Attribute des XML-Elements "<code>articlepool</code>" | ||
;<code>anchor</code> | ;<code>anchor</code> | ||
− | :Anker des Pools. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String). | + | :Anker des Pools. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel ([[String]]). |
;<code>name</code> | ;<code>name</code> | ||
− | :Name des Pools (String). | + | :Name des Pools ([[String]]). |
;<code>parent</code> | ;<code>parent</code> | ||
− | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String). | + | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen ([[String]]). |
;<code>directory</code> | ;<code>directory</code> | ||
− | :Angabe des Arbeitsverzeichnisses dieses Artikelpools (String). | + | :Angabe des Arbeitsverzeichnisses dieses Artikelpools ([[String]]). |
Hier ein vollständiges Beispiel eines Artikelpools: | Hier ein vollständiges Beispiel eines Artikelpools: | ||
Zeile 535: | Zeile 528: | ||
===Angaben zur Konfiguration=== | ===Angaben zur Konfiguration=== | ||
− | Damit ein Artikelpool in InfoSite 5 so funktioniert wie ein manuell ersteller Pool, müssen bestimmte Felder mit entsprechenden META-Daten angelegt werden. Hierzu zählen im | + | Damit ein Artikelpool in InfoSite 5 so funktioniert wie ein manuell ersteller Pool, müssen bestimmte Felder mit entsprechenden <code>META</code>-Daten angelegt werden. Hierzu zählen im Besonderen die Angaben zum Feld "<code>container</code>" und "<code>registration_template</code>". Die Felder "<code>editor_template_pool</code>" und "<code>editor_template</code>" verweisen auf das ausgewählte Template bzw. den Templatepool, der dem Redakteur zur Verfügung steht. |
<source lang="xml"> | <source lang="xml"> | ||
<!-- | <!-- | ||
Zeile 562: | Zeile 555: | ||
====Standard InfoSite Container==== | ====Standard InfoSite Container==== | ||
− | Der "Standard InfoSite Container" wird i.d.R. für alle normalen | + | Der "Standard InfoSite Container" wird i.d.R. für alle normalen Artikelpools verwandt. Hierüber ist ein Redakteur in der Lage Artikel jeden Typs anzulegen. Die Konfiguration der möglichen Artikeltypen wird über das Feld "<code>registration_template</code>" vorgenommen. Dies erfolgt in InfoSite über eine Select-Box. Im XML-Dokument müssen diese Werte manuell über Anker eingestellt werden. Folgende Anker sind dafür vorhanden: |
− | |||
;"alle Artikel-Typen" | ;"alle Artikel-Typen" | ||
:<code>gui.container.infosite.standard.all</code> | :<code>gui.container.infosite.standard.all</code> | ||
− | |||
;"nur Medien anlegen" | ;"nur Medien anlegen" | ||
:<code>gui.container.infosite.standard.media</code> | :<code>gui.container.infosite.standard.media</code> | ||
− | |||
;"nur Ressourcen anlegen" | ;"nur Ressourcen anlegen" | ||
:<code>gui.container.infosite.standard.resource</code> | :<code>gui.container.infosite.standard.resource</code> | ||
− | |||
;"nur Seiten anlegen" | ;"nur Seiten anlegen" | ||
:<code>gui.container.infosite.standard.page</code> | :<code>gui.container.infosite.standard.page</code> | ||
− | |||
;"nur Seiten ohne Namensvergabe anlegen" | ;"nur Seiten ohne Namensvergabe anlegen" | ||
:<code>gui.container.infosite.standard.pageAutoName</code> | :<code>gui.container.infosite.standard.pageAutoName</code> | ||
− | |||
;"nur Seiten und Medien anlegen" | ;"nur Seiten und Medien anlegen" | ||
:<code>gui.container.infosite.standard.pageAndMedia</code> | :<code>gui.container.infosite.standard.pageAndMedia</code> | ||
− | |||
;"nur Seiten und Ressourcen anlegen" | ;"nur Seiten und Ressourcen anlegen" | ||
:<code>gui.container.infosite.standard.pageAndResource</code> | :<code>gui.container.infosite.standard.pageAndResource</code> | ||
====Standard Medien Container==== | ====Standard Medien Container==== | ||
− | Der "Standard Medien Container" wird für reine Medienpools verwandt. Hier sind neben der Angabe Container keine weiteren Angaben notwendig. | + | Der "Standard Medien Container" wird für reine Medienpools verwandt. Hier sind neben der Angabe <code>Container</code> keine weiteren Angaben notwendig. |
==Nutzer-, Template- und Rollenpools== | ==Nutzer-, Template- und Rollenpools== | ||
− | Um einen Nutzer-, Rollen oder Templatepool zu importieren muss eine XML-Datei erstellt werden, die das entsprechende Root-Element, also "userpool", "templatepool" oder "rolepool" verwendet. Attribute des Tags erlauben die Beschreibung des Pools. Alle Angaben neben Systemwerten werden innerhalb eines | + | Um einen Nutzer-, Rollen oder Templatepool zu importieren, muss eine XML-Datei erstellt werden, die das entsprechende Root-Element, also "<code>userpool</code>", "<code>templatepool</code>" oder "<code>rolepool</code>" verwendet. Attribute des Tags erlauben die Beschreibung des Pools. Alle Angaben neben Systemwerten werden innerhalb eines Resource-Tags vorgenommen. Hier gelten die selben Bedingungen wie bei Resource-Artikeln. |
− | |||
− | |||
+ | Attribute der XML-Elements "<code>userpool</code>", "<code>templatepool</code>", "<code>rolepool</code>" | ||
;<code>anchor</code> | ;<code>anchor</code> | ||
− | :Anker des Pools. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String). | + | :Anker des Pools. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel ([[String]]). |
;<code>name</code> | ;<code>name</code> | ||
− | :Name des Pools (String). | + | :Name des Pools ([[String]]). |
;<code>parent</code> | ;<code>parent</code> | ||
− | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String). | + | :Anker des Parentpools. Die Angabe muss über einen Anker erfolgen ([[String]]). |
Version vom 9. Juli 2008, 13:16 Uhr
Beschreibung
Der Import von Daten via XML ist neben dem SOAP-Import in einer deutlich komplexeren Form über eine native Java-Schnittstelle möglich. Hierüber können zur Zeit folgende Daten angelegt oder aktualisiert werden:
- Artikeln (Eingene Seiten, Medien, Resourcen)
- Artikelpools (inkl. Metadaten)
Eine Verknüpfung mit anderen Daten ist hierbei vollständig über Anker realisiert. Dadurch sind sowohl Beziehungen zu neuen, wie auch vorhandenen Daten möglich. Jedes Element muß für den Import über einen eindeutigen Anker verfügen. Dieser dient als Primärschlüssel. Bei einem nochmaligen Import wird das entsprechende Element hierüber identifiziert und aktualisiert. Auch Verknüpfungen mit anderen Elementen für z.B. Systemlinks erfolgen über den Anker. Auch die Angabe des "parent
" für Elemente, wie auch die Beziehung zum Template erfolgt über einen Anker.
Der Import kann beliebig oft ausgeführt werden. Ist ein Element bereits vorhanden, so werden die in XML beschriebenen Felder ersetzt bzw. ergänzt. Auf diese Weise können sich auch wechselseitige Beziehungen zwischen Elementen und Pools importieren.
Importiert werden können:
- Einzelne XML-Dateien
- Ein XML-Dokument welches sich genau auf einen Artikel bzw. -pool bezieht kann einzeln importiert werden
- Eine Ordnerstruktur von XML-Dateien
- Eine verschachtelte Ordnerstruktur mit XML-Daten kann verwendet werden, um mehrere XML-Dokumente zu importieren. Dabei kann die Verschachtelung verwendet werden, um auf die Reihenfolge des Imports Einfluss zu nehmen. Artikelpools sollten i.d.R. vor Artikeln, die in diesem neuen Pool gespeichert werden sollen, importiert werden. Die Verschachtelung der XML-Dokumente hat dabei keinen direkten Einfluß auf Beziehungen im IES. Diese Beziehungen werden ausschließlich über Anker realisiert. Aber dadurch, dass ein Pool oder Element in einem Ordner "oberhalb" eines anderen Elementes liegt, wird dieses zuerst importiert. Zum ersten Elemente kann das zweite dann eine Beziehung über den Anker aufbauen.
- XIP-Dateien
- XIP Dateien sind gezippte XML-Strukturen (siehe oben). Der Vorteil liegt darin, dass bei einem Upload nur eine Datei angegeben werden muß. Dieses Format wird in Zukunft noch weiter ausgebaut.
Import
Für den Import wird das Java-Commandline-Tool "iespkg
" ausgeführt. Es werden folgende Parameter benötigt:
usage: iespkg import <login> <password> <client> <pkg-file>
import
- Das eigentliche Kommando dieses Tools. Zur Zeit ist hier nur "
import
" möglich. login
- Account, mit dem die Daten angelegt werden sollen. Beachten Sie bitte, dass ausreichende Rechte für den Import gegeben sind.
password
- Das Passwort des Accounts.
client
- Der Namespace / Anker des Mandanten, in den die Daten importiert werden sollen. In diesem Mandanten muss auch der Nutzer des Imports konfiguriert sein.
pkg-file
- Die XML-Datei bzw. der Ordner oder das XIP-Paket mit den XML-Dateien, in denen die Informationen für den Import stehen.
Alternativ kann der Import in einer Propertydatei konfguriert werden. Damit lassen sich auch Einstellungen zum Loggin vornehmen. Der Aufruf ist dann nur noch der folgende:
usage: iespkg <property-file> <pkg-file>
Artikel
Im Gegensatz zum SOAP-Import ist hier der Import von allen Medientypen möglich. Für die drei Artikeltypen steht jeweils ein eigener XML-Tag zur Verfügung, über den die Daten angelegt, bzw. aktualisiert werden. Die Regeln für den Import der eigentlichen Inhaltsfelder ist danach für alle Artikeltypen identisch.
Die unterschiedlichen Inhaltsfelder werden in Contenttypen unterschieden. Alle Contenttypen werden über einen eigenen XML-Tag beschrieben. Die Typen sind analog zu den Typen aus InfoSite. Neben dem Attribute name
wird auch das Attribut locale
für alle Tags unterstützt. Die Tags im einzelnen sind:
text
- Import einfacher Textinhalte
<text name="sp_headline">Die Rubrikseite</text>
<text name="sp_intro" locale="de">Links auf alle anderen importierten Seiten</text>
date
- Import Long-Werte als Typ Date
<date name="sp_date">1165408738935</date>
number
- Import Zahlen als Typ Number
<number name="sp_number" locale="de_DE">123</number>
mail
- Import von Text-Feldern vom Typ Mail. Inhalte werden nicht validiert und können über "
.mail
" ausgegeben werden. <mail name="sp_mail">Email: support@sitepark.com</mail>
email
- Import von Text-Feldern vom Typ Email. Inhalte können validiert werden. Dieser Typ wird i.d.R. vom Newsletter o.ä. Modulen verwendet und kann über "
.email
" ausgegeben werden. <text name="sp_mail">Email vom Sitepark Support</text>
<email name="sp_mail">support@sitepark.com</email>
query
- Import von Queries.
<query name="sp_query">parent = !{myparent}</query>
url
- Import manuell eingegebene URLs
<text name="external">www.google.de</text>
<url name="external">http://www.google.de</url>
link, navlink, systemlink
- Import von Links zu anderen Artikeln (können bereits bestehen, oder werden ebenfalls importiert) Die Verknüpfung erfolgt über einen Anker. Wenn der angegebene Anker (noch) nicht verfügbar ist, so wird dieses Feld nicht importiert.
<systemlink name="sp_link" anchor="article.x"/>
<link name="sp_simplelink" anchor="article.y"/>
list und item
- Mit diesen XML-Tags werden Listen erstellt. Über Listen werden vom System Iterate-Felder angelegt, die entsprechend der Inhalte gefüllt sind. Mehrere "
item
"-Blöcke untereinander erstellen mehrere Iterate-Blöcke.
<!-- ein Iterator (hier für Texte und Links) -->
<list name="sp_main_iterate">
<item>
<!-- Einfache Inhaltsfelder -->
<text name="sp_subheadline">Content:</text>
<text name="sp_part">Link auf die Rubrikseite</text>
<!-- Link auf einen anderen Artikel -->
<link name="sp_link" anchor="article.rubric"/>
</item>
</list>
binary
- Mit diesem Tag werden Upload-Felder definiert. Dies ermöglicht das Einbinden von Medien in Artikel, oder das Anlegen von Medienartikeln. Das Attribut "
url
" gibt an, wo sich die zu importierende Datei befindet. Hier ist die Angabe eines relativen oder absoluten Pfades ebenso wie die Angabe einer externen URL möglich:
<binary name="sp_externalmedia_1" url="file://../media/a.gif"/>
<binary name="sp_externalmedia_1" url="file://./image.gif"/>
<binary name="sp_externalmedia_2" url="file:///tmp/level_1/media/b.gif"/>
<binary name="sp_externalmedia_3" url="http://www.sitepark.com/btn_ies.gif"/>
publication-state
- Dieser Tag dient zur Steuerung der Publikation des Artikels. Die Angabe kann sowohl über die Publisher-ID, als auch über den entsprechenden Anker vorgenommen werden. Es sind hier nur die Publikationsbereiche anzugeben, in denen der Artikel publiziert werden soll. Alle übrigen Publikationsbereiche können weggelassen werden. Alternativ kann auch der Status auf 0 gesetzt werden. Beachten Sie, dass die Rechte des Import-Nutzer ausreichen.
<publication-state publisher-id="pub1" status="1"/>
<publication-state publisher-id="pub2" status="0"/>
<publication-state anchor="preview" status="1"/>
calendar
- Dieser Tag dient zur Beschreibung von Terminen. Auch Angaben zur Freischaltung erfolgen über diesen Tag. Zu beachten ist, dass die Zeiten als Long-Werte (Millisekunden seit 00:00:00 Uhr 01.01.1970) angegeben werden müssen.
Details zu Terminen werden über den entry
-Tag beschrieben. Folgende Attribute sind hier möglich:
from
- Long Wert für den Beginn des Termins
to
- Long Wert für das Ende des Termins
type
- Typ des Termins (
day, daily, weekly, monthlyByDay, monthlyByOccurrence, yearlyByDay, yearlyByOccurrence, yearlyByMonth
) interval
- Wiederholungsintervall der Termins (z.B. jeden 2-ten Tag)
all-day
- Ganztägiger Termin (
true
,false
) repetition-count
- Anzahl der Wiederholungen
repetition-date
- Long Wert für das Ende der Wiederholungen
dow
- Tage der Woche, an denen der Termin stattfindet (
sun,mon,tue,wed,thu,fri,sat
) dom
- Zahl für den Tag des Monats
doy
- Zahl für den Tag des Jahres
oom
- Zahl für das Vorkommen in der Woche (z.B. 1. Freitag im Monat)
moy
- Zahl für den Monat des Jahres (0=Januar, 11=Dezember)
Ein Wiederhol-Termin könnte z.B: durch folgenden XML-Code beschrieben werden:
<calendar name="sp_date">
<entry from="1208296800000" to="1208296800000"
type="weekly"
interval="0"
all-day="true"
repetition-date="1208383200000"
dow="wed,thu"/>
</calendar>
Um einen Artikel von Zeitpunkt A bis zum Zeitpunkt B in den Publikationsbereichen "www
" und "preview
" freizugeben, ist folgender XML-Code zu generieren:
<calendar name="publicationFrom">
<entry from="978351240000" to="978351240000"/>
<publish-task template="my.template.anchor">
<publisher anchor="www"/>
<publisher anchor="preview"/>
</publish-task>
</calendar>
<calendar name="publicationTo">
<entry from="1355353140000" to="1355353140000"/>
<depublish-task template-id="1010100000026042-6000">
<publisher publisher-id="pub1"/>
<publisher anchor="preview"/>
</depublish-task>
</calendar>
Eigene Seiten
Um einen Artikel zu importieren muss eine XML-Datei erstellt werden, die das Root-Element "article
" verwendet. Attribute des Tags erlauben die Beschreibung des Artikels. Alle Angaben neben Systemwerten werden über den oben beschriebenen Tag vorgenommen.
anchor
- Anker des Artikels. Dient beim wiederholten Import als Primärschlüssel dieser Daten (String).
name
- Name des Artikels.
parent
- Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String).
template
- Anker des Templates, welches diesem Artikel zugewiesen werden soll. Die Angabe muss über einen Anker erfolgen (String).
filename
- Der Dateiname des Artikels. Fehlt dieses Attribut, so wird der Dateiname automatisch vergeben (String).
Hier ein vollständiges Beispiel eines Artikels:
<!--
Einen Artikel anlegen:
<article legt einen Artikel an
<media legt ein Medium an
<resource legt einen Resource-Artikel an
anchor Anker des Artikel (dient beim wiederholten Import als Primärschlüssel)
name Name des Artikels
parent Anker des Parentpools (Angabe muss über einen Anker erfolgen)
template Anker des verwendeten Templates (Angabe muss über einen Anker erfolgen)
filename Dateiname des Artikels (nur für den Typ <article)
-->
<article
anchor="article.america"
name="The World according to America"
parent="import.pool.1"
template="tpl.content"
filename="article.america">
<!-- Kommantarfeld des Artikels -->
<comment>kann: Ein kleiner Kommentar</comment>
<!-- Publikationsstatus des Artikels -->
<publication-state publisher-id="pub1" status="1" />
<publication-state publisher-id="pub2" status="1" />
<!-- Einfache Inhaltsfelder -->
<text name="sp_headline">The World According To America</text>
<text name="sp_intro">
Kleine Zeichnung zum amerikanischen Verständnis der Welt.
</text>
<!-- Beispiel für einer Checkbox true/false -->
<text name="sp_textHTML">true</text>
<!-- Beispiel für eine Selectbox -->
<text name="sp_select">left</text>
<!-- ein Iterator (hier für Texte und Links) -->
<list name="sp_main_iterate">
<item>
<!-- Einfache Inhaltsfelder -->
<text name="sp_subheadline">The World:</text>
<text name="sp_part">
Hier kommt die Grafik und ein Link auf die Rubrikseite
</text>
<!-- Systemlink auf einen anderen Artikel -->
<systemlink name="sp_mon_link" anchor="article.rubric"/>
<!-- Navlink auf einen anderen Artikel -->
<systemlink name="sp_nav_link" anchor="article.content.2"/>
<!-- Link auf einen anderen Artikel -->
<link name="sp_link" anchor="article.rubric"/>
<text name="sp_link">link auf article.rubric</text>
<!-- Link auf ein Medium -->
<systemlink name="sp_image" anchor="image.america"/>
<!-- Externe URL und Linktext -->
<text name="sp_external">www.google.de</text>
<url name="sp_external">http://www.google.de</url>
</item>
</list>
<!--
ein Upload-Feld (das Medium wird beim Import von der angegebenen URL
(extern oder relativ) geladen)
-->
<binary name="sp_externalmedia" url="http://www.sitepark.com/btn_ies.gif"/>
</article>
Medien
Um ein Medium zu importieren muss neben dem eigentlichen Medium eine XML-Datei erstellt werden, die das Root-Element "media
" verwendet. In dieser Datei wird das Medium beschrieben und ein Anker zugewiesen. Alle Angaben neben Systemwerten werden über den oben beschriebenen Tag vorgenommen.
Hier ein vollständiges Beispiel eines Medienimports:
<!--
Einen Artikel anlegen:
<article legt einen Artikel an
<media legt ein Medium an
<resource legt einen Resource-Artikel an
anchor Anker des Artikel (dient beim wiederholten Import als Primärschlüssel)
name Name des Artikels
parent Anker des Parentpools (Angabe muss über einen Anker erfolgen)
template Anker des verwendeten Templates (Angabe muss über einen Anker erfolgen)
filename Dateiname des Artikels (nur für den Typ <article)
-->
<media
anchor="image.america"
name="The World according to America (IMAGE)"
parent="import.pool.media">
<!-- Kommantarfeld des Artikels -->
<comment>kann: Ein kleiner Kommentar</comment>
<!-- Publikationsstatus des Artikels -->
<publication-state publisher-id="pub1" status="1" />
<publication-state publisher-id="pub2" status="1" />
<!--
ein Upload-Feld (das Medium wird beim Import von der angegebenen URL
(extern oder relativ) geladen)
-->
<binary url="file://./america.gif"/>
</media>
Resourcen
Falls Resourceartikel importiert werden sollen, steht der Tag "resource
" zur Verfügung. Die Beschreibung der Daten erfolgt analog zu den anderen Artikeltypen. Lediglich das Root-Element muss vom Typ "resource
" sein.
Hier ein vollständiges Beispiel eines Medienimports:
<!--
Einen Artikel anlegen:
<article legt einen Artikel an
<media legt ein Medium an
<resource legt einen Resource-Artikel an
anchor Anker des Artikel (dient beim wiederholten Import als Primärschlüssel)
name Name des Artikels
parent Anker des Parentpools (Angabe muss über einen Anker erfolgen)
template Anker des verwendeten Templates (Angabe muss über einen Anker erfolgen)
filename Dateiname des Artikels (nur für den Typ <article>)
-->
<resource
anchor="article.externe.url"
name="Eine externe URL"
parent="import.pool.1"
template="tpl.external">
<!-- Kommantarfeld des Artikels -->
<comment>kann: Ein kleiner Kommentar</comment>
<!-- Publikationsstatus des Artikels -->
<publication-state publisher-id="pub1" status="1" />
<publication-state publisher-id="pub2" status="1" />
<!--
Externe URL und Linktext.
name "external" sorgt bei Resource-Artikeln automatisch für die Ausgabe
der richtigen URL
-->
<text name="external">www.google.de</text>
<url name="external">http://www.google.de</url>
</resource>
Nutzer
Neben Artikeln können auch alle anderen IES-Elemente bzw. Pools über diese Schnittstelle importiert werden. Die Eigenschaften der Nutzer werden über Attribute bestimmt. Zusäzliche Inhalte (z.B. Telefonnummer) werden über eine Resource beschrieben. Hier gelten die selben Bedingungen wie bei Resource-Artikeln.
Attribute des XML-Elements "user"
anchor
- Anker des Nutzers. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String).
parent
- Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String).
firstname
- Vorname des Nutzers (String).
lastname
- Nachname des Nutzers (String).
login
- Login des Nutzers (String).
type
- Nutzertyp (Integer).
password
- binäres Passwort Nutzers (i.d.R. wird das Attribut "
clear-password
" verwendet, um ein Passwort zu setzen) (Base64-Encoded Bytes
). clear-password
- Klartextpasswort des Nutzers (String).
email
- System-Email-Adresse des Nutzers (String).
locale
- Sprache des Nutzers (z.B. "
de
" oder "de_DE
") (String). sex
- Geschlecht des Nutzers (
0=female, 1=male, -1=unknown
) (Integer). valid-from
- Ein Long-Wert mit der Angabe der Freischaltungszeit (Long).
valid-to
- Ein Long-Wert mit der Angabe der Freischaltungszeit (Long).
disabled
- Sperre des Nutzers (Boolean).
Templates
Die Eigenschaften für Templates werden ebenfalls über Attribute bestimmt. Zusäzliche Inhalte (z.B. das Layout) werden über eine Resource beschrieben. Hier gelten die selben Bedingungen wie bei Resource-Artikeln.
Attribute bzw. Unterelemente des XML-Elements "template
"
anchor
- Anker des Templates. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String).
name
- Name des Templates (String).
parent
- Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String).
type
- Optionaler Typ des Templates (Template: 6000, Tag: 6001) (Integer).
spml-version
- Optionale Angabe der SPML-Version, auf der das Template basiert (String).
suffix
- Dateiendung für Artikel die mit diesem Template angelegt werden (String).
source
- Der SPML-Quellcode des Templates als sog. Body-Tag:
< source > ... < /source >
(String).
Das Feld "layout
" wird als "text
" innerhalb einer "resource
" definiert und hat folgende Werte:
common
- Normales Template.
handler
- Template welches eigene Handler-Aufrufe enthält.
tag
- Ein Tag-Template.
container
- Ein Template mit Angaben zum Container.
Rollen
Die Eigenschaften für Rollen werden ebenfalls über Attribute bestimmt. Zusäzliche Inhalte können über eine Resource beschrieben. Hier gelten die selben Bedingungen wie bei Resource-Artikeln. Die Angabe der Publisher für diese Rolle wird über einen eigene Tag gesteuert. Dieser steht innerhalb des Tags "role
".
Attribute des XML-Elements "role
"
anchor
- Anker des Rolle. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String).
name
- Name der Rolle (String).
parent
- Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String).
new-element
- Das Recht neue Elemente anzulegen (Boolean).
read-element
- Das Recht Elemente zu lesen (Boolean]).
modify-element
- Das Recht Elemente zu verändern (Boolean).
delete-element
- Das Recht Elemente zu löschen (Boolean).
duplicate-element
- Das Recht Elemente zu duplizieren (Boolean).
max-element
- Maximale Anzahl an Elementen (Integer).
read
- Das Recht den aktuellen Pool zu lesen (Boolean).
modify
- Das Recht den aktuellen Pool zu verändern (Boolean).
duplicate
- Das Recht den aktuellen Pool zu duplizieren (Boolean).
new-pool
- Das Recht neue Pools anzulegen (Boolean).
delete-pool
- Das Recht Pools zu löschen (Boolean).
max-pool
- Maximale Anzahl an Pools (Integer).
editor-level
- Angabe des Level (Kommaseparierte Liste von Strings)
is-workflow-role
- Angabe, ob diese Rolle für Workflow verwendet werden soll (Boolean).
publisher
- Dieser Tag dient zur Konfiguration der Publisher dieser Rolle. Die Angabe kann sowohl über die Publisher-ID, als auch über den entsprechenden Anker vorgenommen werden. Das Feld "
hide
" (Boolean) steuert, ob der Publisher sichtbar sein soll oder nicht. <publisher publisher-id="pub1" hide="true"/> <publisher publisher-id="pub2" hide="false"/> <publisher anchor="preview" hide="false"/>
Artikelpools
Um einen Artikelpool zu importieren, muss eine XML-Datei erstellt werden, die das Root-Element "articlepool
" verwendet. Attribute des Tags erlauben die Beschreibung des Pools. Alle Angaben neben Systemwerten werden innerhalb eines Resource-Tags vorgenommen. Hier gelten die selben Bedingungen wie bei Resource-Artikeln.
Attribute des XML-Elements "articlepool
"
anchor
- Anker des Pools. Dient beim wiederholten Import als Primärschlüssel dieser Daten und als Parent für die Artikel (String).
name
- Name des Pools (String).
parent
- Anker des Parentpools. Die Angabe muss über einen Anker erfolgen (String).
directory
- Angabe des Arbeitsverzeichnisses dieses Artikelpools (String).
Hier ein vollständiges Beispiel eines Artikelpools:
<!--
Einen Artikelpool anlegen:
<articlepool legt einen Artikel an
anchor Anker des Pools (dient beim wiederholten Import als Primärschlüssel
und als Parent für die Artikel)
name Name des Pools
parent Anker des Parentpools (Angabe muss über einen Anker erfolgen)
directory Angabe des Arbeitsverzeichnisses dieses Artikelpools
-->
<articlepool
anchor="import.pool.1"
name="Pool für importierte Artikel (Ebene 1)"
parent="gui.informations"
directory="/level_1">
<!--
Sämtliche META-Daten eines Pools werden vom System implizit in einer
Resource gespeichert
-->
<resource>
<!--
einfache Textfelder, in denen die Konfiguration der Artikelpools
steht (auch hier über die Angabe von Ankern gelöst)
-->
<!--
Angabe des Containers:
"is5:gui.container.infosite.standard" oder
"is5:gui.container.infosite.media" möglich
-->
<text name="container" anchor="is5:gui.container.infosite.standard"></text>
<!--
Angabe des Template-Pools, für die Auswahl von Templates in diesem Pool:
Ein Anker aus dem eigenem System
-->
<text name="editorTemplatePool" anchor="standard.container.editing"></text>
<!--
Angabe des Templates für die Artikelanmeldung:
"is5:gui.container.infosite.standard.all"
erlaubt beispielsweise das Anlegen aller Artikeltypen
-->
<text
name="registrationTemplate"
anchor="is5:gui.container.infosite.standard.all">
</text>
<!-- beliebige weitere Eingabefelder -->
<text name="sp_rubric">demo</text>
<systemlink name="sp_parentLink" anchor="article.rubric"/>
</resource>
</articlepool>
Angaben zur Konfiguration
Damit ein Artikelpool in InfoSite 5 so funktioniert wie ein manuell ersteller Pool, müssen bestimmte Felder mit entsprechenden META
-Daten angelegt werden. Hierzu zählen im Besonderen die Angaben zum Feld "container
" und "registration_template
". Die Felder "editor_template_pool
" und "editor_template
" verweisen auf das ausgewählte Template bzw. den Templatepool, der dem Redakteur zur Verfügung steht.
<!--
Angabe des Containers:
is5:gui.container.infosite.standard
is5:gui.container.infosite.media
-->
<text name="container" anchor="is5:gui.container.infosite.standard"></text>
<!--
Angabe des Template-Pools, für die Auswahl von Templates in diesem Pool:
Ein Anker aus dem eigenem System
-->
<text name="editorTemplatePool" anchor="standard.container.editing"></text>
<!--
Angabe des Templates für die Artikelanmeldung:
is5:gui.container.infosite.standard.all
(erlaubt z.B. das Anlegen aller Artikeltypen)
-->
<text
name="registrationTemplate"
anchor="is5:gui.container.infosite.standard.all">
</text>
Standard InfoSite Container
Der "Standard InfoSite Container" wird i.d.R. für alle normalen Artikelpools verwandt. Hierüber ist ein Redakteur in der Lage Artikel jeden Typs anzulegen. Die Konfiguration der möglichen Artikeltypen wird über das Feld "registration_template
" vorgenommen. Dies erfolgt in InfoSite über eine Select-Box. Im XML-Dokument müssen diese Werte manuell über Anker eingestellt werden. Folgende Anker sind dafür vorhanden:
- "alle Artikel-Typen"
gui.container.infosite.standard.all
- "nur Medien anlegen"
gui.container.infosite.standard.media
- "nur Ressourcen anlegen"
gui.container.infosite.standard.resource
- "nur Seiten anlegen"
gui.container.infosite.standard.page
- "nur Seiten ohne Namensvergabe anlegen"
gui.container.infosite.standard.pageAutoName
- "nur Seiten und Medien anlegen"
gui.container.infosite.standard.pageAndMedia
- "nur Seiten und Ressourcen anlegen"
gui.container.infosite.standard.pageAndResource
Standard Medien Container
Der "Standard Medien Container" wird für reine Medienpools verwandt. Hier sind neben der Angabe Container
keine weiteren Angaben notwendig.
Nutzer-, Template- und Rollenpools
Um einen Nutzer-, Rollen oder Templatepool zu importieren, muss eine XML-Datei erstellt werden, die das entsprechende Root-Element, also "userpool
", "templatepool
" oder "rolepool
" verwendet. Attribute des Tags erlauben die Beschreibung des Pools. Alle Angaben neben Systemwerten werden innerhalb eines Resource-Tags vorgenommen. Hier gelten die selben Bedingungen wie bei Resource-Artikeln.
Attribute der XML-Elements "userpool
", "templatepool
", "rolepool
"