<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.sitepark.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Liebold</id>
	<title>SiteparkWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sitepark.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Liebold"/>
	<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php/Spezial:Beitr%C3%A4ge/Liebold"/>
	<updated>2026-05-25T18:52:06Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8474</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8474"/>
		<updated>2017-07-13T11:40:57Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Systemarchitektur (vereinfacht) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die Sitekit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die Arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. &lt;br /&gt;
&lt;br /&gt;
Damit können folgende Probleme gelöst werden:&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine Alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des Sitekit-Frameworks generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des Sitekit-Frameworks als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das Sitekit-Frameworks sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das Sitekit-Framework liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im Sitekit-Framework enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von Sitekit-Framework bereit gestellten Komponenten sind barrierefrei und verhalten sich responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolocation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem, Zeitsteuerung.&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das Sitekit-Framework soll die Technik enthalten, die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das Sitekit-Framework updatefähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige updatefähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Framework, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
Das Sitekit-Framework und Infosite 6 zusammen bilden die &amp;quot;Infosite 6 Enterprise Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemasken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das Sitekit-Framework stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der Sitekit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und kundenspezifische-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das Sitekit-Framework stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8473</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8473"/>
		<updated>2017-07-13T11:36:38Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Systemarchitektur (vereinfacht) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die Sitekit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die Arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. &lt;br /&gt;
&lt;br /&gt;
Damit können folgende Probleme gelöst werden:&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine Alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des Sitekit-Frameworks generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des Sitekit-Frameworks als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das Sitekit-Frameworks sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das Sitekit-Framework liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im Sitekit-Framework enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von Sitekit-Framework bereit gestellten Komponenten sind barrierefrei und verhalten sich responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolocation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem, Zeitsteuerung.&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das Sitekit-Framework soll die Technik enthalten, die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das Sitekit-Framework updatefähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige updatefähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Framework, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
Das Sitekit-Framework und Infosite 6 zusammen bilden die &amp;quot;Infosite 6 Enterprise Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemasken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das Sitekit-Framework stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der Sitekit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8472</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8472"/>
		<updated>2017-07-13T11:35:22Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Kundenmodul */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die Sitekit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die Arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. &lt;br /&gt;
&lt;br /&gt;
Damit können folgende Probleme gelöst werden:&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine Alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des Sitekit-Frameworks generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des Sitekit-Frameworks als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das Sitekit-Frameworks sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das Sitekit-Framework liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im Sitekit-Framework enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von Sitekit-Framework bereit gestellten Komponenten sind barrierefrei und verhalten sich responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolocation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem, Zeitsteuerung.&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das Sitekit-Framework soll die Technik enthalten, die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das Sitekit-Framework updatefähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige updatefähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Framework, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
SiteKit und Infosite6 zusammen bilden &amp;quot;Infosite 6 Enterprise-Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemaken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das SiteKit stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der SiteKit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8471</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8471"/>
		<updated>2017-07-13T11:35:04Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Whitelabel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die Sitekit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die Arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. &lt;br /&gt;
&lt;br /&gt;
Damit können folgende Probleme gelöst werden:&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine Alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des Sitekit-Frameworks generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des Sitekit-Frameworks als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das Sitekit-Frameworks sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das Sitekit-Framework liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im Sitekit-Framework enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von Sitekit-Framework bereit gestellten Komponenten sind barrierefrei und verhalten sich responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolocation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem, Zeitsteuerung.&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das Sitekit-Framework soll die Technik enthalten, die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das Sitekit-Framework updatefähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige updatefähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Framework, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle Kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
SiteKit und Infosite6 zusammen bilden &amp;quot;Infosite 6 Enterprise-Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemaken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das SiteKit stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der SiteKit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8470</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8470"/>
		<updated>2017-07-13T11:33:26Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Generelle Funktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die Sitekit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die Arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. &lt;br /&gt;
&lt;br /&gt;
Damit können folgende Probleme gelöst werden:&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine Alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des Sitekit-Frameworks generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des Sitekit-Frameworks als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das Sitekit-Frameworks sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das Sitekit-Framework liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im Sitekit-Framework enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von Sitekit-Framework bereit gestellten Komponenten sind barrierefrei und verhalten sich responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolocation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem, Zeitsteuerung.&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das SiteKit soll die Technik enthalten die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das SiteKit-Modul update-fähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige update-Fähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Modul, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle Kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
SiteKit und Infosite6 zusammen bilden &amp;quot;Infosite 6 Enterprise-Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemaken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das SiteKit stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der SiteKit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8469</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8469"/>
		<updated>2017-07-13T11:32:05Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Sitekit-Framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die Sitekit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die Arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. &lt;br /&gt;
&lt;br /&gt;
Damit können folgende Probleme gelöst werden:&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine Alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des Sitekit-Frameworks generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des Sitekit-Frameworks als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das Sitekit-Frameworks sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das Sitekit-Framework liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im Sitekit-Framework enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von Sitekit-Framework bereit gestellten Komponenten sind barrierefrei und verhalten sich responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolokation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für Z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem. Zeitsteuerung&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das SiteKit soll die Technik enthalten die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das SiteKit-Modul update-fähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige update-Fähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Modul, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle Kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
SiteKit und Infosite6 zusammen bilden &amp;quot;Infosite 6 Enterprise-Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemaken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das SiteKit stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der SiteKit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8468</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8468"/>
		<updated>2017-07-13T11:29:58Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Sitekit-Framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die Sitekit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die Arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. &lt;br /&gt;
&lt;br /&gt;
Damit können folgende Probleme gelöst werden:&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine Alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des SiteKit generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des SiteKit als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das SiteKit sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das SiteKit liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im SiteKit enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von SiteKit bereit gestellten Komponenten sind barrierefrei und responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolokation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für Z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem. Zeitsteuerung&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das SiteKit soll die Technik enthalten die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das SiteKit-Modul update-fähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige update-Fähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Modul, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle Kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
SiteKit und Infosite6 zusammen bilden &amp;quot;Infosite 6 Enterprise-Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemaken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das SiteKit stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der SiteKit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8467</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8467"/>
		<updated>2017-07-13T11:29:08Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Sitekit-Framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die Sitekit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die Arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. &lt;br /&gt;
&lt;br /&gt;
Damit können folgende Probleme gelöst werden:&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des SiteKit generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des SiteKit als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das SiteKit sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das SiteKit liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im SiteKit enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von SiteKit bereit gestellten Komponenten sind barrierefrei und responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolokation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für Z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem. Zeitsteuerung&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das SiteKit soll die Technik enthalten die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das SiteKit-Modul update-fähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige update-Fähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Modul, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle Kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
SiteKit und Infosite6 zusammen bilden &amp;quot;Infosite 6 Enterprise-Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemaken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das SiteKit stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der SiteKit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8466</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8466"/>
		<updated>2017-07-13T11:28:28Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Sitekit-Framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die Sitekit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die Arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. Damit können folgende Probleme gelöst werden:&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des SiteKit generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des SiteKit als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das SiteKit sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das SiteKit liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im SiteKit enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von SiteKit bereit gestellten Komponenten sind barrierefrei und responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolokation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für Z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem. Zeitsteuerung&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das SiteKit soll die Technik enthalten die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das SiteKit-Modul update-fähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige update-Fähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Modul, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle Kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
SiteKit und Infosite6 zusammen bilden &amp;quot;Infosite 6 Enterprise-Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemaken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das SiteKit stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der SiteKit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8465</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8465"/>
		<updated>2017-07-13T11:27:17Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Sitekit-Framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die Sitekit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. Damit können folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des SiteKit generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des SiteKit als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das SiteKit sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das SiteKit liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im SiteKit enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von SiteKit bereit gestellten Komponenten sind barrierefrei und responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolokation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für Z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem. Zeitsteuerung&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das SiteKit soll die Technik enthalten die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das SiteKit-Modul update-fähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige update-Fähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Modul, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle Kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
SiteKit und Infosite6 zusammen bilden &amp;quot;Infosite 6 Enterprise-Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemaken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das SiteKit stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der SiteKit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8464</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8464"/>
		<updated>2017-07-13T11:26:55Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Sitekit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit-Framework=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die SiteKit-Framework genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. Damit können folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des SiteKit generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des SiteKit als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das SiteKit sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das SiteKit liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im SiteKit enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von SiteKit bereit gestellten Komponenten sind barrierefrei und responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolokation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für Z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem. Zeitsteuerung&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das SiteKit soll die Technik enthalten die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das SiteKit-Modul update-fähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige update-Fähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Modul, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle Kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
SiteKit und Infosite6 zusammen bilden &amp;quot;Infosite 6 Enterprise-Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemaken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das SiteKit stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der SiteKit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8463</id>
		<title>Infosite 6 Enterprise Edition</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Infosite_6_Enterprise_Edition&amp;diff=8463"/>
		<updated>2017-07-13T11:20:00Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Motivation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Motivation=&lt;br /&gt;
&lt;br /&gt;
Bevor die Technik für die 'Infosite 6 Enterprise Edition' zur Verfügung stand, sind Projekte mit 'alten' Methoden aufgebaut worden. Hier sollen die alten Methoden kurz beschrieben werden um den Bedarf dieser Neukonzeption nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Templates für den Aufbau einer Webseite werden in der Datenbank eines IES-Mandanten gespeichert.&lt;br /&gt;
Sie werden verwenden um Eingabe-Masken für das CMS zu erzeugen und Ausgaben für die Webseite. Die durch die Ausgabe-Templates generierten Dateien enthalten in der Regel PHP-, HTML-, JavaScript- und CSS-Code, der auf die Anforderungen der Webseite angepasst ist.&lt;br /&gt;
&lt;br /&gt;
Bearbeitet wurden die Templates im Browser über ein Textarea-Feld im Template-Editor. Dieser Template-Editor ist Teil von Infosite.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Templates werden bei diesem Vorgen noch JavaScripte, CSS, PHP-Klassen und ggf. Bilder benötigt die als Artikel und Medien-Artikel im Mandanten gespeichert sind.&lt;br /&gt;
&lt;br /&gt;
Für neuen Projekte hat Sitepark ein Master-System das als Vorlage dient. Das Master-System wird einmalig in das Kunden-System kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Vorgehen hatte einige Probleme zur Folge. Diese waren z.B.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: Die Bearbeitung der Templates muss Systembedingt in einem Textarea-Feld erfolgen. Durch den Template-Editor steht zwar z.B. ein Syntax-Highlighting zur Verfügung, es fehlt aber der Funktionsumfang eines Text-Editors. Um den Funktions-Umfang eines Editors nutzen zu können, muss das Template in einen Text-Editor kopiert werden. Nach der Bearbeitung muss es wieder in das Textarea-Feld kopiert werden.&lt;br /&gt;
&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Es ist nicht möglich parallel an einem Template zu arbeiten. Besonders problematisch bei zentralen Templates wie z.b. 'PHP-Head'&lt;br /&gt;
&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Auf dem Aufbau-System werden Templates entwickelt, so wie JavaScripte und CSS erzeugt. Diese müssen in regelmäßigen Abständen auf des Live-System gespielt werden. Hier nutzen wir XIP um die notwendigen Daten zu exportieren und auf dem Live-System wieder zu importieren. Bei diesem Verfahren muss bekannt sein welche Templates und Ressourcen übertragen werden dürfen und welche noch in der Entwicklung sind. Dies zu verwalten ist sehr aufwendig und Fehler-trächtig.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Änderungen am Ausgabeteil eines Templates wirken sich erst aus, wenn die Artikel, die dieses Template verwenden neu generiert werden. Häufig ist es der Fall, dass dann die gesamte Website neu generiert werden muss. Da dies bei großen Websites mehrere Stunden in Anspruch nehmen kann, blockiert das den Entwicklungs-Prozess.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Da die Entwicklung immer im Kunden-System und nicht im Master-System erfolgt, werden hier auch Funktionen implementiert, die in das Master-System zurück fließen müssen. Da die Templates sich durch kundenspezifische Anpassungen von dem Templates im Master-System unterscheiden kann nicht das gesamte Template übernommen werden. Es müssen im Prinzip Zeilenweise die Code-Stellen in das Master-System übertragen werden. Bei parallel laufenden Projekten, die die Funktionalität ebenfalls nutzen möchten, müssen diese Code-Stellen auch noch in das andere Kunden-Projekt übertragen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Bei Templates die eine Ausgabe erzeugen, möchte man möglichst unnötige Zeilenumbrüche vermeiden, die durch die Verwendung von SP-Tags entstehen. Daher werden oft Zeilenumbrüche in Kommentare gefasst oder ganz auf Zeilenumbrüche bei SP-Tags verzichtet. Weiter ist SPML-Logik mit PHP-Logik vermischt. Dadurch können Templates schnell unübersichtlich werden.&lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Das Master-System dient nur als Kopiervorlage für Projekte. Die Templates werden nach den kundenspezifischen Anforderungen angepasst. Dadurch sind sie nicht mehr updatefähig. Neue Funktionalitäten können nur mit Aufwand in Bestands-Systeme integriert werden, da hier auch die einzelnen Code-Stellen einzeln in die Templates übertragen werden muss.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Module wie Veranstaltungskalender, Verzeichnis-Modul, Voting-Modul, Shop-Module, ... werden für einen bestimmten Stand des Master-System entwickelt. Das Master-System entwickelt sich mit jedem Projekt weiter, ohne aber eine einheitliche Basis sicherzustellen. Dies hat zur Folge das Module auf jedes System angepasst werden müssen, und nicht einfach installierbar sind.&lt;br /&gt;
&lt;br /&gt;
=Sitekit=&lt;br /&gt;
&lt;br /&gt;
Um die oben genannte Probleme zu lösen, wurden neue Konzepte entwickelt, dessen technische Implementierung eine neue Plattform bildet, die SiteKit genannt wird.&lt;br /&gt;
&lt;br /&gt;
Ein grundsätzliches Problem war, das Templates über Textarea-Felder in der Datenbank gespeichert werden. Templates sollen Dateien sein. Templates eines Projektes sollen in einem kundenspezifischen Modul zusammengefasst werden. Auch JavaScript, CSS, Fonts, Bilder und PHP-Dateien liegen in diesem Modul. Diese Module werden über ein GIT-Repository versioniert. Das Modul kann mit einer IDE bearbeitet werden. Auf jedem Arbeitsplatz existiert eine IES-Installation und die arbeit an Templates kann lokal auf dem eigenen Entwicklungs-Rechner erfolgen. Damit können folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Bearbeitung im Textarea-Feld: wird nicht mehr benötigt. Bearbeitung erfolgt über eine IDE.&lt;br /&gt;
;Kollaboratives Arbeiten im Projekt: Jeder entwickelt auf seinem eigenen System und über GIT werden alle Änderungen zusammengeführt.&lt;br /&gt;
;Übertragung des Entwicklungsstandes vom Aufbau- zum Live-System: Die Entwicklungsarbeiten werden in einem Kunden-Modul zusammengefasst und können als eine Module-Datei (war-Datei, ZIP-Format) auf das Aufbau- und Live-System gespielt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es keine Templates in der Datenbank mehr gibt, dann gibt es auch keine Template-Pools mehr. Template-Pools sind aber notwendig, um Artikel-Pools zu konfigurieren, damit bestimmt werden kann, mit welchen Templates Artikel angelegt werden können. Weiter wurde über Template-Pools bestimmt, welche Abschnitte für einen bestimmten Artikel-Typ ausgewählt werden dürfen. Daher wurde hier eine alternative geschaffen.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun Group-Types (Artikel-Pool-Typen), Objects-Types (Artikel-Typen), Steps und Sections (Abschnitte)&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Sitekit-Types-Steps-Sections.png|Sitekit Typen, Steps und Abschnitte|center|frame|800px]]&lt;br /&gt;
&lt;br /&gt;
Ein Objekt-Type ist ein Seiten-Typ. Dieser kann z.B. eine Homepage, eine Rubrik-Seite, eine Inhalts-Seite oder irgend eine spezialisierte Seite sein. Je nach Object-Type existieren unterschiedliche Ein- und Ausgaben. Ein Group-Type definiert eine bestimmte Art von Artikel-Pool. Über den Group-Typ wird fest gelegt, welche Objekt-Typen in Artikel-Pools eines bestimmen Group-Typs angelegt werden können. Die Bearbeitung eines Artikels ist in einzelne Schritte (Steps) unterteilt. In jedem Step gibt es verschiedene Abschnitte, in der die Teile der Eingabe-Masken strukturiert sind. Objekt-Typen definieren welche Steps verwendet werden. Steps definieren welche Abschnitte verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres, grundsätzliches Problem ist die Vermischung von Daten, Logik und Darstellung. Die PHP-Seiten, die mit bisherigen Templates generiert wurden, enthielten Daten, Logik und HTML-Code an den Stellen, wo sie gerade benötigt wurden. Alles sehr vermischt in einer PHP-Datei.&lt;br /&gt;
&lt;br /&gt;
;Daten (Raw-Content):&lt;br /&gt;
Templates des SiteKit generieren nur noch die Daten in die PHP-Datei. Daher bezeichnen wir die Ausgabe-Templates des SiteKit als Aggregatoren. Zur Generierungszeit werden über die Aggregatoren die Daten so aufbereitet und angereichert, dass sie für die Darstellung gut geeignet sind. Diese Aufbereitung erfolg Ausgabe-Neutral, so dass aus den Daten nicht nur HTML, sondern auch andere Formate wie XML oder JSON erzeugt werden können. Mit diesem Ansatz wird aus Infosite ein Headless CMS. Durch dieses Vorgehen profitiert z.B auch die Suche. Bisher konnten in einem Suchergebnis nur die Daten dargestellt werden die im Suchindex enthalten waren. Jetzt ist es möglich ggf. die gesamten Daten eines Artikels für die Darstellung eines Suchergebnisses nachzuladen.&lt;br /&gt;
&lt;br /&gt;
;Logik:&lt;br /&gt;
Die Logik wird in Komponenten abgelegt. Komponenten sind Teilbereiche einer Webseite. Die gesamte Webseite wird in einzelne Komponenten zerlegt, die auch ineinander verschachtelt sein können. Viele Komponenten habe keine Logik, dann dienen sie nur als Platzhalter für die Darstellung. Komponenten wie z.B. die Suche enthalten aber auch Logik. Das SiteKit sorgt dafür das zunächst die Logik der Komponenten ausgeführt wird. Ist die gesamte Logik ausgeführt, kann die Webseite dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
;Ausgabe:&lt;br /&gt;
Für jede Komponente existiert ein Renderer. Dieser erzeugt das HTML (oder ein anderes Ausgabeformat) für die Komponenten.&lt;br /&gt;
&lt;br /&gt;
;Styling&lt;br /&gt;
Auf Basis des HTML, das die Renderer erzeugen können Styles definiert werden um die gewünschte Darstellung zu erreichen. &lt;br /&gt;
&lt;br /&gt;
So sind Daten, Logik und Darstellung in Aggregatoren, Komponenten und Renderer aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Technik werden von Sitepark Komponenten entwickelt, die in den Kunden-Projekten eingesetzt werden können. Ziel ist es die Komponenten konfigurativ so anpassen zu können das sie den individuellen Anforderungen der Projekte genügen. Sollte das nicht ausreichen, können kundenspezifische Komponenten erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit den oben beschriebenen Mitteln sollen folgende Probleme gelöst werden.&lt;br /&gt;
&lt;br /&gt;
;Änderungen an Templates hat oft das Generieren der gesamten Site zur Folge: Die Seiten müssen nur noch generiert werden, wenn sich die Aggregatoren ändern. Bei Änderungen an der Logik oder an der Darstellung ist kein neu-generieren mehr notwendig.&lt;br /&gt;
&lt;br /&gt;
;Produkt-Features werden im Kunden-System implementiert: Es gibt keinen Master-System mehr. Produkterweiterungen, die sich aus dem Projekt ergeben werden während des Projektes in das Produkt-Modul integriert und auch direkt verwendet.&lt;br /&gt;
&lt;br /&gt;
;Template-Code wird schnell unübersichtlich: Auf Zeilenumbrüche muss keine Rücksicht mehr genommen werden, da Aggregatoren nur Maps und Collections füllen und keine Ausgabe erzeugen. Durch die Trennung von Daten, Logik und Ausgabe sind auch die verschiedenen Technologien SMPL, PHP, JavaScript und CSS getrennt und nicht mehr in einer Datei enthalten. &lt;br /&gt;
&lt;br /&gt;
;Templates sind nicht updatefähig: Produkt- und Kunden-Anpassungen werden strickt getrennt. Produkte werden abwärts-kompatibel gehalten und sind damit updatefähig.&lt;br /&gt;
&lt;br /&gt;
;Keine einheitliche Basis für Module: Das SiteKit liefert eine stabile Basis für Module.&lt;br /&gt;
&lt;br /&gt;
==Enthaltene Funktionen und Komponenten==&lt;br /&gt;
Im SiteKit enthalten sind Funktionen und Komponenten die Sitepark als &amp;quot;Standard&amp;quot; definiert hat, da sie in den meisten Projekten Verwendung finden.&lt;br /&gt;
&lt;br /&gt;
Alle von SiteKit bereit gestellten Komponenten sind barrierefrei und responsive.&lt;br /&gt;
&lt;br /&gt;
===Generelle Funktionen===&lt;br /&gt;
&lt;br /&gt;
;Navigation: Komplettes Navigations-Konzept mit verschiedenen Features wie Vererbbarkeit von Eigenschaften durch die Navigations-Struktur (z.B. Rubrik-Farbe), Mehrfachverknüpfung von Artikeln in der Navigation, geeignet für große Sites (100.000 Seiten und mehr), beliebige Navigations-Tiefe, JavaScript-basierte Mobile-fähige Navigation mit Offline-Caching.&lt;br /&gt;
&lt;br /&gt;
;Suche: Voll integrierte Volltext Suche auf Basis von Solr mit Suggest, erweiterten Suchoptionen, Facettierung, unterstützt geschützte Seiten, bietet Ad-Hoc-Indizierung getriggert durch das Speichern eines Artikels, liefert Werkzeuge zur Analyse des Volltext-Index z.B. zum debuggen.&lt;br /&gt;
&lt;br /&gt;
;Fehlerseiten: Redaktionell pflegbare Fehlerseiten für HTTP-Fehler (404 - Datei oder Verzeichnis nicht gefunden, ...)&lt;br /&gt;
&lt;br /&gt;
;Favicons: Verwaltung der Favicons&lt;br /&gt;
&lt;br /&gt;
;Geolokation: Definition von GEO-Koordinaten an Artikel. Volle Integration in die Suche für Z.B. Umkreissuchen.&lt;br /&gt;
&lt;br /&gt;
;Kategorisierung: Kategorie-System zur Kategorisierung von Artikeln mit voller Integration in die Suche für z.B. Facetierung.&lt;br /&gt;
&lt;br /&gt;
;Teaser: Teaser-System zur Verwendung von Teasern in verschiedenen Kontexten wie: Navigation, Teaser-Listen, Slider, Karten-Marker-Info-Boxen, Suchergebnisse, Kachelsystem. Zeitsteuerung&lt;br /&gt;
&lt;br /&gt;
;Kurzadressen: Definition von Kurz-Urls&lt;br /&gt;
&lt;br /&gt;
;Microsites: Microsite-System zur Erstellung von untergeordneten Sites unter eigener Domain mit geteiltem, aber Theming-fähigem Design.&lt;br /&gt;
&lt;br /&gt;
;Mehrsprachigkeit (Website): Alle nicht-redaktionellen Inhalte, die auf der Webseite dargestellt werden, können über Sprachpakete in andere Sprachen übersetzt werden. Für die deutsche Sprache wird ein Sprachpaket mitgeliefert das auch nach Kundenwunsch angepasst werden kann.&lt;br /&gt;
&lt;br /&gt;
=Whitelabel=&lt;br /&gt;
&lt;br /&gt;
Damit neue Projekte nicht von Null begonnen werden müssen, wurden das Whitelabel-Modul erstellt. In diesem Modul sind immer die aktuellen Techniken zur Umsetzung von neuen Projekten enthalten. Dieses Modul dient als Kopiervorlage. Es wird immer auf die aktuellen Anforderungen von neuen Projekten angepasst. Hier wird keine Rücksicht auf Updatefähigkeit genommen.&lt;br /&gt;
&lt;br /&gt;
Das SiteKit soll die Technik enthalten die Projekt-übergreifend verwendet wird. Sitepark sorgt dafür, dass das SiteKit-Modul update-fähig ist und somit als langfristige Plattform für Projekt- und Produkt-Module verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Besonders im Front-End-Bereich (CSS, JavaScript) werden etablierte Techniken schneller von neueren Techniken überholt. In diesem Bereich wäre eine langfristige update-Fähigkeit eine große Innovations-Bremse. Daher ist ein großer Teil der Front-End-Technik nicht im Sitekit-Modul, sondern im Whitelabel-Modul enthalten.&lt;br /&gt;
&lt;br /&gt;
Das Whitelabel-Modul besteht aus zwei Unter-Modulen&lt;br /&gt;
&lt;br /&gt;
;IES-Modul:&lt;br /&gt;
Das IES Modul enthält Eingabe-Templates, Aggregatoren, Komponenten, Renderer und Basis-Konfigurationen&lt;br /&gt;
;Styleguide:&lt;br /&gt;
In diesem Modul ist ein Styleguide enthalten in dem das HTML hinterlegt ist, dass auch die Renderer erzeugen. Alle Komponenten sind nach dem Atomic-Design-Prinzip in Atome, Moleküle, Organismen und Templates erlegt und können so gestylt werden.&lt;br /&gt;
&lt;br /&gt;
=Kundenmodul=&lt;br /&gt;
&lt;br /&gt;
Ein Kundenmodul wird als Kopie von Whitelabel erzeugt. In diesem Modul werden alle Kundenspezifischen Anforderungen implementiert.&lt;br /&gt;
&lt;br /&gt;
=Systemarchitektur (vereinfacht)=&lt;br /&gt;
&lt;br /&gt;
SiteKit und Infosite6 zusammen bilden &amp;quot;Infosite 6 Enterprise-Edition&amp;quot; (Infosite 6 EE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:InfoSite6-EE-Systemarchitektur-vereinfacht.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Die '''CMS-Oberfläche''' stellt die Eingabemaken dar, die sich aus einzelnen Abschnitten zusammensetzen. Das SiteKit stellt diese Abschnitte bereit. Das Kunden-Modul enthält kundenspezifische Konfigurationen der SiteKit-Abschnitte und kundenspezifische Abschnitte.&lt;br /&gt;
&lt;br /&gt;
Das '''IES Repository''' hält die Artikel-Daten, die über die CMS-Oberfläche dargestellt und bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Der '''Raw Content''' wird pro Artikel als PHP-Datei vom CMS auf dem Webserver publiziert. Die Daten werden über Sitekit- und Kundenspezifischen-Aggregatoren aus dem IES Repository geladen und in einer für die Darstellung optimierten Form zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
Die '''Renderer''' erzeugen beim Aufruf einer Seite aus dem Raw Content das gewünschte Ausgabeformat. Das SiteKit stellt Renderer zur Verfügung die kundenspezifisch angepasst werden können. Kunden-Module stellen auch eigene Renderer bereit.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe eines Styleguide werden für das Styling der Webseite '''CSS''' und '''JavaScript''' implementiert.&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7703</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7703"/>
		<updated>2015-10-02T08:52:03Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding als HEX-Wert im RGB oder RGBA-Format.&lt;br /&gt;
:Transparente Farben funktionieren nur bei PNG-Bildern.&lt;br /&gt;
::ffffff = weiß&lt;br /&gt;
::ffffff00 = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;&lt;br /&gt;
::00000000 = transparent bei PNG, ansonsten schwarz&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7702</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7702"/>
		<updated>2015-10-02T08:42:44Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding Numerisch oder als als HEX-Wert im RGB oder RGBA-Format.&lt;br /&gt;
:Transparente Farben funktionieren nur bei PNG-Bildern.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffffff = weiß&lt;br /&gt;
ffffff00 = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;&lt;br /&gt;
00000000 = transparent bei PNG, ansonsten schwarz&amp;lt;br&amp;gt;&lt;br /&gt;
rgb(255,255,255,0) = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;&lt;br /&gt;
rgb(255,255,255,128) = 50% transparent bei PNG, ansonsten weiß&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7701</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7701"/>
		<updated>2015-10-02T08:42:04Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding Numerisch oder als als HEX-Wert im RGB oder RGBA-Format.&lt;br /&gt;
:Transparente Farben funktionieren nur bei PNG-Bildern.&lt;br /&gt;
::ttt&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;ffffff = weiß&lt;br /&gt;
ffffff00 = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;&lt;br /&gt;
00000000 = transparent bei PNG, ansonsten schwarz&amp;lt;br&amp;gt;&lt;br /&gt;
rgb(255,255,255,0) = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;&lt;br /&gt;
rgb(255,255,255,128) = 50% transparent bei PNG, ansonsten weiß&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7700</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7700"/>
		<updated>2015-10-02T08:41:32Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding Numerisch oder als als HEX-Wert im RGB oder RGBA-Format.&lt;br /&gt;
:Transparente Farben funktionieren nur bei PNG-Bildern.&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;ffffff = weiß&amp;lt;br&amp;gt;ffffff00 = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;&lt;br /&gt;
00000000 = transparent bei PNG, ansonsten schwarz&amp;lt;br&amp;gt;&lt;br /&gt;
rgb(255,255,255,0) = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;&lt;br /&gt;
rgb(255,255,255,128) = 50% transparent bei PNG, ansonsten weiß&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7699</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7699"/>
		<updated>2015-10-02T08:40:43Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding Numerisch oder als als HEX-Wert im RGB oder RGBA-Format.&lt;br /&gt;
:Transparente Farben funktionieren nur bei PNG-Bildern.&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;ffffff = weiß&amp;lt;br&amp;gt;ffffff00 = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;&lt;br /&gt;
00000000 = transparent bei PNG, ansonsten schwarz&amp;lt;br&amp;gt;&lt;br /&gt;
rgb(255,255,255,0) = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;&lt;br /&gt;
rgb(255,255,255,128) = 50% transparent bei PNG, ansonsten weiß&lt;br /&gt;
&amp;lt;/souce&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7698</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7698"/>
		<updated>2015-10-02T08:39:53Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding Numerisch oder als als HEX-Wert im RGB oder RGBA-Format.&lt;br /&gt;
:Transparente Farben funktionieren nur bei PNG-Bildern.&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;ffffff = weiß&amp;lt;br&amp;gt;ffffff00 = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;00000000 = transparent bei PNG, ansonsten schwarz&amp;lt;br&amp;gt;rgb(255,255,255,0) = transparent bei PNG, ansonsten weiß&amp;lt;br&amp;gt;rgb(255,255,255,128) = 50% transparent bei PNG, ansonsten weiß&amp;lt;/souce&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7697</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7697"/>
		<updated>2015-10-02T08:37:44Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding Numerisch oder als als HEX-Wert im RGB oder RGBA-Format.&lt;br /&gt;
:Transparente Farben funktionieren nur bei PNG-Bildern.&lt;br /&gt;
::ffffff = weiß&lt;br /&gt;
::ffffff00 = transparent bei PNG, ansonsten weiß&lt;br /&gt;
::00000000 = transparent bei PNG, ansonsten schwarz&lt;br /&gt;
::rgb(255,255,255,0) = transparent bei PNG, ansonsten weiß&lt;br /&gt;
::rgb(255,255,255,128)= 50% transparent bei PNG, ansonsten weiß&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7696</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7696"/>
		<updated>2015-10-02T08:37:06Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding Numerisch oder als als HEX-Wert im RGB oder RGBA-Format.&lt;br /&gt;
:Transparente Farben funktionieren nur bei PNG-Bildern.&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
::ffffff = weiß&lt;br /&gt;
::ffffff00 = transparent bei PNG, ansonsten weiß&lt;br /&gt;
::00000000 = transparent bei PNG, ansonsten schwarz&lt;br /&gt;
::rgb(255,255,255,0) = transparent bei PNG, ansonsten weiß&lt;br /&gt;
::rgb(255,255,255,128)= 50% transparent bei PNG, ansonsten weiß&lt;br /&gt;
::&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7695</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7695"/>
		<updated>2015-10-02T08:34:17Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding Numerisch oder als als HEX-Wert im RGB oder RGBA-Format.&lt;br /&gt;
:Transparente Farben funktionieren nur bei PNG-Bildern.&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ffffff = weiß&lt;br /&gt;
ffffff00 = transparent bei PNG, ansonsten weiß&lt;br /&gt;
00000000 = transparent bei PNG, ansonsten schwarz&lt;br /&gt;
rgb(255,255,255,0) = transparent bei PNG, ansonsten weiß&lt;br /&gt;
rgb(255,255,255,128)= 50% transparent bei PNG, ansonsten weiß&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7694</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7694"/>
		<updated>2015-10-02T08:32:40Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding Numerisch oder als als HEX-Wert im RGB oder RGBA-Format.&lt;br /&gt;
:Transparente Farben funktionieren nur bei PNG-Bildern.&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;ffffff = weiß&lt;br /&gt;
ffffff00 = transparent bei PNG, ansonsten weiß&lt;br /&gt;
00000000 = transparent bei PNG, ansonsten schwarz&lt;br /&gt;
rgb(255,255,255,0) = transparent bei PNG, ansonsten weiß&lt;br /&gt;
rgb(255,255,255,128)= 50% transparent bei PNG, ansonsten weiß&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7693</id>
		<title>Scaleimage (SP-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Scaleimage_(SP-Tag)&amp;diff=7693"/>
		<updated>2015-10-02T08:24:38Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;sp:scaleimage&amp;gt; - Verkleinert Bilder&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;variable&amp;quot;&lt;br /&gt;
   scope=&amp;quot;page&amp;quot;&lt;br /&gt;
   object=&amp;quot;${myImageLink.link}&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;0000FF&amp;quot;&lt;br /&gt;
   /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Bilder die im [[IES]] abgelegt wurden, können mit Hilfe dieses Tags verkleinert werden (z.B. für Thumbnails). Dieser Tag kann sowohl im Eingabe- als auch im Ausgabemodus verwendet werden. Mit dem object-Attribut wird das zu verkleinernde Bild angegeben. Mit den Attributen width und height wird die Größe des Bildes definiert. Wird nur die Breite oder nur die Höhe angegeben, ergibt sich der Wert aus dem proportionalen Seitenverhältnis des Bildes. Die Daten des klein gerechneten Bildes werden in einem [[ScaleImage]]-Objekt abgelegt, das über den im Attribut &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; angegebenen Variablennamen erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Für die Skalierung von Bildern gelten folgende Regeln:&lt;br /&gt;
* Ein Bild wird immer proportional verkleinert. Das Seitenverhältnis des Bildes bleibt stets erhalten.&lt;br /&gt;
* Bilder werden nicht vergrößert&lt;br /&gt;
&lt;br /&gt;
Die Verkleinerung des Bildes kann in drei unterschiedlichen Modi erfolgen:&lt;br /&gt;
&lt;br /&gt;
;kein Padding (padding=&amp;quot;off&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, dass es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich, dass entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als der definierte Wert ist. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein. Sind die definierten Ausmaße größer als das Original, so bleibt das Bild unverändert.&lt;br /&gt;
&lt;br /&gt;
;Padding (padding=&amp;quot;on&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Das Bild wird so verkleinert, das es komplett in den angegebenen Rahmen passt. Hierbei ist es möglich das entweder die Höhe oder die Breite des verkleinerten Bildes kleiner als des definierten Wertes ist. In diesem Fall wird das Bild rechts und links, bzw. oben und unten mit einem Padding aufgefüllt. Die Farbe für das Padding wird mit dem Attribut background angegeben. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 50x50 Pixel groß sein und erhält links und rechts einen 25 Pixel breiten Balken in der angegebene background-Farbe. Sind die definierten Ausmaße größer als das Original, wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
&lt;br /&gt;
;Fit-Padding (padding=&amp;quot;fit&amp;quot;)&lt;br /&gt;
:Mit den Attributen &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; wird die Größe für ein Bild definiert. Dabei wird das Bild soweit verkleinert, bis entweder die Höhe oder die Breite in den Rahmen passt. Dabei ist es möglich, dass entweder die linke- und rechte- oder ober- und unter-Seite über den Rahmen herausragen. Die überstehenden Seiten werden abgeschnitten um die angegebene Größe zu erreichen. Soll z.B. ein 500x500 Pixel großes Bild auf 100x50 Pixel verkleinert werden, wird das verkleinerte Bild 100x100 Pixel groß sein. Anschließend werden noch oben und unten 25 Pixel abgeschnitten um die angegebene größe von 100x50 Pixel zu erreichen. Sind die definierten Ausmaße größer als das Original wird das Bild mit der background-Farbe aufgefüllt, so dass in jedem Fall die definierte Größe erreicht wird.&lt;br /&gt;
:Über die Optionen kann ein Focus-Point angegeben werden, der den Bildmittelpunkt für den Zuschnitt definiert. In diesem Fall werden die Kanten nicht gleichmäßig abgeschnitten sondern so, dass der Focus-Point möglichst die Mitte des zugeschnittenen Bildes definiert.&lt;br /&gt;
&lt;br /&gt;
Im Padding und Fit-Padding Modus ist immer sichergestellt, dass die angegebene Bildgröße erreicht wird.&lt;br /&gt;
&lt;br /&gt;
Dieser Tag verhält sich im [[Template-Modus|In-]] und im [[Template-Modus|Out-Modus]] unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
;Out-Modus&lt;br /&gt;
:Wird &amp;lt;code&amp;gt;sp:scaleimage&amp;lt;/code&amp;gt; im [[Template-Modus|Out-Modus]] betrieben, wird das verkleinerte Bild in einem Verzeichnis parallel zu dem Original abgelegt. Der Verzeichnisname besteht aus dem Dateinamen des originalen Bildes mit dem Zusatz ''.scaled'' (z.B. logo.jpg.scaled für ein Bild logo.jpg). Die Bilder werden während des Publizier-Vorgangs berechnet sowie jedes mal, wenn sich das Original geändert hat.&lt;br /&gt;
&lt;br /&gt;
;In-Modus&lt;br /&gt;
:Wird sp:scaleimage im [[Template-Modus|In-Modus]] betrieben, liegen die verkleinerten Bild zusammen mit dem Original in der BinDB des [[IES]]. Im In-Modus werden nicht alle angegebenen Bildgrößen berechnet, sondern nur bestimmte Größen, die in der [[BinDB]] definiert sind. In der BinDB sind z.B. die Größen 40,h40,w50,100 definiert. Dies bedeutet folgendes:&lt;br /&gt;
:;40&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 40 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;h40&lt;br /&gt;
::Bild wird mit einer Höhe von 40 Pixel und einer Breite proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;w50&lt;br /&gt;
::Bild wird mit einer Breite von 50 Pixel und einer Höhe proportional zum Original mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
:;100&lt;br /&gt;
::Bild wird mit einer Höhe und Breite von 100 Pixeln mit &amp;lt;code&amp;gt;padding=&amp;quot;off&amp;quot;&amp;lt;/code&amp;gt; berechnet&lt;br /&gt;
&lt;br /&gt;
:Wird nun ein Bild von 30x30 Pixel verlangt wird das '''40'''-Bild verwendet. Wird ein 300x300 Pixel Bild verlangt, wird das '''100'''-Bild verwendet. Der Sinn dabei ist, dass nicht eine sehr große Anzahl von Bilder berechnet und in der BinDB abgelegt werden soll. Die zurückgegebenen Bilder können auf das verlangte Maß vom Browser skaliert werden. Das Padding kann über CSS-Styles erfolgen.&lt;br /&gt;
&lt;br /&gt;
:Dieses Verhalten der 'Skalierungs-Schritte' kann über das Attribut &amp;lt;code&amp;gt;scaleSteps=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; ausgeschaltet werden. Das ist aber nur in Ausnahmefällen empfehlenswert und kann sich negativ auf die Performanz des Systems auswirken.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Variable]]&lt;br /&gt;
| Ja&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Expression]]&lt;br /&gt;
| Ja und / oder &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| off  (Achtung: anderer Default-Wert als bei [[spt:imp]])&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| FFFFFF&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Condition]]&lt;br /&gt;
| Nein&lt;br /&gt;
| true, wirkt sich nur im In-Modus aus&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[String]] (Im JSON-Format)&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.11&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Locale]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Scope]]&lt;br /&gt;
| Nein&lt;br /&gt;
| request&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
:Name der Variable für den Zugriff auf das [[ScaleImage]]-Objekt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;&lt;br /&gt;
:Original-Bild.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;&lt;br /&gt;
:Breite des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;&lt;br /&gt;
:Höhe des zu berechnenden Bildes.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;padding&amp;lt;/code&amp;gt;&lt;br /&gt;
:Der Wert &amp;quot;on&amp;quot; erzeugt Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild immer so groß. wie durch die Auflösung gefordert.&lt;br /&gt;
&lt;br /&gt;
:Der Wert &amp;quot;off&amp;quot; erzeugt keinen Rahmen zur Auffüllung der Flächen um das Bild. Damit ist das resultierende Bild unter Umständen kleiner als die geforderte Auflösung.&lt;br /&gt;
&lt;br /&gt;
:Mit &amp;quot;fit&amp;quot; wird der größtmögliche Ausschnitt aus dem Originalbild bzw. aus dem durch excerpt gewählten Ausschnitt gesucht, bei dem das Seitenverhältnis der geforderten Auflösung entspricht. Es wird kein Rahmen erzeugt, sondern das Bild in einer Dimension gegebenenfalls gekürzt.&lt;br /&gt;
&lt;br /&gt;
:Aufgrund von Abwärtskompatibilität wird auch der Wert &amp;quot;yes&amp;quot; (entspricht &amp;quot;on&amp;quot;) und &amp;quot;no&amp;quot; (entspricht &amp;quot;off&amp;quot;) unterstützt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;background&amp;lt;/code&amp;gt;&lt;br /&gt;
:Hintergrundfabe für das Padding als HEX-Wert im RGB oder RGBA-Format (ffffff00 = transparent). RGBA funktioniert nur bei PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scalesteps&amp;lt;/code&amp;gt;&lt;br /&gt;
:Schalter um das Optimierungsverhalten im In-Modus auszuschalten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mit diesem Attribut können Bild-Optionen für die Berechnung des Bildes übergeben werden. Z.Z. ist nur die Übergabe eines Focus-Point möglich&lt;br /&gt;
:;Focus-Point&lt;br /&gt;
::&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{ &amp;quot;focuspoint&amp;quot;: { &amp;quot;x&amp;quot;:0.062, &amp;quot;y&amp;quot;:0.527 } }&amp;lt;/source&amp;gt;Der Focus-Point definiert den Bereich eines Bildes, der als Mittelpunkt des Bildes angenommen werden soll, wenn über den padding-Modus 'fit' das Bild beim Verkleinern beschnitten wird.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;locale&amp;lt;/code&amp;gt;&lt;br /&gt;
:Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachigen Variablen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;scope&amp;lt;/code&amp;gt;&lt;br /&gt;
:[[Scope|Gültigkeitsbereich]], in dem die Variable definiert ist. Möglich sind &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;request&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Bild verkleinern===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:scaleimage&lt;br /&gt;
   name=&amp;quot;scaledImage&amp;quot;&lt;br /&gt;
   object=&amp;quot;myImage.systemlink&amp;quot;&lt;br /&gt;
   width=&amp;quot;40&amp;quot;&lt;br /&gt;
   height=&amp;quot;40&amp;quot;&lt;br /&gt;
   padding=&amp;quot;on&amp;quot;&lt;br /&gt;
   background=&amp;quot;AAAAAA&amp;quot;/&amp;gt;&lt;br /&gt;
widht: &amp;lt;sp:print name=&amp;quot;scaledImage.widthToScale&amp;quot;/&amp;gt;&lt;br /&gt;
height: &amp;lt;sp:print name=&amp;quot;scaledImage.heightToScale&amp;quot;/&amp;gt;&lt;br /&gt;
url: &amp;lt;sp:print name=&amp;quot;scaledImage.url&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgabe&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
width: 40&lt;br /&gt;
height: 40&lt;br /&gt;
url: /test/test.html.media/myimage.jpg.scaled/40x40.pm1.bgAAAAAA.jpg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SP-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
[[Category:Beispiel_überarbeiten_testen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Templates&amp;diff=6923</id>
		<title>Templates</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Templates&amp;diff=6923"/>
		<updated>2014-08-21T12:45:53Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Markup für aktuelle InfoSite6 kompatible Templates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hinweise zur Erstellung von Templates für InfoSite.&lt;br /&gt;
&lt;br /&gt;
==Markup für aktuelle InfoSite 6 kompatible Templates==&lt;br /&gt;
Hinweise hier:&lt;br /&gt;
[[Templateerstellung]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SPML]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Installationsanleitung_InfoSite_6&amp;diff=6905</id>
		<title>Installationsanleitung InfoSite 6</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Installationsanleitung_InfoSite_6&amp;diff=6905"/>
		<updated>2014-08-14T09:35:18Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Allgemein (modulübergreifend) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Bitte sprechen Sie uns vor der Inbetriebnahme von InfoSite 6 an. Wir teilen Ihnen dann die idealen Konfigurationen für Ihr System mit.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Allgemein===&lt;br /&gt;
Bei der Installation / dem Update eines IES für InfoSite 6 sind folgende initiale Arbeiten auszuführen bzw. folgende Punkte zu beachten:&lt;br /&gt;
&lt;br /&gt;
*InfoSite sollte dringend mit SSL betrieben werden. Es ist darauf zu achten, dass ein echtes, valides Zertifikat verwendet wird, da sonst z.B. das Caching von Bildern im Chrome-Browser nicht funktioniert.&lt;br /&gt;
*Der Volltext-Index für die ältere Mandanten muss initial einmal neu aufgebaut werden (im IES-Admin über &amp;quot;Dienste&amp;quot;)&lt;br /&gt;
*Der Apache sollte ausreichend Child-Prozesse erzeugen können. Pro Redakteur, der in InfoSite 6 arbeitet, wird neben den regulären Requests noch ein sog. Long-Polling-Request auf den Server gemacht. Dadurch wird je ein Child-Prozess des Apache gebunden. &lt;br /&gt;
&lt;br /&gt;
===Konfiguration===&lt;br /&gt;
====Konfiguration am Mandanten====&lt;br /&gt;
=====In InfoSite=====&lt;br /&gt;
*Legen Sie in InfoSite einen neue Artikelpool mit folgendem Anker an&lt;br /&gt;
 !{ies.infp.infosite}&lt;br /&gt;
:Dieser dient zukünftig als ''Root''-Pool für alle in Artikel, die in InfoSite bearbeitet werden können. CityGov-Artikel beispielsweise liegen in :einem Pool parallel zu diesem.&lt;br /&gt;
&lt;br /&gt;
:Verschieben Sie daher alle Artikelpools in diesen neuen Pool (&amp;quot;Artikel&amp;quot;, &amp;quot;IES&amp;quot;, &amp;quot;Administration&amp;quot;, etc.).&lt;br /&gt;
&lt;br /&gt;
*Optionale Pool-Eigenschaften können in einem Template mit dem folgenden Anker implementiert werden:&lt;br /&gt;
 !{infosite6.informationPoolProperties}&lt;br /&gt;
&lt;br /&gt;
=====Allgemein (modulübergreifend)=====&lt;br /&gt;
*Konfiguration der Sitemaps in den Attributen des Mandanten über z.B. folgende JSON-Daten:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
sitemaps=[&lt;br /&gt;
  {&lt;br /&gt;
    text:'Homepage',&lt;br /&gt;
    displayfield:'sp_title',&lt;br /&gt;
    linkfield:'sp_parent',&lt;br /&gt;
    obj:'infe.g12.homepage'&lt;br /&gt;
  },{&lt;br /&gt;
    text:'Intranet',&lt;br /&gt;
    displayfield:'sp_title',&lt;br /&gt;
    linkfield:'sp_parent_intranet',&lt;br /&gt;
    obj:'infe.g12.intranet'&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Die Konfiguration muss jedoch ''inline'' erfolgend, da die Attribute nicht JSON, sondern Properties erwarten:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
sitemaps=[{text:'Homepage',displayfield:'sp_title',linkfield:'sp_parent',obj:'infe.g12.homepage'},{text:'Intranet',displayfield:'sp_title',linkfield:'sp_parent_intranet',obj:'infe.g12.intranet'}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Optionale Weiterleitung auf eine i!-Link-Einstiegsseite (ehem. ilink-login.html)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ilinkRedirect=/ilink-login.html&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====InfoSite 6=====&lt;br /&gt;
*'''Synchrones Laden einzelner Bearbeitungs-Steps eines Artikels aktivieren:'''&amp;lt;br /&amp;gt; Grundsätzlich werden in InfoSite 6 alle Steps eines Artikels direkt, asynchron geladen und dargestellt. Werden nun aber Templates verwendet, bei denen einzelne Steps und Eingaben aufeinander aufbauen, so müssen die einzelnen Steps synchron, analog zu InfoSite 5, erst beim Aufruf geladen werden. Default ist &amp;quot;false&amp;quot;:&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;infosite6.synchronousSteps=false&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Artikel-Pools, die initial geöffnet werden sollen:'''&amp;lt;br /&amp;gt; &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;infosite6.expanded=['infp.g12.editorial','infp.g12.media']&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Initiale Zielsprache (ehem. GUISecondLanguage):'''&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;infosite6.defaultLanguage=default&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Debug-Option für Administratoren aktivieren:'''&amp;lt;br /&amp;gt; Debugging wird nun im Nutzerprofil gespeichert. Um den Debug-Modus zu aktivieren muss ein Aufruf auf InfoSite6 mit dem Parameter ''debug=true'' erfolgen:&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;.../ies/infosite6/index.jsp?debug=true&amp;lt;/source&amp;gt;Nach diesem Aufruf wird die Debug-Option persistent im Nutzerprofil gespeichert. Um den Debug-Modus wieder zu deaktivieren muss ein Aufruf auf InfoSite6 mit dem Parameter ''debug=false'' erfolgen: &amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;.../ies/infosite6/index.jsp?debug=false&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Zielgruppen für Benachrichtigungen:'''&amp;lt;br /&amp;gt;In InfoSite 6 besteht die Möglichkeit Nachrichten an Nutzer oder Nutzergruppen zu senden. Für den Redakteur stehen alle Nutzer und Nutzergruppen ab einem konfigurierten Einstiegspool zur Verfügung. Für den Workflow an Artikeln können eigene Nutzergruppen definiert werden. Alle Nutzer dieser Gruppen werden über eine weiteren Einstiegspool dem Redakteur angezeigt:&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;infosite6.userGroupMessaging=Anker des gewünschten Pools&amp;lt;/source&amp;gt;&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;infosite6.userGroupWorkflow=Anker des gewünschten Pools&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Konfiguration am Publisher====&lt;br /&gt;
*Publisher, deren Status in den Listen dargestellt werden sollen, müssen durch folgendes Attribut in der Konfiguration gesetzt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
infosite6.showInGrid=true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Optionale Konfiguration====&lt;br /&gt;
Weiterhin sind folgende optionale Setzungen über die Attribute der IES-API (Eigenschaften des Moduls) möglich&lt;br /&gt;
*Warnung bei unsicherer Verbindung (kein SSL) deaktivieren (Davon sollte i.d.R. kein Gebrauch gemacht werden, da bei allen Requests stets die IES-Session übertragen wird):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ignoreSSL=true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Auch sollte ein serverseitiger JavaScript-Logger für Fehlermeldungen aktiviert werden:&lt;br /&gt;
 Name: &amp;quot;JavaScript.IES.Infosite6&amp;quot;&lt;br /&gt;
 LogLevel: &amp;quot;TRACE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Weitere Hinweise===&lt;br /&gt;
In Templates kann wie folgt abgefragt werden, ob diese innerhalb von InfoSite 6 ausgeführt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:if name=&amp;quot;system.modules.infosite6&amp;quot;&amp;gt;infosite6&amp;lt;/sp:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:InfoSite6]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Ilink_(SPT-Tag)&amp;diff=6904</id>
		<title>Ilink (SPT-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Ilink_(SPT-Tag)&amp;diff=6904"/>
		<updated>2014-08-14T09:33:54Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Einfacher Artikel mit i-Link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;spt:ilink&amp;gt; - Erzeugt einen Link auf das CMS&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spt:ilink value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der &amp;lt;code&amp;gt;spt:ilink&amp;lt;/code&amp;gt;-Tag generiert einen Link auf die Bearbeitung des entsprechenden Artikels. Diese Links sind klassisch in der Website nur für Redakteure sichtbar und erlauben das Öffnen des aktuellen Artikels in der Bearbeitung von InfoSite direkt aus der Website heraus.&lt;br /&gt;
&lt;br /&gt;
Seit InfoSite 6 ist auch die Verwendung des i!-Links für interne Links auf andere Artikel innerhalb des CMS möglich.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;information&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;step&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Number]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
:Code für den generierten i-Link.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;information&amp;lt;/code&amp;gt;&lt;br /&gt;
:Optionale Angabe eines Artikels, auf den der Link zeigen soll (z.B. für Listen).&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;step&amp;lt;/code&amp;gt;&lt;br /&gt;
:Bei Templates, die mit mehreren Steps aufgebaut sind ist hiermit der Sprung an eine definierte Stelle möglich. Die Angabe erfolgt relativ zum Step &amp;quot;Verwaltung&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Einfacher Artikel mit i!-Link===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;in&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;sp:text name=&amp;quot;headline&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%-- einfacher Seiten-i-Link --%&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;out&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;sp:print name=&amp;quot;headline&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spt:ilink value=&amp;quot;Artikel bearbeiten&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%-- Loop pro Treffer ein i-Link --%&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;out&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;sp:loop collection=&amp;quot;collection&amp;quot; item=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;linkIntern&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;&amp;lt;sp:print name=&amp;quot;it.id.url&amp;quot;/&amp;gt;&amp;quot;&amp;gt;&amp;lt;sp:print name=&amp;quot;it.sp_title&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;ilinkInline&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;spt:ilink &lt;br /&gt;
            value=&amp;quot;&amp;lt;img src=\&amp;quot;/img/ilink.gif\&amp;quot; &lt;br /&gt;
                        class=\&amp;quot;ilink\&amp;quot; &lt;br /&gt;
                        width=\&amp;quot;16\&amp;quot; &lt;br /&gt;
                        height=\&amp;quot;16\&amp;quot; &lt;br /&gt;
                        alt=\&amp;quot;Seite bearbeiten ...\&amp;quot;&amp;gt;&amp;quot; &lt;br /&gt;
            information=&amp;quot;${it.id}&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/sp:loop&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SPT-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Inhalts_prüfen]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Ilink_(SPT-Tag)&amp;diff=6903</id>
		<title>Ilink (SPT-Tag)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Ilink_(SPT-Tag)&amp;diff=6903"/>
		<updated>2014-08-14T09:33:38Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Beschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
&amp;lt;spt:ilink&amp;gt; - Erzeugt einen Link auf das CMS&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;spt:ilink value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
Der &amp;lt;code&amp;gt;spt:ilink&amp;lt;/code&amp;gt;-Tag generiert einen Link auf die Bearbeitung des entsprechenden Artikels. Diese Links sind klassisch in der Website nur für Redakteure sichtbar und erlauben das Öffnen des aktuellen Artikels in der Bearbeitung von InfoSite direkt aus der Website heraus.&lt;br /&gt;
&lt;br /&gt;
Seit InfoSite 6 ist auch die Verwendung des i!-Links für interne Links auf andere Artikel innerhalb des CMS möglich.&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe1&amp;quot;&lt;br /&gt;
! Name || Type || Required || Default || ab IES Version&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Text]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;information&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Attribute]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;step&amp;lt;/code&amp;gt;&lt;br /&gt;
| [[Number]]&lt;br /&gt;
| Nein&lt;br /&gt;
| None&lt;br /&gt;
| 2.0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
:Code für den generierten i-Link.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;information&amp;lt;/code&amp;gt;&lt;br /&gt;
:Optionale Angabe eines Artikels, auf den der Link zeigen soll (z.B. für Listen).&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;step&amp;lt;/code&amp;gt;&lt;br /&gt;
:Bei Templates, die mit mehreren Steps aufgebaut sind ist hiermit der Sprung an eine definierte Stelle möglich. Die Angabe erfolgt relativ zum Step &amp;quot;Verwaltung&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
===Einfacher Artikel mit i-Link===&lt;br /&gt;
&lt;br /&gt;
Template Quelltext&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;in&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;sp:text name=&amp;quot;headline&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%-- einfacher Seiten-i-Link --%&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;out&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;sp:print name=&amp;quot;headline&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spt:ilink value=&amp;quot;Artikel bearbeiten&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%-- Loop pro Treffer ein i-Link --%&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;out&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;sp:loop collection=&amp;quot;collection&amp;quot; item=&amp;quot;it&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;linkIntern&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;&amp;lt;sp:print name=&amp;quot;it.id.url&amp;quot;/&amp;gt;&amp;quot;&amp;gt;&amp;lt;sp:print name=&amp;quot;it.sp_title&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
        &amp;lt;div id=&amp;quot;ilinkInline&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;spt:ilink &lt;br /&gt;
            value=&amp;quot;&amp;lt;img src=\&amp;quot;/img/ilink.gif\&amp;quot; &lt;br /&gt;
                        class=\&amp;quot;ilink\&amp;quot; &lt;br /&gt;
                        width=\&amp;quot;16\&amp;quot; &lt;br /&gt;
                        height=\&amp;quot;16\&amp;quot; &lt;br /&gt;
                        alt=\&amp;quot;Seite bearbeiten ...\&amp;quot;&amp;gt;&amp;quot; &lt;br /&gt;
            information=&amp;quot;${it.id}&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/sp:loop&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:SPT-Tags]]&lt;br /&gt;
[[Category:Qualität_des_Inhalts_prüfen]]&lt;br /&gt;
[[Category:Qualität_des_Codes_prüfen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Systemvoraussetzungen&amp;diff=6639</id>
		<title>Systemvoraussetzungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Systemvoraussetzungen&amp;diff=6639"/>
		<updated>2014-03-17T23:54:12Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Mailserver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aktuelle Systemvoraussetzungen für Neuinstallationen und den Betrieb des [[IES]].&lt;br /&gt;
&lt;br /&gt;
===Betriebssysteme===&lt;br /&gt;
Wir unterstützen nur 64bit-Betriebssysteme.&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
32-bit-Systeme werde nicht unterstützt.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
* CentOS Linux ab Version 6 (http://www.centos.org)&lt;br /&gt;
* Ubuntu Linux ab Version 12 (http://www.ubuntu.com)&lt;br /&gt;
* Red Hat Linux ab Version 6 (http://www.redhat.com)&lt;br /&gt;
* Debian Linux ab Version 6 (http://www.debian.org)&lt;br /&gt;
* Suse Linux Enterprise Server ab Version 11 (http://www.suse.com)&lt;br /&gt;
* OpenSUSE ab Version 13 (bzw. http://www.opensuse.org/)&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Achtung: &amp;quot;SUSE Linux Enterprise Server&amp;quot;-Nutzer. Grundsätzlich ist unsere Software auf SLES lauffähig; aufgrund von nicht in Standardrepositories vorhandenen Softwaren (u.a. ImageMagick, MySQL &amp;gt; 5.0, Xvfb) ist die Installation und Konfiguration nur von versierten Administratoren vorzunehmen. Gerne bieten wir hier exklusive Installationsschulung oder -unterstützung an. &amp;lt;strong&amp;gt;Die Funktion zur Umwandlung einer Webseite in eine PDF-Datei steht unter SUSE NICHT bereit. Die dafür notwendige Software wird von SUSE NICHT zur Verfügung gestellt; das Herunterladen der Webseite als PDF funktioniert auf einem SUSE-System nicht.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Abhängigkeiten=====&lt;br /&gt;
* ImageMagick (http://www.imagemagick.org/) ab Version 6&lt;br /&gt;
* curl, grep, egrep, netstat, ps, tail, useradd, groupadd, chown, sum, awk, head, nm, bc&lt;br /&gt;
Die hier genannten Abhängigkeiten sind durch die aufgeführten Distributionen erfüllbar und werden teilweise bereits automatisch installiert.&lt;br /&gt;
&lt;br /&gt;
(''Hinweis:'' Je nach Linux-Distribution sind einzelne Tools zum Beispiel in Paketen wie &amp;lt;code&amp;gt;net-tools&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;coreutils&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt; und anderen organisiert.)&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
* '''Windows Server''' Version 2008 R2 (64bit) (http://www.microsoft.com)&lt;br /&gt;
* Windows 7 und Windows 8 werden als Betriebssysteme nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Die Verwendung von Windows als Betriebssystem für den Webserver wird von Sitepark NICHT empfohlen. PHP kann auch unter einem 64bit-Windows nur mit 32bit-Integer-Zahlen arbeiten; alle PHP-Anwendungen, die mit von Java übergebenen Zeitstempeln im Millisekundenbereich rechnen, sind nicht korrekt lauffähig.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Abhängigkeiten=====&lt;br /&gt;
* ImageMagick (http://www.imagemagick.org/) ab Version 6&lt;br /&gt;
* mTail (http://ophilipp.free.fr/op_tail.htm) (Zur Wartung und Administration)&lt;br /&gt;
* 7-Zip (http://www.7-zip.org/) (Zip-Funktionen des Windows-Explorers reichen nicht aus) (Zur Wartung und Administration)&lt;br /&gt;
* Process Explorer (http://technet.microsoft.com/de-de/sysinternals/bb896653) (Zur Wartung und Administration)&lt;br /&gt;
* Process Monitor (http://technet.microsoft.com/de-de/sysinternals/bb896645) (Zur Wartung und Administration)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
Die Leistungsstärke der Hardware ist in Abhängigkeit zum zu realisierenden Projekt individuell unterschiedlich. Die hier angegebenen Anforderungen und Empfehlungen sind als Richtwerte zu verstehen.&lt;br /&gt;
&lt;br /&gt;
Relevante Kenngrößen sind die CPU-Leistungsfähigkeit, die RAM-Größe, die Zugriffsgeschwindigkeit auf die Speichergeräte (Festplatten) und die Netzwerkanbindung.&lt;br /&gt;
&lt;br /&gt;
Der IES hält während des Betriebs im optimalen Fall alle von ihm verwaltetet Daten im Arbeitsspeicher, ebenso sollte die MySQL-Datenbank komplett dort liegen. Auslagerungen auf die Festplatte bremsen das System unnötig aus. Der IES schreibt datenbankunabhängige echte Webseiten auf die Festplatte. Diese Dateien werden vom Webserver ausgeliefert; dabei findet kein Datenbankzugriff mehr statt. Ein schnelles Schreiben der Daten für den Webserver (Festplatten-Schreib-Geschwindigkeit) ist ebenso notwendig wie ein schnelles Lesen der Daten für die Auslieferung. Wenn das Dateisystem für den die Seiten ausliefernden Webserver über das Netzwerk verfügbar gemacht wird, ist die Netzwerkgeschwindigkeit ebenfalls für ein performantes Gesamtsystem sehr wichtig.&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Die Anforderungen können sich während des Betriebs des IES je nach Anwendungsszenario und Veränderungen in der Datenmenge oder Nutzermenge verändern. Mehr Daten benötigen mehr Speicherplatz (RAM und Festplatte), höhere Nutzungsfrequenzen benötigen schnellere bzw. breitere Netzwerk-Anbindungen und CPU-Leistungsfähigkeit. Wir empfehlen den Betrieb in einer virtuellen Umgebung, damit Sie flexibel auf Änderungen der Anforderungen reagieren können.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Minimal-Anforderung====&lt;br /&gt;
Prozessor P4 1GHZ 64bit, 2 GB Hauptspeicher PLUS die 1,2fache Menge der Größe der MySQL-Datenbank, 18 GB HDD, Netzwerk&lt;br /&gt;
&lt;br /&gt;
===Empfehlung===&lt;br /&gt;
Mehrprozessorsystem (z.B. QuadCore) ~3GHz 64Bit, 8 GB RAM PLUS die 2fache Menge der Größe der MySQL-Datenbank, RAID-10-System mit 100 GB HDD, Gbit-Netzwerk&lt;br /&gt;
&lt;br /&gt;
Die Schreib- und Lesezugriffe auf die Festplatte sollten für ein performantes Arbeiten folgende Werte (im Durchschnitt) nicht unterschreiten: &amp;lt;strong&amp;gt;Lesen 300MB/sek, Schreiben 120MB/sek&amp;lt;/strong&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Java===&lt;br /&gt;
====JDK - Java Development Kit====&lt;br /&gt;
Für den Betrieb des IES wird ein Java-Development-Kit inkl. Java-Compiler benötigt. Aktuell unterstützen wir die Pakete:&lt;br /&gt;
* JDK (Java SDK) von Oracle ab der Version 1.7&lt;br /&gt;
* OpenJDK 7 oder neuer&lt;br /&gt;
* IBM-Java 7 JDK&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Eine Java Runtime Environment (JRE)-Version reicht nicht aus.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Webserver===&lt;br /&gt;
====Apache 2====&lt;br /&gt;
Weitere Informationen finden Sie unter http://www.apache.org&lt;br /&gt;
&lt;br /&gt;
Empfohlene Module für die Integration des IES in den Apache:&lt;br /&gt;
    mod_proxy&lt;br /&gt;
    mod_proxy_balancer&lt;br /&gt;
    mod_proxy_http&lt;br /&gt;
    mod_rewrite&lt;br /&gt;
    mod_ssl&lt;br /&gt;
    mod_headers &lt;br /&gt;
&lt;br /&gt;
Informationen zur Konfiguration finden Sie unter [[Integration des IES in den Apache]].&lt;br /&gt;
&lt;br /&gt;
Für die Auslieferung von Webseiten wird PHP benötigt; der Webserver benötigt dann verschiedene PHP-Erweiterungen [[Installationsanleitung PHP]].&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
====MySQL====&lt;br /&gt;
Weitere Informationen finden Sie unter http://www.mysql.com&lt;br /&gt;
&lt;br /&gt;
MySQL ab der Version 5. Engine: INNODB&lt;br /&gt;
&lt;br /&gt;
Zur Konfiguration finden Sie unter [[Hinweise zu MySQL]] wichtige Informationen.&lt;br /&gt;
&lt;br /&gt;
===Mailserver===&lt;br /&gt;
Wird ein MailPublisher verwendet empfehlen wir aus unterschiedlichen Gründen die Installation eines lokalen Mailservers (Sendmail, Postfix, QMail, etc.) auch wenn in dem entsprechendem Netzwerk ein separater Mailserver konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
Gründe für den Einsatz eines lokalen Mailservers:&lt;br /&gt;
# Die Publikation von Artikeln über den Mail-Publisher ist wesentlich schneller, da keine Netzwerk-Kommunikation notwendig ist. Gerade beim Versand von Newslettern an sehr viele Adressaten ist hier ein signifikanter Performanzvorteil zu erkennen.&lt;br /&gt;
# Bei Problemen im lokalen Netzwerk bzw. der temp. Überlastung des Mailservers werden keine E-Mails verschickt. Ein späterer Versand würde nicht erfolgen, da der IES nicht ''spooled''. Dies ist Aufgabe eines Mailservers und würde durch einen lokalen Mailserver auf ideale Weise erfüllt.&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration des lokalen Mailservers sollte daher bereits bei der Installation des IES erfolgen. Der IES ist grundsätzlich für die lokale E-Mail-Auslieferung konfiguriert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Installation| 100]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Systemvoraussetzungen&amp;diff=6638</id>
		<title>Systemvoraussetzungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Systemvoraussetzungen&amp;diff=6638"/>
		<updated>2014-03-17T23:53:26Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Mailserver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aktuelle Systemvoraussetzungen für Neuinstallationen und den Betrieb des [[IES]].&lt;br /&gt;
&lt;br /&gt;
===Betriebssysteme===&lt;br /&gt;
Wir unterstützen nur 64bit-Betriebssysteme.&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
32-bit-Systeme werde nicht unterstützt.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
* CentOS Linux ab Version 6 (http://www.centos.org)&lt;br /&gt;
* Ubuntu Linux ab Version 12 (http://www.ubuntu.com)&lt;br /&gt;
* Red Hat Linux ab Version 6 (http://www.redhat.com)&lt;br /&gt;
* Debian Linux ab Version 6 (http://www.debian.org)&lt;br /&gt;
* Suse Linux Enterprise Server ab Version 11 (http://www.suse.com)&lt;br /&gt;
* OpenSUSE ab Version 13 (bzw. http://www.opensuse.org/)&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Achtung: &amp;quot;SUSE Linux Enterprise Server&amp;quot;-Nutzer. Grundsätzlich ist unsere Software auf SLES lauffähig; aufgrund von nicht in Standardrepositories vorhandenen Softwaren (u.a. ImageMagick, MySQL &amp;gt; 5.0, Xvfb) ist die Installation und Konfiguration nur von versierten Administratoren vorzunehmen. Gerne bieten wir hier exklusive Installationsschulung oder -unterstützung an. &amp;lt;strong&amp;gt;Die Funktion zur Umwandlung einer Webseite in eine PDF-Datei steht unter SUSE NICHT bereit. Die dafür notwendige Software wird von SUSE NICHT zur Verfügung gestellt; das Herunterladen der Webseite als PDF funktioniert auf einem SUSE-System nicht.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Abhängigkeiten=====&lt;br /&gt;
* ImageMagick (http://www.imagemagick.org/) ab Version 6&lt;br /&gt;
* curl, grep, egrep, netstat, ps, tail, useradd, groupadd, chown, sum, awk, head, nm, bc&lt;br /&gt;
Die hier genannten Abhängigkeiten sind durch die aufgeführten Distributionen erfüllbar und werden teilweise bereits automatisch installiert.&lt;br /&gt;
&lt;br /&gt;
(''Hinweis:'' Je nach Linux-Distribution sind einzelne Tools zum Beispiel in Paketen wie &amp;lt;code&amp;gt;net-tools&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;coreutils&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt; und anderen organisiert.)&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
* '''Windows Server''' Version 2008 R2 (64bit) (http://www.microsoft.com)&lt;br /&gt;
* Windows 7 und Windows 8 werden als Betriebssysteme nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Die Verwendung von Windows als Betriebssystem für den Webserver wird von Sitepark NICHT empfohlen. PHP kann auch unter einem 64bit-Windows nur mit 32bit-Integer-Zahlen arbeiten; alle PHP-Anwendungen, die mit von Java übergebenen Zeitstempeln im Millisekundenbereich rechnen, sind nicht korrekt lauffähig.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Abhängigkeiten=====&lt;br /&gt;
* ImageMagick (http://www.imagemagick.org/) ab Version 6&lt;br /&gt;
* mTail (http://ophilipp.free.fr/op_tail.htm) (Zur Wartung und Administration)&lt;br /&gt;
* 7-Zip (http://www.7-zip.org/) (Zip-Funktionen des Windows-Explorers reichen nicht aus) (Zur Wartung und Administration)&lt;br /&gt;
* Process Explorer (http://technet.microsoft.com/de-de/sysinternals/bb896653) (Zur Wartung und Administration)&lt;br /&gt;
* Process Monitor (http://technet.microsoft.com/de-de/sysinternals/bb896645) (Zur Wartung und Administration)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
Die Leistungsstärke der Hardware ist in Abhängigkeit zum zu realisierenden Projekt individuell unterschiedlich. Die hier angegebenen Anforderungen und Empfehlungen sind als Richtwerte zu verstehen.&lt;br /&gt;
&lt;br /&gt;
Relevante Kenngrößen sind die CPU-Leistungsfähigkeit, die RAM-Größe, die Zugriffsgeschwindigkeit auf die Speichergeräte (Festplatten) und die Netzwerkanbindung.&lt;br /&gt;
&lt;br /&gt;
Der IES hält während des Betriebs im optimalen Fall alle von ihm verwaltetet Daten im Arbeitsspeicher, ebenso sollte die MySQL-Datenbank komplett dort liegen. Auslagerungen auf die Festplatte bremsen das System unnötig aus. Der IES schreibt datenbankunabhängige echte Webseiten auf die Festplatte. Diese Dateien werden vom Webserver ausgeliefert; dabei findet kein Datenbankzugriff mehr statt. Ein schnelles Schreiben der Daten für den Webserver (Festplatten-Schreib-Geschwindigkeit) ist ebenso notwendig wie ein schnelles Lesen der Daten für die Auslieferung. Wenn das Dateisystem für den die Seiten ausliefernden Webserver über das Netzwerk verfügbar gemacht wird, ist die Netzwerkgeschwindigkeit ebenfalls für ein performantes Gesamtsystem sehr wichtig.&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Die Anforderungen können sich während des Betriebs des IES je nach Anwendungsszenario und Veränderungen in der Datenmenge oder Nutzermenge verändern. Mehr Daten benötigen mehr Speicherplatz (RAM und Festplatte), höhere Nutzungsfrequenzen benötigen schnellere bzw. breitere Netzwerk-Anbindungen und CPU-Leistungsfähigkeit. Wir empfehlen den Betrieb in einer virtuellen Umgebung, damit Sie flexibel auf Änderungen der Anforderungen reagieren können.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Minimal-Anforderung====&lt;br /&gt;
Prozessor P4 1GHZ 64bit, 2 GB Hauptspeicher PLUS die 1,2fache Menge der Größe der MySQL-Datenbank, 18 GB HDD, Netzwerk&lt;br /&gt;
&lt;br /&gt;
===Empfehlung===&lt;br /&gt;
Mehrprozessorsystem (z.B. QuadCore) ~3GHz 64Bit, 8 GB RAM PLUS die 2fache Menge der Größe der MySQL-Datenbank, RAID-10-System mit 100 GB HDD, Gbit-Netzwerk&lt;br /&gt;
&lt;br /&gt;
Die Schreib- und Lesezugriffe auf die Festplatte sollten für ein performantes Arbeiten folgende Werte (im Durchschnitt) nicht unterschreiten: &amp;lt;strong&amp;gt;Lesen 300MB/sek, Schreiben 120MB/sek&amp;lt;/strong&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Java===&lt;br /&gt;
====JDK - Java Development Kit====&lt;br /&gt;
Für den Betrieb des IES wird ein Java-Development-Kit inkl. Java-Compiler benötigt. Aktuell unterstützen wir die Pakete:&lt;br /&gt;
* JDK (Java SDK) von Oracle ab der Version 1.7&lt;br /&gt;
* OpenJDK 7 oder neuer&lt;br /&gt;
* IBM-Java 7 JDK&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Eine Java Runtime Environment (JRE)-Version reicht nicht aus.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Webserver===&lt;br /&gt;
====Apache 2====&lt;br /&gt;
Weitere Informationen finden Sie unter http://www.apache.org&lt;br /&gt;
&lt;br /&gt;
Empfohlene Module für die Integration des IES in den Apache:&lt;br /&gt;
    mod_proxy&lt;br /&gt;
    mod_proxy_balancer&lt;br /&gt;
    mod_proxy_http&lt;br /&gt;
    mod_rewrite&lt;br /&gt;
    mod_ssl&lt;br /&gt;
    mod_headers &lt;br /&gt;
&lt;br /&gt;
Informationen zur Konfiguration finden Sie unter [[Integration des IES in den Apache]].&lt;br /&gt;
&lt;br /&gt;
Für die Auslieferung von Webseiten wird PHP benötigt; der Webserver benötigt dann verschiedene PHP-Erweiterungen [[Installationsanleitung PHP]].&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
====MySQL====&lt;br /&gt;
Weitere Informationen finden Sie unter http://www.mysql.com&lt;br /&gt;
&lt;br /&gt;
MySQL ab der Version 5. Engine: INNODB&lt;br /&gt;
&lt;br /&gt;
Zur Konfiguration finden Sie unter [[Hinweise zu MySQL]] wichtige Informationen.&lt;br /&gt;
&lt;br /&gt;
===Mailserver===&lt;br /&gt;
Wird ein MailPublisher verwendet empfehlen wir aus unterschiedlichen Gründen die Installation eines lokalen Mailservers (Sendmail, Postfix, QMail, etc.) auch wenn in dem entsprechendem Netzwerk ein separater Mailserver konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
Gründe für den Einsatz eines lokalen Mailservers:&lt;br /&gt;
# Die Publikation von Artikeln über den Mail-Publisher ist wesentlich schneller, da keine Netzwerk-Kommunikation notwendig ist. Gerade beim Versand von Newslettern an sehr viele Adressaten ist hier ein signifikanter Performanzvorteil zu erkennen.&lt;br /&gt;
# Bei Problemen im lokalen Netzwerk bzw. der temp. Überlastung des Mailservers werden keine E-Mails verschickt. Ein späterer Versand würde nicht erfolgen, da der IES nicht ''spooled''. Dies ist Aufgabe eines Mailservers und würde durch einen lokaler Mailserver auf ideale Weise erfüllt.&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration des lokalen Mailservers sollte daher bereits bei der Installation des IES erfolgen. Der IES ist grundsätzlich für die lokale E-Mail-Auslieferung konfiguriert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Installation| 100]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Systemvoraussetzungen&amp;diff=6637</id>
		<title>Systemvoraussetzungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Systemvoraussetzungen&amp;diff=6637"/>
		<updated>2014-03-17T23:51:39Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aktuelle Systemvoraussetzungen für Neuinstallationen und den Betrieb des [[IES]].&lt;br /&gt;
&lt;br /&gt;
===Betriebssysteme===&lt;br /&gt;
Wir unterstützen nur 64bit-Betriebssysteme.&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
32-bit-Systeme werde nicht unterstützt.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
* CentOS Linux ab Version 6 (http://www.centos.org)&lt;br /&gt;
* Ubuntu Linux ab Version 12 (http://www.ubuntu.com)&lt;br /&gt;
* Red Hat Linux ab Version 6 (http://www.redhat.com)&lt;br /&gt;
* Debian Linux ab Version 6 (http://www.debian.org)&lt;br /&gt;
* Suse Linux Enterprise Server ab Version 11 (http://www.suse.com)&lt;br /&gt;
* OpenSUSE ab Version 13 (bzw. http://www.opensuse.org/)&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Achtung: &amp;quot;SUSE Linux Enterprise Server&amp;quot;-Nutzer. Grundsätzlich ist unsere Software auf SLES lauffähig; aufgrund von nicht in Standardrepositories vorhandenen Softwaren (u.a. ImageMagick, MySQL &amp;gt; 5.0, Xvfb) ist die Installation und Konfiguration nur von versierten Administratoren vorzunehmen. Gerne bieten wir hier exklusive Installationsschulung oder -unterstützung an. &amp;lt;strong&amp;gt;Die Funktion zur Umwandlung einer Webseite in eine PDF-Datei steht unter SUSE NICHT bereit. Die dafür notwendige Software wird von SUSE NICHT zur Verfügung gestellt; das Herunterladen der Webseite als PDF funktioniert auf einem SUSE-System nicht.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Abhängigkeiten=====&lt;br /&gt;
* ImageMagick (http://www.imagemagick.org/) ab Version 6&lt;br /&gt;
* curl, grep, egrep, netstat, ps, tail, useradd, groupadd, chown, sum, awk, head, nm, bc&lt;br /&gt;
Die hier genannten Abhängigkeiten sind durch die aufgeführten Distributionen erfüllbar und werden teilweise bereits automatisch installiert.&lt;br /&gt;
&lt;br /&gt;
(''Hinweis:'' Je nach Linux-Distribution sind einzelne Tools zum Beispiel in Paketen wie &amp;lt;code&amp;gt;net-tools&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;coreutils&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt; und anderen organisiert.)&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
* '''Windows Server''' Version 2008 R2 (64bit) (http://www.microsoft.com)&lt;br /&gt;
* Windows 7 und Windows 8 werden als Betriebssysteme nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Die Verwendung von Windows als Betriebssystem für den Webserver wird von Sitepark NICHT empfohlen. PHP kann auch unter einem 64bit-Windows nur mit 32bit-Integer-Zahlen arbeiten; alle PHP-Anwendungen, die mit von Java übergebenen Zeitstempeln im Millisekundenbereich rechnen, sind nicht korrekt lauffähig.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Abhängigkeiten=====&lt;br /&gt;
* ImageMagick (http://www.imagemagick.org/) ab Version 6&lt;br /&gt;
* mTail (http://ophilipp.free.fr/op_tail.htm) (Zur Wartung und Administration)&lt;br /&gt;
* 7-Zip (http://www.7-zip.org/) (Zip-Funktionen des Windows-Explorers reichen nicht aus) (Zur Wartung und Administration)&lt;br /&gt;
* Process Explorer (http://technet.microsoft.com/de-de/sysinternals/bb896653) (Zur Wartung und Administration)&lt;br /&gt;
* Process Monitor (http://technet.microsoft.com/de-de/sysinternals/bb896645) (Zur Wartung und Administration)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
Die Leistungsstärke der Hardware ist in Abhängigkeit zum zu realisierenden Projekt individuell unterschiedlich. Die hier angegebenen Anforderungen und Empfehlungen sind als Richtwerte zu verstehen.&lt;br /&gt;
&lt;br /&gt;
Relevante Kenngrößen sind die CPU-Leistungsfähigkeit, die RAM-Größe, die Zugriffsgeschwindigkeit auf die Speichergeräte (Festplatten) und die Netzwerkanbindung.&lt;br /&gt;
&lt;br /&gt;
Der IES hält während des Betriebs im optimalen Fall alle von ihm verwaltetet Daten im Arbeitsspeicher, ebenso sollte die MySQL-Datenbank komplett dort liegen. Auslagerungen auf die Festplatte bremsen das System unnötig aus. Der IES schreibt datenbankunabhängige echte Webseiten auf die Festplatte. Diese Dateien werden vom Webserver ausgeliefert; dabei findet kein Datenbankzugriff mehr statt. Ein schnelles Schreiben der Daten für den Webserver (Festplatten-Schreib-Geschwindigkeit) ist ebenso notwendig wie ein schnelles Lesen der Daten für die Auslieferung. Wenn das Dateisystem für den die Seiten ausliefernden Webserver über das Netzwerk verfügbar gemacht wird, ist die Netzwerkgeschwindigkeit ebenfalls für ein performantes Gesamtsystem sehr wichtig.&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Die Anforderungen können sich während des Betriebs des IES je nach Anwendungsszenario und Veränderungen in der Datenmenge oder Nutzermenge verändern. Mehr Daten benötigen mehr Speicherplatz (RAM und Festplatte), höhere Nutzungsfrequenzen benötigen schnellere bzw. breitere Netzwerk-Anbindungen und CPU-Leistungsfähigkeit. Wir empfehlen den Betrieb in einer virtuellen Umgebung, damit Sie flexibel auf Änderungen der Anforderungen reagieren können.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Minimal-Anforderung====&lt;br /&gt;
Prozessor P4 1GHZ 64bit, 2 GB Hauptspeicher PLUS die 1,2fache Menge der Größe der MySQL-Datenbank, 18 GB HDD, Netzwerk&lt;br /&gt;
&lt;br /&gt;
===Empfehlung===&lt;br /&gt;
Mehrprozessorsystem (z.B. QuadCore) ~3GHz 64Bit, 8 GB RAM PLUS die 2fache Menge der Größe der MySQL-Datenbank, RAID-10-System mit 100 GB HDD, Gbit-Netzwerk&lt;br /&gt;
&lt;br /&gt;
Die Schreib- und Lesezugriffe auf die Festplatte sollten für ein performantes Arbeiten folgende Werte (im Durchschnitt) nicht unterschreiten: &amp;lt;strong&amp;gt;Lesen 300MB/sek, Schreiben 120MB/sek&amp;lt;/strong&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Java===&lt;br /&gt;
====JDK - Java Development Kit====&lt;br /&gt;
Für den Betrieb des IES wird ein Java-Development-Kit inkl. Java-Compiler benötigt. Aktuell unterstützen wir die Pakete:&lt;br /&gt;
* JDK (Java SDK) von Oracle ab der Version 1.7&lt;br /&gt;
* OpenJDK 7 oder neuer&lt;br /&gt;
* IBM-Java 7 JDK&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Eine Java Runtime Environment (JRE)-Version reicht nicht aus.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Webserver===&lt;br /&gt;
====Apache 2====&lt;br /&gt;
Weitere Informationen finden Sie unter http://www.apache.org&lt;br /&gt;
&lt;br /&gt;
Empfohlene Module für die Integration des IES in den Apache:&lt;br /&gt;
    mod_proxy&lt;br /&gt;
    mod_proxy_balancer&lt;br /&gt;
    mod_proxy_http&lt;br /&gt;
    mod_rewrite&lt;br /&gt;
    mod_ssl&lt;br /&gt;
    mod_headers &lt;br /&gt;
&lt;br /&gt;
Informationen zur Konfiguration finden Sie unter [[Integration des IES in den Apache]].&lt;br /&gt;
&lt;br /&gt;
Für die Auslieferung von Webseiten wird PHP benötigt; der Webserver benötigt dann verschiedene PHP-Erweiterungen [[Installationsanleitung PHP]].&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
====MySQL====&lt;br /&gt;
Weitere Informationen finden Sie unter http://www.mysql.com&lt;br /&gt;
&lt;br /&gt;
MySQL ab der Version 5. Engine: INNODB&lt;br /&gt;
&lt;br /&gt;
Zur Konfiguration finden Sie unter [[Hinweise zu MySQL]] wichtige Informationen.&lt;br /&gt;
&lt;br /&gt;
===Mailserver===&lt;br /&gt;
Wird ein MailPublisher verwendet empfehlen wir aus unterschiedlichen Gründen die Installation eines lokalen Mailservers (Sendmail, Postfix, QMail, etc.) auch wenn in dem entsprechendem Netzwerk ein separater Mailserver konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
Gründe für den Einsatz eines lokalen Mailservers:&lt;br /&gt;
# Die Publikation von Artikeln über den Mail-Publisher ist wesentlich schneller, da keine Netzwerk-Kommunikation notwendig ist. Gerade beim Versand von Newslettern an sehr viele Adressaten ist hier ein signifikanter Performanzvorteil zu erkennen.&lt;br /&gt;
# Bei Problemen im lokalen Netzwerk bzw. der temp. Überlastung des Mailservers werden keine E-Mails verschickt. Ein späterer Versandt würde nicht erfolgen, da der IES nicht ''spooled''. Dies ist Aufgabe eines Mailservers würde durch einen lokaler Mailserver auf ideale Weise erfüllt.&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration des lokalen Mailservers sollte daher bereits bei der Installation des IES erfolgen. Der IES ist grundsätzlich für die lokale E-Mail-Auslieferung konfiguriert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Installation| 100]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Systemvoraussetzungen&amp;diff=6636</id>
		<title>Systemvoraussetzungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Systemvoraussetzungen&amp;diff=6636"/>
		<updated>2014-03-17T23:51:20Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aktuelle Systemvoraussetzungen für Neuinstallationen und den Betrieb des [[IES]].&lt;br /&gt;
&lt;br /&gt;
===Betriebssysteme===&lt;br /&gt;
Wir unterstützen nur 64bit-Betriebssysteme.&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
32-bit-Systeme werde nicht unterstützt.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
* CentOS Linux ab Version 6 (http://www.centos.org)&lt;br /&gt;
* Ubuntu Linux ab Version 12 (http://www.ubuntu.com)&lt;br /&gt;
* Red Hat Linux ab Version 6 (http://www.redhat.com)&lt;br /&gt;
* Debian Linux ab Version 6 (http://www.debian.org)&lt;br /&gt;
* Suse Linux Enterprise Server ab Version 11 (http://www.suse.com)&lt;br /&gt;
* OpenSUSE ab Version 13 (bzw. http://www.opensuse.org/)&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Achtung: &amp;quot;SuSE Linux Enterprise Server&amp;quot;-Nutzer. Grundsätzlich ist unsere Software auf SLES lauffähig; aufgrund von nicht in Standardrepositories vorhandenen Softwaren (u.a. ImageMagick, MySQL &amp;gt; 5.0, Xvfb) ist die Installation und Konfiguration nur von versierten Administratoren vorzunehmen. Gerne bieten wir hier exklusive Installationsschulung oder -unterstützung an. &amp;lt;strong&amp;gt;Die Funktion zur Umwandlung einer Webseite in eine PDF-Datei steht unter SUSE NICHT bereit. Die dafür notwendige Software wird von SUSE NICHT zur Verfügung gestellt; das Herunterladen der Webseite als PDF funktioniert auf einem SUSE-System nicht.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Abhängigkeiten=====&lt;br /&gt;
* ImageMagick (http://www.imagemagick.org/) ab Version 6&lt;br /&gt;
* curl, grep, egrep, netstat, ps, tail, useradd, groupadd, chown, sum, awk, head, nm, bc&lt;br /&gt;
Die hier genannten Abhängigkeiten sind durch die aufgeführten Distributionen erfüllbar und werden teilweise bereits automatisch installiert.&lt;br /&gt;
&lt;br /&gt;
(''Hinweis:'' Je nach Linux-Distribution sind einzelne Tools zum Beispiel in Paketen wie &amp;lt;code&amp;gt;net-tools&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;coreutils&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt; und anderen organisiert.)&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
* '''Windows Server''' Version 2008 R2 (64bit) (http://www.microsoft.com)&lt;br /&gt;
* Windows 7 und Windows 8 werden als Betriebssysteme nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Die Verwendung von Windows als Betriebssystem für den Webserver wird von Sitepark NICHT empfohlen. PHP kann auch unter einem 64bit-Windows nur mit 32bit-Integer-Zahlen arbeiten; alle PHP-Anwendungen, die mit von Java übergebenen Zeitstempeln im Millisekundenbereich rechnen, sind nicht korrekt lauffähig.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Abhängigkeiten=====&lt;br /&gt;
* ImageMagick (http://www.imagemagick.org/) ab Version 6&lt;br /&gt;
* mTail (http://ophilipp.free.fr/op_tail.htm) (Zur Wartung und Administration)&lt;br /&gt;
* 7-Zip (http://www.7-zip.org/) (Zip-Funktionen des Windows-Explorers reichen nicht aus) (Zur Wartung und Administration)&lt;br /&gt;
* Process Explorer (http://technet.microsoft.com/de-de/sysinternals/bb896653) (Zur Wartung und Administration)&lt;br /&gt;
* Process Monitor (http://technet.microsoft.com/de-de/sysinternals/bb896645) (Zur Wartung und Administration)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
Die Leistungsstärke der Hardware ist in Abhängigkeit zum zu realisierenden Projekt individuell unterschiedlich. Die hier angegebenen Anforderungen und Empfehlungen sind als Richtwerte zu verstehen.&lt;br /&gt;
&lt;br /&gt;
Relevante Kenngrößen sind die CPU-Leistungsfähigkeit, die RAM-Größe, die Zugriffsgeschwindigkeit auf die Speichergeräte (Festplatten) und die Netzwerkanbindung.&lt;br /&gt;
&lt;br /&gt;
Der IES hält während des Betriebs im optimalen Fall alle von ihm verwaltetet Daten im Arbeitsspeicher, ebenso sollte die MySQL-Datenbank komplett dort liegen. Auslagerungen auf die Festplatte bremsen das System unnötig aus. Der IES schreibt datenbankunabhängige echte Webseiten auf die Festplatte. Diese Dateien werden vom Webserver ausgeliefert; dabei findet kein Datenbankzugriff mehr statt. Ein schnelles Schreiben der Daten für den Webserver (Festplatten-Schreib-Geschwindigkeit) ist ebenso notwendig wie ein schnelles Lesen der Daten für die Auslieferung. Wenn das Dateisystem für den die Seiten ausliefernden Webserver über das Netzwerk verfügbar gemacht wird, ist die Netzwerkgeschwindigkeit ebenfalls für ein performantes Gesamtsystem sehr wichtig.&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Die Anforderungen können sich während des Betriebs des IES je nach Anwendungsszenario und Veränderungen in der Datenmenge oder Nutzermenge verändern. Mehr Daten benötigen mehr Speicherplatz (RAM und Festplatte), höhere Nutzungsfrequenzen benötigen schnellere bzw. breitere Netzwerk-Anbindungen und CPU-Leistungsfähigkeit. Wir empfehlen den Betrieb in einer virtuellen Umgebung, damit Sie flexibel auf Änderungen der Anforderungen reagieren können.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Minimal-Anforderung====&lt;br /&gt;
Prozessor P4 1GHZ 64bit, 2 GB Hauptspeicher PLUS die 1,2fache Menge der Größe der MySQL-Datenbank, 18 GB HDD, Netzwerk&lt;br /&gt;
&lt;br /&gt;
===Empfehlung===&lt;br /&gt;
Mehrprozessorsystem (z.B. QuadCore) ~3GHz 64Bit, 8 GB RAM PLUS die 2fache Menge der Größe der MySQL-Datenbank, RAID-10-System mit 100 GB HDD, Gbit-Netzwerk&lt;br /&gt;
&lt;br /&gt;
Die Schreib- und Lesezugriffe auf die Festplatte sollten für ein performantes Arbeiten folgende Werte (im Durchschnitt) nicht unterschreiten: &amp;lt;strong&amp;gt;Lesen 300MB/sek, Schreiben 120MB/sek&amp;lt;/strong&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Java===&lt;br /&gt;
====JDK - Java Development Kit====&lt;br /&gt;
Für den Betrieb des IES wird ein Java-Development-Kit inkl. Java-Compiler benötigt. Aktuell unterstützen wir die Pakete:&lt;br /&gt;
* JDK (Java SDK) von Oracle ab der Version 1.7&lt;br /&gt;
* OpenJDK 7 oder neuer&lt;br /&gt;
* IBM-Java 7 JDK&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Eine Java Runtime Environment (JRE)-Version reicht nicht aus.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Webserver===&lt;br /&gt;
====Apache 2====&lt;br /&gt;
Weitere Informationen finden Sie unter http://www.apache.org&lt;br /&gt;
&lt;br /&gt;
Empfohlene Module für die Integration des IES in den Apache:&lt;br /&gt;
    mod_proxy&lt;br /&gt;
    mod_proxy_balancer&lt;br /&gt;
    mod_proxy_http&lt;br /&gt;
    mod_rewrite&lt;br /&gt;
    mod_ssl&lt;br /&gt;
    mod_headers &lt;br /&gt;
&lt;br /&gt;
Informationen zur Konfiguration finden Sie unter [[Integration des IES in den Apache]].&lt;br /&gt;
&lt;br /&gt;
Für die Auslieferung von Webseiten wird PHP benötigt; der Webserver benötigt dann verschiedene PHP-Erweiterungen [[Installationsanleitung PHP]].&lt;br /&gt;
&lt;br /&gt;
===Datenbank===&lt;br /&gt;
====MySQL====&lt;br /&gt;
Weitere Informationen finden Sie unter http://www.mysql.com&lt;br /&gt;
&lt;br /&gt;
MySQL ab der Version 5. Engine: INNODB&lt;br /&gt;
&lt;br /&gt;
Zur Konfiguration finden Sie unter [[Hinweise zu MySQL]] wichtige Informationen.&lt;br /&gt;
&lt;br /&gt;
===Mailserver===&lt;br /&gt;
Wird ein MailPublisher verwendet empfehlen wir aus unterschiedlichen Gründen die Installation eines lokalen Mailservers (Sendmail, Postfix, QMail, etc.) auch wenn in dem entsprechendem Netzwerk ein separater Mailserver konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
Gründe für den Einsatz eines lokalen Mailservers:&lt;br /&gt;
# Die Publikation von Artikeln über den Mail-Publisher ist wesentlich schneller, da keine Netzwerk-Kommunikation notwendig ist. Gerade beim Versand von Newslettern an sehr viele Adressaten ist hier ein signifikanter Performanzvorteil zu erkennen.&lt;br /&gt;
# Bei Problemen im lokalen Netzwerk bzw. der temp. Überlastung des Mailservers werden keine E-Mails verschickt. Ein späterer Versandt würde nicht erfolgen, da der IES nicht ''spooled''. Dies ist Aufgabe eines Mailservers würde durch einen lokaler Mailserver auf ideale Weise erfüllt.&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration des lokalen Mailservers sollte daher bereits bei der Installation des IES erfolgen. Der IES ist grundsätzlich für die lokale E-Mail-Auslieferung konfiguriert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Installation| 100]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=FormSolutions_Schnittstelle&amp;diff=5843</id>
		<title>FormSolutions Schnittstelle</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=FormSolutions_Schnittstelle&amp;diff=5843"/>
		<updated>2012-05-15T13:08:59Z</updated>

		<summary type="html">&lt;p&gt;Liebold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Formulare der Firma [http://www.form-solutions.de Form-Solutions] können in den IES integriert werden. Hierzu ist eine Form-Solutions Lizenz erforderlich.&lt;br /&gt;
&lt;br /&gt;
===Funktionsweise===&lt;br /&gt;
Referenzen der Formulare werden in den IES (Sitepark Information Enterprise Server) importiert und durch regelmäßige Imports synchron gehalten. Mit Hilfe des [[spt:formsolutions]]-Tag kann ein Link-Dialog geöffnet werden, um ein Formulare zu verwenden. Für jede erzeugte Verlinkung wird eine neue URL erzeugt. Über dieser URL kann das Formular vom Form-Solutions-Server geladen werden (Z.B. PDF). Der [[spt:formsolutions]]-Tag erzeugt einen Button über den das Formular konfiguriert werden kann. Nach Klick auf diesen Button öffnet sich eine Seite des Form-Solutions-Servers mit der das Formular konfiguriert wird.&lt;br /&gt;
&lt;br /&gt;
===Voraussetzungen===&lt;br /&gt;
Um die Form-Solutions-Schnittstelle einrichten zu können müssen folgende Voraussetzungen gegeben sein:&lt;br /&gt;
* Der Kunde muss eine Form-Solutions Lizenz besitzen, um den den Form-Solutions-Server ansprechen zu können&lt;br /&gt;
* Der IES muss Zugang zum Internet haben, um den Formsolutions-Server erreichen zu können.&lt;br /&gt;
* Die Redakteure, die die Formulare Verknüpfen sollen, müssen Zugang zum Internet haben, um den Formsolutions-Server erreichen zu können.&lt;br /&gt;
* Es muß ein CMS-Key für die Form-Solutions-Schnittstelle bekannt sein der vom IES verwendet werden kann. Dieser Key wird den Kunden von Form-Solutions genannt. Der Key sollte keine Sonderzeichen enthalten!&lt;br /&gt;
* Die zu verwendenden Formulare werden zur Personalisierung mit einem Form-Solutions-Nutzer verknüpft. Hier muss ein Default-Nutzer bekannt sein, der initial für neue Formular-Links verwendet wird. Diese Nutzer kann bei der weiteren Konfiguration des Formulars geändert werden. Für die Form-Solutions-Schnittelle ist eine Default-Nutzer-Nummer erforderlich. Sie muss das Format &amp;lt;code&amp;gt;00000000-0001-0001&amp;lt;/code&amp;gt; haben.&lt;br /&gt;
* Es muss ein TemplatePool mit dem Anchor '&amp;lt;code&amp;gt;formsolutions.template.pool&amp;lt;/code&amp;gt;' existieren, der unterhalb des Pools 'Seitentemplates' hinterlegt ist oder das Flag 'Dieser Pool enthält Seitentemplates' gesetzt hat. &lt;br /&gt;
* Es muss ein ArtikelPool mit dem Anchor '&amp;lt;code&amp;gt;formsolutions&amp;lt;/code&amp;gt;' existieren. Dieser Pool besitzt den 'Standard Infosite Container' sowie das Template für die Eigenschaften 'nur Resourcen anlegen'. Der 'Templatepool für die Bearbeitung' ist der zuvor angelegte TemplatePool 'formsolutions.template.pool'.&lt;br /&gt;
* Es muss folgendes Template mit dem Anchor '&amp;lt;code&amp;gt;formsolutions.template.config&amp;lt;/code&amp;gt;' angelegt sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;in&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;em&amp;gt;&lt;br /&gt;
  Diese Konfigurationswerte werden über den Form-Solutions import gesetzt und können an dieser Stellen nicht geändert werden.&lt;br /&gt;
  Ist eine Änderung der Werte nötig, muss diese Änderung am Importer vorgenommen werden.&lt;br /&gt;
  &amp;lt;/em&amp;gt;&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  Webservice Url&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;wsurl&amp;quot; readonly=&amp;quot;false&amp;quot; size=&amp;quot;80&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  CMS-Key&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;cms&amp;quot; readonly=&amp;quot;true&amp;quot; size=&amp;quot;80&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Nutzer-Nummer&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;user&amp;quot; readonly=&amp;quot;true&amp;quot; size=&amp;quot;80&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Es muss folgendes Template mit dem Anchor '&amp;lt;code&amp;gt;formsolutions.template.form&amp;lt;/code&amp;gt;' angelegt sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;in&amp;quot;&amp;gt;&lt;br /&gt;
  Formular-Nummer&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_fnr&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Anzahl der Seiten&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_pagecount&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Erzeugt am&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_created&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Letzte Änderung am&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_changed&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Bemerkung&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_bem&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Beschreibung&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_beschr&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Typ&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_type&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Konfiguration===&lt;br /&gt;
Um den Import einrichten zu können müssen von dem Kunden folgende Informationen bereit gestellt werden:&lt;br /&gt;
* CMS-Key des Kunden-Accounts&lt;br /&gt;
* Kunden-Account: Login und Passwort&lt;br /&gt;
&lt;br /&gt;
Dann sind folgende Dateien in &amp;lt;code&amp;gt;/etc/sitepark&amp;lt;/code&amp;gt; anzulegen:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;form-solutions.xml&amp;lt;/code&amp;gt;'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier &amp;lt;strong&amp;gt;müssen&amp;lt;/strong&amp;gt; die Variablen ''cmskey'' und ''user'' entsprechend den Daten des Kunden ersetzt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strong style=&amp;quot;color:red&amp;quot;&amp;gt;Vorsicht:&amp;lt;/strong&amp;gt; Sollte der Key Zeichen wie '&amp;amp;' enthalten, muss der unten verwendete Platzhalter '${cmskey}' gegen den XML encodeten Key getauscht werden!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ies-client&amp;gt;&lt;br /&gt;
        &amp;lt;logging&amp;gt;&lt;br /&gt;
                &amp;lt;appender name=&amp;quot;FILE&amp;quot; class=&amp;quot;org.apache.log4j.RollingFileAppender&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;layout class=&amp;quot;org.apache.log4j.PatternLayout&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;param name=&amp;quot;ConversionPattern&amp;quot; value=&amp;quot;%d %-5p %m%n&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/layout&amp;gt;&lt;br /&gt;
                        &amp;lt;param name=&amp;quot;File&amp;quot; value=&amp;quot;${sitepark.home}/form-solutions.log&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;param name=&amp;quot;MaxFileSize&amp;quot; value=&amp;quot;10MB&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;param name=&amp;quot;MaxBackupIndex&amp;quot; value=&amp;quot;10&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/appender&amp;gt;&lt;br /&gt;
                &amp;lt;logger name=&amp;quot;com.sitepark.ies&amp;quot; additivity=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;appender-ref ref=&amp;quot;FILE&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;priority value=&amp;quot;INFO&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/logger&amp;gt;&lt;br /&gt;
        &amp;lt;/logging&amp;gt;      &lt;br /&gt;
        &amp;lt;ies-connection login=&amp;quot;login&amp;quot; password=&amp;quot;password&amp;quot; client=&amp;quot;anchor_of_the_client&amp;quot; module=&amp;quot;Form Solutions Importer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;properties&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deleteWorkDir&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.syncfile&amp;quot;&amp;gt;${sitepark.home}/conf/form-solutions.sync&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.publishMode&amp;quot;&amp;gt;all-file&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.ignoreParents&amp;quot;&amp;gt;false&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deleteElements&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deletePools&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deleteOnlyEmptyPools&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.variables&amp;quot;&amp;gt;wsurl=https://pdf.form-solutions.net/ws2&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.variables&amp;quot;&amp;gt;cmskey=293478912hskdfh238&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.variables&amp;quot;&amp;gt;user=12345678-1234-1234&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;/properties&amp;gt;&lt;br /&gt;
        &amp;lt;xip command=&amp;quot;import&amp;quot;&amp;gt;  &lt;br /&gt;
                &amp;lt;source type=&amp;quot;http&amp;quot; url=&amp;quot;${wsurl}/getformlist.php&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;header name=&amp;quot;SOAPAction&amp;quot;&amp;gt;&amp;quot;urn:FS#getformlist&amp;quot;&amp;lt;/header&amp;gt;&lt;br /&gt;
                        &amp;lt;body content-type=&amp;quot;text/xml; charset=UTF-8&amp;quot;&amp;gt;&amp;lt;![CDATA[&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;SOAP-ENV:Envelope xmlns:SOAP-ENV=&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:SOAP-ENC=&amp;quot;http://schemas.xmlsoap.org/soap/encoding/&amp;quot; xmlns:tns=&amp;quot;urn:FS&amp;quot; SOAP-ENV:encodingStyle=&amp;quot;http://schemas.xmlsoap.org/soap/encoding/&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;SOAP-ENV:Body&amp;gt;&lt;br /&gt;
                &amp;lt;tns:getformlist xmlns:tns=&amp;quot;urn:FS&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;cms xsi:type=&amp;quot;xsd:string&amp;quot;&amp;gt;${cmskey}&amp;lt;/cms&amp;gt;&lt;br /&gt;
                &amp;lt;/tns:getformlist&amp;gt;&lt;br /&gt;
        &amp;lt;/SOAP-ENV:Body&amp;gt;&lt;br /&gt;
&amp;lt;/SOAP-ENV:Envelope&amp;gt;]]&amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
                &amp;lt;/source&amp;gt;&lt;br /&gt;
                &amp;lt;transform xslt=&amp;quot;${sitepark.home}/conf/form-solutions.xslt&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/xip&amp;gt;&lt;br /&gt;
&amp;lt;/ies-client&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;form-solutions.xslt&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
        xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
        xmlns:xip=&amp;quot;http://ies.sitepark.com/xip&amp;quot;&lt;br /&gt;
        extension-element-prefixes=&amp;quot;xip&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:function name=&amp;quot;xip:getCategoryId&amp;quot;&amp;gt; &amp;lt;xsl:param name=&amp;quot;s&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Erstes Zeichen ermitteln --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:variable name=&amp;quot;id&amp;quot; select=&amp;quot;substring-before($s,' ')&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;substring-before($s,' ')&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:function&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:key name=&amp;quot;categoryId&amp;quot; match=&amp;quot;item&amp;quot; use=&amp;quot;xip:getCategoryId(kat)&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xip&amp;gt;&lt;br /&gt;
                        &amp;lt;resource parent=&amp;quot;formsolutions&amp;quot; anchor=&amp;quot;formsolutions.config&amp;quot; name=&amp;quot;Form Solutions Konfiguration&amp;quot; template=&amp;quot;formsolutions.template.config&amp;quot;&amp;gt;&lt;br /&gt;
                           &amp;lt;text name=&amp;quot;wsurl&amp;quot;&amp;gt;${wsurl}&amp;lt;/text&amp;gt;&lt;br /&gt;
                           &amp;lt;text name=&amp;quot;cms&amp;quot;&amp;gt;${cmskey}&amp;lt;/text&amp;gt;&lt;br /&gt;
                           &amp;lt;text name=&amp;quot;user&amp;quot;&amp;gt;${user}&amp;lt;/text&amp;gt;&lt;br /&gt;
                        &amp;lt;/resource&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Schleife über Kategorien --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;//item[generate-id() = generate-id(key('categoryId', xip:getCategoryId(kat))[1])]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                        &amp;lt;xsl:variable name=&amp;quot;category&amp;quot; select=&amp;quot;xip:getCategoryId(kat)&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- gelöschte Formulare haben keine Kategorie --&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;$category != ''&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:variable name=&amp;quot;categoryName&amp;quot; select=&amp;quot;kat/text()&amp;quot;/&amp;gt;&lt;br /&gt;
                                &amp;lt;articlepool parent=&amp;quot;formsolutions&amp;quot; anchor=&amp;quot;formsolutions.category.{$category}&amp;quot; name=&amp;quot;{$categoryName}&amp;quot;&amp;gt;&lt;br /&gt;
                                        &amp;lt;resource&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;container&amp;quot; anchor=&amp;quot;is5:gui.container.infosite.standard&amp;quot;/&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;registrationTemplate&amp;quot; anchor=&amp;quot;is5:gui.container.infosite.standard.all&amp;quot;/&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;editorTemplatePool&amp;quot; anchor=&amp;quot;standard.container.editing&amp;quot;&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                        &amp;lt;/resource&amp;gt;&lt;br /&gt;
                                &amp;lt;!-- Schleife über alle mit gleicher Kategorie --&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:for-each select=&amp;quot;key('categoryId',$category)&amp;quot;&amp;gt;&lt;br /&gt;
                                        &amp;lt;resource anchor=&amp;quot;formsolutions.form.{fnr}&amp;quot; name=&amp;quot;{title} ({fnr})&amp;quot; template=&amp;quot;formsolutions.template.form&amp;quot;&amp;gt;&lt;br /&gt;
                                                &amp;lt;comment&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;bem&amp;quot;/&amp;gt;&amp;lt;/comment&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_fnr&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;fnr&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_pagecount&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;pagecount&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_created&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;created&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_changed&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;changed&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_beschr&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;beschr&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_type&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;type&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                        &amp;lt;/resource&amp;gt;&lt;br /&gt;
                                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                                &amp;lt;/articlepool&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;/xip&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aktivierung===&lt;br /&gt;
&lt;br /&gt;
Der Import kann manuell durch Aufruf des Skriptes &amp;lt;code&amp;gt;iespkg&amp;lt;/code&amp;gt; gestartet werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
server:# /srv/sitepark/bin/iespkg /etc/form-solutions.xml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Zur regelmäßigen Synchronisation ist ein Cronjob in folgender Form notwendig:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
# Formulare von form-solutions aktualisieren.&lt;br /&gt;
1 1 * * * /srv/sitepark/bin/iespkg /etc/form-solutions.xml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Auf Windows-Systemen müsste eine entsprechende 'Aufgabe' konfiguriert werden, die den beispielhaften Aufruf &amp;lt;code&amp;gt;c:/Programme/Sitepark/bin/iespkg /etc/form-solutions.xml&amp;lt;/code&amp;gt; einmal täglich ausführt. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:InfoSite5]]&lt;br /&gt;
[[Kategorie:CityGov3]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=FormSolutions_Schnittstelle&amp;diff=5842</id>
		<title>FormSolutions Schnittstelle</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=FormSolutions_Schnittstelle&amp;diff=5842"/>
		<updated>2012-05-15T13:08:25Z</updated>

		<summary type="html">&lt;p&gt;Liebold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Formulare der Firma [http://www.form-solutions.de Form-Solutions] können in den IES integriert werden. Hierzu ist eine Form-Solutions Lizenz erforderlich.&lt;br /&gt;
&lt;br /&gt;
===Funktionsweise===&lt;br /&gt;
Referenzen der Formulare werden in den IES (Sitepark Information Enterprise Server) importiert und durch regelmäßige Imports synchron gehalten. Mit Hilfe des [[spt:formsolutions]]-Tag kann ein Link-Dialog geöffnet werden, um ein Formulare zu verwendet. Für jede erzeugte Verlinkung wird eine neue URL erzeugt. Über dieser URL kann das Formular vom Form-Solutions-Server geladen werden (Z.B. PDF). Der [[spt:formsolutions]]-Tag erzeugt einen Button über den das Formular konfiguriert werden kann. Nach Klick auf diesen Button öffnet sich eine Seite des Form-Solutions-Servers mit der das Formular konfiguriert wird.&lt;br /&gt;
&lt;br /&gt;
===Voraussetzungen===&lt;br /&gt;
Um die Form-Solutions-Schnittstelle einrichten zu können müssen folgende Voraussetzungen gegeben sein:&lt;br /&gt;
* Der Kunde muss eine Form-Solutions Lizenz besitzen, um den den Form-Solutions-Server ansprechen zu können&lt;br /&gt;
* Der IES muss Zugang zum Internet haben, um den Formsolutions-Server erreichen zu können.&lt;br /&gt;
* Die Redakteure, die die Formulare Verknüpfen sollen, müssen Zugang zum Internet haben, um den Formsolutions-Server erreichen zu können.&lt;br /&gt;
* Es muß ein CMS-Key für die Form-Solutions-Schnittstelle bekannt sein der vom IES verwendet werden kann. Dieser Key wird den Kunden von Form-Solutions genannt. Der Key sollte keine Sonderzeichen enthalten!&lt;br /&gt;
* Die zu verwendenden Formulare werden zur Personalisierung mit einem Form-Solutions-Nutzer verknüpft. Hier muss ein Default-Nutzer bekannt sein, der initial für neue Formular-Links verwendet wird. Diese Nutzer kann bei der weiteren Konfiguration des Formulars geändert werden. Für die Form-Solutions-Schnittelle ist eine Default-Nutzer-Nummer erforderlich. Sie muss das Format &amp;lt;code&amp;gt;00000000-0001-0001&amp;lt;/code&amp;gt; haben.&lt;br /&gt;
* Es muss ein TemplatePool mit dem Anchor '&amp;lt;code&amp;gt;formsolutions.template.pool&amp;lt;/code&amp;gt;' existieren, der unterhalb des Pools 'Seitentemplates' hinterlegt ist oder das Flag 'Dieser Pool enthält Seitentemplates' gesetzt hat. &lt;br /&gt;
* Es muss ein ArtikelPool mit dem Anchor '&amp;lt;code&amp;gt;formsolutions&amp;lt;/code&amp;gt;' existieren. Dieser Pool besitzt den 'Standard Infosite Container' sowie das Template für die Eigenschaften 'nur Resourcen anlegen'. Der 'Templatepool für die Bearbeitung' ist der zuvor angelegte TemplatePool 'formsolutions.template.pool'.&lt;br /&gt;
* Es muss folgendes Template mit dem Anchor '&amp;lt;code&amp;gt;formsolutions.template.config&amp;lt;/code&amp;gt;' angelegt sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;in&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;em&amp;gt;&lt;br /&gt;
  Diese Konfigurationswerte werden über den Form-Solutions import gesetzt und können an dieser Stellen nicht geändert werden.&lt;br /&gt;
  Ist eine Änderung der Werte nötig, muss diese Änderung am Importer vorgenommen werden.&lt;br /&gt;
  &amp;lt;/em&amp;gt;&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  Webservice Url&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;wsurl&amp;quot; readonly=&amp;quot;false&amp;quot; size=&amp;quot;80&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  CMS-Key&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;cms&amp;quot; readonly=&amp;quot;true&amp;quot; size=&amp;quot;80&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Nutzer-Nummer&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;user&amp;quot; readonly=&amp;quot;true&amp;quot; size=&amp;quot;80&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Es muss folgendes Template mit dem Anchor '&amp;lt;code&amp;gt;formsolutions.template.form&amp;lt;/code&amp;gt;' angelegt sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;in&amp;quot;&amp;gt;&lt;br /&gt;
  Formular-Nummer&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_fnr&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Anzahl der Seiten&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_pagecount&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Erzeugt am&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_created&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Letzte Änderung am&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_changed&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Bemerkung&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_bem&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Beschreibung&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_beschr&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Typ&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_type&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Konfiguration===&lt;br /&gt;
Um den Import einrichten zu können müssen von dem Kunden folgende Informationen bereit gestellt werden:&lt;br /&gt;
* CMS-Key des Kunden-Accounts&lt;br /&gt;
* Kunden-Account: Login und Passwort&lt;br /&gt;
&lt;br /&gt;
Dann sind folgende Dateien in &amp;lt;code&amp;gt;/etc/sitepark&amp;lt;/code&amp;gt; anzulegen:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;form-solutions.xml&amp;lt;/code&amp;gt;'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier &amp;lt;strong&amp;gt;müssen&amp;lt;/strong&amp;gt; die Variablen ''cmskey'' und ''user'' entsprechend den Daten des Kunden ersetzt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strong style=&amp;quot;color:red&amp;quot;&amp;gt;Vorsicht:&amp;lt;/strong&amp;gt; Sollte der Key Zeichen wie '&amp;amp;' enthalten, muss der unten verwendete Platzhalter '${cmskey}' gegen den XML encodeten Key getauscht werden!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ies-client&amp;gt;&lt;br /&gt;
        &amp;lt;logging&amp;gt;&lt;br /&gt;
                &amp;lt;appender name=&amp;quot;FILE&amp;quot; class=&amp;quot;org.apache.log4j.RollingFileAppender&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;layout class=&amp;quot;org.apache.log4j.PatternLayout&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;param name=&amp;quot;ConversionPattern&amp;quot; value=&amp;quot;%d %-5p %m%n&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/layout&amp;gt;&lt;br /&gt;
                        &amp;lt;param name=&amp;quot;File&amp;quot; value=&amp;quot;${sitepark.home}/form-solutions.log&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;param name=&amp;quot;MaxFileSize&amp;quot; value=&amp;quot;10MB&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;param name=&amp;quot;MaxBackupIndex&amp;quot; value=&amp;quot;10&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/appender&amp;gt;&lt;br /&gt;
                &amp;lt;logger name=&amp;quot;com.sitepark.ies&amp;quot; additivity=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;appender-ref ref=&amp;quot;FILE&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;priority value=&amp;quot;INFO&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/logger&amp;gt;&lt;br /&gt;
        &amp;lt;/logging&amp;gt;      &lt;br /&gt;
        &amp;lt;ies-connection login=&amp;quot;login&amp;quot; password=&amp;quot;password&amp;quot; client=&amp;quot;anchor_of_the_client&amp;quot; module=&amp;quot;Form Solutions Importer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;properties&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deleteWorkDir&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.syncfile&amp;quot;&amp;gt;${sitepark.home}/conf/form-solutions.sync&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.publishMode&amp;quot;&amp;gt;all-file&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.ignoreParents&amp;quot;&amp;gt;false&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deleteElements&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deletePools&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deleteOnlyEmptyPools&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.variables&amp;quot;&amp;gt;wsurl=https://pdf.form-solutions.net/ws2&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.variables&amp;quot;&amp;gt;cmskey=293478912hskdfh238&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.variables&amp;quot;&amp;gt;user=12345678-1234-1234&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;/properties&amp;gt;&lt;br /&gt;
        &amp;lt;xip command=&amp;quot;import&amp;quot;&amp;gt;  &lt;br /&gt;
                &amp;lt;source type=&amp;quot;http&amp;quot; url=&amp;quot;${wsurl}/getformlist.php&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;header name=&amp;quot;SOAPAction&amp;quot;&amp;gt;&amp;quot;urn:FS#getformlist&amp;quot;&amp;lt;/header&amp;gt;&lt;br /&gt;
                        &amp;lt;body content-type=&amp;quot;text/xml; charset=UTF-8&amp;quot;&amp;gt;&amp;lt;![CDATA[&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;SOAP-ENV:Envelope xmlns:SOAP-ENV=&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:SOAP-ENC=&amp;quot;http://schemas.xmlsoap.org/soap/encoding/&amp;quot; xmlns:tns=&amp;quot;urn:FS&amp;quot; SOAP-ENV:encodingStyle=&amp;quot;http://schemas.xmlsoap.org/soap/encoding/&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;SOAP-ENV:Body&amp;gt;&lt;br /&gt;
                &amp;lt;tns:getformlist xmlns:tns=&amp;quot;urn:FS&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;cms xsi:type=&amp;quot;xsd:string&amp;quot;&amp;gt;${cmskey}&amp;lt;/cms&amp;gt;&lt;br /&gt;
                &amp;lt;/tns:getformlist&amp;gt;&lt;br /&gt;
        &amp;lt;/SOAP-ENV:Body&amp;gt;&lt;br /&gt;
&amp;lt;/SOAP-ENV:Envelope&amp;gt;]]&amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
                &amp;lt;/source&amp;gt;&lt;br /&gt;
                &amp;lt;transform xslt=&amp;quot;${sitepark.home}/conf/form-solutions.xslt&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/xip&amp;gt;&lt;br /&gt;
&amp;lt;/ies-client&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;form-solutions.xslt&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
        xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
        xmlns:xip=&amp;quot;http://ies.sitepark.com/xip&amp;quot;&lt;br /&gt;
        extension-element-prefixes=&amp;quot;xip&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:function name=&amp;quot;xip:getCategoryId&amp;quot;&amp;gt; &amp;lt;xsl:param name=&amp;quot;s&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Erstes Zeichen ermitteln --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:variable name=&amp;quot;id&amp;quot; select=&amp;quot;substring-before($s,' ')&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;substring-before($s,' ')&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:function&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:key name=&amp;quot;categoryId&amp;quot; match=&amp;quot;item&amp;quot; use=&amp;quot;xip:getCategoryId(kat)&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xip&amp;gt;&lt;br /&gt;
                        &amp;lt;resource parent=&amp;quot;formsolutions&amp;quot; anchor=&amp;quot;formsolutions.config&amp;quot; name=&amp;quot;Form Solutions Konfiguration&amp;quot; template=&amp;quot;formsolutions.template.config&amp;quot;&amp;gt;&lt;br /&gt;
                           &amp;lt;text name=&amp;quot;wsurl&amp;quot;&amp;gt;${wsurl}&amp;lt;/text&amp;gt;&lt;br /&gt;
                           &amp;lt;text name=&amp;quot;cms&amp;quot;&amp;gt;${cmskey}&amp;lt;/text&amp;gt;&lt;br /&gt;
                           &amp;lt;text name=&amp;quot;user&amp;quot;&amp;gt;${user}&amp;lt;/text&amp;gt;&lt;br /&gt;
                        &amp;lt;/resource&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Schleife über Kategorien --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;//item[generate-id() = generate-id(key('categoryId', xip:getCategoryId(kat))[1])]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                        &amp;lt;xsl:variable name=&amp;quot;category&amp;quot; select=&amp;quot;xip:getCategoryId(kat)&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- gelöschte Formulare haben keine Kategorie --&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;$category != ''&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:variable name=&amp;quot;categoryName&amp;quot; select=&amp;quot;kat/text()&amp;quot;/&amp;gt;&lt;br /&gt;
                                &amp;lt;articlepool parent=&amp;quot;formsolutions&amp;quot; anchor=&amp;quot;formsolutions.category.{$category}&amp;quot; name=&amp;quot;{$categoryName}&amp;quot;&amp;gt;&lt;br /&gt;
                                        &amp;lt;resource&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;container&amp;quot; anchor=&amp;quot;is5:gui.container.infosite.standard&amp;quot;/&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;registrationTemplate&amp;quot; anchor=&amp;quot;is5:gui.container.infosite.standard.all&amp;quot;/&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;editorTemplatePool&amp;quot; anchor=&amp;quot;standard.container.editing&amp;quot;&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                        &amp;lt;/resource&amp;gt;&lt;br /&gt;
                                &amp;lt;!-- Schleife über alle mit gleicher Kategorie --&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:for-each select=&amp;quot;key('categoryId',$category)&amp;quot;&amp;gt;&lt;br /&gt;
                                        &amp;lt;resource anchor=&amp;quot;formsolutions.form.{fnr}&amp;quot; name=&amp;quot;{title} ({fnr})&amp;quot; template=&amp;quot;formsolutions.template.form&amp;quot;&amp;gt;&lt;br /&gt;
                                                &amp;lt;comment&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;bem&amp;quot;/&amp;gt;&amp;lt;/comment&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_fnr&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;fnr&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_pagecount&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;pagecount&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_created&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;created&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_changed&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;changed&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_beschr&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;beschr&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_type&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;type&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                        &amp;lt;/resource&amp;gt;&lt;br /&gt;
                                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                                &amp;lt;/articlepool&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;/xip&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aktivierung===&lt;br /&gt;
&lt;br /&gt;
Der Import kann manuell durch Aufruf des Skriptes &amp;lt;code&amp;gt;iespkg&amp;lt;/code&amp;gt; gestartet werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
server:# /srv/sitepark/bin/iespkg /etc/form-solutions.xml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Zur regelmäßigen Synchronisation ist ein Cronjob in folgender Form notwendig:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
# Formulare von form-solutions aktualisieren.&lt;br /&gt;
1 1 * * * /srv/sitepark/bin/iespkg /etc/form-solutions.xml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Auf Windows-Systemen müsste eine entsprechende 'Aufgabe' konfiguriert werden, die den beispielhaften Aufruf &amp;lt;code&amp;gt;c:/Programme/Sitepark/bin/iespkg /etc/form-solutions.xml&amp;lt;/code&amp;gt; einmal täglich ausführt. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:InfoSite5]]&lt;br /&gt;
[[Kategorie:CityGov3]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=FormSolutions_Schnittstelle&amp;diff=5830</id>
		<title>FormSolutions Schnittstelle</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=FormSolutions_Schnittstelle&amp;diff=5830"/>
		<updated>2012-05-14T07:21:06Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Voraussetzungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Formulare der Firma [http://www.form-solutions.de Form-Solutions] können in den IES integriert werden. Hierzu ist eine Form-Solutions Lizenz erforderlich.&lt;br /&gt;
&lt;br /&gt;
===Funktionsweise===&lt;br /&gt;
Referenzen der Formulare werden in den IES importiert und durch regelmäßige Imports synchron gehalten. Mit Hilfe des [[spt:formsolutions]]-Tag kann ein Link-Dialog geöffnet werden, um ein Formulare zu verwendet. Für jede erzeugte Verlinkung wird eine neue URL erzeugt. Über dieser URL kann das Formular vom Form-Solutions-Server geladen werden (Z.B. PDF). Der [[spt:formsolutions]]-Tag erzeugt einen Button über den das Formular konfiguriert werden kann. Nach Klick auf diesen Button öffnet sich eine Seite des Form-Solutions-Servers mit der das Formular konfiguriert wird.&lt;br /&gt;
&lt;br /&gt;
===Voraussetzungen===&lt;br /&gt;
Um die Form-Solutions-Schnittstelle einrichten zu können müssen folgende Voraussetzungen gegeben sein:&lt;br /&gt;
* Der Kunde muss eine Form-Solutions Lizenz besitzen, um den den Form-Solutions-Server ansprechen zu können&lt;br /&gt;
* Der IES muss Zugang zum Internet haben, um den Formsolutions-Server erreichen zu können.&lt;br /&gt;
* Die Redakteure, die die Formulare Verknüpfen sollen, müssen Zugang zum Internet haben, um den Formsolutions-Server erreichen zu können.&lt;br /&gt;
* Es muß ein CMS-Key für die Form-Solutions-Schnittstelle bekannt sein der vom IES verwendet werden kann. Dieser Key wird den Kunden von Form-Solutions genannt. Der Key sollte keine Sonderzeichen enthalten!&lt;br /&gt;
* Die zu verwendenden Formulare werden zur Personalisierung mit einem Form-Solutions-Nutzer verknüpft. Hier muss ein Default-Nutzer bekannt sein, der initial für neue Formular-Links verwendet wird. Diese Nutzer kann bei der weiteren Konfiguration des Formulars geändert werden. Für die Form-Solutions-Schnittelle ist eine Default-Nutzer-Nummer erforderlich. Sie muss das Format &amp;lt;code&amp;gt;00000000-0001-0001&amp;lt;/code&amp;gt; haben.&lt;br /&gt;
* Es muss ein ArtikelPool mit dem Anchor '&amp;lt;code&amp;gt;formsolutions&amp;lt;/code&amp;gt;' existieren.&lt;br /&gt;
* Es muss folgendes Template mit dem Anchor '&amp;lt;code&amp;gt;formsolutions.template.config&amp;lt;/code&amp;gt;' angelegt sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;in&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;em&amp;gt;&lt;br /&gt;
  Diese Konfigurationswerte werden über den Form-Solutions import gesetzt und können an dieser Stellen nicht geändert werden.&lt;br /&gt;
  Ist eine Änderung der Werte nötig, muss diese Änderung am Importer vorgenommen werden.&lt;br /&gt;
  &amp;lt;/em&amp;gt;&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;br/&amp;gt;&lt;br /&gt;
  Webservice Url&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;wsurl&amp;quot; readonly=&amp;quot;false&amp;quot; size=&amp;quot;80&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  CMS-Key&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;cms&amp;quot; readonly=&amp;quot;true&amp;quot; size=&amp;quot;80&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Nutzer-Nummer&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;user&amp;quot; readonly=&amp;quot;true&amp;quot; size=&amp;quot;80&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Es muss folgendes Template mit dem Anchor '&amp;lt;code&amp;gt;formsolutions.template.form&amp;lt;/code&amp;gt;' angelegt sein:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sp:io type=&amp;quot;in&amp;quot;&amp;gt;&lt;br /&gt;
  Formular-Nummer&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_fnr&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Anzahl der Seiten&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_pagecount&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Erzeugt am&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_created&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Letzte Änderung am&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_changed&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Bemerkung&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_bem&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Beschreibung&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_beschr&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  Typ&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;spt:text name=&amp;quot;fs_type&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/sp:io&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Konfiguration===&lt;br /&gt;
Um den Import einrichten zu können müssen von dem Kunden folgende Informationen bereit gestellt werden:&lt;br /&gt;
* CMS-Key des Kunden-Accounts&lt;br /&gt;
* Kunden-Account: Login und Passwort&lt;br /&gt;
&lt;br /&gt;
Dann sind folgende Dateien in &amp;lt;code&amp;gt;/etc/sitepark&amp;lt;/code&amp;gt; anzulegen:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;form-solutions.xml&amp;lt;/code&amp;gt;'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier &amp;lt;strong&amp;gt;müssen&amp;lt;/strong&amp;gt; die Variablen ''cmskey'' und ''user'' entsprechend den Daten des Kunden ersetzt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strong style=&amp;quot;color:red&amp;quot;&amp;gt;Vorsicht:&amp;lt;/strong&amp;gt; Sollte der Key Zeichen wie '&amp;amp;' enthalten, muss der unten verwendete Platzhalter '${cmskey}' gegen den XML encodeten Key getauscht werden!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ies-client&amp;gt;&lt;br /&gt;
        &amp;lt;logging&amp;gt;&lt;br /&gt;
                &amp;lt;appender name=&amp;quot;FILE&amp;quot; class=&amp;quot;org.apache.log4j.RollingFileAppender&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;layout class=&amp;quot;org.apache.log4j.PatternLayout&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;param name=&amp;quot;ConversionPattern&amp;quot; value=&amp;quot;%d %-5p %m%n&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/layout&amp;gt;&lt;br /&gt;
                        &amp;lt;param name=&amp;quot;File&amp;quot; value=&amp;quot;${sitepark.home}/form-solutions.log&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;param name=&amp;quot;MaxFileSize&amp;quot; value=&amp;quot;10MB&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;param name=&amp;quot;MaxBackupIndex&amp;quot; value=&amp;quot;10&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/appender&amp;gt;&lt;br /&gt;
                &amp;lt;logger name=&amp;quot;com.sitepark.ies&amp;quot; additivity=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;appender-ref ref=&amp;quot;FILE&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;priority value=&amp;quot;INFO&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/logger&amp;gt;&lt;br /&gt;
        &amp;lt;/logging&amp;gt;      &lt;br /&gt;
        &amp;lt;ies-connection login=&amp;quot;login&amp;quot; password=&amp;quot;password&amp;quot; client=&amp;quot;anchor_of_the_client&amp;quot; module=&amp;quot;Form Solutions Importer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;properties&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deleteWorkDir&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.syncfile&amp;quot;&amp;gt;${sitepark.home}/conf/form-solutions.sync&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.publishMode&amp;quot;&amp;gt;all-file&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.ignoreParents&amp;quot;&amp;gt;false&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deleteElements&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deletePools&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.deleteOnlyEmptyPools&amp;quot;&amp;gt;true&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.variables&amp;quot;&amp;gt;wsurl=https://pdf.form-solutions.net/ws2&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.variables&amp;quot;&amp;gt;cmskey=293478912hskdfh238&amp;lt;/property&amp;gt;&lt;br /&gt;
                &amp;lt;property name=&amp;quot;ies.xip.import.variables&amp;quot;&amp;gt;user=12345678-1234-1234&amp;lt;/property&amp;gt;&lt;br /&gt;
        &amp;lt;/properties&amp;gt;&lt;br /&gt;
        &amp;lt;xip command=&amp;quot;import&amp;quot;&amp;gt;  &lt;br /&gt;
                &amp;lt;source type=&amp;quot;http&amp;quot; url=&amp;quot;${wsurl}/getformlist.php&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;header name=&amp;quot;SOAPAction&amp;quot;&amp;gt;&amp;quot;urn:FS#getformlist&amp;quot;&amp;lt;/header&amp;gt;&lt;br /&gt;
                        &amp;lt;body content-type=&amp;quot;text/xml; charset=UTF-8&amp;quot;&amp;gt;&amp;lt;![CDATA[&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;SOAP-ENV:Envelope xmlns:SOAP-ENV=&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:SOAP-ENC=&amp;quot;http://schemas.xmlsoap.org/soap/encoding/&amp;quot; xmlns:tns=&amp;quot;urn:FS&amp;quot; SOAP-ENV:encodingStyle=&amp;quot;http://schemas.xmlsoap.org/soap/encoding/&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;SOAP-ENV:Body&amp;gt;&lt;br /&gt;
                &amp;lt;tns:getformlist xmlns:tns=&amp;quot;urn:FS&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;cms xsi:type=&amp;quot;xsd:string&amp;quot;&amp;gt;${cmskey}&amp;lt;/cms&amp;gt;&lt;br /&gt;
                &amp;lt;/tns:getformlist&amp;gt;&lt;br /&gt;
        &amp;lt;/SOAP-ENV:Body&amp;gt;&lt;br /&gt;
&amp;lt;/SOAP-ENV:Envelope&amp;gt;]]&amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
                &amp;lt;/source&amp;gt;&lt;br /&gt;
                &amp;lt;transform xslt=&amp;quot;${sitepark.home}/conf/form-solutions.xslt&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/xip&amp;gt;&lt;br /&gt;
&amp;lt;/ies-client&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;form-solutions.xslt&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
        xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
        xmlns:xip=&amp;quot;http://ies.sitepark.com/xip&amp;quot;&lt;br /&gt;
        extension-element-prefixes=&amp;quot;xip&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:function name=&amp;quot;xip:getCategoryId&amp;quot;&amp;gt; &amp;lt;xsl:param name=&amp;quot;s&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Erstes Zeichen ermitteln --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:variable name=&amp;quot;id&amp;quot; select=&amp;quot;substring-before($s,' ')&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;substring-before($s,' ')&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:function&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:key name=&amp;quot;categoryId&amp;quot; match=&amp;quot;item&amp;quot; use=&amp;quot;xip:getCategoryId(kat)&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xip&amp;gt;&lt;br /&gt;
                        &amp;lt;resource parent=&amp;quot;formsolutions&amp;quot; anchor=&amp;quot;formsolutions.config&amp;quot; name=&amp;quot;Form Solutions Konfiguration&amp;quot; template=&amp;quot;formsolutions.template.config&amp;quot;&amp;gt;&lt;br /&gt;
                           &amp;lt;text name=&amp;quot;wsurl&amp;quot;&amp;gt;${wsurl}&amp;lt;/text&amp;gt;&lt;br /&gt;
                           &amp;lt;text name=&amp;quot;cms&amp;quot;&amp;gt;${cmskey}&amp;lt;/text&amp;gt;&lt;br /&gt;
                           &amp;lt;text name=&amp;quot;user&amp;quot;&amp;gt;${user}&amp;lt;/text&amp;gt;&lt;br /&gt;
                        &amp;lt;/resource&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Schleife über Kategorien --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;//item[generate-id() = generate-id(key('categoryId', xip:getCategoryId(kat))[1])]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                        &amp;lt;xsl:variable name=&amp;quot;category&amp;quot; select=&amp;quot;xip:getCategoryId(kat)&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- gelöschte Formulare haben keine Kategorie --&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;$category != ''&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:variable name=&amp;quot;categoryName&amp;quot; select=&amp;quot;kat/text()&amp;quot;/&amp;gt;&lt;br /&gt;
                                &amp;lt;articlepool parent=&amp;quot;formsolutions&amp;quot; anchor=&amp;quot;formsolutions.category.{$category}&amp;quot; name=&amp;quot;{$categoryName}&amp;quot;&amp;gt;&lt;br /&gt;
                                        &amp;lt;resource&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;container&amp;quot; anchor=&amp;quot;is5:gui.container.infosite.standard&amp;quot;/&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;registrationTemplate&amp;quot; anchor=&amp;quot;is5:gui.container.infosite.standard.all&amp;quot;/&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;editorTemplatePool&amp;quot; anchor=&amp;quot;standard.container.editing&amp;quot;&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                        &amp;lt;/resource&amp;gt;&lt;br /&gt;
                                &amp;lt;!-- Schleife über alle mit gleicher Kategorie --&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:for-each select=&amp;quot;key('categoryId',$category)&amp;quot;&amp;gt;&lt;br /&gt;
                                        &amp;lt;resource anchor=&amp;quot;formsolutions.form.{fnr}&amp;quot; name=&amp;quot;{title} ({fnr})&amp;quot; template=&amp;quot;formsolutions.template.form&amp;quot;&amp;gt;&lt;br /&gt;
                                                &amp;lt;comment&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;bem&amp;quot;/&amp;gt;&amp;lt;/comment&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_fnr&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;fnr&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_pagecount&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;pagecount&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_created&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;created&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_changed&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;changed&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_beschr&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;beschr&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                                &amp;lt;text name=&amp;quot;fs_type&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;type&amp;quot;/&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
                                        &amp;lt;/resource&amp;gt;&lt;br /&gt;
                                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                                &amp;lt;/articlepool&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;/xip&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur regelmäßigen Synchronisation ist weiterhin ein Cronjob folgender Form notwendig:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
# Formulare von form-solutions aktualisieren.&lt;br /&gt;
1 1 * * * /srv/sitepark/bin/iespkg /etc/form-solutions.xml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:InfoSite5]]&lt;br /&gt;
[[Kategorie:CityGov3]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Changelog_Infosite_5&amp;diff=5800</id>
		<title>Changelog Infosite 5</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Changelog_Infosite_5&amp;diff=5800"/>
		<updated>2012-03-14T09:57:49Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Anmerkungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==Weitere Changelogs==&lt;br /&gt;
*[[Changelog|IES]]&lt;br /&gt;
*[[Changelog_CityGov_3|CityGov 3]]&lt;br /&gt;
*[[Changelog_CityCall115|CityCall115]]&lt;br /&gt;
&lt;br /&gt;
====Anmerkungen====&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Seit InfoSite 5.2 führen wir für InfoSite und IES getrennte Changelogs. Ältere Changelog-Einträge für InfoSite befinden sich daher im [[Changelog|IES Changelog]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
===5.2 (13.03.2012)===&lt;br /&gt;
''Sourcen in GIT verwaltet.''&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || Personen-Bilder aus der VV können nun auch angezeigt werden&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{update}} || Div-Container für Hinweistext optisch überarbeitet&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || CodeMirror auf Version 2.18 aktuallisiert&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{fix}} || Zeitgesteuerte Publikation wird beim Speichern von &amp;amp;#039;Eigenschafen&amp;amp;#039; wieder entfernt&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{fix}} || Unterstützung des Attributs cmsURL für den SmartEditor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || Neue Hintergrundgrafik für Testsysteme&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Changelog_Infosite_5&amp;diff=5799</id>
		<title>Changelog Infosite 5</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Changelog_Infosite_5&amp;diff=5799"/>
		<updated>2012-03-14T09:56:31Z</updated>

		<summary type="html">&lt;p&gt;Liebold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==Weitere Changelogs==&lt;br /&gt;
*[[Changelog|IES]]&lt;br /&gt;
*[[Changelog_CityGov_3|CityGov 3]]&lt;br /&gt;
*[[Changelog_CityCall115|CityCall115]]&lt;br /&gt;
&lt;br /&gt;
====Anmerkungen====&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Seit InfoSite 5.2 führen wir für InfoSite und IES getrennte Changelogs. Ältere Changelog-Einträge für InfoSite befinden sich daher im [[IES-Changelog]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
===5.2 (13.03.2012)===&lt;br /&gt;
''Sourcen in GIT verwaltet.''&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || Personen-Bilder aus der VV können nun auch angezeigt werden&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{update}} || Div-Container für Hinweistext optisch überarbeitet&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || CodeMirror auf Version 2.18 aktuallisiert&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{fix}} || Zeitgesteuerte Publikation wird beim Speichern von &amp;amp;#039;Eigenschafen&amp;amp;#039; wieder entfernt&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{fix}} || Unterstützung des Attributs cmsURL für den SmartEditor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || Neue Hintergrundgrafik für Testsysteme&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Changelog_Infosite_5&amp;diff=5798</id>
		<title>Changelog Infosite 5</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Changelog_Infosite_5&amp;diff=5798"/>
		<updated>2012-03-13T16:02:48Z</updated>

		<summary type="html">&lt;p&gt;Liebold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==Weitere Changelogs==&lt;br /&gt;
*[[Changelog|IES]]&lt;br /&gt;
*[[Changelog_CityGov_3|CityGov 3]]&lt;br /&gt;
*[[Changelog_CityCall115|CityCall115]]&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
===5.2 (13.03.2012)===&lt;br /&gt;
''Sourcen in GIT verwaltet.''&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || Personen-Bilder aus der VV können nun auch angezeigt werden&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{update}} || Div-Container für Hinweistext optisch überarbeitet&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || CodeMirror auf Version 2.18 aktuallisiert&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{fix}} || Zeitgesteuerte Publikation wird beim Speichern von &amp;amp;#039;Eigenschafen&amp;amp;#039; wieder entfernt&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{fix}} || Unterstützung des Attributs cmsURL für den SmartEditor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || Neue Hintergrundgrafik für Testsysteme&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Changelog_Infosite_5&amp;diff=5797</id>
		<title>Changelog Infosite 5</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Changelog_Infosite_5&amp;diff=5797"/>
		<updated>2012-03-13T16:01:52Z</updated>

		<summary type="html">&lt;p&gt;Liebold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==Weitere Changelogs==&lt;br /&gt;
*[[Changelog|IES]]&lt;br /&gt;
*[[Changelog_CityGov_3|CityGov 3]]&lt;br /&gt;
*[[Changelog_CityCall115|CityCall115]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
===5.2 (13.03.2012)===&lt;br /&gt;
''Sourcen in GIT verwaltet.''&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || Personen-Bilder aus der VV können nun auch angezeigt werden&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{update}} || Div-Container für Hinweistext optisch überarbeitet&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || CodeMirror auf Version 2.18 aktuallisiert&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{fix}} || Zeitgesteuerte Publikation wird beim Speichern von &amp;amp;#039;Eigenschafen&amp;amp;#039; wieder entfernt&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{fix}} || Unterstützung des Attributs cmsURL für den SmartEditor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || Neue Hintergrundgrafik für Testsysteme&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=Changelog_Infosite_5&amp;diff=5796</id>
		<title>Changelog Infosite 5</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=Changelog_Infosite_5&amp;diff=5796"/>
		<updated>2012-03-13T16:01:29Z</updated>

		<summary type="html">&lt;p&gt;Liebold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==Weitere Changelogs==&lt;br /&gt;
*[[Changelog Changelog|IES]]&lt;br /&gt;
*[[Changelog_CityGov_3|CityGov 3]]&lt;br /&gt;
*[[Changelog_CityCall115|CityCall115]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
===5.2 (13.03.2012)===&lt;br /&gt;
''Sourcen in GIT verwaltet.''&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || Personen-Bilder aus der VV können nun auch angezeigt werden&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{update}} || Div-Container für Hinweistext optisch überarbeitet&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || CodeMirror auf Version 2.18 aktuallisiert&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{fix}} || Zeitgesteuerte Publikation wird beim Speichern von &amp;amp;#039;Eigenschafen&amp;amp;#039; wieder entfernt&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{fix}} || Unterstützung des Attributs cmsURL für den SmartEditor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; | {{add}} || Neue Hintergrundgrafik für Testsysteme&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=InfoTicket_-_Roadmap&amp;diff=5675</id>
		<title>InfoTicket - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=InfoTicket_-_Roadmap&amp;diff=5675"/>
		<updated>2011-10-26T12:25:51Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 13 - November 2011 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Milestone 1 - Erste präsentierbare Version auf pp.sitepark.com==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Kontaktdaten anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:- Verknüpfung auf einen KontaktDatensatz durch Angabe der ID des Kontaktes oder&lt;br /&gt;
:- Verknüpfen durch Angabe der Kontaktdaten in dem 'contact' Feld. Die E-Mail dient als eindeutiger Identifier um den Datensatz im System zu finden. Wird kein Eintrag gefunden, wir der Kontaktdatensatz angelegt und verknüpft.&lt;br /&gt;
:Bei Gleichheit von E-Mail-Adresse werden die übergebenen Daten überschrieben.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Folgende Eigenschaften müssen noch konfigurierbar werden&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Verkünpfung zwischen CallCenter-Mandant und InfoTicket-Mandant. Mandant und Nutzer im 'TicketArtikel' des CallCenters konfigurierbar.&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; InfoTicket-Nutzer als Absender (Temporäre, nur für Milestone 1)&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;offen&amp;lt;/span&amp;gt; Workflowverhalten (Eskalationszeiten, ...). hart kodiert. Welche Werte? (1 Tag!)&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Aussehen der E-Mail. &lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;Ticket aus dem CallCenter anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Über Bürgeranfrage &lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Über Mitarbeiter-Visitenkarte - Standard Ticket öffnen&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Über Dienstleistung - Standard Ticket öffnen&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;Wie soll der Ticket-Mandant ermittelt werden, damit beim Login-Fenster keine Auswahl erscheint?&amp;lt;/span&amp;gt;&lt;br /&gt;
: Antwort:&lt;br /&gt;
:#Es werden alle Mandanten abgefragt, die aktiv sind und mit dem InfoTicket-Mandanten verknüpft sind. Entspricht nur ein Mandant diesen Kriterien wird keine Auswahl angezeigt und nur dieser verwendet.&lt;br /&gt;
:#Es kann per URL-Parameter der gewünschte Mandant übergeben werden (ParameterName 'client', Wert ist der Anchor des Mandanten)&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Namensformat&amp;lt;/span&amp;gt;&lt;br /&gt;
:Nutzernamen können (noch) nicht an allen Stellen über die ID ermittelt werden (Bei einer Suchabfrage müssen select user-&amp;gt;name funktionieren), darum wird der Nutzername direkt gespeichert und nicht seine ID. Für diese Fälle muss das Namensformat (Nachname, Vorname, Title) überall gleich sein.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Fehlerbehandlung&amp;lt;/span&amp;gt;&lt;br /&gt;
:Auf Serverseite müssen noch ein paar Fehlerzustände abgefangen werden.&lt;br /&gt;
:;createTicket&lt;br /&gt;
::Wenn Email-Adresse in 'participant' nicht gefunden werden kann muss ein Fehler auftreten.&lt;br /&gt;
::Wenn ID in 'participant' nicht existiert&lt;br /&gt;
::Wenn ID in 'participant' existiert, Nutzer aber keine Email-Adresse hat.&lt;br /&gt;
:;getTicket&lt;br /&gt;
:: ID nicht gefunden&lt;br /&gt;
:: Ticket ist bereist geschlossen&lt;br /&gt;
:: Ticket ist weitergeleitet. Bearbeitet kann Ticket nicht mehr bearbeiten&lt;br /&gt;
:;addTicketItem&lt;br /&gt;
:: ID nicht gefunden&lt;br /&gt;
:: Ticket ist bereist geschlossen&lt;br /&gt;
:: Ticket ist weitergeleitet. Bearbeitet kann Ticket nicht mehr bearbeiten&lt;br /&gt;
:: Übergebene Werte validieren (ticketType, priority, ...)&lt;br /&gt;
:; closeTicket&lt;br /&gt;
:: ID nicht gefunden&lt;br /&gt;
:: Ticket ist bereist geschlossen&lt;br /&gt;
:: Ticket ist weitergeleitet. Bearbeitet kann Ticket nicht mehr bearbeiten&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket-Eigenschaften&amp;lt;/span&amp;gt;&lt;br /&gt;
:nächste Wiedervorlagen, nächste Eskalation&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Agenten (Absender des Tickets)&amp;lt;/span&amp;gt;&lt;br /&gt;
:Globaler IES-Nutzer aus dem Infoticket-Mandant wird als Absender gesetzt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Installation auf pp.sitepark.com&amp;lt;/span&amp;gt;&lt;br /&gt;
:Zwei Mandanten: Master und Work&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Auswahlliste der Empfänger im CallCenter&amp;lt;/span&amp;gt;&lt;br /&gt;
:Wie kommen die Nutzer in das TicketSystem? Werden per Hand angelegt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Sortierreihenfolge von Status, Typ und Aktion&amp;lt;/span&amp;gt;&lt;br /&gt;
:''Status''&lt;br /&gt;
:# Eskalation&lt;br /&gt;
:# Erinnerung&lt;br /&gt;
:# offen&lt;br /&gt;
:# in Arbeit&lt;br /&gt;
:# (geschlossen?)&lt;br /&gt;
&lt;br /&gt;
:''Typ''&lt;br /&gt;
:# Aktennotiz&lt;br /&gt;
:# Aufgabe&lt;br /&gt;
:# Beschwerde&lt;br /&gt;
:# D115-Weiterleitung&lt;br /&gt;
:# Information&lt;br /&gt;
:# Rückrufwunsch&lt;br /&gt;
:# Störungsmeldung&lt;br /&gt;
&lt;br /&gt;
:''Aktion'' (für Ticket-Einträge)&lt;br /&gt;
:# Neu&lt;br /&gt;
:# Änderung&lt;br /&gt;
:# Notiz&lt;br /&gt;
:# Erinnerung&lt;br /&gt;
:# Eskalation&lt;br /&gt;
:# Weiterleitung&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Locking von Tickets&amp;lt;/span&amp;gt;&lt;br /&gt;
:Kein Locking&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Konzeption: Eigenschaften ändern / Notiz anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Nachfrage-Dialog für Weiterleitungsbestätigung&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Speichern ohne Kommentar ist so in Ordung&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Subject muss man ändern können&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Wenn eine neue Notiz hinzugefügt wird, werden alle Einträge zugeklappt und nur der letzte geöffnet. Die Einträge, die geöffnet wurde sollen aber weiter offen bleiben. Es soll auch weiterhin zu dem letzten Eintrag gescrollt werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Wenn Ticket-Tag geschlossen wird, muss nachgefragt werden, Wenn Ticket noch einen Message enthält (Wenn 'aktion ausführen' Button akive ist)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Bei Kontakt ohne Telefon steht 'null', muss durch langen Strich ersetzt werden&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Bei öffnen des Tabs, Sanduhr an Maus bis Tab geöffnet&amp;lt;/span&amp;gt;&lt;br /&gt;
:Fazit: So nicht zu realisieren.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Aufbau des Tab ruckelt (Firefox). Prüfen, ob das verhindert werden kann.&amp;lt;/span&amp;gt;&lt;br /&gt;
:Geprüft. Der unruhige Aufbau läßt sich nicht so einfach nachstellen. Muss wohl an sehr langsamen Rechnern liegen. Habe auch keinen Weg gefunden da etwas zu verbessern.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket-Einträge müssen nicht ausgewählt werden können. Auch ohne Mouse-over&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - Mo, 27.09.2010==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;gestalteter Login-Dialog, Seitenhintergrund&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - Ende Oktober 2010==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Kontaktdaten anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Kontakte können beim Anlegen von Tickets erstellt werden, wenn keine bestehender Kontakt ausgewählt wurde.&lt;br /&gt;
:Wenn Daten gefunden wurden, werden nach Auswahl des Kontakts alle Daten angezeigt.&lt;br /&gt;
:Bei Gleichheit von E-Mail Adresse (oder Auswahl eines gefundenen Kontaktes) werden die Datenfelder aktualisiert.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen (vorläufig)&amp;lt;/span&amp;gt;&lt;br /&gt;
:An Personendatensatz Ticket öffnen, z.B. Rückrufwunsch&lt;br /&gt;
:An Dienstleistung Ticket öffnen&lt;br /&gt;
:*Personenticket (Kontakt)&lt;br /&gt;
:*Alle Kontakte der Dienstleistung als Vorschlag&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Geschlossene Tickets anzeigen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Ist soweit implementiert. Folgendes fehlt noch&lt;br /&gt;
:* Vorgabe für GUI zum aktivieren/deaktivieren des Filters (Nane)&lt;br /&gt;
:* Bugfix, geschlossen Tickets haben nicht den Status 'geschlossen' (Ralf)&lt;br /&gt;
&lt;br /&gt;
==Milestone 4 Fr, 03.12.2010==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Code-Optimierung (Java) (1 Tage)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;GUI Sicht auf Tickets anderer Nutzer (Nutzerauswahl)&amp;lt;/span&amp;gt;&lt;br /&gt;
:Dropdown mit allen Nutzern auf deren Tickets mindestens Leserechte bestehen&lt;br /&gt;
:*Zusätzlicher Punkt: alle Nutzer &lt;br /&gt;
:*Nur eigene Tickets im Zugriff -&amp;gt; Dropdown entfällt&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Einfache Ticketsuche&amp;lt;/span&amp;gt;&lt;br /&gt;
:Die Suche ist ein weiterer Filter, der einschränkend wirkt (UND-Verknüpfung)&lt;br /&gt;
:*die Suche berücksichtigt die Nutzerauswahl, d.h. die Suche ist auf den/die gewählten Nutzer eingeschränkt&lt;br /&gt;
:*die Suche verwendet die aktiven Filterkriterien&lt;br /&gt;
:*die Suche wirkt solange als Filter, bis das Suchfeld gelöscht wird&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Kontaktdaten&amp;lt;/span&amp;gt;&lt;br /&gt;
:Auch innerhalb von InfoTicket müssen die Kontaktdaten bearbeitet werden können.&lt;br /&gt;
:E-Mail-Adressen bei der Darstellung von Kontaktdaten werden mit mailto:-Link versehen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Geschlossene Tickets öffnen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Inhalte geschlossener Tickets müssen einsehbar sein&lt;br /&gt;
:Geschlossene Tickets müssen wieder geöffnet werden können&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Notizen anfügen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Jeder kann jederzeit an jedes Ticket, auch an geschlossene Tickets, Notizen anfügen, sofern die Oberfläche von InfoTicket bzw. CityCall115 einen Zugriff auf das Ticket erlaubt. Hierfür muss sich das Ticket nicht im eigenen Besitz befinden und durch die Bearbeitung findet auch kein Besitzerwechsel statt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Automatischer Besitzerwechsel bei mehreren Empfängern&amp;lt;/span&amp;gt;&lt;br /&gt;
:Tickets, die in meiner ToDo-Liste liegen und mehreren Empfängern zugewiesen sind, wechseln beim Öffnen automatisch den Besitzer und werden mir zugewiesen. Der Besitzerwechsel wird als Weiterleitung protokolliert und erscheint sofort als letzter Eintrag im geöffneten Ticket. Tickets, die nicht in meiner ToDo-Liste liegen, wechseln beim Öffnen nicht den Besitzer.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Besitzerwechsel bei Bedarf&amp;lt;/span&amp;gt;&lt;br /&gt;
:In InfoTicket kann jeder jedes Ticket bearbeiten, wenn im Rahmen eines übergreifenden Rechtemanagements Zugriffsrechte bestehen. Jedes Ändern von Headerdaten (Betreff, Priorität etc.), jedes Weiterleiten und jedes Schließen setzt den Besitz des Tickets voraus. Wird eine solche Funktion bei Tickets ausgeführt, die nicht in der eigenen ToDo-Liste liegen, erscheint vor dem Speichern ein Dialog „Für diese Funktion müssen Sie zunächst den Besitz des Tickets übernehmen. [übernehmen] [abbrechen]“.  Die Übernahme wird sofort durch einen Weiterleitungs-Eintrag im Ticket protokolliert. Unmittelbar im Anschluß wird die änderung bzw. Ergänzung gespeichert. Kein Besitzerwechsel ist notwendig beim Anfügen von Notizen sowie beim Ändern von Kontaktdaten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Weiterleitung führt nicht zum Statuswechsel&amp;lt;/span&amp;gt;&lt;br /&gt;
:Die Weiterleitung eines Tickets soll nicht zu einem Statuswechsel führen. Offene Tickets bleiben durch eine Weiterleitung offen, eskalierte Tickets bleiben eskaliert usw.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Weiterleitung ohne Notiz ermöglichen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Es soll möglich sein ein Ticket weiterzuleiten ohne zugleich eine Notiz anzufügen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Statuswechsel 'offen' zu 'in Arbeit'&amp;lt;/span&amp;gt;&lt;br /&gt;
:Ein Statuswechsel von 'offen' zu 'in Arbeit' ist abhängig von der Umgebung in der eine Aktion am Ticket ausgeführt wird. Innerhalb von InfoTicket erfolgt ein Statuswechsel automatisch beim ersten Speichern eines Tickets. Ausnahme: Weiterleitung und Kontaktdaten. &lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Versionsabgleich&amp;lt;/span&amp;gt;&lt;br /&gt;
:Vor dem Speichern einer Ticketbearbeitung wird der Versionsstand mit dem Server abgeglichen. Liegt zwischenzeitlich eine neuere Version auf dem Server vor, wird diese nach einem Hinweis neu geladen. Der Speichervorgang wird abgebrochen und kann wiederholt werden. Neu hinzugekommene Einträge in der Historie werden farbig gekennzeichnet. Tickets brauchen somit nicht vor konkurrierendem Zugriff geschützt (gelockt) zu werden.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5 - 15.01.2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über die Oberfläche von CityCall115 können Tickets angelegt werden&lt;br /&gt;
:*Definition von HTML-Formularen über einen Formulargenerator&lt;br /&gt;
:*Ausgabe aller Formulare auf einer eigenen Formular-Seite&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Formularservice&amp;lt;/span&amp;gt;&lt;br /&gt;
:Es wird ein allgemeiner Formularservice eingerichtet&lt;br /&gt;
:*Eingabe der Formulardaten&lt;br /&gt;
:*Eingabe der BürgerKontakt-Daten, nach Einverständnis&lt;br /&gt;
:*Prüfung/Korrektur der vorausgewählten Empfänger (aus der Dienstleistung oder Visitenkarte)&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;InfoTicket Funktionen:&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassungen der folgenden InfoTicket Funktionen&lt;br /&gt;
:*Der Betreff eines Tickets darf nicht leer sein.&lt;br /&gt;
:*In der Detailansicht der Tickets wird ein Bearbeitungsschritt nicht aufklappbar dargestellt (Plus-Symbol), wenn kein darszustellender Inhalt vorhanden ist.&lt;br /&gt;
:*Erfasste Kontaktdaten zum Anrufenden müssen immer angezeigt werden, egal ob die E-Mail-Adresse eingegeben wurde.&lt;br /&gt;
:*Der Statusfilter funktioniert nicht korrekt: Egal welcher Haken entfernt wird, werden alle Tickets ausgeblendet.&lt;br /&gt;
:*Werden vom Statusfilter alle Haken entfernt, wird eine Fehlermeldung ausgegeben.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Design-Review und Feinschliff&amp;lt;/span&amp;gt;&lt;br /&gt;
:Überprüfung der bestehenden Umsetzung des vorgesehenen Screendesigns und ggf. Nachbesserung&lt;br /&gt;
:*Das Filtersymbol (Trichter) wird angepasst&lt;br /&gt;
&lt;br /&gt;
==Milestone 6 - 11.02.2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;CityCall115&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassung der Oberfläche von CityCall115&lt;br /&gt;
:*Die Beschriftung der Menüpunktes &amp;quot;Formulare&amp;quot; ändern in &amp;quot;Ticket erstellen&amp;quot;.&lt;br /&gt;
:*Der Button &amp;quot;Ticket erstellen&amp;quot; auf der rechten Seite in der Oberfläche von CityCall115 müssen entfernt werden.&lt;br /&gt;
:*Deaktivierung des Menüpunktes &amp;quot;Bürgeranfrage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über die Oberfläche von CityCall115 können Tickets angelegt werden&lt;br /&gt;
:*Definition von Pflichtfeldern für Kontaktdaten je Formular konfigurierbar&lt;br /&gt;
:*Einführung eines Hinweistextes für die Kontaktdatenerfassung.&lt;br /&gt;
:*Abfrage der Zustimmung des Bürgers zum Speichern persönlicher Daten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;InfoTicket-Funktionen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassungen der folgenden InfoTicket Funktionen &lt;br /&gt;
:*In der Übersichtsseite wird eine zusätzliche Spalte für die Darstellung der Ticketbesitzer eingebaut.&lt;br /&gt;
:*Steht die Ticketauswahl auf &amp;quot;Eigene Tickets&amp;quot; und der Filter wird auf &amp;quot;geschlossene Tickets&amp;quot; gestellt, soll der Nutzer nur die Tickets angezeigt bekommen, die auch von ihm geschlossen wurden und nicht alle geschlossenen Tickets.&lt;br /&gt;
:*Nach einem Logout soll der Nutzername und das Passwort nicht automatisch in den entsprechenden Feldern stehen bleiben, sondern nur der Nutzername. (Achtung: Das gilt nicht für die Funktion &amp;quot;Passwort speichern&amp;quot; des Browsers. Wird diese Funktion genutzt haben wir keinen Einfluss auf das automatische Eintragen von Nutzerdaten.)&lt;br /&gt;
:*Paging in der Übersicht nach Änderung der Filtereinstellung korrigieren.&lt;br /&gt;
:*Im Tooltip zur Erstellung für Hyperlinks, in der Erstellung von Notizen sollte das Wort &amp;quot;text&amp;quot; am Ende des Satzes groß geschrieben werden.&lt;br /&gt;
:*Die Suche soll auch über Kontaktdaten suchen.&lt;br /&gt;
&lt;br /&gt;
==Milestone 7 - 25.02.2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;InfoTicket-Funktionen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Ticket-Typen müssen frei definierbar (konfigurierbar sein)&amp;lt;br/&amp;gt;Eigenschaften eines Ticket-Typs sind:&lt;br /&gt;
::Name&lt;br /&gt;
::Beschreibung (Tooltip?)&lt;br /&gt;
::Sortierwert&lt;br /&gt;
::Eskalationszeit&lt;br /&gt;
::Icon&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Eskalation&amp;lt;/span&amp;gt;&lt;br /&gt;
:Auswertung der Eskalationszeit unter Berücksichtigung von Wochenenden und Feiertagen.&lt;br /&gt;
:: Wie folgt zu berechnen&lt;br /&gt;
::* http://openbook.galileodesign.de/javainsel5/javainsel10_006.htm#Rxx747java10006040003451F0291C3&lt;br /&gt;
::* http://de.wikipedia.org/wiki/Feiertage_in_Deutschland&lt;br /&gt;
:: Implementierte Logik:&lt;br /&gt;
:: Es gibt zwei Modi:&lt;br /&gt;
::* Arbeitstage&lt;br /&gt;
::: Wenn als Eskalationszeit Arbeitstage angegeben wurde, dann werden &amp;quot;nicht Arbeitstage&amp;quot; wie Wochenende oder Feiertage für den zu errechnenden Eskalationszeitpunkt nicht mit berechnet. Wird Beispielsweise ein Ticket am Donnerstag um 16:00 angelegt und hat eine Eskalationszeit von 3 Arbeitstagen, dann eskaliert das Ticket am Dienstag um 16:00 (wenn Samstag und Sonntag als &amp;quot;nicht Arbeitstage&amp;quot; konfiguriert wurden). Das Ticket kann ausserhalb der Arbeits'''zeit''' eskalieren, aber nur an einem Arbeits'''tag'''.&lt;br /&gt;
::* Arbeitsstunden&lt;br /&gt;
::: Wenn als Eskalationszeit Arbeitsstunden angegeben wurden, dann wird der Eskalationszeitpunkt nur über die konfigurierte Arbeitszeit berechnet.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Datenschutz&amp;lt;/span&amp;gt;&lt;br /&gt;
:automatisches Löschen von Personendatensätzen, wenn das letzte &amp;lt;b&amp;gt;offene&amp;lt;/b&amp;gt; Ticket, das auf einen Personendatensatz verweist, geschlossen wird.&lt;br /&gt;
&lt;br /&gt;
==Milestone 8 - bis Ende März 2011==&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Rechteverwaltung&amp;lt;/span&amp;gt;&lt;br /&gt;
:Definition und Umsetzung einer Rechteverwaltung, zunächst unter Nutzung der bestehenden Oberfläche von InfoSite.&lt;br /&gt;
:*Erstellung einer Konzeption&lt;br /&gt;
:*Implementierung der Funktionalität in die Oberfläche von InfoSite&lt;br /&gt;
:*Technische Anpassung der Formularverwaltung in CityCall115&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über die Oberfläche von CityCall115 können Tickets angelegt werden&lt;br /&gt;
:*Integration eines &amp;quot;Ticket&amp;quot;-Reiters bei allen Dienstleistungen innerhalb der CityCall115-Ausgabe von CityGov 3.&lt;br /&gt;
:*Darstellung eines &amp;quot;Ticket&amp;quot;-Buttons bei allen Kontakten innerhalb der CityCall115-Ausgabe von CityGov 3.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Dokumentation&amp;lt;/span&amp;gt;&lt;br /&gt;
:Bereitstellung einer vorläufigen Bedienungsanleitung.&lt;br /&gt;
&lt;br /&gt;
==Milestone 9 (Qualitätssicherung) - April 2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Performanz-Tests mit vielen Tickets und parallelen Zugriffen&amp;lt;/span&amp;gt;&lt;br /&gt;
: Optimierung der Antwortzeiten für Ticket-Listen&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Stabilitäts-Tests&amp;lt;/span&amp;gt;&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Funktions-Tests&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestone 10 - Mai 2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Konfiguration der Arbeitszeit und Arbeitstage&amp;lt;/span&amp;gt;&lt;br /&gt;
:Unabhängigkeit der Arbeitszeit und Arbeitstage auflösen. Wenn Arbeitszeit konfiguriert ist, ist es automatisch ein Arbeitstag (Häkchen nicht änderbar).&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Design-Review&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassung der neuen Konfigurations-Dialoge&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Suche&amp;lt;/span&amp;gt;&lt;br /&gt;
:Volltextsuche muss auch Tickets über die Ticket-ID finden.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Druckansicht&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über einen Button wird ein neues Fenster geöffnet, der die Historie eines Tickets ausdruckbar darstellt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Upload und Verwaltung von Anhängen&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Eskalation&amp;lt;/span&amp;gt;&lt;br /&gt;
:Implementierung von Funktionen zur Auflösung von Eskalationen&lt;br /&gt;
:*Vor einer Weiterleitung eines eskalierten Tickets wird der Anwender gefragt, ob er zuvor noch einen neuen Eskalations-Termin setzen möchte.&lt;br /&gt;
:*Ein Ticket was sich im Status &amp;quot;Eskalation&amp;quot; befindet kann vom Besitzer jederzeit eine neue Eskalations- und Erinnerungszeit erhalten. Das Ticket wechselt dann wieder in den Status 'In Arbeit'. Hierfür gibt es im Kopfbereich des Tickets eine Schaltfläche. Die neue Eskalations- und Erinnerungszeit kann unabhängig vom Tickettyp frei eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Neue Ticket-Stati&amp;lt;/span&amp;gt;&lt;br /&gt;
:Implementierung neuer Ticket-Stati für&lt;br /&gt;
:*Warte auf Kunden-Antwort&amp;lt;br&amp;gt;&amp;quot;Warte auf Kunden-Antwort&amp;quot; ist ein Ticket-Status, der die Zeitmessung für Eskalations- und Erinnerungszeiten pausieren lässt. &lt;br /&gt;
:*Warte auf Wiedervorlage&amp;lt;br&amp;gt;&amp;quot;Warte auf Wiedervorlage&amp;quot; ist ein Ticket-Status, bei dem die Zeitmessung für Eskalations- und Erinnerungszeiten weiterläuft.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Adresse in der Browseradressleiste nach Logout auf Standard-URL des Ticketsystems zurücksetzen.&amp;lt;/span&amp;gt;&lt;br /&gt;
:Sonst kann es vorkommen, dass nach dem Aufruf eines Tickets über eine URL mit der ID als Parameter trotz Logout das Ticket immer wieder aufgerufen wird. Der Nutzer sollte hier direkt zur Übersichtsseite gelangen.&lt;br /&gt;
&lt;br /&gt;
==Milestone 11 - Juli 2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Technische Implementierung des Multi-Accordion Layout-Managers für die rechte Spalte.&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Erweiterung der Konfiguration der arbeitsfreien Tage&amp;lt;/span&amp;gt;&lt;br /&gt;
:Es sollten auch eigene relative Arbeitstage konfiguriert werden können&lt;br /&gt;
:Eigene arbeitsfreie Tage sollen nachträglich in der Tabelle editiert werden können.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;gelesen-Flag für Ticket&amp;lt;/span&amp;gt;&lt;br /&gt;
:neue Tickets im eigenen Eingang werden mit Symbol in separater Spalte und fett als ungelesen gekennzeichnet.&lt;br /&gt;
:Tickets werden automatisch als gelesen gekennzeichnet, wenn man sie öffnet.&lt;br /&gt;
:Wenn ein anderer Nutzer eine Notiz anfügt, wird das gelesen-Flag zurückgesetzt und der Besitzer des Tickets per Mail benachrichtigt.&lt;br /&gt;
:''Anm.: Das gelesen-Flag ist ausschließlich zur Identifikation neuer Tickets im eigenen Eingang vorgesehen und kann nicht zurückgesetzt werden. Eine Prioritätenverwaltung sollte über die Prioritäteneigenschaften des Tickets erfolgen.''&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;allgemeine Favoritenverwaltung&amp;lt;/span&amp;gt;&lt;br /&gt;
:Favoriten sind nutzerbezogene Listen von Elementen. Die Pflege von Favoriten erfolgt individuell durch jedem Nutzer, eine zentrale Bereitstellung von Favoriten ist nicht vorgesehen.&lt;br /&gt;
:In InfoTicket handelt es sich bei den Favoriten um ausgewählte Weiterleitungsempfänger, die im Weiterleitungsdialog gesondert zur Auswahl angeboten werden.&lt;br /&gt;
:Die Verwaltung der Favoriten erfolgt in InfoTicket innerhalb des Weiterleiten-Dialoges. Favoriten werden in Gruppen verwaltet, von denen folgende vorgesehen sind:&lt;br /&gt;
:*Historie&amp;lt;br&amp;gt;Liste der zuletzt verwendeten Weiterleitungsempfänger, chronologisch sortiert&lt;br /&gt;
:*Häufig genutzt&amp;lt;br&amp;gt;Liste der Weiterleitungsempfänger an die am häufigsten ein Ticket weitergeleitet wurde, sortiert nach Häufigkeit&lt;br /&gt;
:*Lesezeichen&amp;lt;br&amp;gt;individuell pflegbare Liste von Weiterleitungsempfängern, alphabetisch sortiert nach Nachnahme. Hinzugefügt werden Empfänger, indem sie im Weiterleitungs-Dialog markiert werden. Gelöscht werden sie über die löschen-Funktion (rechte Maustaste bzw. Auswahl und &amp;quot;Entf&amp;quot;-Taste).&lt;br /&gt;
:*Suchergebnisse&amp;lt;br&amp;gt;Beliebig viele Listen, deren Inhalt das Ergebnis eine Suche ist, alphabetisch dortiert nach nachnahme. Hinzugefügt werden Suchergebnisse über die Suchen-Funktion im Weiterleiten-Dialog. Einzelne Empfänger können nicht aus dem Suchergebnis entfernt werden. Listen können umbenannt und über die löschen-Funktion entfernt werden.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Drag and Drop für Weiterleitungen über die rechte Spalte&amp;lt;/span&amp;gt;&lt;br /&gt;
:In der Übersichtsseite wird in die rechte Spalte eine Schnell-Weiterleiten-Funktion eingebaut über die aus der Liste von Tickets ein oder mehrere Tickets per Drag and Drop an einen Empfänger weitergeleitet werden können. Über einen Popup-Dialog kann der Weiterleitung eine Notiz hinzugefügt werden. Bei Mehrfach-Weiterleitungen erhalten alle Tickets die gleiche Notiz.&lt;br /&gt;
:Die aufgelisteten Weiterleitungs-Empfänger sind Nutzer einer in der Box auswählbaren Favoritengruppe&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;erweiterter Weiterleiten-Auswahl-Dialog&amp;lt;/span&amp;gt;&lt;br /&gt;
:Der Standard-Auswahldialog wird erweitert um:&lt;br /&gt;
:*Suchfunktion&lt;br /&gt;
:*Favoritenliste&lt;br /&gt;
:*verschiedene Ansichten&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Textvorlagen auswählen , erstellen, löschen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Textvorlagen werden in der rechten Spalte der Ticket-Detaildarstellung angeboten.&lt;br /&gt;
:Über einen Dialog mit WYSIWYG-Editor kann eine Textvorlage erstellt oder bearbeitet werden.&lt;br /&gt;
:Textvorlagen lassen sich über die rechte Maustaste und Auswahldialog löschen oder bearbeiten.&lt;br /&gt;
:Textvorlagen werden per Doppelklick an die aktive Cursorposition des Notiz-Feldes eingefügt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Datenschutz&amp;lt;/span&amp;gt;&lt;br /&gt;
:Erweiterung der Funktion nach der Personendatensätze gelöscht werden, wenn kein offenes Ticket mehr auf einen Datensatz verweist um einen konfigurierbaren zeitlichen Versatz. (Kontakte werden z.B. erst 3 Monate nachdem das letzte Ticket geschlossen wird, gelöscht.)&lt;br /&gt;
&lt;br /&gt;
==Milestone 12 - Oktober 2011 ==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Unvollständig-Funktion&amp;lt;/span&amp;gt;&lt;br /&gt;
:Die Unvollständig-Funktion soll über das Ticketing-System abgedeckt werden.&lt;br /&gt;
:*Unvollständigkeitsmeldung als Ticket verfassen.&lt;br /&gt;
:*Den Button &amp;quot;Unvollständig&amp;quot; auf der rechten Seite in der Oberfläche von CityCall115 entfernen, wenn ein Unvollständig-Ticket erstellt werden kann.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;CityCall115&amp;lt;/span&amp;gt;&lt;br /&gt;
:Der Betreff eines Tickets kann beim Anlegen durch den Agenten optional um Zusatzinformationen ergänzt werden.&lt;br /&gt;
:Funktion zur Ticket-Recherche und zum Anfügen von Notizen für Agenten.&lt;br /&gt;
&lt;br /&gt;
==Milestone 13 - November 2011 ==&lt;br /&gt;
&lt;br /&gt;
;Code Review / Code Optimierung&lt;br /&gt;
: Umstellung auf ExtJS 4&lt;br /&gt;
&lt;br /&gt;
;Agenten (Absender des Tickets)&lt;br /&gt;
:Alle Agenten müssen in das InfoTicket-System synchronisiert werden.&lt;br /&gt;
&lt;br /&gt;
;Statistik über Tickets&lt;br /&gt;
:Statistik-Angaben&lt;br /&gt;
:*Anzahl an eskalierten Tickets in einem Zeitraum.&lt;br /&gt;
:*Anzahl an aktiven Nutzern&lt;br /&gt;
:*Anzahl an inaktiven Nutzern (keine Ticketbearbeitung innerhalb der letzten paar Monate)&lt;br /&gt;
:*Anzahl an registrierten Nutzern&lt;br /&gt;
:*Anzahl an Bürgerdatensätzen&lt;br /&gt;
:*Längste Ticketbearbeitungsdauer&lt;br /&gt;
:*Kürzeste Ticketbearbeitungsdauer&lt;br /&gt;
:*Durchschnittliche Ticketbearbeitungsdauer&lt;br /&gt;
:*Anzahl offener Tickets&lt;br /&gt;
:*Anzahl eskalierter Tickets&lt;br /&gt;
:*Anzahl der Tickets pro zugeordneter Diensleistung/Organisationseinheit innerhalb eines wählbaren Zeitraums.&lt;br /&gt;
&lt;br /&gt;
;Statistik im Ticket&lt;br /&gt;
:kurze Statistik-Angaben zum Ticket in der rechten Spalte&lt;br /&gt;
:*Anzahl an Eskalationen&lt;br /&gt;
:*Anzahl an Weiterleitungen&lt;br /&gt;
&lt;br /&gt;
;Anpassung von Eskalationszeiten nach Ticketstatusänderung&lt;br /&gt;
&lt;br /&gt;
==Milestone 14==&lt;br /&gt;
&lt;br /&gt;
;Ticket-id soll ohne Typ und Mandanten-Kennung verwendet werden&lt;br /&gt;
:Suchabfrage muss diese ID schon so zurückliefern (oder per JavaScript beschneiden)&lt;br /&gt;
:Alle RPC-Funktionen des TicketSystems müssen die ID in dem neuen Format lesen können und auch so zurück liefern.&lt;br /&gt;
&lt;br /&gt;
;Mail-Gateway&lt;br /&gt;
:Mailversand:&lt;br /&gt;
:*Als Antwort&lt;br /&gt;
:*Als Weiterleitung an Extern&lt;br /&gt;
:*Konfigurationsmöglichkeit für einen zentralen Footer, der durch Variablen Nutzerdaten einfügen kann (Name, Vorname, Abteilung, …)&lt;br /&gt;
&lt;br /&gt;
:Mailempfang:&lt;br /&gt;
:*E-Mail als Ticket (siehe altes Dokument)&lt;br /&gt;
:*E-Mail als externe Nachricht am Ticket&lt;br /&gt;
:*E-Mail als Antwort für Weiterleitung an Extern&lt;br /&gt;
&lt;br /&gt;
;Integration der D115 Meldungstypen (Empfang und Bearbeitung)&lt;br /&gt;
&lt;br /&gt;
==Milestone 15==&lt;br /&gt;
&lt;br /&gt;
;Formular-Service&lt;br /&gt;
:Erstellung von Benachrichtigung über einen Dienst, der die Formulardaten auswertet und pdf und/oder xml Dateien erstellt und je nach Konfiguration eine Mail oder ein Ticket erstellt.&lt;br /&gt;
&lt;br /&gt;
;GUI Nutzerverwaltung / Rechtevergabe&lt;br /&gt;
:Neues GUI, als Prototyp für eine Applikation auf Basis der IES Nutzerverwaltung. Die technischen Möglichkeiten des IES / InfoSite bleiben bis auf die obige Erweiterung erhalten und werden durch das neue GUI bedient. Ggf. sind Erweiterungen nötig!?&lt;br /&gt;
:Die Nutzerliste im Nutzerpool enthält direkte Hinweise auf die zugewiesenen Rollen des einzelnen Nutzers.&lt;br /&gt;
&lt;br /&gt;
==Milestone X==&lt;br /&gt;
&lt;br /&gt;
;Subtickets&lt;br /&gt;
&lt;br /&gt;
;Workflow:&lt;br /&gt;
;:Tickets können durch ihre Definition eine Abfolge von Nutzer(-gruppen) enthalten, die durch eine „Weiter“ und „Zurück“ Navigation durchlaufen werden.&lt;br /&gt;
&lt;br /&gt;
;erweiterte Suchfunktion&lt;br /&gt;
:muss noch definiert werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=InfoTicket_-_Roadmap&amp;diff=5674</id>
		<title>InfoTicket - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=InfoTicket_-_Roadmap&amp;diff=5674"/>
		<updated>2011-10-26T12:25:32Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 12 - Oktober 2011 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Milestone 1 - Erste präsentierbare Version auf pp.sitepark.com==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Kontaktdaten anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:- Verknüpfung auf einen KontaktDatensatz durch Angabe der ID des Kontaktes oder&lt;br /&gt;
:- Verknüpfen durch Angabe der Kontaktdaten in dem 'contact' Feld. Die E-Mail dient als eindeutiger Identifier um den Datensatz im System zu finden. Wird kein Eintrag gefunden, wir der Kontaktdatensatz angelegt und verknüpft.&lt;br /&gt;
:Bei Gleichheit von E-Mail-Adresse werden die übergebenen Daten überschrieben.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Folgende Eigenschaften müssen noch konfigurierbar werden&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Verkünpfung zwischen CallCenter-Mandant und InfoTicket-Mandant. Mandant und Nutzer im 'TicketArtikel' des CallCenters konfigurierbar.&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; InfoTicket-Nutzer als Absender (Temporäre, nur für Milestone 1)&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;offen&amp;lt;/span&amp;gt; Workflowverhalten (Eskalationszeiten, ...). hart kodiert. Welche Werte? (1 Tag!)&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Aussehen der E-Mail. &lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;Ticket aus dem CallCenter anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Über Bürgeranfrage &lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Über Mitarbeiter-Visitenkarte - Standard Ticket öffnen&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Über Dienstleistung - Standard Ticket öffnen&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;Wie soll der Ticket-Mandant ermittelt werden, damit beim Login-Fenster keine Auswahl erscheint?&amp;lt;/span&amp;gt;&lt;br /&gt;
: Antwort:&lt;br /&gt;
:#Es werden alle Mandanten abgefragt, die aktiv sind und mit dem InfoTicket-Mandanten verknüpft sind. Entspricht nur ein Mandant diesen Kriterien wird keine Auswahl angezeigt und nur dieser verwendet.&lt;br /&gt;
:#Es kann per URL-Parameter der gewünschte Mandant übergeben werden (ParameterName 'client', Wert ist der Anchor des Mandanten)&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Namensformat&amp;lt;/span&amp;gt;&lt;br /&gt;
:Nutzernamen können (noch) nicht an allen Stellen über die ID ermittelt werden (Bei einer Suchabfrage müssen select user-&amp;gt;name funktionieren), darum wird der Nutzername direkt gespeichert und nicht seine ID. Für diese Fälle muss das Namensformat (Nachname, Vorname, Title) überall gleich sein.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Fehlerbehandlung&amp;lt;/span&amp;gt;&lt;br /&gt;
:Auf Serverseite müssen noch ein paar Fehlerzustände abgefangen werden.&lt;br /&gt;
:;createTicket&lt;br /&gt;
::Wenn Email-Adresse in 'participant' nicht gefunden werden kann muss ein Fehler auftreten.&lt;br /&gt;
::Wenn ID in 'participant' nicht existiert&lt;br /&gt;
::Wenn ID in 'participant' existiert, Nutzer aber keine Email-Adresse hat.&lt;br /&gt;
:;getTicket&lt;br /&gt;
:: ID nicht gefunden&lt;br /&gt;
:: Ticket ist bereist geschlossen&lt;br /&gt;
:: Ticket ist weitergeleitet. Bearbeitet kann Ticket nicht mehr bearbeiten&lt;br /&gt;
:;addTicketItem&lt;br /&gt;
:: ID nicht gefunden&lt;br /&gt;
:: Ticket ist bereist geschlossen&lt;br /&gt;
:: Ticket ist weitergeleitet. Bearbeitet kann Ticket nicht mehr bearbeiten&lt;br /&gt;
:: Übergebene Werte validieren (ticketType, priority, ...)&lt;br /&gt;
:; closeTicket&lt;br /&gt;
:: ID nicht gefunden&lt;br /&gt;
:: Ticket ist bereist geschlossen&lt;br /&gt;
:: Ticket ist weitergeleitet. Bearbeitet kann Ticket nicht mehr bearbeiten&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket-Eigenschaften&amp;lt;/span&amp;gt;&lt;br /&gt;
:nächste Wiedervorlagen, nächste Eskalation&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Agenten (Absender des Tickets)&amp;lt;/span&amp;gt;&lt;br /&gt;
:Globaler IES-Nutzer aus dem Infoticket-Mandant wird als Absender gesetzt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Installation auf pp.sitepark.com&amp;lt;/span&amp;gt;&lt;br /&gt;
:Zwei Mandanten: Master und Work&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Auswahlliste der Empfänger im CallCenter&amp;lt;/span&amp;gt;&lt;br /&gt;
:Wie kommen die Nutzer in das TicketSystem? Werden per Hand angelegt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Sortierreihenfolge von Status, Typ und Aktion&amp;lt;/span&amp;gt;&lt;br /&gt;
:''Status''&lt;br /&gt;
:# Eskalation&lt;br /&gt;
:# Erinnerung&lt;br /&gt;
:# offen&lt;br /&gt;
:# in Arbeit&lt;br /&gt;
:# (geschlossen?)&lt;br /&gt;
&lt;br /&gt;
:''Typ''&lt;br /&gt;
:# Aktennotiz&lt;br /&gt;
:# Aufgabe&lt;br /&gt;
:# Beschwerde&lt;br /&gt;
:# D115-Weiterleitung&lt;br /&gt;
:# Information&lt;br /&gt;
:# Rückrufwunsch&lt;br /&gt;
:# Störungsmeldung&lt;br /&gt;
&lt;br /&gt;
:''Aktion'' (für Ticket-Einträge)&lt;br /&gt;
:# Neu&lt;br /&gt;
:# Änderung&lt;br /&gt;
:# Notiz&lt;br /&gt;
:# Erinnerung&lt;br /&gt;
:# Eskalation&lt;br /&gt;
:# Weiterleitung&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Locking von Tickets&amp;lt;/span&amp;gt;&lt;br /&gt;
:Kein Locking&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Konzeption: Eigenschaften ändern / Notiz anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Nachfrage-Dialog für Weiterleitungsbestätigung&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Speichern ohne Kommentar ist so in Ordung&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Subject muss man ändern können&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Wenn eine neue Notiz hinzugefügt wird, werden alle Einträge zugeklappt und nur der letzte geöffnet. Die Einträge, die geöffnet wurde sollen aber weiter offen bleiben. Es soll auch weiterhin zu dem letzten Eintrag gescrollt werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Wenn Ticket-Tag geschlossen wird, muss nachgefragt werden, Wenn Ticket noch einen Message enthält (Wenn 'aktion ausführen' Button akive ist)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Bei Kontakt ohne Telefon steht 'null', muss durch langen Strich ersetzt werden&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Bei öffnen des Tabs, Sanduhr an Maus bis Tab geöffnet&amp;lt;/span&amp;gt;&lt;br /&gt;
:Fazit: So nicht zu realisieren.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Aufbau des Tab ruckelt (Firefox). Prüfen, ob das verhindert werden kann.&amp;lt;/span&amp;gt;&lt;br /&gt;
:Geprüft. Der unruhige Aufbau läßt sich nicht so einfach nachstellen. Muss wohl an sehr langsamen Rechnern liegen. Habe auch keinen Weg gefunden da etwas zu verbessern.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket-Einträge müssen nicht ausgewählt werden können. Auch ohne Mouse-over&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - Mo, 27.09.2010==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;gestalteter Login-Dialog, Seitenhintergrund&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - Ende Oktober 2010==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Kontaktdaten anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Kontakte können beim Anlegen von Tickets erstellt werden, wenn keine bestehender Kontakt ausgewählt wurde.&lt;br /&gt;
:Wenn Daten gefunden wurden, werden nach Auswahl des Kontakts alle Daten angezeigt.&lt;br /&gt;
:Bei Gleichheit von E-Mail Adresse (oder Auswahl eines gefundenen Kontaktes) werden die Datenfelder aktualisiert.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen (vorläufig)&amp;lt;/span&amp;gt;&lt;br /&gt;
:An Personendatensatz Ticket öffnen, z.B. Rückrufwunsch&lt;br /&gt;
:An Dienstleistung Ticket öffnen&lt;br /&gt;
:*Personenticket (Kontakt)&lt;br /&gt;
:*Alle Kontakte der Dienstleistung als Vorschlag&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Geschlossene Tickets anzeigen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Ist soweit implementiert. Folgendes fehlt noch&lt;br /&gt;
:* Vorgabe für GUI zum aktivieren/deaktivieren des Filters (Nane)&lt;br /&gt;
:* Bugfix, geschlossen Tickets haben nicht den Status 'geschlossen' (Ralf)&lt;br /&gt;
&lt;br /&gt;
==Milestone 4 Fr, 03.12.2010==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Code-Optimierung (Java) (1 Tage)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;GUI Sicht auf Tickets anderer Nutzer (Nutzerauswahl)&amp;lt;/span&amp;gt;&lt;br /&gt;
:Dropdown mit allen Nutzern auf deren Tickets mindestens Leserechte bestehen&lt;br /&gt;
:*Zusätzlicher Punkt: alle Nutzer &lt;br /&gt;
:*Nur eigene Tickets im Zugriff -&amp;gt; Dropdown entfällt&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Einfache Ticketsuche&amp;lt;/span&amp;gt;&lt;br /&gt;
:Die Suche ist ein weiterer Filter, der einschränkend wirkt (UND-Verknüpfung)&lt;br /&gt;
:*die Suche berücksichtigt die Nutzerauswahl, d.h. die Suche ist auf den/die gewählten Nutzer eingeschränkt&lt;br /&gt;
:*die Suche verwendet die aktiven Filterkriterien&lt;br /&gt;
:*die Suche wirkt solange als Filter, bis das Suchfeld gelöscht wird&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Kontaktdaten&amp;lt;/span&amp;gt;&lt;br /&gt;
:Auch innerhalb von InfoTicket müssen die Kontaktdaten bearbeitet werden können.&lt;br /&gt;
:E-Mail-Adressen bei der Darstellung von Kontaktdaten werden mit mailto:-Link versehen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Geschlossene Tickets öffnen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Inhalte geschlossener Tickets müssen einsehbar sein&lt;br /&gt;
:Geschlossene Tickets müssen wieder geöffnet werden können&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Notizen anfügen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Jeder kann jederzeit an jedes Ticket, auch an geschlossene Tickets, Notizen anfügen, sofern die Oberfläche von InfoTicket bzw. CityCall115 einen Zugriff auf das Ticket erlaubt. Hierfür muss sich das Ticket nicht im eigenen Besitz befinden und durch die Bearbeitung findet auch kein Besitzerwechsel statt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Automatischer Besitzerwechsel bei mehreren Empfängern&amp;lt;/span&amp;gt;&lt;br /&gt;
:Tickets, die in meiner ToDo-Liste liegen und mehreren Empfängern zugewiesen sind, wechseln beim Öffnen automatisch den Besitzer und werden mir zugewiesen. Der Besitzerwechsel wird als Weiterleitung protokolliert und erscheint sofort als letzter Eintrag im geöffneten Ticket. Tickets, die nicht in meiner ToDo-Liste liegen, wechseln beim Öffnen nicht den Besitzer.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Besitzerwechsel bei Bedarf&amp;lt;/span&amp;gt;&lt;br /&gt;
:In InfoTicket kann jeder jedes Ticket bearbeiten, wenn im Rahmen eines übergreifenden Rechtemanagements Zugriffsrechte bestehen. Jedes Ändern von Headerdaten (Betreff, Priorität etc.), jedes Weiterleiten und jedes Schließen setzt den Besitz des Tickets voraus. Wird eine solche Funktion bei Tickets ausgeführt, die nicht in der eigenen ToDo-Liste liegen, erscheint vor dem Speichern ein Dialog „Für diese Funktion müssen Sie zunächst den Besitz des Tickets übernehmen. [übernehmen] [abbrechen]“.  Die Übernahme wird sofort durch einen Weiterleitungs-Eintrag im Ticket protokolliert. Unmittelbar im Anschluß wird die änderung bzw. Ergänzung gespeichert. Kein Besitzerwechsel ist notwendig beim Anfügen von Notizen sowie beim Ändern von Kontaktdaten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Weiterleitung führt nicht zum Statuswechsel&amp;lt;/span&amp;gt;&lt;br /&gt;
:Die Weiterleitung eines Tickets soll nicht zu einem Statuswechsel führen. Offene Tickets bleiben durch eine Weiterleitung offen, eskalierte Tickets bleiben eskaliert usw.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Weiterleitung ohne Notiz ermöglichen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Es soll möglich sein ein Ticket weiterzuleiten ohne zugleich eine Notiz anzufügen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Statuswechsel 'offen' zu 'in Arbeit'&amp;lt;/span&amp;gt;&lt;br /&gt;
:Ein Statuswechsel von 'offen' zu 'in Arbeit' ist abhängig von der Umgebung in der eine Aktion am Ticket ausgeführt wird. Innerhalb von InfoTicket erfolgt ein Statuswechsel automatisch beim ersten Speichern eines Tickets. Ausnahme: Weiterleitung und Kontaktdaten. &lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Versionsabgleich&amp;lt;/span&amp;gt;&lt;br /&gt;
:Vor dem Speichern einer Ticketbearbeitung wird der Versionsstand mit dem Server abgeglichen. Liegt zwischenzeitlich eine neuere Version auf dem Server vor, wird diese nach einem Hinweis neu geladen. Der Speichervorgang wird abgebrochen und kann wiederholt werden. Neu hinzugekommene Einträge in der Historie werden farbig gekennzeichnet. Tickets brauchen somit nicht vor konkurrierendem Zugriff geschützt (gelockt) zu werden.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5 - 15.01.2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über die Oberfläche von CityCall115 können Tickets angelegt werden&lt;br /&gt;
:*Definition von HTML-Formularen über einen Formulargenerator&lt;br /&gt;
:*Ausgabe aller Formulare auf einer eigenen Formular-Seite&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Formularservice&amp;lt;/span&amp;gt;&lt;br /&gt;
:Es wird ein allgemeiner Formularservice eingerichtet&lt;br /&gt;
:*Eingabe der Formulardaten&lt;br /&gt;
:*Eingabe der BürgerKontakt-Daten, nach Einverständnis&lt;br /&gt;
:*Prüfung/Korrektur der vorausgewählten Empfänger (aus der Dienstleistung oder Visitenkarte)&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;InfoTicket Funktionen:&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassungen der folgenden InfoTicket Funktionen&lt;br /&gt;
:*Der Betreff eines Tickets darf nicht leer sein.&lt;br /&gt;
:*In der Detailansicht der Tickets wird ein Bearbeitungsschritt nicht aufklappbar dargestellt (Plus-Symbol), wenn kein darszustellender Inhalt vorhanden ist.&lt;br /&gt;
:*Erfasste Kontaktdaten zum Anrufenden müssen immer angezeigt werden, egal ob die E-Mail-Adresse eingegeben wurde.&lt;br /&gt;
:*Der Statusfilter funktioniert nicht korrekt: Egal welcher Haken entfernt wird, werden alle Tickets ausgeblendet.&lt;br /&gt;
:*Werden vom Statusfilter alle Haken entfernt, wird eine Fehlermeldung ausgegeben.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Design-Review und Feinschliff&amp;lt;/span&amp;gt;&lt;br /&gt;
:Überprüfung der bestehenden Umsetzung des vorgesehenen Screendesigns und ggf. Nachbesserung&lt;br /&gt;
:*Das Filtersymbol (Trichter) wird angepasst&lt;br /&gt;
&lt;br /&gt;
==Milestone 6 - 11.02.2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;CityCall115&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassung der Oberfläche von CityCall115&lt;br /&gt;
:*Die Beschriftung der Menüpunktes &amp;quot;Formulare&amp;quot; ändern in &amp;quot;Ticket erstellen&amp;quot;.&lt;br /&gt;
:*Der Button &amp;quot;Ticket erstellen&amp;quot; auf der rechten Seite in der Oberfläche von CityCall115 müssen entfernt werden.&lt;br /&gt;
:*Deaktivierung des Menüpunktes &amp;quot;Bürgeranfrage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über die Oberfläche von CityCall115 können Tickets angelegt werden&lt;br /&gt;
:*Definition von Pflichtfeldern für Kontaktdaten je Formular konfigurierbar&lt;br /&gt;
:*Einführung eines Hinweistextes für die Kontaktdatenerfassung.&lt;br /&gt;
:*Abfrage der Zustimmung des Bürgers zum Speichern persönlicher Daten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;InfoTicket-Funktionen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassungen der folgenden InfoTicket Funktionen &lt;br /&gt;
:*In der Übersichtsseite wird eine zusätzliche Spalte für die Darstellung der Ticketbesitzer eingebaut.&lt;br /&gt;
:*Steht die Ticketauswahl auf &amp;quot;Eigene Tickets&amp;quot; und der Filter wird auf &amp;quot;geschlossene Tickets&amp;quot; gestellt, soll der Nutzer nur die Tickets angezeigt bekommen, die auch von ihm geschlossen wurden und nicht alle geschlossenen Tickets.&lt;br /&gt;
:*Nach einem Logout soll der Nutzername und das Passwort nicht automatisch in den entsprechenden Feldern stehen bleiben, sondern nur der Nutzername. (Achtung: Das gilt nicht für die Funktion &amp;quot;Passwort speichern&amp;quot; des Browsers. Wird diese Funktion genutzt haben wir keinen Einfluss auf das automatische Eintragen von Nutzerdaten.)&lt;br /&gt;
:*Paging in der Übersicht nach Änderung der Filtereinstellung korrigieren.&lt;br /&gt;
:*Im Tooltip zur Erstellung für Hyperlinks, in der Erstellung von Notizen sollte das Wort &amp;quot;text&amp;quot; am Ende des Satzes groß geschrieben werden.&lt;br /&gt;
:*Die Suche soll auch über Kontaktdaten suchen.&lt;br /&gt;
&lt;br /&gt;
==Milestone 7 - 25.02.2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;InfoTicket-Funktionen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Ticket-Typen müssen frei definierbar (konfigurierbar sein)&amp;lt;br/&amp;gt;Eigenschaften eines Ticket-Typs sind:&lt;br /&gt;
::Name&lt;br /&gt;
::Beschreibung (Tooltip?)&lt;br /&gt;
::Sortierwert&lt;br /&gt;
::Eskalationszeit&lt;br /&gt;
::Icon&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Eskalation&amp;lt;/span&amp;gt;&lt;br /&gt;
:Auswertung der Eskalationszeit unter Berücksichtigung von Wochenenden und Feiertagen.&lt;br /&gt;
:: Wie folgt zu berechnen&lt;br /&gt;
::* http://openbook.galileodesign.de/javainsel5/javainsel10_006.htm#Rxx747java10006040003451F0291C3&lt;br /&gt;
::* http://de.wikipedia.org/wiki/Feiertage_in_Deutschland&lt;br /&gt;
:: Implementierte Logik:&lt;br /&gt;
:: Es gibt zwei Modi:&lt;br /&gt;
::* Arbeitstage&lt;br /&gt;
::: Wenn als Eskalationszeit Arbeitstage angegeben wurde, dann werden &amp;quot;nicht Arbeitstage&amp;quot; wie Wochenende oder Feiertage für den zu errechnenden Eskalationszeitpunkt nicht mit berechnet. Wird Beispielsweise ein Ticket am Donnerstag um 16:00 angelegt und hat eine Eskalationszeit von 3 Arbeitstagen, dann eskaliert das Ticket am Dienstag um 16:00 (wenn Samstag und Sonntag als &amp;quot;nicht Arbeitstage&amp;quot; konfiguriert wurden). Das Ticket kann ausserhalb der Arbeits'''zeit''' eskalieren, aber nur an einem Arbeits'''tag'''.&lt;br /&gt;
::* Arbeitsstunden&lt;br /&gt;
::: Wenn als Eskalationszeit Arbeitsstunden angegeben wurden, dann wird der Eskalationszeitpunkt nur über die konfigurierte Arbeitszeit berechnet.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Datenschutz&amp;lt;/span&amp;gt;&lt;br /&gt;
:automatisches Löschen von Personendatensätzen, wenn das letzte &amp;lt;b&amp;gt;offene&amp;lt;/b&amp;gt; Ticket, das auf einen Personendatensatz verweist, geschlossen wird.&lt;br /&gt;
&lt;br /&gt;
==Milestone 8 - bis Ende März 2011==&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Rechteverwaltung&amp;lt;/span&amp;gt;&lt;br /&gt;
:Definition und Umsetzung einer Rechteverwaltung, zunächst unter Nutzung der bestehenden Oberfläche von InfoSite.&lt;br /&gt;
:*Erstellung einer Konzeption&lt;br /&gt;
:*Implementierung der Funktionalität in die Oberfläche von InfoSite&lt;br /&gt;
:*Technische Anpassung der Formularverwaltung in CityCall115&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über die Oberfläche von CityCall115 können Tickets angelegt werden&lt;br /&gt;
:*Integration eines &amp;quot;Ticket&amp;quot;-Reiters bei allen Dienstleistungen innerhalb der CityCall115-Ausgabe von CityGov 3.&lt;br /&gt;
:*Darstellung eines &amp;quot;Ticket&amp;quot;-Buttons bei allen Kontakten innerhalb der CityCall115-Ausgabe von CityGov 3.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Dokumentation&amp;lt;/span&amp;gt;&lt;br /&gt;
:Bereitstellung einer vorläufigen Bedienungsanleitung.&lt;br /&gt;
&lt;br /&gt;
==Milestone 9 (Qualitätssicherung) - April 2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Performanz-Tests mit vielen Tickets und parallelen Zugriffen&amp;lt;/span&amp;gt;&lt;br /&gt;
: Optimierung der Antwortzeiten für Ticket-Listen&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Stabilitäts-Tests&amp;lt;/span&amp;gt;&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Funktions-Tests&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestone 10 - Mai 2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Konfiguration der Arbeitszeit und Arbeitstage&amp;lt;/span&amp;gt;&lt;br /&gt;
:Unabhängigkeit der Arbeitszeit und Arbeitstage auflösen. Wenn Arbeitszeit konfiguriert ist, ist es automatisch ein Arbeitstag (Häkchen nicht änderbar).&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Design-Review&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassung der neuen Konfigurations-Dialoge&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Suche&amp;lt;/span&amp;gt;&lt;br /&gt;
:Volltextsuche muss auch Tickets über die Ticket-ID finden.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Druckansicht&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über einen Button wird ein neues Fenster geöffnet, der die Historie eines Tickets ausdruckbar darstellt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Upload und Verwaltung von Anhängen&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Eskalation&amp;lt;/span&amp;gt;&lt;br /&gt;
:Implementierung von Funktionen zur Auflösung von Eskalationen&lt;br /&gt;
:*Vor einer Weiterleitung eines eskalierten Tickets wird der Anwender gefragt, ob er zuvor noch einen neuen Eskalations-Termin setzen möchte.&lt;br /&gt;
:*Ein Ticket was sich im Status &amp;quot;Eskalation&amp;quot; befindet kann vom Besitzer jederzeit eine neue Eskalations- und Erinnerungszeit erhalten. Das Ticket wechselt dann wieder in den Status 'In Arbeit'. Hierfür gibt es im Kopfbereich des Tickets eine Schaltfläche. Die neue Eskalations- und Erinnerungszeit kann unabhängig vom Tickettyp frei eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Neue Ticket-Stati&amp;lt;/span&amp;gt;&lt;br /&gt;
:Implementierung neuer Ticket-Stati für&lt;br /&gt;
:*Warte auf Kunden-Antwort&amp;lt;br&amp;gt;&amp;quot;Warte auf Kunden-Antwort&amp;quot; ist ein Ticket-Status, der die Zeitmessung für Eskalations- und Erinnerungszeiten pausieren lässt. &lt;br /&gt;
:*Warte auf Wiedervorlage&amp;lt;br&amp;gt;&amp;quot;Warte auf Wiedervorlage&amp;quot; ist ein Ticket-Status, bei dem die Zeitmessung für Eskalations- und Erinnerungszeiten weiterläuft.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Adresse in der Browseradressleiste nach Logout auf Standard-URL des Ticketsystems zurücksetzen.&amp;lt;/span&amp;gt;&lt;br /&gt;
:Sonst kann es vorkommen, dass nach dem Aufruf eines Tickets über eine URL mit der ID als Parameter trotz Logout das Ticket immer wieder aufgerufen wird. Der Nutzer sollte hier direkt zur Übersichtsseite gelangen.&lt;br /&gt;
&lt;br /&gt;
==Milestone 11 - Juli 2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Technische Implementierung des Multi-Accordion Layout-Managers für die rechte Spalte.&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Erweiterung der Konfiguration der arbeitsfreien Tage&amp;lt;/span&amp;gt;&lt;br /&gt;
:Es sollten auch eigene relative Arbeitstage konfiguriert werden können&lt;br /&gt;
:Eigene arbeitsfreie Tage sollen nachträglich in der Tabelle editiert werden können.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;gelesen-Flag für Ticket&amp;lt;/span&amp;gt;&lt;br /&gt;
:neue Tickets im eigenen Eingang werden mit Symbol in separater Spalte und fett als ungelesen gekennzeichnet.&lt;br /&gt;
:Tickets werden automatisch als gelesen gekennzeichnet, wenn man sie öffnet.&lt;br /&gt;
:Wenn ein anderer Nutzer eine Notiz anfügt, wird das gelesen-Flag zurückgesetzt und der Besitzer des Tickets per Mail benachrichtigt.&lt;br /&gt;
:''Anm.: Das gelesen-Flag ist ausschließlich zur Identifikation neuer Tickets im eigenen Eingang vorgesehen und kann nicht zurückgesetzt werden. Eine Prioritätenverwaltung sollte über die Prioritäteneigenschaften des Tickets erfolgen.''&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;allgemeine Favoritenverwaltung&amp;lt;/span&amp;gt;&lt;br /&gt;
:Favoriten sind nutzerbezogene Listen von Elementen. Die Pflege von Favoriten erfolgt individuell durch jedem Nutzer, eine zentrale Bereitstellung von Favoriten ist nicht vorgesehen.&lt;br /&gt;
:In InfoTicket handelt es sich bei den Favoriten um ausgewählte Weiterleitungsempfänger, die im Weiterleitungsdialog gesondert zur Auswahl angeboten werden.&lt;br /&gt;
:Die Verwaltung der Favoriten erfolgt in InfoTicket innerhalb des Weiterleiten-Dialoges. Favoriten werden in Gruppen verwaltet, von denen folgende vorgesehen sind:&lt;br /&gt;
:*Historie&amp;lt;br&amp;gt;Liste der zuletzt verwendeten Weiterleitungsempfänger, chronologisch sortiert&lt;br /&gt;
:*Häufig genutzt&amp;lt;br&amp;gt;Liste der Weiterleitungsempfänger an die am häufigsten ein Ticket weitergeleitet wurde, sortiert nach Häufigkeit&lt;br /&gt;
:*Lesezeichen&amp;lt;br&amp;gt;individuell pflegbare Liste von Weiterleitungsempfängern, alphabetisch sortiert nach Nachnahme. Hinzugefügt werden Empfänger, indem sie im Weiterleitungs-Dialog markiert werden. Gelöscht werden sie über die löschen-Funktion (rechte Maustaste bzw. Auswahl und &amp;quot;Entf&amp;quot;-Taste).&lt;br /&gt;
:*Suchergebnisse&amp;lt;br&amp;gt;Beliebig viele Listen, deren Inhalt das Ergebnis eine Suche ist, alphabetisch dortiert nach nachnahme. Hinzugefügt werden Suchergebnisse über die Suchen-Funktion im Weiterleiten-Dialog. Einzelne Empfänger können nicht aus dem Suchergebnis entfernt werden. Listen können umbenannt und über die löschen-Funktion entfernt werden.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Drag and Drop für Weiterleitungen über die rechte Spalte&amp;lt;/span&amp;gt;&lt;br /&gt;
:In der Übersichtsseite wird in die rechte Spalte eine Schnell-Weiterleiten-Funktion eingebaut über die aus der Liste von Tickets ein oder mehrere Tickets per Drag and Drop an einen Empfänger weitergeleitet werden können. Über einen Popup-Dialog kann der Weiterleitung eine Notiz hinzugefügt werden. Bei Mehrfach-Weiterleitungen erhalten alle Tickets die gleiche Notiz.&lt;br /&gt;
:Die aufgelisteten Weiterleitungs-Empfänger sind Nutzer einer in der Box auswählbaren Favoritengruppe&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;erweiterter Weiterleiten-Auswahl-Dialog&amp;lt;/span&amp;gt;&lt;br /&gt;
:Der Standard-Auswahldialog wird erweitert um:&lt;br /&gt;
:*Suchfunktion&lt;br /&gt;
:*Favoritenliste&lt;br /&gt;
:*verschiedene Ansichten&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Textvorlagen auswählen , erstellen, löschen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Textvorlagen werden in der rechten Spalte der Ticket-Detaildarstellung angeboten.&lt;br /&gt;
:Über einen Dialog mit WYSIWYG-Editor kann eine Textvorlage erstellt oder bearbeitet werden.&lt;br /&gt;
:Textvorlagen lassen sich über die rechte Maustaste und Auswahldialog löschen oder bearbeiten.&lt;br /&gt;
:Textvorlagen werden per Doppelklick an die aktive Cursorposition des Notiz-Feldes eingefügt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Datenschutz&amp;lt;/span&amp;gt;&lt;br /&gt;
:Erweiterung der Funktion nach der Personendatensätze gelöscht werden, wenn kein offenes Ticket mehr auf einen Datensatz verweist um einen konfigurierbaren zeitlichen Versatz. (Kontakte werden z.B. erst 3 Monate nachdem das letzte Ticket geschlossen wird, gelöscht.)&lt;br /&gt;
&lt;br /&gt;
==Milestone 12 - Oktober 2011 ==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Unvollständig-Funktion&amp;lt;/span&amp;gt;&lt;br /&gt;
:Die Unvollständig-Funktion soll über das Ticketing-System abgedeckt werden.&lt;br /&gt;
:*Unvollständigkeitsmeldung als Ticket verfassen.&lt;br /&gt;
:*Den Button &amp;quot;Unvollständig&amp;quot; auf der rechten Seite in der Oberfläche von CityCall115 entfernen, wenn ein Unvollständig-Ticket erstellt werden kann.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;CityCall115&amp;lt;/span&amp;gt;&lt;br /&gt;
:Der Betreff eines Tickets kann beim Anlegen durch den Agenten optional um Zusatzinformationen ergänzt werden.&lt;br /&gt;
:Funktion zur Ticket-Recherche und zum Anfügen von Notizen für Agenten.&lt;br /&gt;
&lt;br /&gt;
==Milestone 13 - November 2011 ==&lt;br /&gt;
&lt;br /&gt;
;Code Review / Code Optimierung&lt;br /&gt;
: Umstellung auf ExtJS 4&lt;br /&gt;
&lt;br /&gt;
;Agenten (Absender des Tickets)&lt;br /&gt;
:Alle Agenten müssen in das InfoTicket-System synchronisiert werden.&lt;br /&gt;
&lt;br /&gt;
;Statistik über Tickets&lt;br /&gt;
:Statistik-Angaben&lt;br /&gt;
:*Anzahl an eskalierten Tickets in einem Zeitraum.&lt;br /&gt;
:*Anzahl an aktiven Nutzern&lt;br /&gt;
:*Anzahl an inaktiven Nutzern (keine Ticketbearbeitung innerhalb der letzten paar Monate)&lt;br /&gt;
:*Anzahl an registrierten Nutzern&lt;br /&gt;
:*Anzahl an Bürgerdatensätzen&lt;br /&gt;
:*Längste Ticketbearbeitungsdauer&lt;br /&gt;
:*Kürzeste Ticketbearbeitungsdauer&lt;br /&gt;
:*Durchschnittliche Ticketbearbeitungsdauer&lt;br /&gt;
:*Anzahl offener Tickets&lt;br /&gt;
:*Anzahl eskalierter Tickets&lt;br /&gt;
:*Anzahl der Tickets pro zugeordneter Diensleistung/Organisationseinheit innerhalb eines wählbaren Zeitraums.&lt;br /&gt;
&lt;br /&gt;
;Statistik im Ticket&lt;br /&gt;
:kurze Statistik-Angaben zum Ticket in der rechten Spalte&lt;br /&gt;
:*Anzahl an Eskalationen&lt;br /&gt;
:*Anzahl an Weiterleitungen&lt;br /&gt;
&lt;br /&gt;
==Milestone 14==&lt;br /&gt;
&lt;br /&gt;
;Ticket-id soll ohne Typ und Mandanten-Kennung verwendet werden&lt;br /&gt;
:Suchabfrage muss diese ID schon so zurückliefern (oder per JavaScript beschneiden)&lt;br /&gt;
:Alle RPC-Funktionen des TicketSystems müssen die ID in dem neuen Format lesen können und auch so zurück liefern.&lt;br /&gt;
&lt;br /&gt;
;Mail-Gateway&lt;br /&gt;
:Mailversand:&lt;br /&gt;
:*Als Antwort&lt;br /&gt;
:*Als Weiterleitung an Extern&lt;br /&gt;
:*Konfigurationsmöglichkeit für einen zentralen Footer, der durch Variablen Nutzerdaten einfügen kann (Name, Vorname, Abteilung, …)&lt;br /&gt;
&lt;br /&gt;
:Mailempfang:&lt;br /&gt;
:*E-Mail als Ticket (siehe altes Dokument)&lt;br /&gt;
:*E-Mail als externe Nachricht am Ticket&lt;br /&gt;
:*E-Mail als Antwort für Weiterleitung an Extern&lt;br /&gt;
&lt;br /&gt;
;Integration der D115 Meldungstypen (Empfang und Bearbeitung)&lt;br /&gt;
&lt;br /&gt;
==Milestone 15==&lt;br /&gt;
&lt;br /&gt;
;Formular-Service&lt;br /&gt;
:Erstellung von Benachrichtigung über einen Dienst, der die Formulardaten auswertet und pdf und/oder xml Dateien erstellt und je nach Konfiguration eine Mail oder ein Ticket erstellt.&lt;br /&gt;
&lt;br /&gt;
;GUI Nutzerverwaltung / Rechtevergabe&lt;br /&gt;
:Neues GUI, als Prototyp für eine Applikation auf Basis der IES Nutzerverwaltung. Die technischen Möglichkeiten des IES / InfoSite bleiben bis auf die obige Erweiterung erhalten und werden durch das neue GUI bedient. Ggf. sind Erweiterungen nötig!?&lt;br /&gt;
:Die Nutzerliste im Nutzerpool enthält direkte Hinweise auf die zugewiesenen Rollen des einzelnen Nutzers.&lt;br /&gt;
&lt;br /&gt;
==Milestone X==&lt;br /&gt;
&lt;br /&gt;
;Subtickets&lt;br /&gt;
&lt;br /&gt;
;Workflow:&lt;br /&gt;
;:Tickets können durch ihre Definition eine Abfolge von Nutzer(-gruppen) enthalten, die durch eine „Weiter“ und „Zurück“ Navigation durchlaufen werden.&lt;br /&gt;
&lt;br /&gt;
;erweiterte Suchfunktion&lt;br /&gt;
:muss noch definiert werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=InfoTicket_-_Roadmap&amp;diff=5673</id>
		<title>InfoTicket - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=InfoTicket_-_Roadmap&amp;diff=5673"/>
		<updated>2011-10-26T12:24:51Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 12 - Oktober 2011 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Milestone 1 - Erste präsentierbare Version auf pp.sitepark.com==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Kontaktdaten anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:- Verknüpfung auf einen KontaktDatensatz durch Angabe der ID des Kontaktes oder&lt;br /&gt;
:- Verknüpfen durch Angabe der Kontaktdaten in dem 'contact' Feld. Die E-Mail dient als eindeutiger Identifier um den Datensatz im System zu finden. Wird kein Eintrag gefunden, wir der Kontaktdatensatz angelegt und verknüpft.&lt;br /&gt;
:Bei Gleichheit von E-Mail-Adresse werden die übergebenen Daten überschrieben.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Folgende Eigenschaften müssen noch konfigurierbar werden&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Verkünpfung zwischen CallCenter-Mandant und InfoTicket-Mandant. Mandant und Nutzer im 'TicketArtikel' des CallCenters konfigurierbar.&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; InfoTicket-Nutzer als Absender (Temporäre, nur für Milestone 1)&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;offen&amp;lt;/span&amp;gt; Workflowverhalten (Eskalationszeiten, ...). hart kodiert. Welche Werte? (1 Tag!)&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Aussehen der E-Mail. &lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;Ticket aus dem CallCenter anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Über Bürgeranfrage &lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Über Mitarbeiter-Visitenkarte - Standard Ticket öffnen&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt; Über Dienstleistung - Standard Ticket öffnen&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green; font-weight:bold&amp;quot;&amp;gt;Wie soll der Ticket-Mandant ermittelt werden, damit beim Login-Fenster keine Auswahl erscheint?&amp;lt;/span&amp;gt;&lt;br /&gt;
: Antwort:&lt;br /&gt;
:#Es werden alle Mandanten abgefragt, die aktiv sind und mit dem InfoTicket-Mandanten verknüpft sind. Entspricht nur ein Mandant diesen Kriterien wird keine Auswahl angezeigt und nur dieser verwendet.&lt;br /&gt;
:#Es kann per URL-Parameter der gewünschte Mandant übergeben werden (ParameterName 'client', Wert ist der Anchor des Mandanten)&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Namensformat&amp;lt;/span&amp;gt;&lt;br /&gt;
:Nutzernamen können (noch) nicht an allen Stellen über die ID ermittelt werden (Bei einer Suchabfrage müssen select user-&amp;gt;name funktionieren), darum wird der Nutzername direkt gespeichert und nicht seine ID. Für diese Fälle muss das Namensformat (Nachname, Vorname, Title) überall gleich sein.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Fehlerbehandlung&amp;lt;/span&amp;gt;&lt;br /&gt;
:Auf Serverseite müssen noch ein paar Fehlerzustände abgefangen werden.&lt;br /&gt;
:;createTicket&lt;br /&gt;
::Wenn Email-Adresse in 'participant' nicht gefunden werden kann muss ein Fehler auftreten.&lt;br /&gt;
::Wenn ID in 'participant' nicht existiert&lt;br /&gt;
::Wenn ID in 'participant' existiert, Nutzer aber keine Email-Adresse hat.&lt;br /&gt;
:;getTicket&lt;br /&gt;
:: ID nicht gefunden&lt;br /&gt;
:: Ticket ist bereist geschlossen&lt;br /&gt;
:: Ticket ist weitergeleitet. Bearbeitet kann Ticket nicht mehr bearbeiten&lt;br /&gt;
:;addTicketItem&lt;br /&gt;
:: ID nicht gefunden&lt;br /&gt;
:: Ticket ist bereist geschlossen&lt;br /&gt;
:: Ticket ist weitergeleitet. Bearbeitet kann Ticket nicht mehr bearbeiten&lt;br /&gt;
:: Übergebene Werte validieren (ticketType, priority, ...)&lt;br /&gt;
:; closeTicket&lt;br /&gt;
:: ID nicht gefunden&lt;br /&gt;
:: Ticket ist bereist geschlossen&lt;br /&gt;
:: Ticket ist weitergeleitet. Bearbeitet kann Ticket nicht mehr bearbeiten&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket-Eigenschaften&amp;lt;/span&amp;gt;&lt;br /&gt;
:nächste Wiedervorlagen, nächste Eskalation&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Agenten (Absender des Tickets)&amp;lt;/span&amp;gt;&lt;br /&gt;
:Globaler IES-Nutzer aus dem Infoticket-Mandant wird als Absender gesetzt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Installation auf pp.sitepark.com&amp;lt;/span&amp;gt;&lt;br /&gt;
:Zwei Mandanten: Master und Work&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Auswahlliste der Empfänger im CallCenter&amp;lt;/span&amp;gt;&lt;br /&gt;
:Wie kommen die Nutzer in das TicketSystem? Werden per Hand angelegt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Sortierreihenfolge von Status, Typ und Aktion&amp;lt;/span&amp;gt;&lt;br /&gt;
:''Status''&lt;br /&gt;
:# Eskalation&lt;br /&gt;
:# Erinnerung&lt;br /&gt;
:# offen&lt;br /&gt;
:# in Arbeit&lt;br /&gt;
:# (geschlossen?)&lt;br /&gt;
&lt;br /&gt;
:''Typ''&lt;br /&gt;
:# Aktennotiz&lt;br /&gt;
:# Aufgabe&lt;br /&gt;
:# Beschwerde&lt;br /&gt;
:# D115-Weiterleitung&lt;br /&gt;
:# Information&lt;br /&gt;
:# Rückrufwunsch&lt;br /&gt;
:# Störungsmeldung&lt;br /&gt;
&lt;br /&gt;
:''Aktion'' (für Ticket-Einträge)&lt;br /&gt;
:# Neu&lt;br /&gt;
:# Änderung&lt;br /&gt;
:# Notiz&lt;br /&gt;
:# Erinnerung&lt;br /&gt;
:# Eskalation&lt;br /&gt;
:# Weiterleitung&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Locking von Tickets&amp;lt;/span&amp;gt;&lt;br /&gt;
:Kein Locking&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Konzeption: Eigenschaften ändern / Notiz anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Nachfrage-Dialog für Weiterleitungsbestätigung&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Speichern ohne Kommentar ist so in Ordung&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Subject muss man ändern können&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Wenn eine neue Notiz hinzugefügt wird, werden alle Einträge zugeklappt und nur der letzte geöffnet. Die Einträge, die geöffnet wurde sollen aber weiter offen bleiben. Es soll auch weiterhin zu dem letzten Eintrag gescrollt werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Wenn Ticket-Tag geschlossen wird, muss nachgefragt werden, Wenn Ticket noch einen Message enthält (Wenn 'aktion ausführen' Button akive ist)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Bei Kontakt ohne Telefon steht 'null', muss durch langen Strich ersetzt werden&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Bei öffnen des Tabs, Sanduhr an Maus bis Tab geöffnet&amp;lt;/span&amp;gt;&lt;br /&gt;
:Fazit: So nicht zu realisieren.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Aufbau des Tab ruckelt (Firefox). Prüfen, ob das verhindert werden kann.&amp;lt;/span&amp;gt;&lt;br /&gt;
:Geprüft. Der unruhige Aufbau läßt sich nicht so einfach nachstellen. Muss wohl an sehr langsamen Rechnern liegen. Habe auch keinen Weg gefunden da etwas zu verbessern.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket-Einträge müssen nicht ausgewählt werden können. Auch ohne Mouse-over&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - Mo, 27.09.2010==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;gestalteter Login-Dialog, Seitenhintergrund&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - Ende Oktober 2010==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Kontaktdaten anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Kontakte können beim Anlegen von Tickets erstellt werden, wenn keine bestehender Kontakt ausgewählt wurde.&lt;br /&gt;
:Wenn Daten gefunden wurden, werden nach Auswahl des Kontakts alle Daten angezeigt.&lt;br /&gt;
:Bei Gleichheit von E-Mail Adresse (oder Auswahl eines gefundenen Kontaktes) werden die Datenfelder aktualisiert.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen (vorläufig)&amp;lt;/span&amp;gt;&lt;br /&gt;
:An Personendatensatz Ticket öffnen, z.B. Rückrufwunsch&lt;br /&gt;
:An Dienstleistung Ticket öffnen&lt;br /&gt;
:*Personenticket (Kontakt)&lt;br /&gt;
:*Alle Kontakte der Dienstleistung als Vorschlag&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Geschlossene Tickets anzeigen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Ist soweit implementiert. Folgendes fehlt noch&lt;br /&gt;
:* Vorgabe für GUI zum aktivieren/deaktivieren des Filters (Nane)&lt;br /&gt;
:* Bugfix, geschlossen Tickets haben nicht den Status 'geschlossen' (Ralf)&lt;br /&gt;
&lt;br /&gt;
==Milestone 4 Fr, 03.12.2010==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Code-Optimierung (Java) (1 Tage)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;GUI Sicht auf Tickets anderer Nutzer (Nutzerauswahl)&amp;lt;/span&amp;gt;&lt;br /&gt;
:Dropdown mit allen Nutzern auf deren Tickets mindestens Leserechte bestehen&lt;br /&gt;
:*Zusätzlicher Punkt: alle Nutzer &lt;br /&gt;
:*Nur eigene Tickets im Zugriff -&amp;gt; Dropdown entfällt&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Einfache Ticketsuche&amp;lt;/span&amp;gt;&lt;br /&gt;
:Die Suche ist ein weiterer Filter, der einschränkend wirkt (UND-Verknüpfung)&lt;br /&gt;
:*die Suche berücksichtigt die Nutzerauswahl, d.h. die Suche ist auf den/die gewählten Nutzer eingeschränkt&lt;br /&gt;
:*die Suche verwendet die aktiven Filterkriterien&lt;br /&gt;
:*die Suche wirkt solange als Filter, bis das Suchfeld gelöscht wird&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Kontaktdaten&amp;lt;/span&amp;gt;&lt;br /&gt;
:Auch innerhalb von InfoTicket müssen die Kontaktdaten bearbeitet werden können.&lt;br /&gt;
:E-Mail-Adressen bei der Darstellung von Kontaktdaten werden mit mailto:-Link versehen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Geschlossene Tickets öffnen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Inhalte geschlossener Tickets müssen einsehbar sein&lt;br /&gt;
:Geschlossene Tickets müssen wieder geöffnet werden können&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Notizen anfügen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Jeder kann jederzeit an jedes Ticket, auch an geschlossene Tickets, Notizen anfügen, sofern die Oberfläche von InfoTicket bzw. CityCall115 einen Zugriff auf das Ticket erlaubt. Hierfür muss sich das Ticket nicht im eigenen Besitz befinden und durch die Bearbeitung findet auch kein Besitzerwechsel statt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Automatischer Besitzerwechsel bei mehreren Empfängern&amp;lt;/span&amp;gt;&lt;br /&gt;
:Tickets, die in meiner ToDo-Liste liegen und mehreren Empfängern zugewiesen sind, wechseln beim Öffnen automatisch den Besitzer und werden mir zugewiesen. Der Besitzerwechsel wird als Weiterleitung protokolliert und erscheint sofort als letzter Eintrag im geöffneten Ticket. Tickets, die nicht in meiner ToDo-Liste liegen, wechseln beim Öffnen nicht den Besitzer.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Besitzerwechsel bei Bedarf&amp;lt;/span&amp;gt;&lt;br /&gt;
:In InfoTicket kann jeder jedes Ticket bearbeiten, wenn im Rahmen eines übergreifenden Rechtemanagements Zugriffsrechte bestehen. Jedes Ändern von Headerdaten (Betreff, Priorität etc.), jedes Weiterleiten und jedes Schließen setzt den Besitz des Tickets voraus. Wird eine solche Funktion bei Tickets ausgeführt, die nicht in der eigenen ToDo-Liste liegen, erscheint vor dem Speichern ein Dialog „Für diese Funktion müssen Sie zunächst den Besitz des Tickets übernehmen. [übernehmen] [abbrechen]“.  Die Übernahme wird sofort durch einen Weiterleitungs-Eintrag im Ticket protokolliert. Unmittelbar im Anschluß wird die änderung bzw. Ergänzung gespeichert. Kein Besitzerwechsel ist notwendig beim Anfügen von Notizen sowie beim Ändern von Kontaktdaten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Weiterleitung führt nicht zum Statuswechsel&amp;lt;/span&amp;gt;&lt;br /&gt;
:Die Weiterleitung eines Tickets soll nicht zu einem Statuswechsel führen. Offene Tickets bleiben durch eine Weiterleitung offen, eskalierte Tickets bleiben eskaliert usw.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Weiterleitung ohne Notiz ermöglichen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Es soll möglich sein ein Ticket weiterzuleiten ohne zugleich eine Notiz anzufügen.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Statuswechsel 'offen' zu 'in Arbeit'&amp;lt;/span&amp;gt;&lt;br /&gt;
:Ein Statuswechsel von 'offen' zu 'in Arbeit' ist abhängig von der Umgebung in der eine Aktion am Ticket ausgeführt wird. Innerhalb von InfoTicket erfolgt ein Statuswechsel automatisch beim ersten Speichern eines Tickets. Ausnahme: Weiterleitung und Kontaktdaten. &lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Versionsabgleich&amp;lt;/span&amp;gt;&lt;br /&gt;
:Vor dem Speichern einer Ticketbearbeitung wird der Versionsstand mit dem Server abgeglichen. Liegt zwischenzeitlich eine neuere Version auf dem Server vor, wird diese nach einem Hinweis neu geladen. Der Speichervorgang wird abgebrochen und kann wiederholt werden. Neu hinzugekommene Einträge in der Historie werden farbig gekennzeichnet. Tickets brauchen somit nicht vor konkurrierendem Zugriff geschützt (gelockt) zu werden.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5 - 15.01.2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über die Oberfläche von CityCall115 können Tickets angelegt werden&lt;br /&gt;
:*Definition von HTML-Formularen über einen Formulargenerator&lt;br /&gt;
:*Ausgabe aller Formulare auf einer eigenen Formular-Seite&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Formularservice&amp;lt;/span&amp;gt;&lt;br /&gt;
:Es wird ein allgemeiner Formularservice eingerichtet&lt;br /&gt;
:*Eingabe der Formulardaten&lt;br /&gt;
:*Eingabe der BürgerKontakt-Daten, nach Einverständnis&lt;br /&gt;
:*Prüfung/Korrektur der vorausgewählten Empfänger (aus der Dienstleistung oder Visitenkarte)&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;InfoTicket Funktionen:&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassungen der folgenden InfoTicket Funktionen&lt;br /&gt;
:*Der Betreff eines Tickets darf nicht leer sein.&lt;br /&gt;
:*In der Detailansicht der Tickets wird ein Bearbeitungsschritt nicht aufklappbar dargestellt (Plus-Symbol), wenn kein darszustellender Inhalt vorhanden ist.&lt;br /&gt;
:*Erfasste Kontaktdaten zum Anrufenden müssen immer angezeigt werden, egal ob die E-Mail-Adresse eingegeben wurde.&lt;br /&gt;
:*Der Statusfilter funktioniert nicht korrekt: Egal welcher Haken entfernt wird, werden alle Tickets ausgeblendet.&lt;br /&gt;
:*Werden vom Statusfilter alle Haken entfernt, wird eine Fehlermeldung ausgegeben.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Design-Review und Feinschliff&amp;lt;/span&amp;gt;&lt;br /&gt;
:Überprüfung der bestehenden Umsetzung des vorgesehenen Screendesigns und ggf. Nachbesserung&lt;br /&gt;
:*Das Filtersymbol (Trichter) wird angepasst&lt;br /&gt;
&lt;br /&gt;
==Milestone 6 - 11.02.2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;CityCall115&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassung der Oberfläche von CityCall115&lt;br /&gt;
:*Die Beschriftung der Menüpunktes &amp;quot;Formulare&amp;quot; ändern in &amp;quot;Ticket erstellen&amp;quot;.&lt;br /&gt;
:*Der Button &amp;quot;Ticket erstellen&amp;quot; auf der rechten Seite in der Oberfläche von CityCall115 müssen entfernt werden.&lt;br /&gt;
:*Deaktivierung des Menüpunktes &amp;quot;Bürgeranfrage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über die Oberfläche von CityCall115 können Tickets angelegt werden&lt;br /&gt;
:*Definition von Pflichtfeldern für Kontaktdaten je Formular konfigurierbar&lt;br /&gt;
:*Einführung eines Hinweistextes für die Kontaktdatenerfassung.&lt;br /&gt;
:*Abfrage der Zustimmung des Bürgers zum Speichern persönlicher Daten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;InfoTicket-Funktionen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassungen der folgenden InfoTicket Funktionen &lt;br /&gt;
:*In der Übersichtsseite wird eine zusätzliche Spalte für die Darstellung der Ticketbesitzer eingebaut.&lt;br /&gt;
:*Steht die Ticketauswahl auf &amp;quot;Eigene Tickets&amp;quot; und der Filter wird auf &amp;quot;geschlossene Tickets&amp;quot; gestellt, soll der Nutzer nur die Tickets angezeigt bekommen, die auch von ihm geschlossen wurden und nicht alle geschlossenen Tickets.&lt;br /&gt;
:*Nach einem Logout soll der Nutzername und das Passwort nicht automatisch in den entsprechenden Feldern stehen bleiben, sondern nur der Nutzername. (Achtung: Das gilt nicht für die Funktion &amp;quot;Passwort speichern&amp;quot; des Browsers. Wird diese Funktion genutzt haben wir keinen Einfluss auf das automatische Eintragen von Nutzerdaten.)&lt;br /&gt;
:*Paging in der Übersicht nach Änderung der Filtereinstellung korrigieren.&lt;br /&gt;
:*Im Tooltip zur Erstellung für Hyperlinks, in der Erstellung von Notizen sollte das Wort &amp;quot;text&amp;quot; am Ende des Satzes groß geschrieben werden.&lt;br /&gt;
:*Die Suche soll auch über Kontaktdaten suchen.&lt;br /&gt;
&lt;br /&gt;
==Milestone 7 - 25.02.2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;InfoTicket-Funktionen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Ticket-Typen müssen frei definierbar (konfigurierbar sein)&amp;lt;br/&amp;gt;Eigenschaften eines Ticket-Typs sind:&lt;br /&gt;
::Name&lt;br /&gt;
::Beschreibung (Tooltip?)&lt;br /&gt;
::Sortierwert&lt;br /&gt;
::Eskalationszeit&lt;br /&gt;
::Icon&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Eskalation&amp;lt;/span&amp;gt;&lt;br /&gt;
:Auswertung der Eskalationszeit unter Berücksichtigung von Wochenenden und Feiertagen.&lt;br /&gt;
:: Wie folgt zu berechnen&lt;br /&gt;
::* http://openbook.galileodesign.de/javainsel5/javainsel10_006.htm#Rxx747java10006040003451F0291C3&lt;br /&gt;
::* http://de.wikipedia.org/wiki/Feiertage_in_Deutschland&lt;br /&gt;
:: Implementierte Logik:&lt;br /&gt;
:: Es gibt zwei Modi:&lt;br /&gt;
::* Arbeitstage&lt;br /&gt;
::: Wenn als Eskalationszeit Arbeitstage angegeben wurde, dann werden &amp;quot;nicht Arbeitstage&amp;quot; wie Wochenende oder Feiertage für den zu errechnenden Eskalationszeitpunkt nicht mit berechnet. Wird Beispielsweise ein Ticket am Donnerstag um 16:00 angelegt und hat eine Eskalationszeit von 3 Arbeitstagen, dann eskaliert das Ticket am Dienstag um 16:00 (wenn Samstag und Sonntag als &amp;quot;nicht Arbeitstage&amp;quot; konfiguriert wurden). Das Ticket kann ausserhalb der Arbeits'''zeit''' eskalieren, aber nur an einem Arbeits'''tag'''.&lt;br /&gt;
::* Arbeitsstunden&lt;br /&gt;
::: Wenn als Eskalationszeit Arbeitsstunden angegeben wurden, dann wird der Eskalationszeitpunkt nur über die konfigurierte Arbeitszeit berechnet.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Datenschutz&amp;lt;/span&amp;gt;&lt;br /&gt;
:automatisches Löschen von Personendatensätzen, wenn das letzte &amp;lt;b&amp;gt;offene&amp;lt;/b&amp;gt; Ticket, das auf einen Personendatensatz verweist, geschlossen wird.&lt;br /&gt;
&lt;br /&gt;
==Milestone 8 - bis Ende März 2011==&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Rechteverwaltung&amp;lt;/span&amp;gt;&lt;br /&gt;
:Definition und Umsetzung einer Rechteverwaltung, zunächst unter Nutzung der bestehenden Oberfläche von InfoSite.&lt;br /&gt;
:*Erstellung einer Konzeption&lt;br /&gt;
:*Implementierung der Funktionalität in die Oberfläche von InfoSite&lt;br /&gt;
:*Technische Anpassung der Formularverwaltung in CityCall115&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ticket aus CityCall115 anlegen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über die Oberfläche von CityCall115 können Tickets angelegt werden&lt;br /&gt;
:*Integration eines &amp;quot;Ticket&amp;quot;-Reiters bei allen Dienstleistungen innerhalb der CityCall115-Ausgabe von CityGov 3.&lt;br /&gt;
:*Darstellung eines &amp;quot;Ticket&amp;quot;-Buttons bei allen Kontakten innerhalb der CityCall115-Ausgabe von CityGov 3.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Dokumentation&amp;lt;/span&amp;gt;&lt;br /&gt;
:Bereitstellung einer vorläufigen Bedienungsanleitung.&lt;br /&gt;
&lt;br /&gt;
==Milestone 9 (Qualitätssicherung) - April 2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Performanz-Tests mit vielen Tickets und parallelen Zugriffen&amp;lt;/span&amp;gt;&lt;br /&gt;
: Optimierung der Antwortzeiten für Ticket-Listen&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Stabilitäts-Tests&amp;lt;/span&amp;gt;&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Funktions-Tests&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestone 10 - Mai 2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Konfiguration der Arbeitszeit und Arbeitstage&amp;lt;/span&amp;gt;&lt;br /&gt;
:Unabhängigkeit der Arbeitszeit und Arbeitstage auflösen. Wenn Arbeitszeit konfiguriert ist, ist es automatisch ein Arbeitstag (Häkchen nicht änderbar).&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Design-Review&amp;lt;/span&amp;gt;&lt;br /&gt;
:Anpassung der neuen Konfigurations-Dialoge&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Suche&amp;lt;/span&amp;gt;&lt;br /&gt;
:Volltextsuche muss auch Tickets über die Ticket-ID finden.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Druckansicht&amp;lt;/span&amp;gt;&lt;br /&gt;
:Über einen Button wird ein neues Fenster geöffnet, der die Historie eines Tickets ausdruckbar darstellt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Upload und Verwaltung von Anhängen&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Eskalation&amp;lt;/span&amp;gt;&lt;br /&gt;
:Implementierung von Funktionen zur Auflösung von Eskalationen&lt;br /&gt;
:*Vor einer Weiterleitung eines eskalierten Tickets wird der Anwender gefragt, ob er zuvor noch einen neuen Eskalations-Termin setzen möchte.&lt;br /&gt;
:*Ein Ticket was sich im Status &amp;quot;Eskalation&amp;quot; befindet kann vom Besitzer jederzeit eine neue Eskalations- und Erinnerungszeit erhalten. Das Ticket wechselt dann wieder in den Status 'In Arbeit'. Hierfür gibt es im Kopfbereich des Tickets eine Schaltfläche. Die neue Eskalations- und Erinnerungszeit kann unabhängig vom Tickettyp frei eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Neue Ticket-Stati&amp;lt;/span&amp;gt;&lt;br /&gt;
:Implementierung neuer Ticket-Stati für&lt;br /&gt;
:*Warte auf Kunden-Antwort&amp;lt;br&amp;gt;&amp;quot;Warte auf Kunden-Antwort&amp;quot; ist ein Ticket-Status, der die Zeitmessung für Eskalations- und Erinnerungszeiten pausieren lässt. &lt;br /&gt;
:*Warte auf Wiedervorlage&amp;lt;br&amp;gt;&amp;quot;Warte auf Wiedervorlage&amp;quot; ist ein Ticket-Status, bei dem die Zeitmessung für Eskalations- und Erinnerungszeiten weiterläuft.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Adresse in der Browseradressleiste nach Logout auf Standard-URL des Ticketsystems zurücksetzen.&amp;lt;/span&amp;gt;&lt;br /&gt;
:Sonst kann es vorkommen, dass nach dem Aufruf eines Tickets über eine URL mit der ID als Parameter trotz Logout das Ticket immer wieder aufgerufen wird. Der Nutzer sollte hier direkt zur Übersichtsseite gelangen.&lt;br /&gt;
&lt;br /&gt;
==Milestone 11 - Juli 2011==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Technische Implementierung des Multi-Accordion Layout-Managers für die rechte Spalte.&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Erweiterung der Konfiguration der arbeitsfreien Tage&amp;lt;/span&amp;gt;&lt;br /&gt;
:Es sollten auch eigene relative Arbeitstage konfiguriert werden können&lt;br /&gt;
:Eigene arbeitsfreie Tage sollen nachträglich in der Tabelle editiert werden können.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;gelesen-Flag für Ticket&amp;lt;/span&amp;gt;&lt;br /&gt;
:neue Tickets im eigenen Eingang werden mit Symbol in separater Spalte und fett als ungelesen gekennzeichnet.&lt;br /&gt;
:Tickets werden automatisch als gelesen gekennzeichnet, wenn man sie öffnet.&lt;br /&gt;
:Wenn ein anderer Nutzer eine Notiz anfügt, wird das gelesen-Flag zurückgesetzt und der Besitzer des Tickets per Mail benachrichtigt.&lt;br /&gt;
:''Anm.: Das gelesen-Flag ist ausschließlich zur Identifikation neuer Tickets im eigenen Eingang vorgesehen und kann nicht zurückgesetzt werden. Eine Prioritätenverwaltung sollte über die Prioritäteneigenschaften des Tickets erfolgen.''&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;allgemeine Favoritenverwaltung&amp;lt;/span&amp;gt;&lt;br /&gt;
:Favoriten sind nutzerbezogene Listen von Elementen. Die Pflege von Favoriten erfolgt individuell durch jedem Nutzer, eine zentrale Bereitstellung von Favoriten ist nicht vorgesehen.&lt;br /&gt;
:In InfoTicket handelt es sich bei den Favoriten um ausgewählte Weiterleitungsempfänger, die im Weiterleitungsdialog gesondert zur Auswahl angeboten werden.&lt;br /&gt;
:Die Verwaltung der Favoriten erfolgt in InfoTicket innerhalb des Weiterleiten-Dialoges. Favoriten werden in Gruppen verwaltet, von denen folgende vorgesehen sind:&lt;br /&gt;
:*Historie&amp;lt;br&amp;gt;Liste der zuletzt verwendeten Weiterleitungsempfänger, chronologisch sortiert&lt;br /&gt;
:*Häufig genutzt&amp;lt;br&amp;gt;Liste der Weiterleitungsempfänger an die am häufigsten ein Ticket weitergeleitet wurde, sortiert nach Häufigkeit&lt;br /&gt;
:*Lesezeichen&amp;lt;br&amp;gt;individuell pflegbare Liste von Weiterleitungsempfängern, alphabetisch sortiert nach Nachnahme. Hinzugefügt werden Empfänger, indem sie im Weiterleitungs-Dialog markiert werden. Gelöscht werden sie über die löschen-Funktion (rechte Maustaste bzw. Auswahl und &amp;quot;Entf&amp;quot;-Taste).&lt;br /&gt;
:*Suchergebnisse&amp;lt;br&amp;gt;Beliebig viele Listen, deren Inhalt das Ergebnis eine Suche ist, alphabetisch dortiert nach nachnahme. Hinzugefügt werden Suchergebnisse über die Suchen-Funktion im Weiterleiten-Dialog. Einzelne Empfänger können nicht aus dem Suchergebnis entfernt werden. Listen können umbenannt und über die löschen-Funktion entfernt werden.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Drag and Drop für Weiterleitungen über die rechte Spalte&amp;lt;/span&amp;gt;&lt;br /&gt;
:In der Übersichtsseite wird in die rechte Spalte eine Schnell-Weiterleiten-Funktion eingebaut über die aus der Liste von Tickets ein oder mehrere Tickets per Drag and Drop an einen Empfänger weitergeleitet werden können. Über einen Popup-Dialog kann der Weiterleitung eine Notiz hinzugefügt werden. Bei Mehrfach-Weiterleitungen erhalten alle Tickets die gleiche Notiz.&lt;br /&gt;
:Die aufgelisteten Weiterleitungs-Empfänger sind Nutzer einer in der Box auswählbaren Favoritengruppe&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;erweiterter Weiterleiten-Auswahl-Dialog&amp;lt;/span&amp;gt;&lt;br /&gt;
:Der Standard-Auswahldialog wird erweitert um:&lt;br /&gt;
:*Suchfunktion&lt;br /&gt;
:*Favoritenliste&lt;br /&gt;
:*verschiedene Ansichten&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Textvorlagen auswählen , erstellen, löschen&amp;lt;/span&amp;gt;&lt;br /&gt;
:Textvorlagen werden in der rechten Spalte der Ticket-Detaildarstellung angeboten.&lt;br /&gt;
:Über einen Dialog mit WYSIWYG-Editor kann eine Textvorlage erstellt oder bearbeitet werden.&lt;br /&gt;
:Textvorlagen lassen sich über die rechte Maustaste und Auswahldialog löschen oder bearbeiten.&lt;br /&gt;
:Textvorlagen werden per Doppelklick an die aktive Cursorposition des Notiz-Feldes eingefügt.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Datenschutz&amp;lt;/span&amp;gt;&lt;br /&gt;
:Erweiterung der Funktion nach der Personendatensätze gelöscht werden, wenn kein offenes Ticket mehr auf einen Datensatz verweist um einen konfigurierbaren zeitlichen Versatz. (Kontakte werden z.B. erst 3 Monate nachdem das letzte Ticket geschlossen wird, gelöscht.)&lt;br /&gt;
&lt;br /&gt;
==Milestone 12 - Oktober 2011 ==&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Unvollständig-Funktion&amp;lt;/span&amp;gt;&lt;br /&gt;
:Die Unvollständig-Funktion soll über das Ticketing-System abgedeckt werden.&lt;br /&gt;
:*Unvollständigkeitsmeldung als Ticket verfassen.&lt;br /&gt;
:*Den Button &amp;quot;Unvollständig&amp;quot; auf der rechten Seite in der Oberfläche von CityCall115 entfernen, wenn ein Unvollständig-Ticket erstellt werden kann.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;CityCall115&amp;lt;/span&amp;gt;&lt;br /&gt;
:Der Betreff eines Tickets kann beim Anlegen durch den Agenten optional um Zusatzinformationen ergänzt werden.&lt;br /&gt;
:Funktion zur Ticket-Recherche und zum Anfügen von Notizen für Agenten.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Anpassung von Eskalationszeiten nach Ticketstatusänderung&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestone 13 - November 2011 ==&lt;br /&gt;
&lt;br /&gt;
;Code Review / Code Optimierung&lt;br /&gt;
: Umstellung auf ExtJS 4&lt;br /&gt;
&lt;br /&gt;
;Agenten (Absender des Tickets)&lt;br /&gt;
:Alle Agenten müssen in das InfoTicket-System synchronisiert werden.&lt;br /&gt;
&lt;br /&gt;
;Statistik über Tickets&lt;br /&gt;
:Statistik-Angaben&lt;br /&gt;
:*Anzahl an eskalierten Tickets in einem Zeitraum.&lt;br /&gt;
:*Anzahl an aktiven Nutzern&lt;br /&gt;
:*Anzahl an inaktiven Nutzern (keine Ticketbearbeitung innerhalb der letzten paar Monate)&lt;br /&gt;
:*Anzahl an registrierten Nutzern&lt;br /&gt;
:*Anzahl an Bürgerdatensätzen&lt;br /&gt;
:*Längste Ticketbearbeitungsdauer&lt;br /&gt;
:*Kürzeste Ticketbearbeitungsdauer&lt;br /&gt;
:*Durchschnittliche Ticketbearbeitungsdauer&lt;br /&gt;
:*Anzahl offener Tickets&lt;br /&gt;
:*Anzahl eskalierter Tickets&lt;br /&gt;
:*Anzahl der Tickets pro zugeordneter Diensleistung/Organisationseinheit innerhalb eines wählbaren Zeitraums.&lt;br /&gt;
&lt;br /&gt;
;Statistik im Ticket&lt;br /&gt;
:kurze Statistik-Angaben zum Ticket in der rechten Spalte&lt;br /&gt;
:*Anzahl an Eskalationen&lt;br /&gt;
:*Anzahl an Weiterleitungen&lt;br /&gt;
&lt;br /&gt;
==Milestone 14==&lt;br /&gt;
&lt;br /&gt;
;Ticket-id soll ohne Typ und Mandanten-Kennung verwendet werden&lt;br /&gt;
:Suchabfrage muss diese ID schon so zurückliefern (oder per JavaScript beschneiden)&lt;br /&gt;
:Alle RPC-Funktionen des TicketSystems müssen die ID in dem neuen Format lesen können und auch so zurück liefern.&lt;br /&gt;
&lt;br /&gt;
;Mail-Gateway&lt;br /&gt;
:Mailversand:&lt;br /&gt;
:*Als Antwort&lt;br /&gt;
:*Als Weiterleitung an Extern&lt;br /&gt;
:*Konfigurationsmöglichkeit für einen zentralen Footer, der durch Variablen Nutzerdaten einfügen kann (Name, Vorname, Abteilung, …)&lt;br /&gt;
&lt;br /&gt;
:Mailempfang:&lt;br /&gt;
:*E-Mail als Ticket (siehe altes Dokument)&lt;br /&gt;
:*E-Mail als externe Nachricht am Ticket&lt;br /&gt;
:*E-Mail als Antwort für Weiterleitung an Extern&lt;br /&gt;
&lt;br /&gt;
;Integration der D115 Meldungstypen (Empfang und Bearbeitung)&lt;br /&gt;
&lt;br /&gt;
==Milestone 15==&lt;br /&gt;
&lt;br /&gt;
;Formular-Service&lt;br /&gt;
:Erstellung von Benachrichtigung über einen Dienst, der die Formulardaten auswertet und pdf und/oder xml Dateien erstellt und je nach Konfiguration eine Mail oder ein Ticket erstellt.&lt;br /&gt;
&lt;br /&gt;
;GUI Nutzerverwaltung / Rechtevergabe&lt;br /&gt;
:Neues GUI, als Prototyp für eine Applikation auf Basis der IES Nutzerverwaltung. Die technischen Möglichkeiten des IES / InfoSite bleiben bis auf die obige Erweiterung erhalten und werden durch das neue GUI bedient. Ggf. sind Erweiterungen nötig!?&lt;br /&gt;
:Die Nutzerliste im Nutzerpool enthält direkte Hinweise auf die zugewiesenen Rollen des einzelnen Nutzers.&lt;br /&gt;
&lt;br /&gt;
==Milestone X==&lt;br /&gt;
&lt;br /&gt;
;Subtickets&lt;br /&gt;
&lt;br /&gt;
;Workflow:&lt;br /&gt;
;:Tickets können durch ihre Definition eine Abfolge von Nutzer(-gruppen) enthalten, die durch eine „Weiter“ und „Zurück“ Navigation durchlaufen werden.&lt;br /&gt;
&lt;br /&gt;
;erweiterte Suchfunktion&lt;br /&gt;
:muss noch definiert werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5598</id>
		<title>GVP - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5598"/>
		<updated>2011-07-28T14:10:29Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 1 - bis Ende September 2011 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ziel des GVP-Moduls ist es alle nötigen Daten zur Erstellung eines Geschäftsverteilungsplans zu erfassen und zu verwalten. Die Ausgabe der Daten erfolgt als strukturierte XML-Daten und ggf. auch als in sich geschlossene HTML-Ausgabe (Mini-Website) für die Nutzung zu Recherchezwecken per Web-Browser. Dabei greift das Modul auf bestehende interne und externe Strukturen aus dem Basisprodukt CityGov zurück. Ergänzend sind weitere Funktionen denkbar, die auch auf den in CityGov und anderen Produkten und Modulen genutzten Datenbestand zurückwirken können.&lt;br /&gt;
&lt;br /&gt;
Neben der Wiedergabe eines aktuellen Datenbestandes kennt das Modul drei grundlegend eigenständig behandelte Datenstände. Dies ermöglicht es der Anforderung nach einem aktuell gültigen Stand (genehmigt), einem aktuell existierenden Zustand (gelebt) und einem oder mehreren Planungsständen innerhalb eines Systems nachzukommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Milestone 1 - bis Ende September 2011  ==&lt;br /&gt;
&lt;br /&gt;
* Benutzeroberfläche zur Erstellung, Bearbeitung und Visualisierung von Geschäftsverteilungsplänen&lt;br /&gt;
** In diesem Milestone sollen nur die Grund-Funktionalitäten enthalten sein. Erzeugen von Reports, Export der Stände nach CityGov, usw. sind hier noch nicht enthalten. Mit diesem Stand soll überprüft werden, ob die Art der Applikation den Anforderungen entspricht. &lt;br /&gt;
&lt;br /&gt;
* Funktionsumfang &lt;br /&gt;
** der &amp;quot;gelebte&amp;quot; Stand muss nicht angelegt werden, er ist immer verfügbar (wenn Rechte vorhanden) und spiegelt den aktuellen Stand in CityGov wieder. Dieser Stand ist nur begrenzt über das GVP-Modul editierbar (solange CityGov nicht das datenführende System ist).&lt;br /&gt;
*** Nur Aufgabenbereiche können editiert werden.&lt;br /&gt;
*** Die Struktur  des gelebten Standes kann nicht geändert werden.&lt;br /&gt;
*** Die Stammdaten wie Name, Beschreibung, Adressdaten, etc., die bereits in CityGov existieren können nicht geändert werden.&lt;br /&gt;
*** Neue Organisationseinheiten können nicht angelegt werden.&lt;br /&gt;
*** Organisationseinheiten können nicht gelöscht werden.&lt;br /&gt;
** Aus dem &amp;quot;gelebten&amp;quot; Stand kann ein &amp;quot;genehmigter&amp;quot; Stand erzeugt werden. Dieser Stand kann nicht mehr geändert werden.&lt;br /&gt;
** Neue Stände können durch kopieren eines existierenden Standes neu angelegt werden. &lt;br /&gt;
** In einem angelegtem Stand können Organisationseinheiten über die Baumansicht angelegt, verschoben und gelöscht werden (Drag&amp;amp;amp;Drop und Context-Menü) &lt;br /&gt;
** Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Blatt'-Reiter angesehen werden.&lt;br /&gt;
*** Über den Blatt-Reiter wird die Organisationseinheit mit den eingetragenen Daten dargestellt. Die Ansicht entspricht der Darstellung so wie sie später auch exportiert werden soll.&lt;br /&gt;
** Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Bearbeitung'-Reiter bearbeitet werden. (Stammdaten, Aufgabenbereiche)&lt;br /&gt;
** Die Daten aller Stände werden im Reporitory des Sitepark IES abgespeichert.&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - bis Ende Oktober 2011 (abhängig vom Ergebnis der Auswertung)==&lt;br /&gt;
*;Feedback-Auswertung des Saarlandes - Erweiterung der Funktionalität&lt;br /&gt;
&lt;br /&gt;
:Zusammen mit dem Saarland soll überprüft werden:&lt;br /&gt;
:- welche Anforderungen noch fehlen und welche Funktionen überflüssig oder geändert werden müssen.&lt;br /&gt;
:- Usability der Applikation überprüfen und anpassen&lt;br /&gt;
:- Design anpassen&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - bis Mitte November 2011==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als XML-Daten&lt;br /&gt;
&lt;br /&gt;
==Milestone 4==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als in sich geschlossene HTML-Site&lt;br /&gt;
&lt;br /&gt;
:Hier ist zu prüfen, ob dies wirklich notwendig ist, da über die Benutzeroberfläche des GVP-Moduls diese Ausgabe im Prinzip schon existiert.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als PDF-Dokument&lt;br /&gt;
&lt;br /&gt;
==Milestone 6==&lt;br /&gt;
*;Überführung eines Geschäftsverteilungsplans nach CityGov.&lt;br /&gt;
&lt;br /&gt;
*;Stände finalisieren und archivieren.&lt;br /&gt;
&lt;br /&gt;
:Die Organisationsstruktur von CityGov im Saarland wird über den Z-Finder Import bestimmt. Die Überführung eines Geschäftsverteilungsplans nach CityGov macht nur Sinn, wenn CityGov für die Struktur das führende System ist. Diese würde bedeuten, das zunächst ein Z-Finder Export implementiert werden muss, der den Import ablöst.&lt;br /&gt;
:Organisationseinheiten werden auch aus dem LDAP-System und ACUSTIG in CityGov importiert. Dies wäre dann auch nicht mehr möglich.&lt;br /&gt;
:Wenn weiterhin Daten aus F-Finder, LDAP und ACUSTIG importiert werden sollen (Mitarbeiter und Produkte) muss überlegt werden, wie das dann realisiert werden soll (Behörden-Schlüssel).&lt;br /&gt;
&lt;br /&gt;
==Milestone 7==&lt;br /&gt;
*;Bearbeitung der Stammdaten und Aufgabenbereiche innerhalb von CityGov für den gelebten Stand.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5597</id>
		<title>GVP - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5597"/>
		<updated>2011-07-28T14:09:12Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 1 - bis Ende September 2011 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ziel des GVP-Moduls ist es alle nötigen Daten zur Erstellung eines Geschäftsverteilungsplans zu erfassen und zu verwalten. Die Ausgabe der Daten erfolgt als strukturierte XML-Daten und ggf. auch als in sich geschlossene HTML-Ausgabe (Mini-Website) für die Nutzung zu Recherchezwecken per Web-Browser. Dabei greift das Modul auf bestehende interne und externe Strukturen aus dem Basisprodukt CityGov zurück. Ergänzend sind weitere Funktionen denkbar, die auch auf den in CityGov und anderen Produkten und Modulen genutzten Datenbestand zurückwirken können.&lt;br /&gt;
&lt;br /&gt;
Neben der Wiedergabe eines aktuellen Datenbestandes kennt das Modul drei grundlegend eigenständig behandelte Datenstände. Dies ermöglicht es der Anforderung nach einem aktuell gültigen Stand (genehmigt), einem aktuell existierenden Zustand (gelebt) und einem oder mehreren Planungsständen innerhalb eines Systems nachzukommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Milestone 1 - bis Ende September 2011  ==&lt;br /&gt;
&lt;br /&gt;
* Benutzeroberfläche zur Erstellung, Bearbeitung und Visualisierung von Geschäftsverteilungsplänen&lt;br /&gt;
** In diesem Milestone sollen nur die Grund-Funktionalitäten enthalten sein. Erzeugen von Reports, Export der Stände nach CityGov, usw. sind hier noch nicht enthalten. Mit diesem Stand soll überprüft werden, ob die Art der Applikation den Anforderungen entspricht. &lt;br /&gt;
&lt;br /&gt;
* Funktionsumfang &lt;br /&gt;
** der &amp;quot;gelebte&amp;quot; Stand muss nicht angelegt werden, er ist immer verfügbar (wenn Rechte vorhanden) und spiegelt den aktuellen Stand in CityGov wieder. Dieser Stand ist nur begrenzt über das GVP-Modul editierbar (solange CityGov nicht das datenführende System ist).&lt;br /&gt;
*** Nur Aufgabenbereiche können editiert werden.&lt;br /&gt;
*** Die Struktur  des gelebten Standes kann nicht geändert werden.&lt;br /&gt;
*** Die Stammdaten wie Name, Beschreibung, Adressdaten, ... die bereits in CityGov existieren können nicht geändert werden.&lt;br /&gt;
*** Neue Organisationseinheiten können nicht angelegt werden.&lt;br /&gt;
*** Organisationseinheiten können nicht gelöscht werden.&lt;br /&gt;
** Aus dem &amp;quot;gelebten&amp;quot; Stand kann ein &amp;quot;genehmigter&amp;quot; Stand erzeugt werden. Dieser Stand kann nicht mehr geändert werden.&lt;br /&gt;
** Neue Stände können durch kopieren eines existierenden Standes neu angelegt werden. &lt;br /&gt;
** In einem angelegtem Stand können Organisationseinheiten über die Baumansicht angelegt, verschoben und gelöscht werden (Drag&amp;amp;amp;Drop und Context-Menü) &lt;br /&gt;
** Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Blatt'-Reiter angesehen werden.&lt;br /&gt;
*** Über den Blatt-Reiter wird die Organisationseinheit mit den eingetragenen Daten dargestellt. Die Ansicht entspricht der Darstellung so wie sie später auch exportiert werden soll.&lt;br /&gt;
** Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Bearbeitung'-Reiter bearbeitet werden. (Stammdaten, Aufgabenbereiche)&lt;br /&gt;
** Die Daten aller Stände werden im Reporitory des Sitepark IES abgespeichert.&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - bis Ende Oktober 2011 (abhängig vom Ergebnis der Auswertung)==&lt;br /&gt;
*;Feedback-Auswertung des Saarlandes - Erweiterung der Funktionalität&lt;br /&gt;
&lt;br /&gt;
:Zusammen mit dem Saarland soll überprüft werden:&lt;br /&gt;
:- welche Anforderungen noch fehlen und welche Funktionen überflüssig oder geändert werden müssen.&lt;br /&gt;
:- Usability der Applikation überprüfen und anpassen&lt;br /&gt;
:- Design anpassen&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - bis Mitte November 2011==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als XML-Daten&lt;br /&gt;
&lt;br /&gt;
==Milestone 4==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als in sich geschlossene HTML-Site&lt;br /&gt;
&lt;br /&gt;
:Hier ist zu prüfen, ob dies wirklich notwendig ist, da über die Benutzeroberfläche des GVP-Moduls diese Ausgabe im Prinzip schon existiert.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als PDF-Dokument&lt;br /&gt;
&lt;br /&gt;
==Milestone 6==&lt;br /&gt;
*;Überführung eines Geschäftsverteilungsplans nach CityGov.&lt;br /&gt;
&lt;br /&gt;
*;Stände finalisieren und archivieren.&lt;br /&gt;
&lt;br /&gt;
:Die Organisationsstruktur von CityGov im Saarland wird über den Z-Finder Import bestimmt. Die Überführung eines Geschäftsverteilungsplans nach CityGov macht nur Sinn, wenn CityGov für die Struktur das führende System ist. Diese würde bedeuten, das zunächst ein Z-Finder Export implementiert werden muss, der den Import ablöst.&lt;br /&gt;
:Organisationseinheiten werden auch aus dem LDAP-System und ACUSTIG in CityGov importiert. Dies wäre dann auch nicht mehr möglich.&lt;br /&gt;
:Wenn weiterhin Daten aus F-Finder, LDAP und ACUSTIG importiert werden sollen (Mitarbeiter und Produkte) muss überlegt werden, wie das dann realisiert werden soll (Behörden-Schlüssel).&lt;br /&gt;
&lt;br /&gt;
==Milestone 7==&lt;br /&gt;
*;Bearbeitung der Stammdaten und Aufgabenbereiche innerhalb von CityGov für den gelebten Stand.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5592</id>
		<title>GVP - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5592"/>
		<updated>2011-07-27T10:04:33Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ziel des GVP-Moduls ist es alle nötigen Daten zur Erstellung eines Geschäftsverteilungsplans zu erfassen und zu verwalten. Die Ausgabe der Daten erfolgt als strukturierte XML-Daten und ggf. auch als in sich geschlossene HTML-Ausgabe (Mini-Website) für die Nutzung zu Recherchezwecken per Web-Browser. Dabei greift das Modul auf bestehende interne und externe Strukturen aus dem Basisprodukt CityGov zurück. Ergänzend sind weitere Funktionen denkbar, die auch auf den in CityGov und anderen Produkten und Modulen genutzten Datenbestand zurückwirken können.&lt;br /&gt;
&lt;br /&gt;
Neben der Wiedergabe eines aktuellen Datenbestandes kennt das Modul drei grundlegend eigenständig behandelte Datenstände. Dies ermöglicht es der Anforderung nach einem aktuell gültigen Stand (genehmigt), einem aktuell existierenden Zustand (gelebt) und einem oder mehreren Planungsständen innerhalb eines Systems nachzukommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Milestone 1 - bis Ende September 2011  ==&lt;br /&gt;
&lt;br /&gt;
*;Benutzeroberfläche zur Erstellung, Bearbeitung und Visualisierung von Geschäftsverteilungsplänen&lt;br /&gt;
:In diesem Milestone sollen nur die Grund-Funktionalitäten enthalten sein. Erzeugen von Reports, Export der Stände nach CityGov, usw. sind hier noch nicht enthalten. Mit diesem Stand soll überprüft werden, ob die Art der Applikation den Anforderungen entspricht. &lt;br /&gt;
&lt;br /&gt;
*;Funktionsumfang &lt;br /&gt;
:- der &amp;quot;gelebte&amp;quot; Stand muss nicht angelegt werden, er ist immer verfügbar (wenn Rechte vorhanden) und spiegelt den aktuellen Stand in CityGov wieder. Dieser Stand ist nicht über das GVP-Modul editierbar. &lt;br /&gt;
:- Neue Stände können durch kopieren eines existierenden Standes neu angelegt werden. &lt;br /&gt;
:- In einem angelegtem Stand können Organisationseinheiten über die Baumansicht angelegt, verschoben und gelöscht werden (Drag&amp;amp;amp;Drop und Context-Menü) &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Blatt'-Tab angesehen werden. &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Bearbeitung'-Tab bearbeitet werden. (Stammdaten, Aufgabenbereiche)&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - bis Ende Oktober 2011 (abhängig vom Ergebnis der Auswertung)==&lt;br /&gt;
*;Feedback-Auswertung des Saarlandes - Erweiterung der Funktionalität&lt;br /&gt;
&lt;br /&gt;
:Zusammen mit dem Saarland soll überprüft werden:&lt;br /&gt;
:- welche Anforderungen noch fehlen und welche Funktionen überflüssig oder geändert werden müssen.&lt;br /&gt;
:- Usability der Applikation überprüfen und anpassen&lt;br /&gt;
:- Design anpassen&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - bis Mitte November 2011==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als XML-Daten&lt;br /&gt;
&lt;br /&gt;
==Milestone 4==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als in sich geschlossene HTML-Site&lt;br /&gt;
&lt;br /&gt;
:Hier ist zu prüfen, ob dies wirklich notwendig ist, da über die Benutzeroberfläche des GVP-Moduls diese Ausgabe im Prinzip schon existiert.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als PDF-Dokument&lt;br /&gt;
&lt;br /&gt;
==Milestone 6==&lt;br /&gt;
*;Überführung eines Geschäftsverteilungsplans nach CityGov.&lt;br /&gt;
&lt;br /&gt;
*;Stände finalisieren und archivieren.&lt;br /&gt;
&lt;br /&gt;
:Die Organisationsstruktur von CityGov im Saarland wird über den Z-Finder Import bestimmt. Die Überführung eines Geschäftsverteilungsplans nach CityGov macht nur Sinn, wenn CityGov für die Struktur das führende System ist. Diese würde bedeuten, das zunächst ein Z-Finder Export implementiert werden muss, der den Import ablöst.&lt;br /&gt;
:Organisationseinheiten werden auch aus dem LDAP-System und ACUSTIG in CityGov importiert. Dies wäre dann auch nicht mehr möglich.&lt;br /&gt;
:Wenn weiterhin Daten aus F-Finder, LDAP und ACUSTIG importiert werden sollen (Mitarbeiter und Produkte) muss überlegt werden, wie das dann realisiert werden soll (Behörden-Schlüssel).&lt;br /&gt;
&lt;br /&gt;
==Milestone 7==&lt;br /&gt;
*;Bearbeitung der Stammdaten und Aufgabenbereiche innerhalb von CityGov für den gelebten Stand.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5591</id>
		<title>GVP - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5591"/>
		<updated>2011-07-27T10:03:23Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 1 - bis Ende September 2011 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ziel des GVP-Moduls ist es alle nötigen Daten zur Erstellung eines Geschäftsverteilungsplans zu erfassen und zu verwalten. Die Ausgabe der Daten erfolgt als strukturierte XML-Daten und ggf. auch als in sich geschlossene HTML-Ausgabe (Mini-Website) für die Nutzung zu Recherchezwecken per Web-Browser. Dabei greift das Modul auf bestehende interne und externe Strukturen aus dem Basisprodukt CityGov zurück. Ergänzend sind weitere Funktionen denkbar, die auch auf den in CityGov und anderen Produkten und Modulen genutzten Datenbestand zurückwirken können.&lt;br /&gt;
&lt;br /&gt;
Neben der Wiedergabe eines aktuellen Datenbestandes kennt das Modul drei grundlegend eigenständig behandelte Datenstände. Dies ermöglicht es der Anforderung nach einem aktuell gültigen Stand (genehmigt), einem aktuell existierenden Zustand (gelebt) und einem oder mehreren Planungsständen innerhalb eines Systems nachzukommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Milestone 1 - bis Ende September 2011  ==&lt;br /&gt;
&lt;br /&gt;
*;Benutzeroberfläche zur Erstellung, Bearbeitung und Visualisierung von Geschäftsverteilungsplänen&lt;br /&gt;
:In diesem Milestone sollen nur die Grund-Funktionalitäten enthalten sein. Erzeugen von Reports, Export der Stände nach CityGov, usw. sind hier noch nicht enthalten. Mit diesem Stand soll überprüft werden, ob die Art der Applikation den Anforderungen entspricht. &lt;br /&gt;
&lt;br /&gt;
*;Funktionsumfang &lt;br /&gt;
:- der &amp;quot;gelebte&amp;quot; Stand muss nicht angelegt werden, er ist immer verfügbar (wenn Rechte vorhanden) und spiegelt den aktuellen Stand in CityGov wieder. Dieser Stand ist nicht über das GVP-Modul editierbar. &lt;br /&gt;
:- Neue Stände können durch kopieren eines existierenden Standes neu angelegt werden. &lt;br /&gt;
:- In einem angelegtem Stand können Organisationseinheiten über die Baumansicht angelegt, verschoben und gelöscht werden (Drag&amp;amp;amp;Drop und Context-Menü) &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Blatt'-Tab angesehen werden. &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Bearbeitung'-Tab bearbeitet werden. (Stammdaten, Aufgabenbereiche)&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - bis Ende Oktober 2011 (abhängig vom Ergebnis der Auswertung)==&lt;br /&gt;
*;Feedback-Auswertung des Saarlandes - Erweiterung der Funktionalität&lt;br /&gt;
&lt;br /&gt;
:Zusammen mit dem Saarland soll überprüft werden:&lt;br /&gt;
:- welche Anforderungen noch fehlen und welche Funktionen überflüssig oder geändert werden müssen.&lt;br /&gt;
:- Usability der Applikation überprüfen und anpassen&lt;br /&gt;
:- Design anpassen&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - bis Mitte November 2011==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als XML-Daten&lt;br /&gt;
&lt;br /&gt;
==Milestone 4==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als in sich geschlossene HTML-Site&lt;br /&gt;
&lt;br /&gt;
:Hier ist zu prüfen, ob dies wirklich notwendig ist, da über die Benutzeroberfläche des GVP-Moduls diese Ausgabe im Prinzip schon existiert.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als PDF-Dokument&lt;br /&gt;
&lt;br /&gt;
==Milestone 6==&lt;br /&gt;
*;Überführung eines Geschäftsverteilungsplans nach CityGov.&lt;br /&gt;
&lt;br /&gt;
*;Stände finalisieren und archivieren.&lt;br /&gt;
&lt;br /&gt;
:Die Organisationsstruktur von CityGov im Saarland wird über den Z-Finder Import bestimmt. Die Überführung eines Geschäftsverteilungsplans nach CityGov macht nur Sinn, wenn CityGov für die Struktur das führende System ist. Diese würde bedeuten, das zunächst ein Z-Finder Export implementiert werden muss, der den Import ablöst.&lt;br /&gt;
:Organisationseinheiten werden auch aus dem LDAP-System und ACUSTIG in CityGov importiert. Dies wäre dann auch nicht mehr möglich.&lt;br /&gt;
:Wenn weiterhin Daten aus F-Finder, LDAP und ACUSTIG importiert werden sollen (Mitarbeiter und Produkte) muss überlegt werden, wie das dann realisiert werden soll (Behörden-Schlüssel).&lt;br /&gt;
&lt;br /&gt;
==Milestone 7==&lt;br /&gt;
*;Bearbeitung der Stammdaten und Aufgabenbereiche innerhalb von CityGov für den gelebten Stand&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5590</id>
		<title>GVP - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5590"/>
		<updated>2011-07-27T09:50:53Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Milestone 1 - bis Ende September 2011  ==&lt;br /&gt;
&lt;br /&gt;
*;Benutzeroberfläche zur Erstellung, Bearbeitung und Visualisierung von Geschäftsverteilungsplänen&lt;br /&gt;
:In diesem Milestone sollen nur die Grund-Funktionalitäten enthalten sein. Erzeugen von Reports, Export der Stände nach CityGov, usw. sind hier noch nicht enthalten. Mit diesem Stand soll überprüft werden, ob die Art der Applikation den Anforderungen entspricht. &lt;br /&gt;
&lt;br /&gt;
*;Funktionsumfang &lt;br /&gt;
:- der &amp;quot;gelebte&amp;quot; Stand muss nicht angelegt werden, er ist immer verfügbar (wenn Rechte vorhanden) und spiegelt den aktuellen Stand in CityGov wieder. Dieser Stand ist nicht über das GVP-Modul editierbar. &lt;br /&gt;
:- Neue Stände können durch kopieren eines existierenden Standes neu angelegt werden. &lt;br /&gt;
:- In einem angelegtem Stand können Organisationseinheiten über die Baumansicht angelegt, verschoben und gelöscht werden (Drag&amp;amp;amp;Drop und Context-Menü) &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Blatt'-Tab angesehen werden. &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Bearbeitung'-Tab bearbeitet werden. (Stammdaten, Aufgabenbereiche)&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - bis Ende Oktober 2011 (abhängig vom Ergebnis der Auswertung)==&lt;br /&gt;
*;Feedback-Auswertung des Saarlandes - Erweiterung der Funktionalität&lt;br /&gt;
&lt;br /&gt;
:Zusammen mit dem Saarland soll überprüft werden:&lt;br /&gt;
:- welche Anforderungen noch fehlen und welche Funktionen überflüssig oder geändert werden müssen.&lt;br /&gt;
:- Usability der Applikation überprüfen und anpassen&lt;br /&gt;
:- Design anpassen&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - bis Mitte November 2011==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als XML-Daten&lt;br /&gt;
&lt;br /&gt;
==Milestone 4==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als in sich geschlossene HTML-Site&lt;br /&gt;
&lt;br /&gt;
:Hier ist zu prüfen, ob dies wirklich notwendig ist, da über die Benutzeroberfläche des GVP-Moduls diese Ausgabe im Prinzip schon existiert.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als PDF-Dokument&lt;br /&gt;
&lt;br /&gt;
==Milestone 6==&lt;br /&gt;
*;Überführung eines Geschäftsverteilungsplans nach CityGov.&lt;br /&gt;
&lt;br /&gt;
*;Stände finalisieren und archivieren.&lt;br /&gt;
&lt;br /&gt;
:Die Organisationsstruktur von CityGov im Saarland wird über den Z-Finder Import bestimmt. Die Überführung eines Geschäftsverteilungsplans nach CityGov macht nur Sinn, wenn CityGov für die Struktur das führende System ist. Diese würde bedeuten, das zunächst ein Z-Finder Export implementiert werden muss, der den Import ablöst.&lt;br /&gt;
:Organisationseinheiten werden auch aus dem LDAP-System und ACUSTIG in CityGov importiert. Dies wäre dann auch nicht mehr möglich.&lt;br /&gt;
:Wenn weiterhin Daten aus F-Finder, LDAP und ACUSTIG importiert werden sollen (Mitarbeiter und Produkte) muss überlegt werden, wie das dann realisiert werden soll (Behörden-Schlüssel).&lt;br /&gt;
&lt;br /&gt;
==Milestone 7==&lt;br /&gt;
*;Bearbeitung der Stammdaten und Aufgabenbereiche innerhalb von CityGov für den gelebten Stand&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5589</id>
		<title>GVP - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5589"/>
		<updated>2011-07-27T09:29:13Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 2 - bis Ende Oktober 2011 (Abhängig vom Ergebnis der Auswertung) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Milestone 1 - bis Ende September 2011  ==&lt;br /&gt;
&lt;br /&gt;
*;Benutzeroberfläche zur Erstellung, Bearbeitung und Visualisierung von Geschäftsverteilungsplänen&lt;br /&gt;
:In diesem Milestone sollen nur die Grund-Funktionalitäten enthalten sein. Erzeugen von Reports, Export der Stände nach CityGov, usw. sind hier noch nicht enthalten. Mit diesem Stand soll überprüft werden, ob die Art der Applikation den Anforderungen entspricht. &lt;br /&gt;
&lt;br /&gt;
*;Funktionsumfang &lt;br /&gt;
:- der &amp;quot;gelebte&amp;quot; Stand muss nicht angelegt werden, er ist immer verfügbar (wenn Rechte vorhanden) und spiegelt den aktuellen Stand in CityGov wieder. Dieser Stand ist nicht über das GVP-Modul editierbar. &lt;br /&gt;
:- Neue Stände können durch kopieren eines existierenden Standes neu angelegt werden. &lt;br /&gt;
:- In einem angelegtem Stand können Organisationseinheiten über die Baumansicht angelegt, verschoben und gelöscht werden (Drag&amp;amp;amp;Drop und Context-Menü) &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Blatt'-Tab angesehen werden. &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Bearbeitung'-Tab bearbeitet werden. (Stammdaten, Aufgabenbereiche)&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - bis Ende Oktober 2011 (abhängig vom Ergebnis der Auswertung)==&lt;br /&gt;
*;Feedback-Auswertung des Saarlandes - Erweiterung der Funktionalität&lt;br /&gt;
&lt;br /&gt;
:Zusammen mit dem Saarland soll überprüft werden:&lt;br /&gt;
:- welche Anforderungen noch fehlen und welche Funktionen überflüssig oder geändert werden müssen.&lt;br /&gt;
:- Usability der Applikation überprüfen und anpassen&lt;br /&gt;
:- Design anpassen&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - bis Mitte November 2011==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als XML-Daten&lt;br /&gt;
&lt;br /&gt;
==Milestone 4==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als in sich geschlossene HTML-Site&lt;br /&gt;
&lt;br /&gt;
:Hier ist zu prüfen, ob dies wirklich notwendig ist, da über die Benutzeroberfläche des GVP-Moduls diese Ausgabe im Prinzip schon existiert.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als PDF-Dokument&lt;br /&gt;
&lt;br /&gt;
==Milestone 6==&lt;br /&gt;
*;Überführung eines Geschäftsverteilungsplans nach CityGov.&lt;br /&gt;
&lt;br /&gt;
*;Stände finalisieren und archivieren.&lt;br /&gt;
&lt;br /&gt;
:Die Organisationsstruktur von CityGov im Saarland wird über den Z-Finder Import bestimmt. Die Überführung eines Geschäftsverteilungsplans nach CityGov macht nur Sinn, wenn CityGov für die Struktur das führende System ist. Diese würde bedeuten, das zunächst ein Z-Finder Export implementiert werden muss, der den Import ablöst.&lt;br /&gt;
:Organisationseinheiten werden auch aus dem LDAP-System und ACUSTIG in CityGov importiert. Dies wäre dann auch nicht mehr möglich.&lt;br /&gt;
:Wenn weiterhin Daten aus F-Finder, LDAP und ACUSTIG importiert werden sollen (Mitarbeiter und Produkte) muss überlegt werden wie das dann realisiert werden soll (Behörden-Schlüssel).&lt;br /&gt;
&lt;br /&gt;
==Milestone 7==&lt;br /&gt;
*;Bearbeitung der Stammdaten und Aufgabenbereiche innerhalb von CityGov für den gelebten Stand&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5588</id>
		<title>GVP - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5588"/>
		<updated>2011-07-27T09:28:43Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Milestone 1 - bis Ende September 2011  ==&lt;br /&gt;
&lt;br /&gt;
*;Benutzeroberfläche zur Erstellung, Bearbeitung und Visualisierung von Geschäftsverteilungsplänen&lt;br /&gt;
:In diesem Milestone sollen nur die Grund-Funktionalitäten enthalten sein. Erzeugen von Reports, Export der Stände nach CityGov, usw. sind hier noch nicht enthalten. Mit diesem Stand soll überprüft werden, ob die Art der Applikation den Anforderungen entspricht. &lt;br /&gt;
&lt;br /&gt;
*;Funktionsumfang &lt;br /&gt;
:- der &amp;quot;gelebte&amp;quot; Stand muss nicht angelegt werden, er ist immer verfügbar (wenn Rechte vorhanden) und spiegelt den aktuellen Stand in CityGov wieder. Dieser Stand ist nicht über das GVP-Modul editierbar. &lt;br /&gt;
:- Neue Stände können durch kopieren eines existierenden Standes neu angelegt werden. &lt;br /&gt;
:- In einem angelegtem Stand können Organisationseinheiten über die Baumansicht angelegt, verschoben und gelöscht werden (Drag&amp;amp;amp;Drop und Context-Menü) &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Blatt'-Tab angesehen werden. &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Bearbeitung'-Tab bearbeitet werden. (Stammdaten, Aufgabenbereiche)&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - bis Ende Oktober 2011 (Abhängig vom Ergebnis der Auswertung)==&lt;br /&gt;
*;Feedback-Auswertung des Saarlandes - Erweiterung der Funktionalität&lt;br /&gt;
&lt;br /&gt;
:Zusammen mit dem Saarland soll überprüft werden:&lt;br /&gt;
:- welche Anforderungen noch fehlen und welche Funktionen überflüssig oder geändert werden müssen.&lt;br /&gt;
:- Usability der Applikation überprüfen und anpassen&lt;br /&gt;
:- Design anpassen&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - bis Mitte November 2011==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als XML-Daten&lt;br /&gt;
&lt;br /&gt;
==Milestone 4==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als in sich geschlossene HTML-Site&lt;br /&gt;
&lt;br /&gt;
:Hier ist zu prüfen, ob dies wirklich notwendig ist, da über die Benutzeroberfläche des GVP-Moduls diese Ausgabe im Prinzip schon existiert.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als PDF-Dokument&lt;br /&gt;
&lt;br /&gt;
==Milestone 6==&lt;br /&gt;
*;Überführung eines Geschäftsverteilungsplans nach CityGov.&lt;br /&gt;
&lt;br /&gt;
*;Stände finalisieren und archivieren.&lt;br /&gt;
&lt;br /&gt;
:Die Organisationsstruktur von CityGov im Saarland wird über den Z-Finder Import bestimmt. Die Überführung eines Geschäftsverteilungsplans nach CityGov macht nur Sinn, wenn CityGov für die Struktur das führende System ist. Diese würde bedeuten, das zunächst ein Z-Finder Export implementiert werden muss, der den Import ablöst.&lt;br /&gt;
:Organisationseinheiten werden auch aus dem LDAP-System und ACUSTIG in CityGov importiert. Dies wäre dann auch nicht mehr möglich.&lt;br /&gt;
:Wenn weiterhin Daten aus F-Finder, LDAP und ACUSTIG importiert werden sollen (Mitarbeiter und Produkte) muss überlegt werden wie das dann realisiert werden soll (Behörden-Schlüssel).&lt;br /&gt;
&lt;br /&gt;
==Milestone 7==&lt;br /&gt;
*;Bearbeitung der Stammdaten und Aufgabenbereiche innerhalb von CityGov für den gelebten Stand&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
	<entry>
		<id>https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5587</id>
		<title>GVP - Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.sitepark.com/index.php?title=GVP_-_Roadmap&amp;diff=5587"/>
		<updated>2011-07-27T09:28:22Z</updated>

		<summary type="html">&lt;p&gt;Liebold: /* Milestone 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Milestone 1 - bis Ende September 2011  ==&lt;br /&gt;
&lt;br /&gt;
*;Benutzeroberfläche zur Erstellung, Bearbeitung und Visualisierung von Geschäftsverteilungsplänen&lt;br /&gt;
:In diesem Milestone sollen nur die Grund-Funktionalitäten enthalten sein. Erzeugen von Reports, Export der Stände nach CityGov, usw. sind hier noch nicht enthalten. Mit diesem Stand soll überprüft werden, ob die Art der Applikation den Anforderungen entspricht. &lt;br /&gt;
&lt;br /&gt;
*;Funktionsumfang &lt;br /&gt;
:- der &amp;quot;gelebte&amp;quot; Stand muss nicht angelegt werden, er ist immer verfügbar (wenn Rechte vorhanden) und spiegelt den aktuellen Stand in CityGov wieder. Dieser Stand ist nicht über das GVP-Modul editierbar. &lt;br /&gt;
:- Neue Stände können durch kopieren eines existierenden Standes neu angelegt werden. &lt;br /&gt;
:- In einem angelegtem Stand können Organisationseinheiten über die Baumansicht angelegt, verschoben und gelöscht werden (Drag&amp;amp;amp;Drop und Context-Menü) &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Blatt'-Tab angesehen werden. &lt;br /&gt;
:- Eine in der Baumansicht ausgewählte Organisationseinheit kann über den 'Bearbeitung'-Tab bearbeitet werden. (Stammdaten, Aufgabenbereiche)&lt;br /&gt;
&lt;br /&gt;
==Milestone 2 - bis Ende Oktober 2011 (Abhängig vom Ergebnis der Auswertung)==&lt;br /&gt;
*;Feedback-Auswertung des Saarlandes - Erweiterung der Funktionalität&lt;br /&gt;
&lt;br /&gt;
:Zusammen mit dem Saarland soll überprüft werden:&lt;br /&gt;
:- welche Anforderungen noch fehlen und welche Funktionen überflüssig oder geändert werden müssen.&lt;br /&gt;
:- Usability der Applikation überprüfen und anpassen&lt;br /&gt;
:- Design anpassen&lt;br /&gt;
&lt;br /&gt;
==Milestone 3 - bis Mitte November 2011==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als XML-Daten&lt;br /&gt;
&lt;br /&gt;
==Milestone 4==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als in sich geschlossene HTML-Site&lt;br /&gt;
&lt;br /&gt;
:Hier ist zu prüfen, ob dies wirklich notwendig ist, da über die Benutzeroberfläche des GVP-Moduls diese Ausgabe im Prinzip schon existiert.&lt;br /&gt;
&lt;br /&gt;
==Milestone 5==&lt;br /&gt;
*;Export von Geschäftsverteilungsplänen als PDF-Dokument&lt;br /&gt;
&lt;br /&gt;
==Milestone 6==&lt;br /&gt;
*;Überführung eines Geschäftsverteilungsplans nach CityGov.&lt;br /&gt;
&lt;br /&gt;
*;Stände finalisieren und archivieren.&lt;br /&gt;
&lt;br /&gt;
:Die Organisationsstruktur von CityGov im Saarland wird über den Z-Finder Import bestimmt. Die Überführung eines Geschäftsverteilungsplans nach CityGov macht nur Sinn, wenn CityGov für die Struktur das führende System ist. Diese würde bedeuten, das zunächst ein Z-Finder Export implementiert werden muss, der den Import ablöst.&lt;br /&gt;
:Organisationseinheiten werden auch aus dem LDAP-System und ACUSTIG in CityGov importiert. Dies wäre dann auch nicht mehr möglich.&lt;br /&gt;
:Wenn weiterhin Daten aus F-Finder, LDAP und ACUSTIG importiert werden sollen (Mitarbeiter und Produkte) muss überlegt werden wie das dann realisiert werden soll (Behörden-Schlüssel).&lt;br /&gt;
&lt;br /&gt;
==Milestone 7==&lt;br /&gt;
'''Bearbeitung der Stammdaten und Aufgabenbereiche innerhalb von CityGov für den gelebten Stand'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:Partner]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liebold</name></author>
	</entry>
</feed>