<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=78.43.112.126</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=78.43.112.126"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/78.43.112.126"/>
	<updated>2026-05-06T15:23:49Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=CAO_Faktura&amp;diff=21336</id>
		<title>CAO Faktura</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=CAO_Faktura&amp;diff=21336"/>
		<updated>2015-12-16T12:05:50Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
http://wiki.cao-faktura.de/index.php/Hauptseite&lt;br /&gt;
== Mahnungen ==&lt;br /&gt;
&lt;br /&gt;
== Vorlagen für Rechnungen etc. ==&lt;br /&gt;
Bearbeitet man über den Report Builder. In den kommt man aus dem Druckdialog über die Schaltfläche bearbeiten.&lt;br /&gt;
&lt;br /&gt;
== Lokal installieren ==&lt;br /&gt;
* MySQL 4.1 installieren (gibts auf der CAO Seite zum Download)&lt;br /&gt;
* Als Service installieren wenn gewollt oder Starten&lt;br /&gt;
* Konsole Starten (im mysql programmordner)&lt;br /&gt;
* DB Kennwort in alter Version&lt;br /&gt;
 UPDATE mysql.user SET password = OLD_PASSWORD(&amp;#039;kennwort&amp;#039;) WHERE user = &amp;#039;benutzer&amp;#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
* CAO installieren&lt;br /&gt;
* CAO Admin Starten (Standarduser zu Beginn ist i.d.R. Administrator und pw sysdba )&lt;br /&gt;
&lt;br /&gt;
== Geänderte Kundenadresse ==&lt;br /&gt;
Prüfen ob die Änderung in den Verträgen ankommt (nicht der Fall Anfang 2015)&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Favicon_und_.ico_Dateien&amp;diff=21333</id>
		<title>Favicon und .ico Dateien</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Favicon_und_.ico_Dateien&amp;diff=21333"/>
		<updated>2015-12-15T12:02:13Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: Die Seite wurde neu angelegt: „Photoshop Plugin:  http://www.telegraphics.com.au/sw/“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Photoshop Plugin:&lt;br /&gt;
&lt;br /&gt;
http://www.telegraphics.com.au/sw/&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Geo-bit_csv_Importer_-_gbimporter&amp;diff=21332</id>
		<title>Geo-bit csv Importer - gbimporter</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Geo-bit_csv_Importer_-_gbimporter&amp;diff=21332"/>
		<updated>2015-12-09T15:00:27Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Nutzt den Scheduler&amp;#039;&amp;#039;&amp;#039; um CSV Dateien zu laden und die Datensätze in eine Tabelle zu speichern.&lt;br /&gt;
* Unterstützt &amp;#039;&amp;#039;&amp;#039;mehrere Konfigurationen&amp;#039;&amp;#039;&amp;#039; -&amp;gt; für jeden Import einen Datensatz anlegen. Der Scheduler Task arbeitet global.&lt;br /&gt;
* Kann Mails im Fehlerfall versenden (im Moment ist der Absender hartkodiert -&amp;gt; TODO muß in Datensatz-Konfiguration angelegt werden TODO&lt;br /&gt;
* kann geschütztes Verzeichnis mit Passwort aufrufen&lt;br /&gt;
* Erwartet in der ersten Zeile die Bezeichnungen der Felder, über das Mapping kann man bei falschen Bezeichnungen auf den richtigen Feldnamen mappen (im Beispiel z.B. instuctor auf das Feld instructor) Der letzte Parameter gibt an ob z.b. HTML zugelassen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eingesetzt in Gesundheitsregion&lt;br /&gt;
&lt;br /&gt;
Die CSV Dateien müssen &lt;br /&gt;
Mapping Funktionalität&lt;br /&gt;
&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
short|descr|simplehtml&lt;br /&gt;
descr|short|text&lt;br /&gt;
instuctor|instructor|text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konfiguration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# keine TS Konfiguration notwendig &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Geo-bit_csv_Importer_-_gbimporter&amp;diff=21331</id>
		<title>Geo-bit csv Importer - gbimporter</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Geo-bit_csv_Importer_-_gbimporter&amp;diff=21331"/>
		<updated>2015-12-09T14:59:26Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Nutzt den Scheduler&amp;#039;&amp;#039;&amp;#039; um CSV Dateien zu laden und die Datensätze in eine Tabelle zu speichern.&lt;br /&gt;
* Unterstützt mehrere Konfigurationen -&amp;gt; für jeden Import einen Datensatz anlegen. Der Scheduler Task arbeitet global.&lt;br /&gt;
* Kann Mails im Fehlerfall versenden (in)&lt;br /&gt;
* kann geschütztes Verzeichnis mit Passwort aufrufen&lt;br /&gt;
* Erwartet in der ersten Zeile die Bezeichnungen der Felder, über das Mapping kann man bei falschen Bezeichnungen auf den richtigen Feldnamen mappen (im Beispiel z.B. instuctor auf das Feld instructor) Der letzte Parameter gibt an ob z.b. HTML zugelassen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eingesetzt in Gesundheitsregion&lt;br /&gt;
&lt;br /&gt;
Die CSV Dateien müssen &lt;br /&gt;
Mapping Funktionalität&lt;br /&gt;
&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
short|descr|simplehtml&lt;br /&gt;
descr|short|text&lt;br /&gt;
instuctor|instructor|text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konfiguration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# keine TS Konfiguration notwendig &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Geo-bit_csv_Importer_-_gbimporter&amp;diff=21330</id>
		<title>Geo-bit csv Importer - gbimporter</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Geo-bit_csv_Importer_-_gbimporter&amp;diff=21330"/>
		<updated>2015-12-09T14:57:48Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Nutzt den Scheduler&amp;#039;&amp;#039;&amp;#039; um CSV Dateien zu laden und die Datensätze in eine Tabelle zu speichern.&lt;br /&gt;
* Unterstützt mehrere Konfigurationen -&amp;gt; für jeden Import einen Datensatz anlegen. Der Scheduler Task arbeitet global.&lt;br /&gt;
* Kann Mails im Fehlerfall versenden (in)&lt;br /&gt;
* kann geschütztes Verzeichnis mit Passwort aufrufen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eingesetzt in Gesundheitsregion&lt;br /&gt;
&lt;br /&gt;
Die CSV Dateien müssen &lt;br /&gt;
Mapping Funktionalität&lt;br /&gt;
&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
short|descr|simplehtml&lt;br /&gt;
descr|short|text&lt;br /&gt;
instuctor|instructor|text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konfiguration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# keine TS Konfiguration notwendig &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Wordpress_umziehen&amp;diff=21329</id>
		<title>Wordpress umziehen</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Wordpress_umziehen&amp;diff=21329"/>
		<updated>2015-12-09T14:56:02Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Quickstart */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wordpress Rechte ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wp-admin/ rekursiv 755&lt;br /&gt;
/wp-admin/index.php 644&lt;br /&gt;
/wp-includes/ rekursiv 755&lt;br /&gt;
/wp-content/ 755&lt;br /&gt;
/wp-content/themes/ rekursiv 777 wenn Editor benutzt wird, sonst 755.&lt;br /&gt;
/wp-content/plugins/ rekursiv 777 wenn automatische Installation gewünscht.&lt;br /&gt;
/wp-content/upgrade 777&lt;br /&gt;
/wp-content/uploads 777&lt;br /&gt;
/wp-content/cache bei Einsatz des WP-Super Cache Plugins 777&lt;br /&gt;
./wp-cache-config.php 777&lt;br /&gt;
/wp-content/backup/ bei Einsatz des WordPress Backup Plugins rekursiv 777&lt;br /&gt;
/wp-content/ rekursiv je nach Plugin 755 oder 777&lt;br /&gt;
Weitere Informationen für die Sicherheit von WordPress:&lt;br /&gt;
http://codex.wordpress.org/Hardening_WordPress&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Anleitung von wpde.org ==&lt;br /&gt;
=== Quickstart ===&lt;br /&gt;
* Search and Replace installieren (oder Better Search and Replace)&lt;br /&gt;
* Datenbank sichern&lt;br /&gt;
* Dateien umziehen&lt;br /&gt;
* Konfigurationsdatei (wp-config.php)&lt;br /&gt;
 define(&amp;#039;WP_SITEURL&amp;#039;, &amp;#039;http://www.deine-richtige-adresse.xyz&amp;#039;);&lt;br /&gt;
 define(&amp;#039;WP_HOME&amp;#039;, &amp;#039;http://www.deine-richtige-adresse.xyz&amp;#039;);&lt;br /&gt;
* Datentabelle wp_options (siteurl, home,&lt;br /&gt;
* Search and Replace ausführen und absolute Pfade anpassen.&lt;br /&gt;
&lt;br /&gt;
http://faq.wpde.org/wordpress-url-aendern/&lt;br /&gt;
&lt;br /&gt;
Falls du mit deinem Blog dahingehend umziehen willst, dass sich die Adresse zum Blog ändert, oder du in&lt;br /&gt;
 Adminbereich &amp;gt;&amp;gt; Einstellungen &amp;gt;&amp;gt; Allgemein &amp;gt; WordPress-Adresse (URL) / Blog-Adresse (URL)&lt;br /&gt;
aus versehen eine falsche Adresse eingegeben hast und nun der Blog nicht mehr funktioniert, so musst du in der Datenbank die entsprechenden Angaben korrigieren.&lt;br /&gt;
&lt;br /&gt;
Beachte auch den thematisch ähnlich gelagerten Artikel WordPress trotz Installation in Unterverzeichnis über Hauptverzeichnis aufrufen.&lt;br /&gt;
&lt;br /&gt;
=== Variante 1 ===&lt;br /&gt;
&lt;br /&gt;
Öffne mit einem Texteditor (Microsoft Word ist keiner!) die Datei wp-config.php, welche sich im Stammverzeichnis deiner WordPress-Installation befindet.&lt;br /&gt;
An beliebiger Stelle (jedoch nicht ganz am Anfang oder Ende der Datei) fügst du folgenden Befehl ein:&lt;br /&gt;
 define(&amp;#039;WP_SITEURL&amp;#039;, &amp;#039;http://www.deine-richtige-adresse.xyz&amp;#039;);&lt;br /&gt;
 define(&amp;#039;WP_HOME&amp;#039;, &amp;#039;http://www.deine-richtige-adresse.xyz&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
Speichere nun die Änderung und lade die Datei hoch. Das sollte es schon gewesen sein.&lt;br /&gt;
Im WordPress-Backend in den Allgemeinen Einstellungen sind nun die WordPress-Adresse (URL) / Blog-Adresse (URL) ausgegraut.&lt;br /&gt;
&lt;br /&gt;
===Variante 2===&lt;br /&gt;
&lt;br /&gt;
Öffne mit einem Texteditor (Microsoft Word ist keiner!) die Datei wp-config.php, welche sich im Stammverzeichnis deiner WordPress-Installation befindet.&lt;br /&gt;
An beliebiger Stelle (jedoch nicht ganz am Anfang oder Ende der Datei) fügst du folgenden Befehl ein:&lt;br /&gt;
define(&amp;#039;RELOCATE&amp;#039;, true);&lt;br /&gt;
&lt;br /&gt;
Speichere nun die Änderung und lade die Datei hoch.&lt;br /&gt;
&lt;br /&gt;
Rufe nun im Browser die wp-login.php deines Blogs auf. Diese befindet sich ebenfalls im Stammverzeichnis, also z.B. www.deinblog.de/wp-login.php.&lt;br /&gt;
Nach dem die Seite aufgerufen wurde, öffnest du die wieder die wp-config.php und entfernst das&lt;br /&gt;
define(&amp;#039;RELOCATE&amp;#039;, true);&lt;br /&gt;
oder kommentiert es durch vorranstellen von&lt;br /&gt;
//&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Logge dich nun via wp-login.php in deinen Blog ein und ändere noch im Adminmenü unter&lt;br /&gt;
Optionen / Einstellungen &amp;gt;&amp;gt; Allgemein &amp;gt; WordPress-Adresse (URL)&lt;br /&gt;
die WordPress-Adresse auf den aktuellen Stand bzw. auf das, was in Blog-Adresse steht.&lt;br /&gt;
&lt;br /&gt;
===Variante 3===&lt;br /&gt;
&lt;br /&gt;
Für die Bearbeitung der MySQL-Datenbank gibt es eine grafische Oberfläche mit dem Namen phpMyAdmin. Nahezu jeder Webhoster hat diese Oberfläche bereits vorinstalliert.&lt;br /&gt;
Falls du nicht weißt, wie du phpMyAdmin aufrufen kannst, so konsultiere deinen Webhoster. Oft ist es über ein Kundenmenü oder per Aufruf über http://www.deinedomain.de/mysqladmin/ erreichbar.&lt;br /&gt;
&lt;br /&gt;
In die Datenbank loggst du dich mit den gleichen Daten (Benutzername und Kennwort) ein, wie du sie auch in der Datei wp-config.php (im Stammverzeichnis von WordPress) eingetragen hast.&lt;br /&gt;
&lt;br /&gt;
In der linken Spalte von phpMyAdmin findest du eine Auflistung der Tabellen, die sich in deiner Datenbank befinden. Die Änderungen müssen in der Tabelle mit dem Namen (sofern das Tabellenprefix nicht geändert wurde) wp_options getätigt werden. Klicke in der linken Spalte also auf wp_options.&lt;br /&gt;
&lt;br /&gt;
Nun sollte sich die rechte Seite der Datenbankoberfläche geändert haben. Ganz oben auf dieser Seite befindet sich die Option Anzeigen bzw. Browse – klicke diesen Menüpunkt an, um den Inhalt der Tabelle anzuzeigen.&lt;br /&gt;
&lt;br /&gt;
Über das Bleistiftsymbol in der zweiten Spalte der Tabellenanzeige kannst du nun all die Datensätze ändern, in denen die URL zum Blog gespeichert ist. Üblicherweise sind es die Datensätze mit dem option_name siteurl und home.&lt;br /&gt;
Beachte, dass die Tabelle mehrere Seiten hat, so dass die zu ändernden Werte eventuell nicht auf der ersten Seite zu sehen sind.&lt;br /&gt;
&lt;br /&gt;
Datensatz gefunden und Bleistiftgrafik angeklickt? Dann kannst du nun im Feld option_value die neue URL zum Blog eintragen und per klick auf den Button OK die Änderung speichern.&lt;br /&gt;
&lt;br /&gt;
In dieser Hinsicht auch lesenswert (falls z.B. die Bilderpfade in Artikeln nicht mehr stimmen), ist der Artikel Suchen und Ersetzen in MySQL-Datenbanken von Jowra.&lt;br /&gt;
Noch komfortabler dürfte das Suchen und Ersetzen-Plugin von bueltge.de sein.&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Wordpress_umziehen&amp;diff=21328</id>
		<title>Wordpress umziehen</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Wordpress_umziehen&amp;diff=21328"/>
		<updated>2015-12-07T16:54:37Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wordpress Rechte ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wp-admin/ rekursiv 755&lt;br /&gt;
/wp-admin/index.php 644&lt;br /&gt;
/wp-includes/ rekursiv 755&lt;br /&gt;
/wp-content/ 755&lt;br /&gt;
/wp-content/themes/ rekursiv 777 wenn Editor benutzt wird, sonst 755.&lt;br /&gt;
/wp-content/plugins/ rekursiv 777 wenn automatische Installation gewünscht.&lt;br /&gt;
/wp-content/upgrade 777&lt;br /&gt;
/wp-content/uploads 777&lt;br /&gt;
/wp-content/cache bei Einsatz des WP-Super Cache Plugins 777&lt;br /&gt;
./wp-cache-config.php 777&lt;br /&gt;
/wp-content/backup/ bei Einsatz des WordPress Backup Plugins rekursiv 777&lt;br /&gt;
/wp-content/ rekursiv je nach Plugin 755 oder 777&lt;br /&gt;
Weitere Informationen für die Sicherheit von WordPress:&lt;br /&gt;
http://codex.wordpress.org/Hardening_WordPress&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Anleitung von wpde.org ==&lt;br /&gt;
=== Quickstart ===&lt;br /&gt;
* Search and Replace installieren&lt;br /&gt;
* Datenbank sichern&lt;br /&gt;
* Dateien umziehen&lt;br /&gt;
* Konfigurationsdatei (wp-config.php)&lt;br /&gt;
 define(&amp;#039;WP_SITEURL&amp;#039;, &amp;#039;http://www.deine-richtige-adresse.xyz&amp;#039;);&lt;br /&gt;
 define(&amp;#039;WP_HOME&amp;#039;, &amp;#039;http://www.deine-richtige-adresse.xyz&amp;#039;);&lt;br /&gt;
* Datentabelle wp_options (siteurl, home,&lt;br /&gt;
* Search and Replace ausführen und absolute Pfade anpassen.&lt;br /&gt;
&lt;br /&gt;
http://faq.wpde.org/wordpress-url-aendern/&lt;br /&gt;
&lt;br /&gt;
Falls du mit deinem Blog dahingehend umziehen willst, dass sich die Adresse zum Blog ändert, oder du in&lt;br /&gt;
 Adminbereich &amp;gt;&amp;gt; Einstellungen &amp;gt;&amp;gt; Allgemein &amp;gt; WordPress-Adresse (URL) / Blog-Adresse (URL)&lt;br /&gt;
aus versehen eine falsche Adresse eingegeben hast und nun der Blog nicht mehr funktioniert, so musst du in der Datenbank die entsprechenden Angaben korrigieren.&lt;br /&gt;
&lt;br /&gt;
Beachte auch den thematisch ähnlich gelagerten Artikel WordPress trotz Installation in Unterverzeichnis über Hauptverzeichnis aufrufen.&lt;br /&gt;
&lt;br /&gt;
=== Variante 1 ===&lt;br /&gt;
&lt;br /&gt;
Öffne mit einem Texteditor (Microsoft Word ist keiner!) die Datei wp-config.php, welche sich im Stammverzeichnis deiner WordPress-Installation befindet.&lt;br /&gt;
An beliebiger Stelle (jedoch nicht ganz am Anfang oder Ende der Datei) fügst du folgenden Befehl ein:&lt;br /&gt;
 define(&amp;#039;WP_SITEURL&amp;#039;, &amp;#039;http://www.deine-richtige-adresse.xyz&amp;#039;);&lt;br /&gt;
 define(&amp;#039;WP_HOME&amp;#039;, &amp;#039;http://www.deine-richtige-adresse.xyz&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
Speichere nun die Änderung und lade die Datei hoch. Das sollte es schon gewesen sein.&lt;br /&gt;
Im WordPress-Backend in den Allgemeinen Einstellungen sind nun die WordPress-Adresse (URL) / Blog-Adresse (URL) ausgegraut.&lt;br /&gt;
&lt;br /&gt;
===Variante 2===&lt;br /&gt;
&lt;br /&gt;
Öffne mit einem Texteditor (Microsoft Word ist keiner!) die Datei wp-config.php, welche sich im Stammverzeichnis deiner WordPress-Installation befindet.&lt;br /&gt;
An beliebiger Stelle (jedoch nicht ganz am Anfang oder Ende der Datei) fügst du folgenden Befehl ein:&lt;br /&gt;
define(&amp;#039;RELOCATE&amp;#039;, true);&lt;br /&gt;
&lt;br /&gt;
Speichere nun die Änderung und lade die Datei hoch.&lt;br /&gt;
&lt;br /&gt;
Rufe nun im Browser die wp-login.php deines Blogs auf. Diese befindet sich ebenfalls im Stammverzeichnis, also z.B. www.deinblog.de/wp-login.php.&lt;br /&gt;
Nach dem die Seite aufgerufen wurde, öffnest du die wieder die wp-config.php und entfernst das&lt;br /&gt;
define(&amp;#039;RELOCATE&amp;#039;, true);&lt;br /&gt;
oder kommentiert es durch vorranstellen von&lt;br /&gt;
//&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Logge dich nun via wp-login.php in deinen Blog ein und ändere noch im Adminmenü unter&lt;br /&gt;
Optionen / Einstellungen &amp;gt;&amp;gt; Allgemein &amp;gt; WordPress-Adresse (URL)&lt;br /&gt;
die WordPress-Adresse auf den aktuellen Stand bzw. auf das, was in Blog-Adresse steht.&lt;br /&gt;
&lt;br /&gt;
===Variante 3===&lt;br /&gt;
&lt;br /&gt;
Für die Bearbeitung der MySQL-Datenbank gibt es eine grafische Oberfläche mit dem Namen phpMyAdmin. Nahezu jeder Webhoster hat diese Oberfläche bereits vorinstalliert.&lt;br /&gt;
Falls du nicht weißt, wie du phpMyAdmin aufrufen kannst, so konsultiere deinen Webhoster. Oft ist es über ein Kundenmenü oder per Aufruf über http://www.deinedomain.de/mysqladmin/ erreichbar.&lt;br /&gt;
&lt;br /&gt;
In die Datenbank loggst du dich mit den gleichen Daten (Benutzername und Kennwort) ein, wie du sie auch in der Datei wp-config.php (im Stammverzeichnis von WordPress) eingetragen hast.&lt;br /&gt;
&lt;br /&gt;
In der linken Spalte von phpMyAdmin findest du eine Auflistung der Tabellen, die sich in deiner Datenbank befinden. Die Änderungen müssen in der Tabelle mit dem Namen (sofern das Tabellenprefix nicht geändert wurde) wp_options getätigt werden. Klicke in der linken Spalte also auf wp_options.&lt;br /&gt;
&lt;br /&gt;
Nun sollte sich die rechte Seite der Datenbankoberfläche geändert haben. Ganz oben auf dieser Seite befindet sich die Option Anzeigen bzw. Browse – klicke diesen Menüpunkt an, um den Inhalt der Tabelle anzuzeigen.&lt;br /&gt;
&lt;br /&gt;
Über das Bleistiftsymbol in der zweiten Spalte der Tabellenanzeige kannst du nun all die Datensätze ändern, in denen die URL zum Blog gespeichert ist. Üblicherweise sind es die Datensätze mit dem option_name siteurl und home.&lt;br /&gt;
Beachte, dass die Tabelle mehrere Seiten hat, so dass die zu ändernden Werte eventuell nicht auf der ersten Seite zu sehen sind.&lt;br /&gt;
&lt;br /&gt;
Datensatz gefunden und Bleistiftgrafik angeklickt? Dann kannst du nun im Feld option_value die neue URL zum Blog eintragen und per klick auf den Button OK die Änderung speichern.&lt;br /&gt;
&lt;br /&gt;
In dieser Hinsicht auch lesenswert (falls z.B. die Bilderpfade in Artikeln nicht mehr stimmen), ist der Artikel Suchen und Ersetzen in MySQL-Datenbanken von Jowra.&lt;br /&gt;
Noch komfortabler dürfte das Suchen und Ersetzen-Plugin von bueltge.de sein.&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21327</id>
		<title>Dokumentation gbrma</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21327"/>
		<updated>2015-12-04T14:56:15Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einrichtung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
* Extensions installieren:&lt;br /&gt;
** gbdevices&lt;br /&gt;
** gbrma &lt;br /&gt;
** rmaupload (wenn benötigt)&lt;br /&gt;
&lt;br /&gt;
* Devices Datensätze falls vorhanden importieren&lt;br /&gt;
* Benutzergruppen anlegen:&lt;br /&gt;
** RMA Gruppe für Generellen Zugang zu den Seiten&lt;br /&gt;
** Allow xyz Family Access (wenn man den Zugang zu bestimmten Gerätefamilen restriktieren will.&lt;br /&gt;
* Konfiguration s.u.&lt;br /&gt;
* Speicherordner in Konstanten&lt;br /&gt;
 plugin.tx_gbdevices.persistence.storagePid = 49&lt;br /&gt;
 plugin.tx_gbrma.persistence.storagePid = 49&lt;br /&gt;
* Speicherordner in Seiten anlegen (für Verbundene Datensätze)&lt;br /&gt;
* Für jeden RMA Typ einen Eintrag mit Basis Nr.&lt;br /&gt;
* Scheduler&lt;br /&gt;
&lt;br /&gt;
=== TS Configuration ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konstanten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_gbdevices.persistence.storagePid = 49 # gbdevices wird benötigt für gbrma&lt;br /&gt;
plugin.tx_gbrma.persistence.storagePid = 49 # Speicherort der RMA Daten&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
senderMail = test@example.com //na&lt;br /&gt;
senderMailName = Test Mailer //na&lt;br /&gt;
adminMail = email@example.com // Adresse für Admin Mails&lt;br /&gt;
adminMailName = Test Admin // Name des Admins in E-Mails&lt;br /&gt;
mailSubject = RMA Request // Betreffzeile der Admin Mails wenn nicht anders im Code definiert evtl. rauswerfen TODO&lt;br /&gt;
superuserId = 1 // na&lt;br /&gt;
nbmClassId = 7 // Geräteklassen ID für nbm Geräte (für Sonderregelung bei der Auswahl)&lt;br /&gt;
nbm520Id = 104 // Geräte ID für nbm 520 wegen Sonderregelung&lt;br /&gt;
nbm550Id = 103 // Geräte ID für nbm550 wegen Sonderregelung&lt;br /&gt;
multipleBaseDevicesAllowedClassIds = &lt;br /&gt;
restrictFamilyAccessToFegroups = 0 // Schalter - beschränkt Zugriff auf bestimmte Gerätefamilien &lt;br /&gt;
// Wenn an dann muß die Familie einer Usergruppe zugeordnet sein. Nur User dieser Gruppe stehen Geräten dieser Familie für RMAs zur Verfügung&lt;br /&gt;
#pdf_css = EXT:gbrma/Resources/Public/Css/pdf.css // Not used&lt;br /&gt;
#pdf_html = EXT:gbrma/Resources/Private/Templates/Pdf/pdf.html // Not used&lt;br /&gt;
retourRmaAllowedGroupId = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zugriff auf RMA Plugin schützen ===&lt;br /&gt;
Das Plugin erlaubt generell jedem FE-User RMAs anzulegen. Welche Art von RMAs wird durch die weitere Konfiguration geregelt (s.u.). Wenn Nur bestimmte Benutzer das Plugin benutzen sollen kann man eine &amp;#039;&amp;#039;&amp;#039;normale FE-User Gruppe&amp;#039;&amp;#039;&amp;#039; (z.B. mit dem Namen RMA) anlegen und für die Seite auf der das Plugin liegt einen FE-User Zugriff einrichten.&lt;br /&gt;
&lt;br /&gt;
=== Family Access ===&lt;br /&gt;
 restrictFamilyAccessToFegroups = 1&lt;br /&gt;
Wenn dieser Wert im Setup gesetzt wird, dann kann der &amp;#039;&amp;#039;&amp;#039;Benutzer nur noch bestimmte Gerätefamilien für RMAs auswählen&amp;#039;&amp;#039;&amp;#039;. Wenn es nicht gesetzt ist können die Benutzer alle Familien nutzen.&lt;br /&gt;
&lt;br /&gt;
Durch die Installation von gbrma wird gbdevices um ein Feld erweitert. &lt;br /&gt;
* GB Devices -&amp;gt; Familie auswählen und Benutzergruppe im Feld Allowed FE-User Group setzen&lt;br /&gt;
* Dem FE User diese Gruppe zuordnen.&lt;br /&gt;
&lt;br /&gt;
=== Retour RMAs ===&lt;br /&gt;
==== Konfiguration ====&lt;br /&gt;
* Gruppe anlegen z.B. &amp;quot;Erlaube Retour RMAs&amp;quot;&lt;br /&gt;
* ID der Gruppe merken&lt;br /&gt;
* TypoScript konfigurieren&lt;br /&gt;
 # Feature einschalten&lt;br /&gt;
 restrictRetourAccessToFegroups = 1&lt;br /&gt;
 # Gruppen ID eintragen (mehrere mit Komma trennen) &lt;br /&gt;
 retourRmaAllowedGroupIds = 4,5,6&lt;br /&gt;
* Gruppe dem gewünschten Benutzer zuordnen&lt;br /&gt;
&lt;br /&gt;
=== Client Mode ===&lt;br /&gt;
In diesem Modus dient die Client ID (im User unter RMA hinterlegt) als Zugriffsmerkmal für die RMAs. D.h. mehrere User können auf die selben RMAs zugreifen&lt;br /&gt;
&lt;br /&gt;
=== Modifications ===&lt;br /&gt;
Manche Geräte können modifiziert werden.&lt;br /&gt;
Hartkodiert in gbdevices im Model und in den Sprachdateien&lt;br /&gt;
&lt;br /&gt;
=== Model / Fields Dokumentation ===&lt;br /&gt;
Beispiel Array einer RMA mit untergeordneten Models für Metadevice, Device, DeviceClass, DeviceFamily&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
array(rma =&amp;gt; Geobit\Gbrma\Domain\Model\Rmaprototypepersistent entity (uid=11, pid=53)&lt;br /&gt;
      rmaNumber =&amp;gt; &amp;#039;8&amp;#039; (1 chars)&lt;br /&gt;
      rmaType =&amp;gt; 1 (integer)&lt;br /&gt;
      locked =&amp;gt; 0 (integer)&lt;br /&gt;
      state =&amp;gt; 0 (integer)&lt;br /&gt;
      orderExpress =&amp;gt; 0 (integer)&lt;br /&gt;
      additionalInformation =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
      rmaUser =&amp;gt; 1 (integer)&lt;br /&gt;
      crdate =&amp;gt; 1443778492 (integer)&lt;br /&gt;
      tstamp =&amp;gt; 1443783879 (integer)&lt;br /&gt;
      uid =&amp;gt; 11 (integer)&lt;br /&gt;
      pid =&amp;gt; 53 (integer)&lt;br /&gt;
      metadevice =&amp;gt; TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items)&lt;br /&gt;
         0000000002d804830000000151a56f69 =&amp;gt; Geobit\Gbrma\Domain\Model\Metadeviceprototypepersistent entity (uid=12, pid=53)&lt;br /&gt;
            uid =&amp;gt; 12 (integer)&lt;br /&gt;
            pid =&amp;gt; 53 (integer)&lt;br /&gt;
            serial =&amp;gt; &amp;#039;aewtqwer&amp;#039; (8 chars)&lt;br /&gt;
            description =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
            jsondata =&amp;gt; &amp;#039;{&amp;quot;none&amp;quot;:&amp;quot;1&amp;quot;}&amp;#039; (12 chars)&lt;br /&gt;
            serviceRepair =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceCalibration =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceModification =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceNone =&amp;gt; 1 (integer)&lt;br /&gt;
            device =&amp;gt; Geobit\Gbdevices\Domain\Model\Deviceprototypepersistent entity (uid=3, pid=49)&lt;br /&gt;
               uid =&amp;gt; 3 (integer)&lt;br /&gt;
               pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceTitle =&amp;gt; &amp;#039;2138/01 EMD-100&amp;#039; (15 chars)&lt;br /&gt;
               deviceDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
               deviceType =&amp;gt; 1 (integer)&lt;br /&gt;
               isBaseDevice =&amp;gt; FALSE&lt;br /&gt;
               accPossible =&amp;gt; FALSE&lt;br /&gt;
               repairDiscontinued =&amp;gt; TRUE&lt;br /&gt;
               modification =&amp;gt; 0 (integer)&lt;br /&gt;
               deviceImage =&amp;gt; NULL&lt;br /&gt;
               deviceClass =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceClassprototypepersistent entity (uid=2, pid=49)&lt;br /&gt;
                  classTitle =&amp;gt; &amp;#039;EMD Series&amp;#039; (10 chars)&lt;br /&gt;
                  classDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
                  classFamily =&amp;gt; 0 (integer)&lt;br /&gt;
                  accPossible =&amp;gt; FALSE&lt;br /&gt;
                  uid =&amp;gt; 2 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceFamily =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceFamilyprototypepersistent entity (uid=1, pid=49)&lt;br /&gt;
                  familyTitle =&amp;gt; &amp;#039;Safety&amp;#039; (6 chars)&lt;br /&gt;
                  familyDescription =&amp;gt; &amp;#039;NARDA Safety Product Family&amp;#039; (27 chars)&lt;br /&gt;
                  familyFegroupAccess =&amp;gt; 2 (integer)&lt;br /&gt;
                  uid =&amp;gt; 1 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RMA Types ==&lt;br /&gt;
=== Code Hints ===&lt;br /&gt;
Definiert in:&lt;br /&gt;
* Template: ListRmas.html&lt;br /&gt;
* Template: NewFormFields.html&lt;br /&gt;
* Template: Mail.html&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21326</id>
		<title>Dokumentation gbrma</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21326"/>
		<updated>2015-12-04T10:28:24Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einrichtung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
* gbdevices Extension installieren&lt;br /&gt;
* gbrma Extension installieren&lt;br /&gt;
* rmaupload Extension wenn benötigt installieren&lt;br /&gt;
* Devices Datensätze falls vorhanden importieren&lt;br /&gt;
* Benutzergruppen anlegen:&lt;br /&gt;
&lt;br /&gt;
* Konfiguration&lt;br /&gt;
&lt;br /&gt;
* Für jeden RMA Typ einen Eintrag mit Basis Nr.&lt;br /&gt;
* Scheduler&lt;br /&gt;
&lt;br /&gt;
=== TS Configuration ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konstanten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_gbdevices.persistence.storagePid = 49 # gbdevices wird benötigt für gbrma&lt;br /&gt;
plugin.tx_gbrma.persistence.storagePid = 49 # Speicherort der RMA Daten&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
senderMail = test@example.com //na&lt;br /&gt;
senderMailName = Test Mailer //na&lt;br /&gt;
adminMail = email@example.com // Adresse für Admin Mails&lt;br /&gt;
adminMailName = Test Admin // Name des Admins in E-Mails&lt;br /&gt;
mailSubject = RMA Request // Betreffzeile der Admin Mails wenn nicht anders im Code definiert evtl. rauswerfen TODO&lt;br /&gt;
superuserId = 1 // na&lt;br /&gt;
nbmClassId = 7 // Geräteklassen ID für nbm Geräte (für Sonderregelung bei der Auswahl)&lt;br /&gt;
nbm520Id = 104 // Geräte ID für nbm 520 wegen Sonderregelung&lt;br /&gt;
nbm550Id = 103 // Geräte ID für nbm550 wegen Sonderregelung&lt;br /&gt;
multipleBaseDevicesAllowedClassIds = &lt;br /&gt;
restrictFamilyAccessToFegroups = 0 // Schalter - beschränkt Zugriff auf bestimmte Gerätefamilien &lt;br /&gt;
// Wenn an dann muß die Familie einer Usergruppe zugeordnet sein. Nur User dieser Gruppe stehen Geräten dieser Familie für RMAs zur Verfügung&lt;br /&gt;
#pdf_css = EXT:gbrma/Resources/Public/Css/pdf.css // Not used&lt;br /&gt;
#pdf_html = EXT:gbrma/Resources/Private/Templates/Pdf/pdf.html // Not used&lt;br /&gt;
retourRmaAllowedGroupId = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zugriff auf RMA Plugin schützen ===&lt;br /&gt;
Das Plugin erlaubt generell jedem FE-User RMAs anzulegen. Welche Art von RMAs wird durch die weitere Konfiguration geregelt (s.u.). Wenn Nur bestimmte Benutzer das Plugin benutzen sollen kann man eine &amp;#039;&amp;#039;&amp;#039;normale FE-User Gruppe&amp;#039;&amp;#039;&amp;#039; (z.B. mit dem Namen RMA) anlegen und für die Seite auf der das Plugin liegt einen FE-User Zugriff einrichten.&lt;br /&gt;
&lt;br /&gt;
=== Family Access ===&lt;br /&gt;
 restrictFamilyAccessToFegroups = 1&lt;br /&gt;
Wenn dieser Wert im Setup gesetzt wird, dann kann der &amp;#039;&amp;#039;&amp;#039;Benutzer nur noch bestimmte Gerätefamilien für RMAs auswählen&amp;#039;&amp;#039;&amp;#039;. Wenn es nicht gesetzt ist können die Benutzer alle Familien nutzen.&lt;br /&gt;
&lt;br /&gt;
Durch die Installation von gbrma wird gbdevices um ein Feld erweitert. &lt;br /&gt;
* GB Devices -&amp;gt; Familie auswählen und Benutzergruppe im Feld Allowed FE-User Group setzen&lt;br /&gt;
* Dem FE User diese Gruppe zuordnen.&lt;br /&gt;
&lt;br /&gt;
=== Retour RMAs ===&lt;br /&gt;
==== Konfiguration ====&lt;br /&gt;
* Gruppe anlegen z.B. &amp;quot;Erlaube Retour RMAs&amp;quot;&lt;br /&gt;
* ID der Gruppe merken&lt;br /&gt;
* TypoScript konfigurieren&lt;br /&gt;
 # Feature einschalten&lt;br /&gt;
 restrictRetourAccessToFegroups = 1&lt;br /&gt;
 # Gruppen ID eintragen (mehrere mit Komma trennen) &lt;br /&gt;
 retourRmaAllowedGroupIds = 4,5,6&lt;br /&gt;
* Gruppe dem gewünschten Benutzer zuordnen&lt;br /&gt;
&lt;br /&gt;
=== Client Mode ===&lt;br /&gt;
In diesem Modus dient die Client ID (im User unter RMA hinterlegt) als Zugriffsmerkmal für die RMAs. D.h. mehrere User können auf die selben RMAs zugreifen&lt;br /&gt;
&lt;br /&gt;
=== Modifications ===&lt;br /&gt;
Manche Geräte können modifiziert werden.&lt;br /&gt;
Hartkodiert in gbdevices im Model und in den Sprachdateien&lt;br /&gt;
&lt;br /&gt;
=== Model / Fields Dokumentation ===&lt;br /&gt;
Beispiel Array einer RMA mit untergeordneten Models für Metadevice, Device, DeviceClass, DeviceFamily&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
array(rma =&amp;gt; Geobit\Gbrma\Domain\Model\Rmaprototypepersistent entity (uid=11, pid=53)&lt;br /&gt;
      rmaNumber =&amp;gt; &amp;#039;8&amp;#039; (1 chars)&lt;br /&gt;
      rmaType =&amp;gt; 1 (integer)&lt;br /&gt;
      locked =&amp;gt; 0 (integer)&lt;br /&gt;
      state =&amp;gt; 0 (integer)&lt;br /&gt;
      orderExpress =&amp;gt; 0 (integer)&lt;br /&gt;
      additionalInformation =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
      rmaUser =&amp;gt; 1 (integer)&lt;br /&gt;
      crdate =&amp;gt; 1443778492 (integer)&lt;br /&gt;
      tstamp =&amp;gt; 1443783879 (integer)&lt;br /&gt;
      uid =&amp;gt; 11 (integer)&lt;br /&gt;
      pid =&amp;gt; 53 (integer)&lt;br /&gt;
      metadevice =&amp;gt; TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items)&lt;br /&gt;
         0000000002d804830000000151a56f69 =&amp;gt; Geobit\Gbrma\Domain\Model\Metadeviceprototypepersistent entity (uid=12, pid=53)&lt;br /&gt;
            uid =&amp;gt; 12 (integer)&lt;br /&gt;
            pid =&amp;gt; 53 (integer)&lt;br /&gt;
            serial =&amp;gt; &amp;#039;aewtqwer&amp;#039; (8 chars)&lt;br /&gt;
            description =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
            jsondata =&amp;gt; &amp;#039;{&amp;quot;none&amp;quot;:&amp;quot;1&amp;quot;}&amp;#039; (12 chars)&lt;br /&gt;
            serviceRepair =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceCalibration =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceModification =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceNone =&amp;gt; 1 (integer)&lt;br /&gt;
            device =&amp;gt; Geobit\Gbdevices\Domain\Model\Deviceprototypepersistent entity (uid=3, pid=49)&lt;br /&gt;
               uid =&amp;gt; 3 (integer)&lt;br /&gt;
               pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceTitle =&amp;gt; &amp;#039;2138/01 EMD-100&amp;#039; (15 chars)&lt;br /&gt;
               deviceDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
               deviceType =&amp;gt; 1 (integer)&lt;br /&gt;
               isBaseDevice =&amp;gt; FALSE&lt;br /&gt;
               accPossible =&amp;gt; FALSE&lt;br /&gt;
               repairDiscontinued =&amp;gt; TRUE&lt;br /&gt;
               modification =&amp;gt; 0 (integer)&lt;br /&gt;
               deviceImage =&amp;gt; NULL&lt;br /&gt;
               deviceClass =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceClassprototypepersistent entity (uid=2, pid=49)&lt;br /&gt;
                  classTitle =&amp;gt; &amp;#039;EMD Series&amp;#039; (10 chars)&lt;br /&gt;
                  classDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
                  classFamily =&amp;gt; 0 (integer)&lt;br /&gt;
                  accPossible =&amp;gt; FALSE&lt;br /&gt;
                  uid =&amp;gt; 2 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceFamily =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceFamilyprototypepersistent entity (uid=1, pid=49)&lt;br /&gt;
                  familyTitle =&amp;gt; &amp;#039;Safety&amp;#039; (6 chars)&lt;br /&gt;
                  familyDescription =&amp;gt; &amp;#039;NARDA Safety Product Family&amp;#039; (27 chars)&lt;br /&gt;
                  familyFegroupAccess =&amp;gt; 2 (integer)&lt;br /&gt;
                  uid =&amp;gt; 1 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RMA Types ==&lt;br /&gt;
=== Code Hints ===&lt;br /&gt;
Definiert in:&lt;br /&gt;
* Template: ListRmas.html&lt;br /&gt;
* Template: NewFormFields.html&lt;br /&gt;
* Template: Mail.html&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21325</id>
		<title>Dokumentation gbrma</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21325"/>
		<updated>2015-12-04T10:25:15Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einrichtung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
* gbdevices Extension&lt;br /&gt;
* gbrma Extension&lt;br /&gt;
* rmaupload Extension wenn benötigt&lt;br /&gt;
* Datensätze falls vorhanden&lt;br /&gt;
* Konfiguration&lt;br /&gt;
* Für jeden RMA Typ einen Eintrag mit Basis Nr.&lt;br /&gt;
* Scheduler&lt;br /&gt;
&lt;br /&gt;
=== TS Configuration ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konstanten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_gbdevices.persistence.storagePid = 49 # gbdevices wird benötigt für gbrma&lt;br /&gt;
plugin.tx_gbrma.persistence.storagePid = 49 # Speicherort der RMA Daten&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
senderMail = test@example.com //na&lt;br /&gt;
senderMailName = Test Mailer //na&lt;br /&gt;
adminMail = email@example.com // Adresse für Admin Mails&lt;br /&gt;
adminMailName = Test Admin // Name des Admins in E-Mails&lt;br /&gt;
mailSubject = RMA Request // Betreffzeile der Admin Mails wenn nicht anders im Code definiert evtl. rauswerfen TODO&lt;br /&gt;
superuserId = 1 // na&lt;br /&gt;
nbmClassId = 7 // Geräteklassen ID für nbm Geräte (für Sonderregelung bei der Auswahl)&lt;br /&gt;
nbm520Id = 104 // Geräte ID für nbm 520 wegen Sonderregelung&lt;br /&gt;
nbm550Id = 103 // Geräte ID für nbm550 wegen Sonderregelung&lt;br /&gt;
multipleBaseDevicesAllowedClassIds = &lt;br /&gt;
restrictFamilyAccessToFegroups = 0 // Schalter - beschränkt Zugriff auf bestimmte Gerätefamilien &lt;br /&gt;
// Wenn an dann muß die Familie einer Usergruppe zugeordnet sein. Nur User dieser Gruppe stehen Geräten dieser Familie für RMAs zur Verfügung&lt;br /&gt;
#pdf_css = EXT:gbrma/Resources/Public/Css/pdf.css // Not used&lt;br /&gt;
#pdf_html = EXT:gbrma/Resources/Private/Templates/Pdf/pdf.html // Not used&lt;br /&gt;
retourRmaAllowedGroupId = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zugriff auf RMA Plugin schützen ===&lt;br /&gt;
Das Plugin erlaubt generell jedem FE-User RMAs anzulegen. Welche Art von RMAs wird durch die weitere Konfiguration geregelt (s.u.). Wenn Nur bestimmte Benutzer das Plugin benutzen sollen kann man eine &amp;#039;&amp;#039;&amp;#039;normale FE-User Gruppe&amp;#039;&amp;#039;&amp;#039; (z.B. mit dem Namen RMA) anlegen und für die Seite auf der das Plugin liegt einen FE-User Zugriff einrichten.&lt;br /&gt;
&lt;br /&gt;
=== Family Access ===&lt;br /&gt;
 restrictFamilyAccessToFegroups = 1&lt;br /&gt;
Wenn dieser Wert im Setup gesetzt wird, dann kann der &amp;#039;&amp;#039;&amp;#039;Benutzer nur noch bestimmte Gerätefamilien für RMAs auswählen&amp;#039;&amp;#039;&amp;#039;. Wenn es nicht gesetzt ist können die Benutzer alle Familien nutzen.&lt;br /&gt;
&lt;br /&gt;
Durch die Installation von gbrma wird gbdevices um ein Feld erweitert. &lt;br /&gt;
* GB Devices -&amp;gt; Familie auswählen und Benutzergruppe im Feld Allowed FE-User Group setzen&lt;br /&gt;
* Dem FE User diese Gruppe zuordnen.&lt;br /&gt;
&lt;br /&gt;
=== Retour RMAs ===&lt;br /&gt;
==== Konfiguration ====&lt;br /&gt;
* Gruppe anlegen z.B. &amp;quot;Erlaube Retour RMAs&amp;quot;&lt;br /&gt;
* ID der Gruppe merken&lt;br /&gt;
* TypoScript konfigurieren&lt;br /&gt;
 # Feature einschalten&lt;br /&gt;
 restrictRetourAccessToFegroups = 1&lt;br /&gt;
 # Gruppen ID eintragen (mehrere mit Komma trennen) &lt;br /&gt;
 retourRmaAllowedGroupIds = 4,5,6&lt;br /&gt;
* Gruppe dem gewünschten Benutzer zuordnen&lt;br /&gt;
&lt;br /&gt;
=== Client Mode ===&lt;br /&gt;
In diesem Modus dient die Client ID (im User unter RMA hinterlegt) als Zugriffsmerkmal für die RMAs. D.h. mehrere User können auf die selben RMAs zugreifen&lt;br /&gt;
&lt;br /&gt;
=== Modifications ===&lt;br /&gt;
Manche Geräte können modifiziert werden.&lt;br /&gt;
Hartkodiert in gbdevices im Model und in den Sprachdateien&lt;br /&gt;
&lt;br /&gt;
=== Model / Fields Dokumentation ===&lt;br /&gt;
Beispiel Array einer RMA mit untergeordneten Models für Metadevice, Device, DeviceClass, DeviceFamily&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
array(rma =&amp;gt; Geobit\Gbrma\Domain\Model\Rmaprototypepersistent entity (uid=11, pid=53)&lt;br /&gt;
      rmaNumber =&amp;gt; &amp;#039;8&amp;#039; (1 chars)&lt;br /&gt;
      rmaType =&amp;gt; 1 (integer)&lt;br /&gt;
      locked =&amp;gt; 0 (integer)&lt;br /&gt;
      state =&amp;gt; 0 (integer)&lt;br /&gt;
      orderExpress =&amp;gt; 0 (integer)&lt;br /&gt;
      additionalInformation =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
      rmaUser =&amp;gt; 1 (integer)&lt;br /&gt;
      crdate =&amp;gt; 1443778492 (integer)&lt;br /&gt;
      tstamp =&amp;gt; 1443783879 (integer)&lt;br /&gt;
      uid =&amp;gt; 11 (integer)&lt;br /&gt;
      pid =&amp;gt; 53 (integer)&lt;br /&gt;
      metadevice =&amp;gt; TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items)&lt;br /&gt;
         0000000002d804830000000151a56f69 =&amp;gt; Geobit\Gbrma\Domain\Model\Metadeviceprototypepersistent entity (uid=12, pid=53)&lt;br /&gt;
            uid =&amp;gt; 12 (integer)&lt;br /&gt;
            pid =&amp;gt; 53 (integer)&lt;br /&gt;
            serial =&amp;gt; &amp;#039;aewtqwer&amp;#039; (8 chars)&lt;br /&gt;
            description =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
            jsondata =&amp;gt; &amp;#039;{&amp;quot;none&amp;quot;:&amp;quot;1&amp;quot;}&amp;#039; (12 chars)&lt;br /&gt;
            serviceRepair =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceCalibration =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceModification =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceNone =&amp;gt; 1 (integer)&lt;br /&gt;
            device =&amp;gt; Geobit\Gbdevices\Domain\Model\Deviceprototypepersistent entity (uid=3, pid=49)&lt;br /&gt;
               uid =&amp;gt; 3 (integer)&lt;br /&gt;
               pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceTitle =&amp;gt; &amp;#039;2138/01 EMD-100&amp;#039; (15 chars)&lt;br /&gt;
               deviceDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
               deviceType =&amp;gt; 1 (integer)&lt;br /&gt;
               isBaseDevice =&amp;gt; FALSE&lt;br /&gt;
               accPossible =&amp;gt; FALSE&lt;br /&gt;
               repairDiscontinued =&amp;gt; TRUE&lt;br /&gt;
               modification =&amp;gt; 0 (integer)&lt;br /&gt;
               deviceImage =&amp;gt; NULL&lt;br /&gt;
               deviceClass =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceClassprototypepersistent entity (uid=2, pid=49)&lt;br /&gt;
                  classTitle =&amp;gt; &amp;#039;EMD Series&amp;#039; (10 chars)&lt;br /&gt;
                  classDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
                  classFamily =&amp;gt; 0 (integer)&lt;br /&gt;
                  accPossible =&amp;gt; FALSE&lt;br /&gt;
                  uid =&amp;gt; 2 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceFamily =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceFamilyprototypepersistent entity (uid=1, pid=49)&lt;br /&gt;
                  familyTitle =&amp;gt; &amp;#039;Safety&amp;#039; (6 chars)&lt;br /&gt;
                  familyDescription =&amp;gt; &amp;#039;NARDA Safety Product Family&amp;#039; (27 chars)&lt;br /&gt;
                  familyFegroupAccess =&amp;gt; 2 (integer)&lt;br /&gt;
                  uid =&amp;gt; 1 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RMA Types ==&lt;br /&gt;
=== Code Hints ===&lt;br /&gt;
Definiert in:&lt;br /&gt;
* Template: ListRmas.html&lt;br /&gt;
* Template: NewFormFields.html&lt;br /&gt;
* Template: Mail.html&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21324</id>
		<title>Dokumentation gbrma</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21324"/>
		<updated>2015-12-04T10:23:20Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Einrichtung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einrichtung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
* gbdevices Extension&lt;br /&gt;
* gbrma Extension&lt;br /&gt;
* rmaupload Extension wenn benötigt&lt;br /&gt;
* Datensätze falls vorhanden&lt;br /&gt;
* Konfiguration&lt;br /&gt;
* Scheduler&lt;br /&gt;
=== TS Configuration ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konstanten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_gbdevices.persistence.storagePid = 49 # gbdevices wird benötigt für gbrma&lt;br /&gt;
plugin.tx_gbrma.persistence.storagePid = 49 # Speicherort der RMA Daten&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
senderMail = test@example.com //na&lt;br /&gt;
senderMailName = Test Mailer //na&lt;br /&gt;
adminMail = email@example.com // Adresse für Admin Mails&lt;br /&gt;
adminMailName = Test Admin // Name des Admins in E-Mails&lt;br /&gt;
mailSubject = RMA Request // Betreffzeile der Admin Mails wenn nicht anders im Code definiert evtl. rauswerfen TODO&lt;br /&gt;
superuserId = 1 // na&lt;br /&gt;
nbmClassId = 7 // Geräteklassen ID für nbm Geräte (für Sonderregelung bei der Auswahl)&lt;br /&gt;
nbm520Id = 104 // Geräte ID für nbm 520 wegen Sonderregelung&lt;br /&gt;
nbm550Id = 103 // Geräte ID für nbm550 wegen Sonderregelung&lt;br /&gt;
multipleBaseDevicesAllowedClassIds = &lt;br /&gt;
restrictFamilyAccessToFegroups = 0 // Schalter - beschränkt Zugriff auf bestimmte Gerätefamilien &lt;br /&gt;
// Wenn an dann muß die Familie einer Usergruppe zugeordnet sein. Nur User dieser Gruppe stehen Geräten dieser Familie für RMAs zur Verfügung&lt;br /&gt;
#pdf_css = EXT:gbrma/Resources/Public/Css/pdf.css // Not used&lt;br /&gt;
#pdf_html = EXT:gbrma/Resources/Private/Templates/Pdf/pdf.html // Not used&lt;br /&gt;
retourRmaAllowedGroupId = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zugriff auf RMA Plugin schützen ===&lt;br /&gt;
Das Plugin erlaubt generell jedem FE-User RMAs anzulegen. Welche Art von RMAs wird durch die weitere Konfiguration geregelt (s.u.). Wenn Nur bestimmte Benutzer das Plugin benutzen sollen kann man eine &amp;#039;&amp;#039;&amp;#039;normale FE-User Gruppe&amp;#039;&amp;#039;&amp;#039; (z.B. mit dem Namen RMA) anlegen und für die Seite auf der das Plugin liegt einen FE-User Zugriff einrichten.&lt;br /&gt;
&lt;br /&gt;
=== Family Access ===&lt;br /&gt;
 restrictFamilyAccessToFegroups = 1&lt;br /&gt;
Wenn dieser Wert im Setup gesetzt wird, dann kann der &amp;#039;&amp;#039;&amp;#039;Benutzer nur noch bestimmte Gerätefamilien für RMAs auswählen&amp;#039;&amp;#039;&amp;#039;. Wenn es nicht gesetzt ist können die Benutzer alle Familien nutzen.&lt;br /&gt;
&lt;br /&gt;
Durch die Installation von gbrma wird gbdevices um ein Feld erweitert. &lt;br /&gt;
* GB Devices -&amp;gt; Familie auswählen und Benutzergruppe im Feld Allowed FE-User Group setzen&lt;br /&gt;
* Dem FE User diese Gruppe zuordnen.&lt;br /&gt;
&lt;br /&gt;
=== Retour RMAs ===&lt;br /&gt;
==== Konfiguration ====&lt;br /&gt;
* Gruppe anlegen z.B. &amp;quot;Erlaube Retour RMAs&amp;quot;&lt;br /&gt;
* ID der Gruppe merken&lt;br /&gt;
* TypoScript konfigurieren&lt;br /&gt;
 # Feature einschalten&lt;br /&gt;
 restrictRetourAccessToFegroups = 1&lt;br /&gt;
 # Gruppen ID eintragen (mehrere mit Komma trennen) &lt;br /&gt;
 retourRmaAllowedGroupIds = 4,5,6&lt;br /&gt;
* Gruppe dem gewünschten Benutzer zuordnen&lt;br /&gt;
&lt;br /&gt;
=== Client Mode ===&lt;br /&gt;
In diesem Modus dient die Client ID (im User unter RMA hinterlegt) als Zugriffsmerkmal für die RMAs. D.h. mehrere User können auf die selben RMAs zugreifen&lt;br /&gt;
&lt;br /&gt;
=== Modifications ===&lt;br /&gt;
Manche Geräte können modifiziert werden.&lt;br /&gt;
Hartkodiert in gbdevices im Model und in den Sprachdateien&lt;br /&gt;
&lt;br /&gt;
=== Model / Fields Dokumentation ===&lt;br /&gt;
Beispiel Array einer RMA mit untergeordneten Models für Metadevice, Device, DeviceClass, DeviceFamily&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
array(rma =&amp;gt; Geobit\Gbrma\Domain\Model\Rmaprototypepersistent entity (uid=11, pid=53)&lt;br /&gt;
      rmaNumber =&amp;gt; &amp;#039;8&amp;#039; (1 chars)&lt;br /&gt;
      rmaType =&amp;gt; 1 (integer)&lt;br /&gt;
      locked =&amp;gt; 0 (integer)&lt;br /&gt;
      state =&amp;gt; 0 (integer)&lt;br /&gt;
      orderExpress =&amp;gt; 0 (integer)&lt;br /&gt;
      additionalInformation =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
      rmaUser =&amp;gt; 1 (integer)&lt;br /&gt;
      crdate =&amp;gt; 1443778492 (integer)&lt;br /&gt;
      tstamp =&amp;gt; 1443783879 (integer)&lt;br /&gt;
      uid =&amp;gt; 11 (integer)&lt;br /&gt;
      pid =&amp;gt; 53 (integer)&lt;br /&gt;
      metadevice =&amp;gt; TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items)&lt;br /&gt;
         0000000002d804830000000151a56f69 =&amp;gt; Geobit\Gbrma\Domain\Model\Metadeviceprototypepersistent entity (uid=12, pid=53)&lt;br /&gt;
            uid =&amp;gt; 12 (integer)&lt;br /&gt;
            pid =&amp;gt; 53 (integer)&lt;br /&gt;
            serial =&amp;gt; &amp;#039;aewtqwer&amp;#039; (8 chars)&lt;br /&gt;
            description =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
            jsondata =&amp;gt; &amp;#039;{&amp;quot;none&amp;quot;:&amp;quot;1&amp;quot;}&amp;#039; (12 chars)&lt;br /&gt;
            serviceRepair =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceCalibration =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceModification =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceNone =&amp;gt; 1 (integer)&lt;br /&gt;
            device =&amp;gt; Geobit\Gbdevices\Domain\Model\Deviceprototypepersistent entity (uid=3, pid=49)&lt;br /&gt;
               uid =&amp;gt; 3 (integer)&lt;br /&gt;
               pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceTitle =&amp;gt; &amp;#039;2138/01 EMD-100&amp;#039; (15 chars)&lt;br /&gt;
               deviceDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
               deviceType =&amp;gt; 1 (integer)&lt;br /&gt;
               isBaseDevice =&amp;gt; FALSE&lt;br /&gt;
               accPossible =&amp;gt; FALSE&lt;br /&gt;
               repairDiscontinued =&amp;gt; TRUE&lt;br /&gt;
               modification =&amp;gt; 0 (integer)&lt;br /&gt;
               deviceImage =&amp;gt; NULL&lt;br /&gt;
               deviceClass =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceClassprototypepersistent entity (uid=2, pid=49)&lt;br /&gt;
                  classTitle =&amp;gt; &amp;#039;EMD Series&amp;#039; (10 chars)&lt;br /&gt;
                  classDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
                  classFamily =&amp;gt; 0 (integer)&lt;br /&gt;
                  accPossible =&amp;gt; FALSE&lt;br /&gt;
                  uid =&amp;gt; 2 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceFamily =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceFamilyprototypepersistent entity (uid=1, pid=49)&lt;br /&gt;
                  familyTitle =&amp;gt; &amp;#039;Safety&amp;#039; (6 chars)&lt;br /&gt;
                  familyDescription =&amp;gt; &amp;#039;NARDA Safety Product Family&amp;#039; (27 chars)&lt;br /&gt;
                  familyFegroupAccess =&amp;gt; 2 (integer)&lt;br /&gt;
                  uid =&amp;gt; 1 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RMA Types ==&lt;br /&gt;
=== Code Hints ===&lt;br /&gt;
Definiert in:&lt;br /&gt;
* Template: ListRmas.html&lt;br /&gt;
* Template: NewFormFields.html&lt;br /&gt;
* Template: Mail.html&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Datatables&amp;diff=21323</id>
		<title>JavaScript - Datatables</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Datatables&amp;diff=21323"/>
		<updated>2015-12-03T10:44:10Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Standard Sortierung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://datatables.net/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://datatables.net/forums/discussion/8348/filtering-and-sorting/p1&lt;br /&gt;
&lt;br /&gt;
&amp;quot;bJQueryUI&amp;quot;: true&lt;br /&gt;
&lt;br /&gt;
== Snippets ==&lt;br /&gt;
=== Standard Sortierung ===&lt;br /&gt;
https://datatables.net/examples/basic_init/table_sorting.html&lt;br /&gt;
&lt;br /&gt;
order option. Parameter 1 = Spalte, Parameter 2 &amp;quot;asc&amp;quot; oder &amp;quot;desc&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    $(&amp;#039;#example&amp;#039;).DataTable( {&lt;br /&gt;
        &amp;quot;order&amp;quot;: [[ 3, &amp;quot;desc&amp;quot; ]]&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deutsche Umlaute Sortieren ===&lt;br /&gt;
JavaScript sortiert Deutsche Umlaute nicht richtig ein. Daher muß man mit Ersetzungen arbeiten.&lt;br /&gt;
&lt;br /&gt;
http://www.brain4.de/programmierecke/js/arraySort.php&lt;br /&gt;
&lt;br /&gt;
In Datatables kann man ein Plugin realisieren daß eine eigene Sortierroutine implementiert, die man dann wiederum setzen kann.&lt;br /&gt;
&lt;br /&gt;
http://datatables.net/plug-ins/sorting und http://datatables.net/usage/columns#sType&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	// Correction for datatables sorting routine&lt;br /&gt;
	(function() {&lt;br /&gt;
		&lt;br /&gt;
		function germanSort(a,b){&lt;br /&gt;
			a = a.replace(/&amp;lt;.*?&amp;gt;/g, &amp;quot;&amp;quot;); //exclude html tags&lt;br /&gt;
			a = a.toLowerCase();&lt;br /&gt;
			a = a.replace(/ä/g, &amp;quot;ae&amp;quot;); //replace german Umlauts&lt;br /&gt;
			a = a.replace(/ö/g, &amp;quot;ue&amp;quot;);&lt;br /&gt;
			a = a.replace(/ü/g, &amp;quot;ue&amp;quot;);&lt;br /&gt;
			a = a.replace(/ß/g, &amp;quot;ss&amp;quot;);&lt;br /&gt;
			a = a.replace(/^der\s|^die\s|^das\s/i, &amp;quot;&amp;quot;); //exclude some german articles&lt;br /&gt;
&lt;br /&gt;
			b = b.replace(/&amp;lt;.*?&amp;gt;/g, &amp;quot;&amp;quot;);&lt;br /&gt;
			b = b.toLowerCase();&lt;br /&gt;
			b = b.replace(/ä/g, &amp;quot;ae&amp;quot;);&lt;br /&gt;
			b = b.replace(/ö/g, &amp;quot;ue&amp;quot;);&lt;br /&gt;
			b = b.replace(/ü/g, &amp;quot;ue&amp;quot;);&lt;br /&gt;
			b = b.replace(/ß/g, &amp;quot;ss&amp;quot;);&lt;br /&gt;
			b = b.replace(/^der\s|^die\s|^das\s/i, &amp;quot;&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
			return (a == b) ? 0 : (a &amp;gt; b) ?  1 : -1;&lt;br /&gt;
		}&lt;br /&gt;
		jQuery.extend( jQuery.fn.dataTableExt.oSort, {&lt;br /&gt;
			&amp;quot;german-asc&amp;quot;: function ( a, b ) {&lt;br /&gt;
				return germanSort(a,b);&lt;br /&gt;
			},&lt;br /&gt;
			&lt;br /&gt;
			&amp;quot;german-desc&amp;quot;: function ( a, b ) {&lt;br /&gt;
		        return germanSort(a,b) * -1;&lt;br /&gt;
		    }&lt;br /&gt;
		} );&lt;br /&gt;
	}());&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	// INIT DATATABLE&lt;br /&gt;
	$(&amp;#039;#table_terms&amp;#039;).dataTable({&lt;br /&gt;
		&amp;quot;aoColumns&amp;quot;: [&lt;br /&gt;
            { &amp;quot;sType&amp;quot;: &amp;quot;german&amp;quot; }, //custom sorting for first column&lt;br /&gt;
            null, //default sorting (automatic detection) for second&lt;br /&gt;
            null // s.o. &lt;br /&gt;
        ],&lt;br /&gt;
         ... weitere Optionen&lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Datatables&amp;diff=21322</id>
		<title>JavaScript - Datatables</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Datatables&amp;diff=21322"/>
		<updated>2015-12-03T10:41:58Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Snippets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://datatables.net/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://datatables.net/forums/discussion/8348/filtering-and-sorting/p1&lt;br /&gt;
&lt;br /&gt;
&amp;quot;bJQueryUI&amp;quot;: true&lt;br /&gt;
&lt;br /&gt;
== Snippets ==&lt;br /&gt;
=== Standard Sortierung ===&lt;br /&gt;
&lt;br /&gt;
=== Deutsche Umlaute Sortieren ===&lt;br /&gt;
JavaScript sortiert Deutsche Umlaute nicht richtig ein. Daher muß man mit Ersetzungen arbeiten.&lt;br /&gt;
&lt;br /&gt;
http://www.brain4.de/programmierecke/js/arraySort.php&lt;br /&gt;
&lt;br /&gt;
In Datatables kann man ein Plugin realisieren daß eine eigene Sortierroutine implementiert, die man dann wiederum setzen kann.&lt;br /&gt;
&lt;br /&gt;
http://datatables.net/plug-ins/sorting und http://datatables.net/usage/columns#sType&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	// Correction for datatables sorting routine&lt;br /&gt;
	(function() {&lt;br /&gt;
		&lt;br /&gt;
		function germanSort(a,b){&lt;br /&gt;
			a = a.replace(/&amp;lt;.*?&amp;gt;/g, &amp;quot;&amp;quot;); //exclude html tags&lt;br /&gt;
			a = a.toLowerCase();&lt;br /&gt;
			a = a.replace(/ä/g, &amp;quot;ae&amp;quot;); //replace german Umlauts&lt;br /&gt;
			a = a.replace(/ö/g, &amp;quot;ue&amp;quot;);&lt;br /&gt;
			a = a.replace(/ü/g, &amp;quot;ue&amp;quot;);&lt;br /&gt;
			a = a.replace(/ß/g, &amp;quot;ss&amp;quot;);&lt;br /&gt;
			a = a.replace(/^der\s|^die\s|^das\s/i, &amp;quot;&amp;quot;); //exclude some german articles&lt;br /&gt;
&lt;br /&gt;
			b = b.replace(/&amp;lt;.*?&amp;gt;/g, &amp;quot;&amp;quot;);&lt;br /&gt;
			b = b.toLowerCase();&lt;br /&gt;
			b = b.replace(/ä/g, &amp;quot;ae&amp;quot;);&lt;br /&gt;
			b = b.replace(/ö/g, &amp;quot;ue&amp;quot;);&lt;br /&gt;
			b = b.replace(/ü/g, &amp;quot;ue&amp;quot;);&lt;br /&gt;
			b = b.replace(/ß/g, &amp;quot;ss&amp;quot;);&lt;br /&gt;
			b = b.replace(/^der\s|^die\s|^das\s/i, &amp;quot;&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
			return (a == b) ? 0 : (a &amp;gt; b) ?  1 : -1;&lt;br /&gt;
		}&lt;br /&gt;
		jQuery.extend( jQuery.fn.dataTableExt.oSort, {&lt;br /&gt;
			&amp;quot;german-asc&amp;quot;: function ( a, b ) {&lt;br /&gt;
				return germanSort(a,b);&lt;br /&gt;
			},&lt;br /&gt;
			&lt;br /&gt;
			&amp;quot;german-desc&amp;quot;: function ( a, b ) {&lt;br /&gt;
		        return germanSort(a,b) * -1;&lt;br /&gt;
		    }&lt;br /&gt;
		} );&lt;br /&gt;
	}());&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	// INIT DATATABLE&lt;br /&gt;
	$(&amp;#039;#table_terms&amp;#039;).dataTable({&lt;br /&gt;
		&amp;quot;aoColumns&amp;quot;: [&lt;br /&gt;
            { &amp;quot;sType&amp;quot;: &amp;quot;german&amp;quot; }, //custom sorting for first column&lt;br /&gt;
            null, //default sorting (automatic detection) for second&lt;br /&gt;
            null // s.o. &lt;br /&gt;
        ],&lt;br /&gt;
         ... weitere Optionen&lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21321</id>
		<title>Dokumentation gbrma</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21321"/>
		<updated>2015-12-03T10:41:21Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== TS Configuration ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konstanten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_gbdevices.persistence.storagePid = 49 # gbdevices wird benötigt für gbrma&lt;br /&gt;
plugin.tx_gbrma.persistence.storagePid = 49 # Speicherort der RMA Daten&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
senderMail = test@example.com //na&lt;br /&gt;
senderMailName = Test Mailer //na&lt;br /&gt;
adminMail = email@example.com // Adresse für Admin Mails&lt;br /&gt;
adminMailName = Test Admin // Name des Admins in E-Mails&lt;br /&gt;
mailSubject = RMA Request // Betreffzeile der Admin Mails wenn nicht anders im Code definiert evtl. rauswerfen TODO&lt;br /&gt;
superuserId = 1 // na&lt;br /&gt;
nbmClassId = 7 // Geräteklassen ID für nbm Geräte (für Sonderregelung bei der Auswahl)&lt;br /&gt;
nbm520Id = 104 // Geräte ID für nbm 520 wegen Sonderregelung&lt;br /&gt;
nbm550Id = 103 // Geräte ID für nbm550 wegen Sonderregelung&lt;br /&gt;
multipleBaseDevicesAllowedClassIds = &lt;br /&gt;
restrictFamilyAccessToFegroups = 0 // Schalter - beschränkt Zugriff auf bestimmte Gerätefamilien &lt;br /&gt;
// Wenn an dann muß die Familie einer Usergruppe zugeordnet sein. Nur User dieser Gruppe stehen Geräten dieser Familie für RMAs zur Verfügung&lt;br /&gt;
#pdf_css = EXT:gbrma/Resources/Public/Css/pdf.css // Not used&lt;br /&gt;
#pdf_html = EXT:gbrma/Resources/Private/Templates/Pdf/pdf.html // Not used&lt;br /&gt;
retourRmaAllowedGroupId = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zugriff auf RMA Plugin schützen ===&lt;br /&gt;
Das Plugin erlaubt generell jedem FE-User RMAs anzulegen. Welche Art von RMAs wird durch die weitere Konfiguration geregelt (s.u.). Wenn Nur bestimmte Benutzer das Plugin benutzen sollen kann man eine &amp;#039;&amp;#039;&amp;#039;normale FE-User Gruppe&amp;#039;&amp;#039;&amp;#039; (z.B. mit dem Namen RMA) anlegen und für die Seite auf der das Plugin liegt einen FE-User Zugriff einrichten.&lt;br /&gt;
&lt;br /&gt;
=== Family Access ===&lt;br /&gt;
 restrictFamilyAccessToFegroups = 1&lt;br /&gt;
Wenn dieser Wert im Setup gesetzt wird, dann kann der &amp;#039;&amp;#039;&amp;#039;Benutzer nur noch bestimmte Gerätefamilien für RMAs auswählen&amp;#039;&amp;#039;&amp;#039;. Wenn es nicht gesetzt ist können die Benutzer alle Familien nutzen.&lt;br /&gt;
&lt;br /&gt;
Durch die Installation von gbrma wird gbdevices um ein Feld erweitert. &lt;br /&gt;
* GB Devices -&amp;gt; Familie auswählen und Benutzergruppe im Feld Allowed FE-User Group setzen&lt;br /&gt;
* Dem FE User diese Gruppe zuordnen.&lt;br /&gt;
&lt;br /&gt;
=== Retour RMAs ===&lt;br /&gt;
==== Konfiguration ====&lt;br /&gt;
* Gruppe anlegen z.B. &amp;quot;Erlaube Retour RMAs&amp;quot;&lt;br /&gt;
* ID der Gruppe merken&lt;br /&gt;
* TypoScript konfigurieren&lt;br /&gt;
 # Feature einschalten&lt;br /&gt;
 restrictRetourAccessToFegroups = 1&lt;br /&gt;
 # Gruppen ID eintragen (mehrere mit Komma trennen) &lt;br /&gt;
 retourRmaAllowedGroupIds = 4,5,6&lt;br /&gt;
* Gruppe dem gewünschten Benutzer zuordnen&lt;br /&gt;
&lt;br /&gt;
=== Client Mode ===&lt;br /&gt;
In diesem Modus dient die Client ID (im User unter RMA hinterlegt) als Zugriffsmerkmal für die RMAs. D.h. mehrere User können auf die selben RMAs zugreifen&lt;br /&gt;
&lt;br /&gt;
=== Modifications ===&lt;br /&gt;
Manche Geräte können modifiziert werden.&lt;br /&gt;
Hartkodiert in gbdevices im Model und in den Sprachdateien&lt;br /&gt;
&lt;br /&gt;
=== Model / Fields Dokumentation ===&lt;br /&gt;
Beispiel Array einer RMA mit untergeordneten Models für Metadevice, Device, DeviceClass, DeviceFamily&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
array(rma =&amp;gt; Geobit\Gbrma\Domain\Model\Rmaprototypepersistent entity (uid=11, pid=53)&lt;br /&gt;
      rmaNumber =&amp;gt; &amp;#039;8&amp;#039; (1 chars)&lt;br /&gt;
      rmaType =&amp;gt; 1 (integer)&lt;br /&gt;
      locked =&amp;gt; 0 (integer)&lt;br /&gt;
      state =&amp;gt; 0 (integer)&lt;br /&gt;
      orderExpress =&amp;gt; 0 (integer)&lt;br /&gt;
      additionalInformation =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
      rmaUser =&amp;gt; 1 (integer)&lt;br /&gt;
      crdate =&amp;gt; 1443778492 (integer)&lt;br /&gt;
      tstamp =&amp;gt; 1443783879 (integer)&lt;br /&gt;
      uid =&amp;gt; 11 (integer)&lt;br /&gt;
      pid =&amp;gt; 53 (integer)&lt;br /&gt;
      metadevice =&amp;gt; TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items)&lt;br /&gt;
         0000000002d804830000000151a56f69 =&amp;gt; Geobit\Gbrma\Domain\Model\Metadeviceprototypepersistent entity (uid=12, pid=53)&lt;br /&gt;
            uid =&amp;gt; 12 (integer)&lt;br /&gt;
            pid =&amp;gt; 53 (integer)&lt;br /&gt;
            serial =&amp;gt; &amp;#039;aewtqwer&amp;#039; (8 chars)&lt;br /&gt;
            description =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
            jsondata =&amp;gt; &amp;#039;{&amp;quot;none&amp;quot;:&amp;quot;1&amp;quot;}&amp;#039; (12 chars)&lt;br /&gt;
            serviceRepair =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceCalibration =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceModification =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceNone =&amp;gt; 1 (integer)&lt;br /&gt;
            device =&amp;gt; Geobit\Gbdevices\Domain\Model\Deviceprototypepersistent entity (uid=3, pid=49)&lt;br /&gt;
               uid =&amp;gt; 3 (integer)&lt;br /&gt;
               pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceTitle =&amp;gt; &amp;#039;2138/01 EMD-100&amp;#039; (15 chars)&lt;br /&gt;
               deviceDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
               deviceType =&amp;gt; 1 (integer)&lt;br /&gt;
               isBaseDevice =&amp;gt; FALSE&lt;br /&gt;
               accPossible =&amp;gt; FALSE&lt;br /&gt;
               repairDiscontinued =&amp;gt; TRUE&lt;br /&gt;
               modification =&amp;gt; 0 (integer)&lt;br /&gt;
               deviceImage =&amp;gt; NULL&lt;br /&gt;
               deviceClass =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceClassprototypepersistent entity (uid=2, pid=49)&lt;br /&gt;
                  classTitle =&amp;gt; &amp;#039;EMD Series&amp;#039; (10 chars)&lt;br /&gt;
                  classDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
                  classFamily =&amp;gt; 0 (integer)&lt;br /&gt;
                  accPossible =&amp;gt; FALSE&lt;br /&gt;
                  uid =&amp;gt; 2 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceFamily =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceFamilyprototypepersistent entity (uid=1, pid=49)&lt;br /&gt;
                  familyTitle =&amp;gt; &amp;#039;Safety&amp;#039; (6 chars)&lt;br /&gt;
                  familyDescription =&amp;gt; &amp;#039;NARDA Safety Product Family&amp;#039; (27 chars)&lt;br /&gt;
                  familyFegroupAccess =&amp;gt; 2 (integer)&lt;br /&gt;
                  uid =&amp;gt; 1 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RMA Types ==&lt;br /&gt;
=== Code Hints ===&lt;br /&gt;
Definiert in:&lt;br /&gt;
* Template: ListRmas.html&lt;br /&gt;
* Template: NewFormFields.html&lt;br /&gt;
* Template: Mail.html&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21320</id>
		<title>Dokumentation gbrma</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21320"/>
		<updated>2015-12-03T09:51:17Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== TS Configuration ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konstanten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_gbdevices.persistence.storagePid = 49 # gbdevices wird benötigt für gbrma&lt;br /&gt;
plugin.tx_gbrma.persistence.storagePid = 49 # Speicherort der RMA Daten&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
senderMail = test@example.com //na&lt;br /&gt;
senderMailName = Test Mailer //na&lt;br /&gt;
adminMail = email@example.com // Adresse für Admin Mails&lt;br /&gt;
adminMailName = Test Admin // Name des Admins in E-Mails&lt;br /&gt;
mailSubject = RMA Request // Betreffzeile der Admin Mails wenn nicht anders im Code definiert evtl. rauswerfen TODO&lt;br /&gt;
superuserId = 1 // na&lt;br /&gt;
nbmClassId = 7 // Geräteklassen ID für nbm Geräte (für Sonderregelung bei der Auswahl)&lt;br /&gt;
nbm520Id = 104 // Geräte ID für nbm 520 wegen Sonderregelung&lt;br /&gt;
nbm550Id = 103 // Geräte ID für nbm550 wegen Sonderregelung&lt;br /&gt;
multipleBaseDevicesAllowedClassIds = &lt;br /&gt;
restrictFamilyAccessToFegroups = 0 // Schalter - beschränkt Zugriff auf bestimmte Gerätefamilien &lt;br /&gt;
// Wenn an dann muß die Familie einer Usergruppe zugeordnet sein. Nur User dieser Gruppe stehen Geräten dieser Familie für RMAs zur Verfügung&lt;br /&gt;
#pdf_css = EXT:gbrma/Resources/Public/Css/pdf.css // Not used&lt;br /&gt;
#pdf_html = EXT:gbrma/Resources/Private/Templates/Pdf/pdf.html // Not used&lt;br /&gt;
retourRmaAllowedGroupId = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zugriff auf RMA Plugin schützen ===&lt;br /&gt;
Das Plugin erlaubt generell jedem FE-User RMAs anzulegen. Welche Art von RMAs wird durch die weitere Konfiguration geregelt (s.u.). Wenn Nur bestimmte Benutzer das Plugin benutzen sollen kann man eine &amp;#039;&amp;#039;&amp;#039;normale FE-User Gruppe&amp;#039;&amp;#039;&amp;#039; (z.B. mit dem Namen RMA) anlegen und für die Seite auf der das Plugin liegt einen FE-User Zugriff einrichten.&lt;br /&gt;
&lt;br /&gt;
=== Family Access ===&lt;br /&gt;
 restrictFamilyAccessToFegroups = 1&lt;br /&gt;
Wenn dieser Wert im Setup gesetzt wird, dann kann der &amp;#039;&amp;#039;&amp;#039;Benutzer nur noch bestimmte Gerätefamilien für RMAs auswählen&amp;#039;&amp;#039;&amp;#039;. Wenn es nicht gesetzt ist können die Benutzer alle Familien nutzen.&lt;br /&gt;
&lt;br /&gt;
Durch die Installation von gbrma wird gbdevices um ein Feld erweitert. &lt;br /&gt;
* GB Devices -&amp;gt; Familie auswählen und Benutzergruppe im Feld Allowed FE-User Group setzen&lt;br /&gt;
* Dem FE User diese Gruppe zuordnen.&lt;br /&gt;
&lt;br /&gt;
=== Retour RMAs ===&lt;br /&gt;
==== Konfiguration ====&lt;br /&gt;
* Gruppe anlegen z.B. &amp;quot;Erlaube Retour RMAs&amp;quot;&lt;br /&gt;
* ID der Gruppe merken&lt;br /&gt;
* TypoScript konfigurieren&lt;br /&gt;
 # Feature einschalten&lt;br /&gt;
 restrictRetourAccessToFegroups = 1&lt;br /&gt;
 # Gruppen ID eintragen (mehrere mit Komma trennen) &lt;br /&gt;
 retourRmaAllowedGroupIds = 4,5,6&lt;br /&gt;
* Gruppe dem gewünschten Benutzer zuordnen&lt;br /&gt;
&lt;br /&gt;
=== Client Mode ===&lt;br /&gt;
In diesem Modus dient die Client ID (im User unter RMA hinterlegt) als Zugriffsmerkmal für die RMAs. D.h. mehrere User können auf die selben RMAs zugreifen&lt;br /&gt;
&lt;br /&gt;
=== Modifications ===&lt;br /&gt;
Manche Geräte können modifiziert werden.&lt;br /&gt;
Hartkodiert in gbdevices im Model und in den Sprachdateien&lt;br /&gt;
&lt;br /&gt;
=== Model / Fields Dokumentation ===&lt;br /&gt;
Beispiel Array einer RMA mit untergeordneten Models für Metadevice, Device, DeviceClass, DeviceFamily&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
array(rma =&amp;gt; Geobit\Gbrma\Domain\Model\Rmaprototypepersistent entity (uid=11, pid=53)&lt;br /&gt;
      rmaNumber =&amp;gt; &amp;#039;8&amp;#039; (1 chars)&lt;br /&gt;
      rmaType =&amp;gt; 1 (integer)&lt;br /&gt;
      locked =&amp;gt; 0 (integer)&lt;br /&gt;
      state =&amp;gt; 0 (integer)&lt;br /&gt;
      orderExpress =&amp;gt; 0 (integer)&lt;br /&gt;
      additionalInformation =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
      rmaUser =&amp;gt; 1 (integer)&lt;br /&gt;
      crdate =&amp;gt; 1443778492 (integer)&lt;br /&gt;
      tstamp =&amp;gt; 1443783879 (integer)&lt;br /&gt;
      uid =&amp;gt; 11 (integer)&lt;br /&gt;
      pid =&amp;gt; 53 (integer)&lt;br /&gt;
      metadevice =&amp;gt; TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items)&lt;br /&gt;
         0000000002d804830000000151a56f69 =&amp;gt; Geobit\Gbrma\Domain\Model\Metadeviceprototypepersistent entity (uid=12, pid=53)&lt;br /&gt;
            uid =&amp;gt; 12 (integer)&lt;br /&gt;
            pid =&amp;gt; 53 (integer)&lt;br /&gt;
            serial =&amp;gt; &amp;#039;aewtqwer&amp;#039; (8 chars)&lt;br /&gt;
            description =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
            jsondata =&amp;gt; &amp;#039;{&amp;quot;none&amp;quot;:&amp;quot;1&amp;quot;}&amp;#039; (12 chars)&lt;br /&gt;
            serviceRepair =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceCalibration =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceModification =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceNone =&amp;gt; 1 (integer)&lt;br /&gt;
            device =&amp;gt; Geobit\Gbdevices\Domain\Model\Deviceprototypepersistent entity (uid=3, pid=49)&lt;br /&gt;
               uid =&amp;gt; 3 (integer)&lt;br /&gt;
               pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceTitle =&amp;gt; &amp;#039;2138/01 EMD-100&amp;#039; (15 chars)&lt;br /&gt;
               deviceDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
               deviceType =&amp;gt; 1 (integer)&lt;br /&gt;
               isBaseDevice =&amp;gt; FALSE&lt;br /&gt;
               accPossible =&amp;gt; FALSE&lt;br /&gt;
               repairDiscontinued =&amp;gt; TRUE&lt;br /&gt;
               modification =&amp;gt; 0 (integer)&lt;br /&gt;
               deviceImage =&amp;gt; NULL&lt;br /&gt;
               deviceClass =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceClassprototypepersistent entity (uid=2, pid=49)&lt;br /&gt;
                  classTitle =&amp;gt; &amp;#039;EMD Series&amp;#039; (10 chars)&lt;br /&gt;
                  classDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
                  classFamily =&amp;gt; 0 (integer)&lt;br /&gt;
                  accPossible =&amp;gt; FALSE&lt;br /&gt;
                  uid =&amp;gt; 2 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceFamily =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceFamilyprototypepersistent entity (uid=1, pid=49)&lt;br /&gt;
                  familyTitle =&amp;gt; &amp;#039;Safety&amp;#039; (6 chars)&lt;br /&gt;
                  familyDescription =&amp;gt; &amp;#039;NARDA Safety Product Family&amp;#039; (27 chars)&lt;br /&gt;
                  familyFegroupAccess =&amp;gt; 2 (integer)&lt;br /&gt;
                  uid =&amp;gt; 1 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21319</id>
		<title>Dokumentation gbrma</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21319"/>
		<updated>2015-12-03T09:50:50Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Retour RMAs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== TS Configuration ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konstanten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_gbdevices.persistence.storagePid = 49 # gbdevices wird benötigt für gbrma&lt;br /&gt;
plugin.tx_gbrma.persistence.storagePid = 49 # Speicherort der RMA Daten&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
senderMail = test@example.com //na&lt;br /&gt;
senderMailName = Test Mailer //na&lt;br /&gt;
adminMail = email@example.com // Adresse für Admin Mails&lt;br /&gt;
adminMailName = Test Admin // Name des Admins in E-Mails&lt;br /&gt;
mailSubject = RMA Request // Betreffzeile der Admin Mails wenn nicht anders im Code definiert evtl. rauswerfen TODO&lt;br /&gt;
superuserId = 1 // na&lt;br /&gt;
nbmClassId = 7 // Geräteklassen ID für nbm Geräte (für Sonderregelung bei der Auswahl)&lt;br /&gt;
nbm520Id = 104 // Geräte ID für nbm 520 wegen Sonderregelung&lt;br /&gt;
nbm550Id = 103 // Geräte ID für nbm550 wegen Sonderregelung&lt;br /&gt;
multipleBaseDevicesAllowedClassIds = &lt;br /&gt;
restrictFamilyAccessToFegroups = 0 // Schalter - beschränkt Zugriff auf bestimmte Gerätefamilien &lt;br /&gt;
// Wenn an dann muß die Familie einer Usergruppe zugeordnet sein. Nur User dieser Gruppe stehen Geräten dieser Familie für RMAs zur Verfügung&lt;br /&gt;
#pdf_css = EXT:gbrma/Resources/Public/Css/pdf.css // Not used&lt;br /&gt;
#pdf_html = EXT:gbrma/Resources/Private/Templates/Pdf/pdf.html // Not used&lt;br /&gt;
retourRmaAllowedGroupId = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zugriff auf RMA Plugin schützen ===&lt;br /&gt;
Das Plugin erlaubt generell jedem FE-User RMAs anzulegen. Welche Art von RMAs wird durch die weitere Konfiguration geregelt (s.u.). Wenn Nur bestimmte Benutzer das Plugin benutzen sollen kann man eine &amp;#039;&amp;#039;&amp;#039;normale FE-User Gruppe&amp;#039;&amp;#039;&amp;#039; (z.B. mit dem Namen RMA) anlegen und für die Seite auf der das Plugin liegt einen FE-User Zugriff einrichten.&lt;br /&gt;
&lt;br /&gt;
=== Family Access ===&lt;br /&gt;
 restrictFamilyAccessToFegroups = 1&lt;br /&gt;
Wenn dieser Wert im Setup gesetzt wird, dann kann der &amp;#039;&amp;#039;&amp;#039;Benutzer nur noch bestimmte Gerätefamilien für RMAs auswählen&amp;#039;&amp;#039;&amp;#039;. Wenn es nicht gesetzt ist können die Benutzer alle Familien nutzen.&lt;br /&gt;
&lt;br /&gt;
Durch die Installation von gbrma wird gbdevices um ein Feld erweitert. &lt;br /&gt;
* GB Devices -&amp;gt; Familie auswählen und Benutzergruppe im Feld Allowed FE-User Group setzen&lt;br /&gt;
* Dem FE User diese Gruppe zuordnen.&lt;br /&gt;
&lt;br /&gt;
=== Retour RMAs ===&lt;br /&gt;
==== Konfiguration ====&lt;br /&gt;
* Gruppe anlegen z.B. &amp;quot;Erlaube Retour RMAs&amp;quot;&lt;br /&gt;
* ID der Gruppe merken&lt;br /&gt;
* TypoScript konfigurieren&lt;br /&gt;
 # Feature einschalten&lt;br /&gt;
 retourRmaAllowedGroupId = 1&lt;br /&gt;
 # Gruppen ID eintragen (mehrere mit Komma trennen) &lt;br /&gt;
 retourRmaAllowedGroupIds = 4,5,6&lt;br /&gt;
* Gruppe dem gewünschten Benutzer zuordnen&lt;br /&gt;
&lt;br /&gt;
=== Client Mode ===&lt;br /&gt;
In diesem Modus dient die Client ID (im User unter RMA hinterlegt) als Zugriffsmerkmal für die RMAs. D.h. mehrere User können auf die selben RMAs zugreifen&lt;br /&gt;
&lt;br /&gt;
=== Modifications ===&lt;br /&gt;
Manche Geräte können modifiziert werden.&lt;br /&gt;
Hartkodiert in gbdevices im Model und in den Sprachdateien&lt;br /&gt;
&lt;br /&gt;
=== Model / Fields Dokumentation ===&lt;br /&gt;
Beispiel Array einer RMA mit untergeordneten Models für Metadevice, Device, DeviceClass, DeviceFamily&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
array(rma =&amp;gt; Geobit\Gbrma\Domain\Model\Rmaprototypepersistent entity (uid=11, pid=53)&lt;br /&gt;
      rmaNumber =&amp;gt; &amp;#039;8&amp;#039; (1 chars)&lt;br /&gt;
      rmaType =&amp;gt; 1 (integer)&lt;br /&gt;
      locked =&amp;gt; 0 (integer)&lt;br /&gt;
      state =&amp;gt; 0 (integer)&lt;br /&gt;
      orderExpress =&amp;gt; 0 (integer)&lt;br /&gt;
      additionalInformation =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
      rmaUser =&amp;gt; 1 (integer)&lt;br /&gt;
      crdate =&amp;gt; 1443778492 (integer)&lt;br /&gt;
      tstamp =&amp;gt; 1443783879 (integer)&lt;br /&gt;
      uid =&amp;gt; 11 (integer)&lt;br /&gt;
      pid =&amp;gt; 53 (integer)&lt;br /&gt;
      metadevice =&amp;gt; TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items)&lt;br /&gt;
         0000000002d804830000000151a56f69 =&amp;gt; Geobit\Gbrma\Domain\Model\Metadeviceprototypepersistent entity (uid=12, pid=53)&lt;br /&gt;
            uid =&amp;gt; 12 (integer)&lt;br /&gt;
            pid =&amp;gt; 53 (integer)&lt;br /&gt;
            serial =&amp;gt; &amp;#039;aewtqwer&amp;#039; (8 chars)&lt;br /&gt;
            description =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
            jsondata =&amp;gt; &amp;#039;{&amp;quot;none&amp;quot;:&amp;quot;1&amp;quot;}&amp;#039; (12 chars)&lt;br /&gt;
            serviceRepair =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceCalibration =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceModification =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceNone =&amp;gt; 1 (integer)&lt;br /&gt;
            device =&amp;gt; Geobit\Gbdevices\Domain\Model\Deviceprototypepersistent entity (uid=3, pid=49)&lt;br /&gt;
               uid =&amp;gt; 3 (integer)&lt;br /&gt;
               pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceTitle =&amp;gt; &amp;#039;2138/01 EMD-100&amp;#039; (15 chars)&lt;br /&gt;
               deviceDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
               deviceType =&amp;gt; 1 (integer)&lt;br /&gt;
               isBaseDevice =&amp;gt; FALSE&lt;br /&gt;
               accPossible =&amp;gt; FALSE&lt;br /&gt;
               repairDiscontinued =&amp;gt; TRUE&lt;br /&gt;
               modification =&amp;gt; 0 (integer)&lt;br /&gt;
               deviceImage =&amp;gt; NULL&lt;br /&gt;
               deviceClass =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceClassprototypepersistent entity (uid=2, pid=49)&lt;br /&gt;
                  classTitle =&amp;gt; &amp;#039;EMD Series&amp;#039; (10 chars)&lt;br /&gt;
                  classDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
                  classFamily =&amp;gt; 0 (integer)&lt;br /&gt;
                  accPossible =&amp;gt; FALSE&lt;br /&gt;
                  uid =&amp;gt; 2 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceFamily =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceFamilyprototypepersistent entity (uid=1, pid=49)&lt;br /&gt;
                  familyTitle =&amp;gt; &amp;#039;Safety&amp;#039; (6 chars)&lt;br /&gt;
                  familyDescription =&amp;gt; &amp;#039;NARDA Safety Product Family&amp;#039; (27 chars)&lt;br /&gt;
                  familyFegroupAccess =&amp;gt; 2 (integer)&lt;br /&gt;
                  uid =&amp;gt; 1 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21318</id>
		<title>Dokumentation gbrma</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21318"/>
		<updated>2015-12-03T09:26:49Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Family Access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== TS Configuration ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konstanten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_gbdevices.persistence.storagePid = 49 # gbdevices wird benötigt für gbrma&lt;br /&gt;
plugin.tx_gbrma.persistence.storagePid = 49 # Speicherort der RMA Daten&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
senderMail = test@example.com //na&lt;br /&gt;
senderMailName = Test Mailer //na&lt;br /&gt;
adminMail = email@example.com // Adresse für Admin Mails&lt;br /&gt;
adminMailName = Test Admin // Name des Admins in E-Mails&lt;br /&gt;
mailSubject = RMA Request // Betreffzeile der Admin Mails wenn nicht anders im Code definiert evtl. rauswerfen TODO&lt;br /&gt;
superuserId = 1 // na&lt;br /&gt;
nbmClassId = 7 // Geräteklassen ID für nbm Geräte (für Sonderregelung bei der Auswahl)&lt;br /&gt;
nbm520Id = 104 // Geräte ID für nbm 520 wegen Sonderregelung&lt;br /&gt;
nbm550Id = 103 // Geräte ID für nbm550 wegen Sonderregelung&lt;br /&gt;
multipleBaseDevicesAllowedClassIds = &lt;br /&gt;
restrictFamilyAccessToFegroups = 0 // Schalter - beschränkt Zugriff auf bestimmte Gerätefamilien &lt;br /&gt;
// Wenn an dann muß die Familie einer Usergruppe zugeordnet sein. Nur User dieser Gruppe stehen Geräten dieser Familie für RMAs zur Verfügung&lt;br /&gt;
#pdf_css = EXT:gbrma/Resources/Public/Css/pdf.css // Not used&lt;br /&gt;
#pdf_html = EXT:gbrma/Resources/Private/Templates/Pdf/pdf.html // Not used&lt;br /&gt;
retourRmaAllowedGroupId = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zugriff auf RMA Plugin schützen ===&lt;br /&gt;
Das Plugin erlaubt generell jedem FE-User RMAs anzulegen. Welche Art von RMAs wird durch die weitere Konfiguration geregelt (s.u.). Wenn Nur bestimmte Benutzer das Plugin benutzen sollen kann man eine &amp;#039;&amp;#039;&amp;#039;normale FE-User Gruppe&amp;#039;&amp;#039;&amp;#039; (z.B. mit dem Namen RMA) anlegen und für die Seite auf der das Plugin liegt einen FE-User Zugriff einrichten.&lt;br /&gt;
&lt;br /&gt;
=== Family Access ===&lt;br /&gt;
 restrictFamilyAccessToFegroups = 1&lt;br /&gt;
Wenn dieser Wert im Setup gesetzt wird, dann kann der &amp;#039;&amp;#039;&amp;#039;Benutzer nur noch bestimmte Gerätefamilien für RMAs auswählen&amp;#039;&amp;#039;&amp;#039;. Wenn es nicht gesetzt ist können die Benutzer alle Familien nutzen.&lt;br /&gt;
&lt;br /&gt;
Durch die Installation von gbrma wird gbdevices um ein Feld erweitert. &lt;br /&gt;
* GB Devices -&amp;gt; Familie auswählen und Benutzergruppe im Feld Allowed FE-User Group setzen&lt;br /&gt;
* Dem FE User diese Gruppe zuordnen.&lt;br /&gt;
&lt;br /&gt;
=== Retour RMAs ===&lt;br /&gt;
retourRmaAllowedGroupId = 0&lt;br /&gt;
&lt;br /&gt;
=== Client Mode ===&lt;br /&gt;
In diesem Modus dient die Client ID (im User unter RMA hinterlegt) als Zugriffsmerkmal für die RMAs. D.h. mehrere User können auf die selben RMAs zugreifen&lt;br /&gt;
&lt;br /&gt;
=== Modifications ===&lt;br /&gt;
Manche Geräte können modifiziert werden.&lt;br /&gt;
Hartkodiert in gbdevices im Model und in den Sprachdateien&lt;br /&gt;
&lt;br /&gt;
=== Model / Fields Dokumentation ===&lt;br /&gt;
Beispiel Array einer RMA mit untergeordneten Models für Metadevice, Device, DeviceClass, DeviceFamily&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
array(rma =&amp;gt; Geobit\Gbrma\Domain\Model\Rmaprototypepersistent entity (uid=11, pid=53)&lt;br /&gt;
      rmaNumber =&amp;gt; &amp;#039;8&amp;#039; (1 chars)&lt;br /&gt;
      rmaType =&amp;gt; 1 (integer)&lt;br /&gt;
      locked =&amp;gt; 0 (integer)&lt;br /&gt;
      state =&amp;gt; 0 (integer)&lt;br /&gt;
      orderExpress =&amp;gt; 0 (integer)&lt;br /&gt;
      additionalInformation =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
      rmaUser =&amp;gt; 1 (integer)&lt;br /&gt;
      crdate =&amp;gt; 1443778492 (integer)&lt;br /&gt;
      tstamp =&amp;gt; 1443783879 (integer)&lt;br /&gt;
      uid =&amp;gt; 11 (integer)&lt;br /&gt;
      pid =&amp;gt; 53 (integer)&lt;br /&gt;
      metadevice =&amp;gt; TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items)&lt;br /&gt;
         0000000002d804830000000151a56f69 =&amp;gt; Geobit\Gbrma\Domain\Model\Metadeviceprototypepersistent entity (uid=12, pid=53)&lt;br /&gt;
            uid =&amp;gt; 12 (integer)&lt;br /&gt;
            pid =&amp;gt; 53 (integer)&lt;br /&gt;
            serial =&amp;gt; &amp;#039;aewtqwer&amp;#039; (8 chars)&lt;br /&gt;
            description =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
            jsondata =&amp;gt; &amp;#039;{&amp;quot;none&amp;quot;:&amp;quot;1&amp;quot;}&amp;#039; (12 chars)&lt;br /&gt;
            serviceRepair =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceCalibration =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceModification =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceNone =&amp;gt; 1 (integer)&lt;br /&gt;
            device =&amp;gt; Geobit\Gbdevices\Domain\Model\Deviceprototypepersistent entity (uid=3, pid=49)&lt;br /&gt;
               uid =&amp;gt; 3 (integer)&lt;br /&gt;
               pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceTitle =&amp;gt; &amp;#039;2138/01 EMD-100&amp;#039; (15 chars)&lt;br /&gt;
               deviceDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
               deviceType =&amp;gt; 1 (integer)&lt;br /&gt;
               isBaseDevice =&amp;gt; FALSE&lt;br /&gt;
               accPossible =&amp;gt; FALSE&lt;br /&gt;
               repairDiscontinued =&amp;gt; TRUE&lt;br /&gt;
               modification =&amp;gt; 0 (integer)&lt;br /&gt;
               deviceImage =&amp;gt; NULL&lt;br /&gt;
               deviceClass =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceClassprototypepersistent entity (uid=2, pid=49)&lt;br /&gt;
                  classTitle =&amp;gt; &amp;#039;EMD Series&amp;#039; (10 chars)&lt;br /&gt;
                  classDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
                  classFamily =&amp;gt; 0 (integer)&lt;br /&gt;
                  accPossible =&amp;gt; FALSE&lt;br /&gt;
                  uid =&amp;gt; 2 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceFamily =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceFamilyprototypepersistent entity (uid=1, pid=49)&lt;br /&gt;
                  familyTitle =&amp;gt; &amp;#039;Safety&amp;#039; (6 chars)&lt;br /&gt;
                  familyDescription =&amp;gt; &amp;#039;NARDA Safety Product Family&amp;#039; (27 chars)&lt;br /&gt;
                  familyFegroupAccess =&amp;gt; 2 (integer)&lt;br /&gt;
                  uid =&amp;gt; 1 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21317</id>
		<title>Dokumentation gbrma</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21317"/>
		<updated>2015-12-03T09:26:24Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* TS Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== TS Configuration ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konstanten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_gbdevices.persistence.storagePid = 49 # gbdevices wird benötigt für gbrma&lt;br /&gt;
plugin.tx_gbrma.persistence.storagePid = 49 # Speicherort der RMA Daten&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
senderMail = test@example.com //na&lt;br /&gt;
senderMailName = Test Mailer //na&lt;br /&gt;
adminMail = email@example.com // Adresse für Admin Mails&lt;br /&gt;
adminMailName = Test Admin // Name des Admins in E-Mails&lt;br /&gt;
mailSubject = RMA Request // Betreffzeile der Admin Mails wenn nicht anders im Code definiert evtl. rauswerfen TODO&lt;br /&gt;
superuserId = 1 // na&lt;br /&gt;
nbmClassId = 7 // Geräteklassen ID für nbm Geräte (für Sonderregelung bei der Auswahl)&lt;br /&gt;
nbm520Id = 104 // Geräte ID für nbm 520 wegen Sonderregelung&lt;br /&gt;
nbm550Id = 103 // Geräte ID für nbm550 wegen Sonderregelung&lt;br /&gt;
multipleBaseDevicesAllowedClassIds = &lt;br /&gt;
restrictFamilyAccessToFegroups = 0 // Schalter - beschränkt Zugriff auf bestimmte Gerätefamilien &lt;br /&gt;
// Wenn an dann muß die Familie einer Usergruppe zugeordnet sein. Nur User dieser Gruppe stehen Geräten dieser Familie für RMAs zur Verfügung&lt;br /&gt;
#pdf_css = EXT:gbrma/Resources/Public/Css/pdf.css // Not used&lt;br /&gt;
#pdf_html = EXT:gbrma/Resources/Private/Templates/Pdf/pdf.html // Not used&lt;br /&gt;
retourRmaAllowedGroupId = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zugriff auf RMA Plugin schützen ===&lt;br /&gt;
Das Plugin erlaubt generell jedem FE-User RMAs anzulegen. Welche Art von RMAs wird durch die weitere Konfiguration geregelt (s.u.). Wenn Nur bestimmte Benutzer das Plugin benutzen sollen kann man eine &amp;#039;&amp;#039;&amp;#039;normale FE-User Gruppe&amp;#039;&amp;#039;&amp;#039; (z.B. mit dem Namen RMA) anlegen und für die Seite auf der das Plugin liegt einen FE-User Zugriff einrichten.&lt;br /&gt;
&lt;br /&gt;
=== Family Access ===&lt;br /&gt;
 restrictFamilyAccessToFegroups = 1&lt;br /&gt;
Wenn dieser Wert im Setup gesetzt wird, dann kann der &amp;#039;&amp;#039;&amp;#039;Benutzer nur noch bestimmte Gerätefamilien für RMAs auswählen&amp;#039;&amp;#039;&amp;#039;. Wenn es nicht gesetzt ist können die Benutzer alle Familien nutzen.&lt;br /&gt;
&lt;br /&gt;
Durch die Installation von gbrma wird gbdevices um ein Feld erweitert. &lt;br /&gt;
* GB Devices -&amp;gt; Familie auswählen und Benutzergruppe im Feld Allowed FE-User Group setzen&lt;br /&gt;
* Dem FE User diese Gruppe zuordnen.&lt;br /&gt;
=== Client Mode ===&lt;br /&gt;
In diesem Modus dient die Client ID (im User unter RMA hinterlegt) als Zugriffsmerkmal für die RMAs. D.h. mehrere User können auf die selben RMAs zugreifen&lt;br /&gt;
&lt;br /&gt;
=== Modifications ===&lt;br /&gt;
Manche Geräte können modifiziert werden.&lt;br /&gt;
Hartkodiert in gbdevices im Model und in den Sprachdateien&lt;br /&gt;
&lt;br /&gt;
=== Model / Fields Dokumentation ===&lt;br /&gt;
Beispiel Array einer RMA mit untergeordneten Models für Metadevice, Device, DeviceClass, DeviceFamily&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
array(rma =&amp;gt; Geobit\Gbrma\Domain\Model\Rmaprototypepersistent entity (uid=11, pid=53)&lt;br /&gt;
      rmaNumber =&amp;gt; &amp;#039;8&amp;#039; (1 chars)&lt;br /&gt;
      rmaType =&amp;gt; 1 (integer)&lt;br /&gt;
      locked =&amp;gt; 0 (integer)&lt;br /&gt;
      state =&amp;gt; 0 (integer)&lt;br /&gt;
      orderExpress =&amp;gt; 0 (integer)&lt;br /&gt;
      additionalInformation =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
      rmaUser =&amp;gt; 1 (integer)&lt;br /&gt;
      crdate =&amp;gt; 1443778492 (integer)&lt;br /&gt;
      tstamp =&amp;gt; 1443783879 (integer)&lt;br /&gt;
      uid =&amp;gt; 11 (integer)&lt;br /&gt;
      pid =&amp;gt; 53 (integer)&lt;br /&gt;
      metadevice =&amp;gt; TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items)&lt;br /&gt;
         0000000002d804830000000151a56f69 =&amp;gt; Geobit\Gbrma\Domain\Model\Metadeviceprototypepersistent entity (uid=12, pid=53)&lt;br /&gt;
            uid =&amp;gt; 12 (integer)&lt;br /&gt;
            pid =&amp;gt; 53 (integer)&lt;br /&gt;
            serial =&amp;gt; &amp;#039;aewtqwer&amp;#039; (8 chars)&lt;br /&gt;
            description =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
            jsondata =&amp;gt; &amp;#039;{&amp;quot;none&amp;quot;:&amp;quot;1&amp;quot;}&amp;#039; (12 chars)&lt;br /&gt;
            serviceRepair =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceCalibration =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceModification =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceNone =&amp;gt; 1 (integer)&lt;br /&gt;
            device =&amp;gt; Geobit\Gbdevices\Domain\Model\Deviceprototypepersistent entity (uid=3, pid=49)&lt;br /&gt;
               uid =&amp;gt; 3 (integer)&lt;br /&gt;
               pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceTitle =&amp;gt; &amp;#039;2138/01 EMD-100&amp;#039; (15 chars)&lt;br /&gt;
               deviceDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
               deviceType =&amp;gt; 1 (integer)&lt;br /&gt;
               isBaseDevice =&amp;gt; FALSE&lt;br /&gt;
               accPossible =&amp;gt; FALSE&lt;br /&gt;
               repairDiscontinued =&amp;gt; TRUE&lt;br /&gt;
               modification =&amp;gt; 0 (integer)&lt;br /&gt;
               deviceImage =&amp;gt; NULL&lt;br /&gt;
               deviceClass =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceClassprototypepersistent entity (uid=2, pid=49)&lt;br /&gt;
                  classTitle =&amp;gt; &amp;#039;EMD Series&amp;#039; (10 chars)&lt;br /&gt;
                  classDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
                  classFamily =&amp;gt; 0 (integer)&lt;br /&gt;
                  accPossible =&amp;gt; FALSE&lt;br /&gt;
                  uid =&amp;gt; 2 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceFamily =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceFamilyprototypepersistent entity (uid=1, pid=49)&lt;br /&gt;
                  familyTitle =&amp;gt; &amp;#039;Safety&amp;#039; (6 chars)&lt;br /&gt;
                  familyDescription =&amp;gt; &amp;#039;NARDA Safety Product Family&amp;#039; (27 chars)&lt;br /&gt;
                  familyFegroupAccess =&amp;gt; 2 (integer)&lt;br /&gt;
                  uid =&amp;gt; 1 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21316</id>
		<title>Dokumentation gbrma</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Dokumentation_gbrma&amp;diff=21316"/>
		<updated>2015-11-27T16:41:47Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Client Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== TS Configuration ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konstanten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plugin.tx_gbdevices.persistence.storagePid = 49 # gbdevices wird benötigt für gbrma&lt;br /&gt;
plugin.tx_gbrma.persistence.storagePid = 49 # Speicherort der RMA Daten&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
senderMail = test@example.com //na&lt;br /&gt;
senderMailName = Test Mailer //na&lt;br /&gt;
adminMail = email@example.com // Adresse für Admin Mails&lt;br /&gt;
adminMailName = Test Admin // Name des Admins in E-Mails&lt;br /&gt;
mailSubject = RMA Request // Betreffzeile der Admin Mails wenn nicht anders im Code definiert evtl. rauswerfen TODO&lt;br /&gt;
superuserId = 1 // na&lt;br /&gt;
nbmClassId = 7 // Geräteklassen ID für nbm Geräte (für Sonderregelung bei der Auswahl)&lt;br /&gt;
nbm520Id = 104 // Geräte ID für nbm 520 wegen Sonderregelung&lt;br /&gt;
nbm550Id = 103 // Geräte ID für nbm550 wegen Sonderregelung&lt;br /&gt;
multipleBaseDevicesAllowedClassIds = &lt;br /&gt;
restrictFamilyAccessToFegroups = 0 // Schalter - beschränkt Zugriff auf bestimmte Gerätefamilien &lt;br /&gt;
// Wenn an dann muß die Familie einer Usergruppe zugeordnet sein. Nur User dieser Gruppe stehen Geräten dieser Familie für RMAs zur Verfügung&lt;br /&gt;
#pdf_css = EXT:gbrma/Resources/Public/Css/pdf.css // Not used&lt;br /&gt;
#pdf_html = EXT:gbrma/Resources/Private/Templates/Pdf/pdf.html // Not used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Zugriff auf RMA Plugin schützen ===&lt;br /&gt;
Das Plugin erlaubt generell jedem FE-User RMAs anzulegen. Welche Art von RMAs wird durch die weitere Konfiguration geregelt (s.u.). Wenn Nur bestimmte Benutzer das Plugin benutzen sollen kann man eine &amp;#039;&amp;#039;&amp;#039;normale FE-User Gruppe&amp;#039;&amp;#039;&amp;#039; (z.B. mit dem Namen RMA) anlegen und für die Seite auf der das Plugin liegt einen FE-User Zugriff einrichten.&lt;br /&gt;
&lt;br /&gt;
=== Family Access ===&lt;br /&gt;
 restrictFamilyAccessToFegroups = 1&lt;br /&gt;
Wenn dieser Wert im Setup gesetzt wird, dann kann der &amp;#039;&amp;#039;&amp;#039;Benutzer nur noch bestimmte Gerätefamilien für RMAs auswählen&amp;#039;&amp;#039;&amp;#039;. Wenn es nicht gesetzt ist können die Benutzer alle Familien nutzen.&lt;br /&gt;
&lt;br /&gt;
Durch die Installation von gbrma wird gbdevices um ein Feld erweitert. &lt;br /&gt;
* GB Devices -&amp;gt; Familie auswählen und Benutzergruppe im Feld Allowed FE-User Group setzen&lt;br /&gt;
* Dem FE User diese Gruppe zuordnen.&lt;br /&gt;
=== Client Mode ===&lt;br /&gt;
In diesem Modus dient die Client ID (im User unter RMA hinterlegt) als Zugriffsmerkmal für die RMAs. D.h. mehrere User können auf die selben RMAs zugreifen&lt;br /&gt;
&lt;br /&gt;
=== Modifications ===&lt;br /&gt;
Manche Geräte können modifiziert werden.&lt;br /&gt;
Hartkodiert in gbdevices im Model und in den Sprachdateien&lt;br /&gt;
&lt;br /&gt;
=== Model / Fields Dokumentation ===&lt;br /&gt;
Beispiel Array einer RMA mit untergeordneten Models für Metadevice, Device, DeviceClass, DeviceFamily&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
array(rma =&amp;gt; Geobit\Gbrma\Domain\Model\Rmaprototypepersistent entity (uid=11, pid=53)&lt;br /&gt;
      rmaNumber =&amp;gt; &amp;#039;8&amp;#039; (1 chars)&lt;br /&gt;
      rmaType =&amp;gt; 1 (integer)&lt;br /&gt;
      locked =&amp;gt; 0 (integer)&lt;br /&gt;
      state =&amp;gt; 0 (integer)&lt;br /&gt;
      orderExpress =&amp;gt; 0 (integer)&lt;br /&gt;
      additionalInformation =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
      rmaUser =&amp;gt; 1 (integer)&lt;br /&gt;
      crdate =&amp;gt; 1443778492 (integer)&lt;br /&gt;
      tstamp =&amp;gt; 1443783879 (integer)&lt;br /&gt;
      uid =&amp;gt; 11 (integer)&lt;br /&gt;
      pid =&amp;gt; 53 (integer)&lt;br /&gt;
      metadevice =&amp;gt; TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items)&lt;br /&gt;
         0000000002d804830000000151a56f69 =&amp;gt; Geobit\Gbrma\Domain\Model\Metadeviceprototypepersistent entity (uid=12, pid=53)&lt;br /&gt;
            uid =&amp;gt; 12 (integer)&lt;br /&gt;
            pid =&amp;gt; 53 (integer)&lt;br /&gt;
            serial =&amp;gt; &amp;#039;aewtqwer&amp;#039; (8 chars)&lt;br /&gt;
            description =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
            jsondata =&amp;gt; &amp;#039;{&amp;quot;none&amp;quot;:&amp;quot;1&amp;quot;}&amp;#039; (12 chars)&lt;br /&gt;
            serviceRepair =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceCalibration =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceModification =&amp;gt; 0 (integer)&lt;br /&gt;
            serviceNone =&amp;gt; 1 (integer)&lt;br /&gt;
            device =&amp;gt; Geobit\Gbdevices\Domain\Model\Deviceprototypepersistent entity (uid=3, pid=49)&lt;br /&gt;
               uid =&amp;gt; 3 (integer)&lt;br /&gt;
               pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceTitle =&amp;gt; &amp;#039;2138/01 EMD-100&amp;#039; (15 chars)&lt;br /&gt;
               deviceDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
               deviceType =&amp;gt; 1 (integer)&lt;br /&gt;
               isBaseDevice =&amp;gt; FALSE&lt;br /&gt;
               accPossible =&amp;gt; FALSE&lt;br /&gt;
               repairDiscontinued =&amp;gt; TRUE&lt;br /&gt;
               modification =&amp;gt; 0 (integer)&lt;br /&gt;
               deviceImage =&amp;gt; NULL&lt;br /&gt;
               deviceClass =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceClassprototypepersistent entity (uid=2, pid=49)&lt;br /&gt;
                  classTitle =&amp;gt; &amp;#039;EMD Series&amp;#039; (10 chars)&lt;br /&gt;
                  classDescription =&amp;gt; &amp;#039;&amp;#039; (0 chars)&lt;br /&gt;
                  classFamily =&amp;gt; 0 (integer)&lt;br /&gt;
                  accPossible =&amp;gt; FALSE&lt;br /&gt;
                  uid =&amp;gt; 2 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
               deviceFamily =&amp;gt; Geobit\Gbdevices\Domain\Model\DeviceFamilyprototypepersistent entity (uid=1, pid=49)&lt;br /&gt;
                  familyTitle =&amp;gt; &amp;#039;Safety&amp;#039; (6 chars)&lt;br /&gt;
                  familyDescription =&amp;gt; &amp;#039;NARDA Safety Product Family&amp;#039; (27 chars)&lt;br /&gt;
                  familyFegroupAccess =&amp;gt; 2 (integer)&lt;br /&gt;
                  uid =&amp;gt; 1 (integer)&lt;br /&gt;
                  pid =&amp;gt; 49 (integer)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Abstimmung_wordpress&amp;diff=21315</id>
		<title>Abstimmung wordpress</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Abstimmung_wordpress&amp;diff=21315"/>
		<updated>2015-11-18T07:33:39Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Allgemein */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;siehe auch [[DEKRA Direkt Blog]]&lt;br /&gt;
Der Blog &amp;#039;&amp;#039;&amp;#039;DEKRA Direkt&amp;#039;&amp;#039;&amp;#039; wird als interner Konzernblog verwendet und soll als Kontaktmittel der Mitarbeiter zur Vorstandsebene dienen. Dazu gibt es unter anderem die DEKRA Direkt Mitarbeiter Umfrage.&lt;br /&gt;
&lt;br /&gt;
== Todo ==&lt;br /&gt;
Besser zum Testen wäre es wenn die Umfrage zunächst in eine Kategorie Test geht die auf der Startseite nicht dargestellt wird. &lt;br /&gt;
&lt;br /&gt;
Wordpress Extension Yop Poll - verwendet bei Mascha im Blog intern:&lt;br /&gt;
&lt;br /&gt;
== yop poll Anpassungen ==&lt;br /&gt;
=== yop poll Tabellen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
------------                -----------------                 --------------&lt;br /&gt;
yop_polls                   yop_poll_answers                  yop_poll_logs&lt;br /&gt;
------------                -----------------                 --------------&lt;br /&gt;
id          --------------| id               --------------|  id&lt;br /&gt;
name                      |-poll_id                        |  pn&lt;br /&gt;
question                    answer                         |  poll_id&lt;br /&gt;
total_votes                 votes                          |  vote_id&lt;br /&gt;
total_answers               ...                            |- answer_id&lt;br /&gt;
...                                                           --------------&lt;br /&gt;
------------                -----------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------      ----------------------------&lt;br /&gt;
yop_poll_custom_fields      yop_poll_votes_custom_fields&lt;br /&gt;
----------------------      ----------------------------&lt;br /&gt;
id                          id&lt;br /&gt;
poll_id                     poll_id&lt;br /&gt;
custom_field                vote_id&lt;br /&gt;
...                         custom_field_id&lt;br /&gt;
----------------------      user_id&lt;br /&gt;
                            custom_field_value&lt;br /&gt;
                            ----------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da bei einem custom text field bei der fragesstellung nur einzeiliger text möglich war, musst die datei &lt;br /&gt;
 /wp-content/plugins/yop-poll/inc/yop_poll_model.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der datenbank die Tabelle:&lt;br /&gt;
&lt;br /&gt;
 kas_wp_yop_poll_votes_custom_fields&lt;br /&gt;
&lt;br /&gt;
Feld: custom_field_value&lt;br /&gt;
&lt;br /&gt;
von varchar (255) auf Text geändert.&lt;br /&gt;
&lt;br /&gt;
== SQL-Abfragen für Antworten mit Kommentar ==&lt;br /&gt;
=== SQL nur Ergebnisse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT `id` , `poll_id` , `answer_id` , `ip` , `http_referer` , `vote_date` , `pn`&lt;br /&gt;
FROM `kas_wp_yop_poll_logs`&lt;br /&gt;
WHERE `poll_id` =38&lt;br /&gt;
ORDER BY `answer_id` ASC&lt;br /&gt;
LIMIT 0 , 500&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== SQL Abfrage mit Kommentaren ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alte Abfrage&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT *&lt;br /&gt;
FROM `kas_wp_yop_poll_logs`&lt;br /&gt;
LEFT OUTER JOIN `kas_wp_yop_poll_votes_custom_fields` ON `kas_wp_yop_poll_logs`.`vote_id` = `kas_wp_yop_poll_votes_custom_fields`.`vote_id`&lt;br /&gt;
WHERE `kas_wp_yop_poll_logs`.`poll_id` =13&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Weitere Abfragen ===&lt;br /&gt;
Welche Custom Fields gehören zu welchen Umfrage (Pivot Version)&lt;br /&gt;
&lt;br /&gt;
Dynamische Version (funktioniert noch nicht aber die Richtung dürfte stimmen)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET @sql = NULL;&lt;br /&gt;
SELECT&lt;br /&gt;
  GROUP_CONCAT(DISTINCT&lt;br /&gt;
    CONCAT(&lt;br /&gt;
      &amp;#039;max(case when custom_field = &amp;#039;&amp;#039;&amp;#039;,&lt;br /&gt;
      custom_field,&lt;br /&gt;
      &amp;#039;&amp;#039;&amp;#039; then custom_field end) AS &amp;#039;,&lt;br /&gt;
      custom_field&lt;br /&gt;
    )&lt;br /&gt;
  ) INTO @sql&lt;br /&gt;
FROM kas_wp_yop_poll_custom_fields;&lt;br /&gt;
&lt;br /&gt;
SET @sql = CONCAT(&amp;#039;SELECT poll_id, &amp;#039;, @sql, &amp;#039; &lt;br /&gt;
                  FROM kas_wp_yop_poll_custom_fields &lt;br /&gt;
                  GROUP BY poll_id&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
PREPARE stmt FROM @sql;&lt;br /&gt;
EXECUTE stmt;&lt;br /&gt;
DEALLOCATE PREPARE stmt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Neue Umfrage für DEKRA Connect durchführen ==&lt;br /&gt;
=== Allgemein ===&lt;br /&gt;
Läuft 2 Wochen ab ca. Mitte des Monats. Danach Auswertung und Grafikerstellung.&lt;br /&gt;
==== Update 2015-10 ====&lt;br /&gt;
Umfrage nur mit Cookie check&lt;br /&gt;
&lt;br /&gt;
== Technischer Ablauf ==&lt;br /&gt;
Stand März 2015&lt;br /&gt;
&lt;br /&gt;
* Das Umfrage Plugin im WP ist auf &amp;#039;&amp;#039;&amp;#039;block by Personal Number&amp;#039;&amp;#039;&amp;#039; gestellt.&lt;br /&gt;
* Ein User kann nur Voten wenn eine id=12345 (Personalnummer) angehängt ist. Ansonsten wird zunächst auf das DEKRA Intranet weiter geleitet (über alert). &lt;br /&gt;
* Dort wird die Personalnummer als id=12345 an den Link angehängt und auf intern-blog.dekra.de/category/dekra-direkt/?id=12345 geleitet Nur wenn eine solche id vorhanden ist kann gevoted werden. Ist nicht supersicher weil die Nummer willkürlich geändert werden kann, nachträgliche Prüfung wäre mit Personalnummern Liste möglich. Verbesserungspotential wäre POST übermittlung, Gültigkeitsprüfung durch PN-Index oder Formel.&lt;br /&gt;
* Hat die id &amp;#039;&amp;#039;&amp;#039;schon gevotet&amp;#039;&amp;#039;&amp;#039; wird nur das Ergebnis angezeigt.&lt;br /&gt;
* Im DEKRA Intranet werden Links an die eine id angehängt werden soll mit dem Parameter &amp;#039;&amp;#039;&amp;#039;?id=public&amp;#039;&amp;#039;&amp;#039; Veröffentlicht. public wird dann automatisch durch die Personalnummer des Mitarbeiters ersetzt, bevor weitergeleitet wird. &lt;br /&gt;
&lt;br /&gt;
=== Umfrage erstellen ===&lt;br /&gt;
* Achtung manchmal kollidiert die Abfrage mit alten Cookies der letzten Umfrage. Genau ist das noch nicht geklärt. Hilfe bringt: &lt;br /&gt;
** dafür sorgen, daß die alte Umfrage nicht mit angezeigt wird&lt;br /&gt;
** Logs löschen&lt;br /&gt;
** Wenn nichts hilft die Stats Reseten (kann sein daß dies nicht nötig ist.)&lt;br /&gt;
&lt;br /&gt;
* 1 oder mehrere (Mascha will meist 3) Umfragen-Dummies erstellen (z.B. eine alte klonen - &amp;#039;&amp;#039;&amp;#039;Vorsicht: Einstellungen für Datum, Template und Blocking&amp;#039;&amp;#039;&amp;#039; werden nicht übernommen)&lt;br /&gt;
* Template: &amp;#039;&amp;#039;&amp;#039;DEKRA Umfrage mit Kommentar&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
** Mit dem Template &amp;#039;&amp;#039;&amp;#039;DEKRA Umfrage mit dynamischem Kommentar&amp;#039;&amp;#039;&amp;#039; kann man zusätzlich noch JavaScript Popups öffnen und auf die gewählte Antwort reagieren (siehe JS im Template)&lt;br /&gt;
* Blocking by auf &amp;#039;&amp;#039;&amp;#039;Personal Number&amp;#039;&amp;#039;&amp;#039; - dadurch wird die Abfrage des id Parameters gestartet. Zum Testen auf don&amp;#039;t Block stellen. Achtung IE hat manchmal Caching Probleme.&lt;br /&gt;
* Start und Enddatum setzen&lt;br /&gt;
* Abstimmung in einen &amp;#039;&amp;#039;&amp;#039;Beitrag in Kategorie Dekra Direkt&amp;#039;&amp;#039;&amp;#039; einpflegen (evtl. erst nach dem Testen) -&amp;gt; Startseite sichtbar&lt;br /&gt;
* Am Ende Umfrage auf &amp;#039;&amp;#039;&amp;#039;nur Antwort&amp;#039;&amp;#039;&amp;#039; !&lt;br /&gt;
* Geo-bit erstellt die Fragen, diese werden von Mascha angepasst und von Ihr in einem Beitrag veröffentlicht.&lt;br /&gt;
* Start der Umfrage durch setzen der Kategorie (todo ob das klappt)&lt;br /&gt;
&lt;br /&gt;
=== Test der Umfrage ===&lt;br /&gt;
* Vorige Tests sind sinnvoll. Ein Test von Geo-bit (einfach id anhängen). Ein Test von Dekra&lt;br /&gt;
=== Ende der Umfrage und Auswertung ===&lt;br /&gt;
Für die Auswertung benötigt Mascha eine &amp;#039;&amp;#039;&amp;#039;Excel-Tabelle&amp;#039;&amp;#039;&amp;#039; in der &amp;#039;&amp;#039;&amp;#039;nach Antworten und sortiert&amp;#039;&amp;#039;&amp;#039; ist. Ebenso die dazugehörigen Kommentare. Doppelte IPs rausschmeißen. Wenn Personalnummerliste vorhanden könnte man hier nach Gültigkeit prüfen.&lt;br /&gt;
* Umfrage mit Datum beenden oder auf Maschas Hinweis, &amp;#039;&amp;#039;&amp;#039;Umfrage auf don&amp;#039;t block&amp;#039;&amp;#039;&amp;#039;, damit die Umleitung auf Dekra nicht mehr aktiv ist, außerdem &amp;#039;&amp;#039;&amp;#039;Enddatum setzen&amp;#039;&amp;#039;&amp;#039; und auf &amp;#039;&amp;#039;&amp;#039;Ergebnis anzeigen nach Enddatum&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* SQL Abfrage (siehe Statement), Export als ods oder csv&lt;br /&gt;
* Doppelte überprüfen&lt;br /&gt;
* Umwandeln in Excel&lt;br /&gt;
* Schaubild aus Numbers&lt;br /&gt;
&lt;br /&gt;
=== Löschen unerwünschter Kommentare ===&lt;br /&gt;
&lt;br /&gt;
In&lt;br /&gt;
 Admin -&amp;gt; Yop poll -&amp;gt; All polls -&amp;gt; meineUmfrage -&amp;gt; votes&lt;br /&gt;
&lt;br /&gt;
hier auswählen und löschen&lt;br /&gt;
&lt;br /&gt;
=== Anpassungen  am Plugin Yop poll===&lt;br /&gt;
&lt;br /&gt;
 yop-poll =&amp;gt; inc =&amp;gt; admin.php&lt;br /&gt;
&lt;br /&gt;
Hier die DB mit prefix versehen. &amp;quot;kas_&amp;quot;&lt;br /&gt;
 yop-poll =&amp;gt; inc =&amp;gt; yop_poll_model.php&lt;br /&gt;
 yop-poll =&amp;gt; inc =&amp;gt; db_schema.php&lt;br /&gt;
 yop-poll =&amp;gt; js =&amp;gt; yop_poll_public.js&lt;br /&gt;
==== Kommentare ====&lt;br /&gt;
MUSS überarbeitet werden&lt;br /&gt;
 yop_poll_modell.php&lt;br /&gt;
&lt;br /&gt;
 return_poll_html -&amp;gt; &lt;br /&gt;
dort wird der Template Block  		&lt;br /&gt;
 [ANSWER_RESULT_CONTAINER]&lt;br /&gt;
 [/ANSWER_RESULT_CONTAINER]&lt;br /&gt;
mit pregreplace über eine Callback Funktion ersetzt&lt;br /&gt;
 answer_result_callback(m$)&lt;br /&gt;
darin wiederum wird &lt;br /&gt;
 get_poll_comments($poll_id) &lt;br /&gt;
aufgerufen, dieses gibt ein array zurück das dann in HTML umgesetzt wird. Diese Ausgabe erfolbt über die Abfrage von &lt;br /&gt;
 $this-&amp;gt;is_view_poll_results()&lt;br /&gt;
Das bedeutet die Ausgabe erfolgt wenn im Backend die Bedingung für die Ausgabe der Results gesetzt ist (z.B. Results after End Date) Gute erweiterung wäre ein eigener Block für die Comments&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Im Template muß der Block natürlich auch gesetzt sein.&amp;#039;&amp;#039;&amp;#039; (beim entsprechenden Template)&lt;br /&gt;
&lt;br /&gt;
== Yop Poll Templates ==&lt;br /&gt;
Todo - Anpassen um ungenutzte Features zu nutzen (z.B. after End Date schöne Anzeige der Ergebnisse)&lt;br /&gt;
=== DEKRA Umfrage mit Kommentar ===&lt;br /&gt;
Vor Umfrage:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-name-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-name&amp;quot;&amp;gt;%POLL-NAME%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-question-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-question&amp;quot; style=&amp;quot;display:table-cell;height:130px;vertical-align:middle;&amp;quot;&amp;gt;%POLL-QUESTION%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-answers-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-answers&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
		[ANSWER_CONTAINER]&lt;br /&gt;
		&amp;lt;li class=&amp;quot;yop-poll-li-answer-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
			%POLL-ANSWER-CHECK-INPUT% &lt;br /&gt;
			%POLL-ANSWER-LABEL%&lt;br /&gt;
			&amp;lt;span class=&amp;quot;yop-poll-results-text-%POLL-ID%&amp;quot;&amp;gt;%POLL-ANSWER-RESULT-LABEL%&amp;lt;/span&amp;gt;&lt;br /&gt;
             %POLL-ANSWER-RESULT-BAR%&lt;br /&gt;
        &amp;lt;/li&amp;gt;&lt;br /&gt;
        [/ANSWER_CONTAINER]&lt;br /&gt;
		[OTHER_ANSWER_CONTAINER]&lt;br /&gt;
		&amp;lt;li class=&amp;quot;yop-poll-li-answer-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
			%POLL-OTHER-ANSWER-CHECK-INPUT% &lt;br /&gt;
			%POLL-OTHER-ANSWER-LABEL% &lt;br /&gt;
			&amp;lt;span class=&amp;quot;yop-poll-results-text-%POLL-ID%&amp;quot;&amp;gt;%POLL-ANSWER-RESULT-LABEL%&amp;lt;/span&amp;gt;&lt;br /&gt;
			%POLL-OTHER-ANSWER-TEXT-INPUT% &lt;br /&gt;
            %POLL-ANSWER-RESULT-BAR%&lt;br /&gt;
        &amp;lt;/li&amp;gt;&lt;br /&gt;
        [/OTHER_ANSWER_CONTAINER]&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-custom-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
		[CUSTOM_FIELD_CONTAINER]&lt;br /&gt;
		&amp;lt;li&amp;gt;%POLL-CUSTOM-FIELD-LABEL% %POLL-CUSTOM-FIELD-TEXT-INPUT%&amp;lt;/li&amp;gt;&lt;br /&gt;
		[/CUSTOM_FIELD_CONTAINER]&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;    &lt;br /&gt;
[CAPTCHA_CONTAINER]&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-captcha-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;yop-poll-captcha-image-div&amp;quot; id=&amp;quot;yop-poll-captcha-image-div-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
        %CAPTCHA-IMAGE%&lt;br /&gt;
        &amp;lt;div class=&amp;quot;yop-poll-captcha-helpers-div&amp;quot; id=&amp;quot;yop-poll-captcha-helpers-div-%POLL-ID%&amp;quot;&amp;gt;%RELOAD-CAPTCHA-IMAGE% &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;yop_poll_clear&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    %CAPTCHA-LABEL%&lt;br /&gt;
    &amp;lt;div class=&amp;quot;yop-poll-captcha-input-div&amp;quot; id=&amp;quot;yop-poll-captcha-input-div-%POLL-ID%&amp;quot;&amp;gt;%CAPTCHA-INPUT%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[/CAPTCHA_CONTAINER]&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-vote-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-footer&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;%POLL-VOTE-BUTTON%&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div id=&amp;quot;yop-poll-results-%POLL-ID%&amp;quot;&amp;gt;%POLL-VIEW-RESULT-LINK%&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;%POLL-TOTAL-ANSWERS%&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;%POLL-TOTAL-VOTES%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach Umfrage&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-name-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-name&amp;quot;&amp;gt;%POLL-NAME%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-question-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-question&amp;quot; style=&amp;quot;display:table-cell;height:130px;vertical-align:middle;&amp;quot;&amp;gt;%POLL-QUESTION%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-answers-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-answers&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;div id=&amp;quot;gb_cust&amp;quot;&amp;gt;VORLÄUFIGES·ERGEBNIS·DER·ABSTIMMUNG&amp;lt;/div&amp;gt;	&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
		[ANSWER_RESULT_CONTAINER]&lt;br /&gt;
		&amp;lt;li class=&amp;quot;yop-poll-li-result-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;label class=&amp;quot;pds-feedback-label-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;span class=&amp;quot;pds-answer-text-%POLL-ID%&amp;quot;&amp;gt;%POLL-ANSWER-LABEL%&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;span class=&amp;quot;pds-feedback-result-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;span class=&amp;quot;pds-feedback-per-%POLL-ID%&amp;quot;&amp;gt; %POLL-ANSWER-RESULT-LABEL%&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;div&amp;gt;&lt;br /&gt;
             %POLL-ANSWER-RESULT-BAR%&lt;br /&gt;
           &amp;lt;/div&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		[/ANSWER_RESULT_CONTAINER]&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-vote-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-footer&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;%POLL-TOTAL-ANSWERS%&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;div&amp;gt;%POLL-TOTAL-VOTES%&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div id=&amp;quot;yop-poll-back-%POLL-ID%&amp;quot;&amp;gt;%POLL-BACK-TO-VOTE-LINK%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before Start Date&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This poll is about to &amp;lt;br&amp;gt;&lt;br /&gt;
start at %POLL-START-DATE%&amp;lt;br&amp;gt;&lt;br /&gt;
and finish at %POLL-END-DATE%&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After End Date&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-name-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-name&amp;quot;&amp;gt;%POLL-NAME%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-question-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-question&amp;quot;&amp;gt;%POLL-QUESTION%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-answers-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-answers&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;gb_end&amp;quot;&amp;gt;Die Abstimmung ist beendet.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul class=&amp;quot;afterVote&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		[ANSWER_RESULT_CONTAINER]&lt;br /&gt;
		&lt;br /&gt;
		[/ANSWER_RESULT_CONTAINER]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
CSS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#yop-poll-container-%POLL-ID% {&lt;br /&gt;
    background-image: url(&amp;quot;http://intern-blog.dekra.de/wp-content/uploads/2013/02/bg_poll_1.png&amp;quot;);&lt;br /&gt;
/*    border: 5px solid #3F8B43;*/&lt;br /&gt;
background-repeat:no-repeat;&lt;br /&gt;
    color: #555555;&lt;br /&gt;
    font-size: 12px;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    padding: 10px;&lt;br /&gt;
    width: 632px;&lt;br /&gt;
/*    height: 300px;*/&lt;br /&gt;
}&lt;br /&gt;
#yop-poll-name-%POLL-ID% {&lt;br /&gt;
	font-size:14px;&lt;br /&gt;
	font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#yop-poll-question-%POLL-ID% {&lt;br /&gt;
    color: #000000;&lt;br /&gt;
    font-size: 14pt;&lt;br /&gt;
    font-weight: 500;&lt;br /&gt;
    height: 80px;&lt;br /&gt;
    line-height: 26px;&lt;br /&gt;
    margin: 0 50px 0 0;&lt;br /&gt;
    padding-left: 215px;&lt;br /&gt;
    padding-top: 40px;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    width: 300px;&lt;br /&gt;
margin-bottom: 100px;&lt;br /&gt;
}&lt;br /&gt;
#yop-poll-answers-%POLL-ID% { &lt;br /&gt;
 }&lt;br /&gt;
#yop-poll-answers-%POLL-ID% ul {&lt;br /&gt;
    list-style: none outside none;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    top: 20px;&lt;br /&gt;
    left: 270px;&lt;br /&gt;
}&lt;br /&gt;
#yop-poll-answers-%POLL-ID% ul li { &lt;br /&gt;
	font-style:normal;&lt;br /&gt;
	margin-bottom:10px;&lt;br /&gt;
	padding:0px;&lt;br /&gt;
	font-size:12px;&lt;br /&gt;
   width: 190px !important;&lt;br /&gt;
}&lt;br /&gt;
#yop-poll-answers-%POLL-ID% ul li input { &lt;br /&gt;
	margin:0px; &lt;br /&gt;
	float:none;&lt;br /&gt;
}&lt;br /&gt;
#yop-poll-answers-%POLL-ID% ul li label { &lt;br /&gt;
	margin:0px; &lt;br /&gt;
	font-style:normal; &lt;br /&gt;
	font-weight:bold; &lt;br /&gt;
	font-size:16px; &lt;br /&gt;
	float:none;&lt;br /&gt;
        z-index: 10; &lt;br /&gt;
}&lt;br /&gt;
.yop-poll-results-%POLL-ID% {&lt;br /&gt;
    font-size: 12px;&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    margin-left: 15px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#yop-poll-custom-%POLL-ID% {  }&lt;br /&gt;
#yop-poll-custom-%POLL-ID% ul {&lt;br /&gt;
    font-size: 14px;&lt;br /&gt;
    font-weight: 500;&lt;br /&gt;
    left: 270px;&lt;br /&gt;
    list-style: none outside none;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    top: 20px;&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 375px;&lt;br /&gt;
}&lt;br /&gt;
#yop-poll-custom-%POLL-ID% ul li { &lt;br /&gt;
	padding:0px;&lt;br /&gt;
	margin:0px;	&lt;br /&gt;
	font-size:14px;&lt;br /&gt;
}&lt;br /&gt;
#yop-poll-container-%POLL-ID% input[type=&amp;#039;text&amp;#039;] { &lt;br /&gt;
    font-size: 12px;&lt;br /&gt;
    margin: 10px 0;&lt;br /&gt;
    padding: 2%;&lt;br /&gt;
    text-indent: 2%;&lt;br /&gt;
    width: 92%;&lt;br /&gt;
    border: 1px solid #B9B8B8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#yop-poll-container-%POLL-ID% textarea {&lt;br /&gt;
    font-size: 12px;&lt;br /&gt;
    margin: 10px 0;&lt;br /&gt;
    padding: 2%;&lt;br /&gt;
    text-indent: 2%;&lt;br /&gt;
    width: 92%;&lt;br /&gt;
    font-family: Verdana;&lt;br /&gt;
    color: #666;&lt;br /&gt;
    border: 1px solid #B9B8B8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#yop-poll-captcha-input-div-%POLL-ID% {&lt;br /&gt;
margin-top:5px;&lt;br /&gt;
}&lt;br /&gt;
#yop-poll-captcha-helpers-div-%POLL-ID% {&lt;br /&gt;
width:30px;&lt;br /&gt;
float:left;&lt;br /&gt;
margin-left:5px;&lt;br /&gt;
height:0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#yop-poll-captcha-helpers-div-%POLL-ID% img {&lt;br /&gt;
margin-bottom:2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#yop-poll-captcha-image-div-%POLL-ID% {&lt;br /&gt;
margin-bottom:5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#yop_poll_captcha_image_%POLL-ID% {&lt;br /&gt;
float:left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.yop_poll_clear {&lt;br /&gt;
clear:both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#yop-poll-vote-%POLL-ID% {&lt;br /&gt;
float:left; &lt;br /&gt;
/*width:100%; */&lt;br /&gt;
padding-left: 270px;&lt;br /&gt;
margin-top: 20px;&lt;br /&gt;
margin-bottom: 100px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li.yop-poll-li-result-%POLL-ID% {&lt;br /&gt;
/*    margin-top: 50px;*/&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.yop-poll-results-bar-%POLL-ID% { background:#f5f5f5; height:10px;  }&lt;br /&gt;
.yop-poll-results-bar-%POLL-ID% div { background:#555; height:10px; }&lt;br /&gt;
#yop-poll-vote-%POLL-ID% div#yop-poll-vote-%POLL-ID% button { float:left; }&lt;br /&gt;
#yop-poll-vote-%POLL-ID% div#yop-poll-results-%POLL-ID% {&lt;br /&gt;
    float: right;&lt;br /&gt;
    margin-bottom: 20px;&lt;br /&gt;
    margin-top: -20px;&lt;br /&gt;
    width: auto;&lt;br /&gt;
}&lt;br /&gt;
#yop-poll-vote-%POLL-ID% div#yop-poll-results-%POLL-ID% a { color:#3F8B43; text-decoration:underline; font-size:12px;}&lt;br /&gt;
#yop-poll-vote-%POLL-ID% div#yop-poll-back-%POLL-ID% a { color:#3F8B43; text-decoration:underline; font-size:12px;}&lt;br /&gt;
#yop-poll-vote-%POLL-ID% div { float:left; width:100%; }&lt;br /&gt;
&lt;br /&gt;
#yop-poll-container-error-%POLL-ID% {&lt;br /&gt;
	font-size:12px;&lt;br /&gt;
	font-style:italic;&lt;br /&gt;
	color:red;&lt;br /&gt;
    left: 290px;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    top: 270px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gb-btn {&lt;br /&gt;
    background-image: url(&amp;quot;http://intern-blog.dekra.de/wp-content/uploads/2013/02/bg_button.png&amp;quot;);&lt;br /&gt;
    border: medium none;&lt;br /&gt;
    border-radius: 10px 10px 10px 10px;&lt;br /&gt;
    color: #FFFFFF;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
    font-size: 1.9em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    height: 40px;&lt;br /&gt;
    text-transform: uppercase;&lt;br /&gt;
    width: 130px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#gb_cust {&lt;br /&gt;
    color: #999999;&lt;br /&gt;
    font-size: 1.4em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding-left: 0px;&lt;br /&gt;
    padding-top: 40px;&lt;br /&gt;
    background-color: transparent;&lt;br /&gt;
}&lt;br /&gt;
.yop-poll-results-bar-%POLL-ID% div{&lt;br /&gt;
    background-image: url(&amp;quot;http://intern-blog.dekra.de/wp-content/uploads/2013/02/bg_button.png&amp;quot;);&lt;br /&gt;
    height: 30px;&lt;br /&gt;
    margin-top: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.yop-poll-results-bar-%POLL-ID% {&lt;br /&gt;
height: 30px;&lt;br /&gt;
width:99%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pds-answer-text-%POLL-ID% {&lt;br /&gt;
font-size: 0.85em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
color: #999;&lt;br /&gt;
/*    margin-top: -10px;*/&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.pds-feedback-per-%POLL-ID% {&lt;br /&gt;
   color: #999999;&lt;br /&gt;
    font-size: 1em;&lt;br /&gt;
    margin-left: 5px;&lt;br /&gt;
    margin-top: -25px;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.yop_poll_vote_button{&lt;br /&gt;
    background-image: url(&amp;quot;http://intern-blog.dekra.de/wp-content/uploads/2013/02/bg_button.png&amp;quot;);&lt;br /&gt;
    border: medium none;&lt;br /&gt;
    border-radius: 10px 10px 10px 10px;&lt;br /&gt;
    color: #FFFFFF;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
    font-size: 1.9em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    height: 40px;&lt;br /&gt;
    width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#gb_end {&lt;br /&gt;
    color: #999999;&lt;br /&gt;
    font-size: 1.4em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    padding-bottom: 100px;&lt;br /&gt;
    padding-left: 250px;&lt;br /&gt;
    padding-top: 130px;&lt;br /&gt;
    background-color: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#yop-poll-container-%POLL-ID% textarea {&lt;br /&gt;
#max-width: 350px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#yop-poll-container-success-%POLL-ID% {&lt;br /&gt;
	font-size:12px;&lt;br /&gt;
	font-style:italic;&lt;br /&gt;
	color:green;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
JS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function stripBorder_%POLL-ID%(object) {&lt;br /&gt;
	object.each(function() {&lt;br /&gt;
			if( parseInt(jQuery(this).width() ) &amp;gt; 0) {&lt;br /&gt;
				jQuery(this).width( parseInt( jQuery(this).width() ) - parseInt(jQuery(this).css(&amp;quot;border-left-width&amp;quot;)) - parseInt(jQuery(this).css(&amp;quot;border-right-width&amp;quot;)) );&lt;br /&gt;
			}&lt;br /&gt;
			else {&lt;br /&gt;
				jQuery(this).css(&amp;quot;border-left-width&amp;quot;, &amp;#039;0px&amp;#039;);&lt;br /&gt;
				jQuery(this).css(&amp;quot;border-right-width&amp;quot;, &amp;#039;0px&amp;#039;);&lt;br /&gt;
			}&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
function stripPadding_%POLL-ID%(object) {&lt;br /&gt;
	object.each(function() { &lt;br /&gt;
			jQuery(this).width( parseInt( jQuery(this).width() ) - parseInt(jQuery(this).css(&amp;quot;padding-left&amp;quot;)) - parseInt(jQuery(this).css(&amp;quot;padding-left&amp;quot;)) );&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function strip_results_%POLL-ID%() {&lt;br /&gt;
        stripPadding_%POLL-ID%( jQuery(&amp;quot;#yop-poll-container-%POLL-ID% .yop_poll_li_result-%POLL-ID%&amp;quot;) );   &lt;br /&gt;
	stripBorder_%POLL-ID%( jQuery(&amp;quot;#yop-poll-container-%POLL-ID% .yop-poll-result-bar-%POLL-ID%&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
jQuery(document).ready(function(e) {&lt;br /&gt;
                if(typeof window.strip_results_%POLL-ID% == &amp;#039;function&amp;#039;) &lt;br /&gt;
			strip_results_%POLL-ID%();&lt;br /&gt;
    &lt;br /&gt;
		if(typeof window.tabulate_answers_%POLL-ID% == &amp;#039;function&amp;#039;) &lt;br /&gt;
			tabulate_answers_%POLL-ID%();&lt;br /&gt;
		&lt;br /&gt;
		if(typeof window.tabulate_results_%POLL-ID% == &amp;#039;function&amp;#039;) &lt;br /&gt;
			tabulate_results_%POLL-ID%();&lt;br /&gt;
		&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
function equalWidth_%POLL-ID%(obj, cols, findWidest ) {&lt;br /&gt;
 findWidest  = typeof findWidest  !== &amp;#039;undefined&amp;#039; ? findWidest  : false;&lt;br /&gt;
    if ( findWidest ) {&lt;br /&gt;
		obj.each(function() {&lt;br /&gt;
				var thisWidth = jQuery(this).width();&lt;br /&gt;
				width = parseInt(thisWidth / cols); &lt;br /&gt;
				jQuery(this).width(width);	&lt;br /&gt;
				jQuery(this).css(&amp;#039;float&amp;#039;, &amp;#039;left&amp;#039;);	&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
	else {&lt;br /&gt;
		var widest = 0;&lt;br /&gt;
		obj.each(function() {&lt;br /&gt;
				var thisWidth = jQuery(this).width();&lt;br /&gt;
				if(thisWidth &amp;gt; widest) {&lt;br /&gt;
					widest = thisWidth; &lt;br /&gt;
				}	&lt;br /&gt;
		});&lt;br /&gt;
		width = parseInt( widest / cols); &lt;br /&gt;
		obj.width(width);	&lt;br /&gt;
		obj.css(&amp;#039;float&amp;#039;, &amp;#039;left&amp;#039;);	&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function tabulate_answers_%POLL-ID%() {&lt;br /&gt;
	equalWidth_%POLL-ID%( jQuery(&amp;quot;#yop-poll-container-%POLL-ID% .yop-poll-li-answer-%POLL-ID%&amp;quot;), %ANSWERS-TABULATED-COLS% );&lt;br /&gt;
        //equalWidth_%POLL-ID%( jQuery(&amp;quot;#yop-poll-container-%POLL-ID% .yop-poll-li-answer-%POLL-ID% .yop-poll-results-bar-%POLL-ID% div &amp;quot;), %ANSWERS-TABULATED-COLS%, true );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function tabulate_results_%POLL-ID%() {&lt;br /&gt;
	equalWidth_%POLL-ID%( jQuery(&amp;quot;#yop-poll-container-%POLL-ID% .yop-poll-li-result-%POLL-ID%&amp;quot;), %RESULTS-TABULATED-COLS% );&lt;br /&gt;
        //equalWidth_%POLL-ID%( jQuery(&amp;quot;#yop-poll-container-%POLL-ID% .yop-poll-li-result-%POLL-ID% .yop-poll-results-bar-%POLL-ID% div &amp;quot;), %RESULTS-TABULATED-COLS%, true );&lt;br /&gt;
}&lt;br /&gt;
			jQuery(document).ready(function(){&lt;br /&gt;
				runOnPollStateChange_%POLL-ID%();&lt;br /&gt;
				});&lt;br /&gt;
&lt;br /&gt;
			function runOnPollStateChange_%POLL-ID%() {};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Dekra Poll Template für ID 2 (altes Template) ===&lt;br /&gt;
Vor Umfrage&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-name-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-name&amp;quot;&amp;gt;%POLL-NAME%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-question-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-question&amp;quot;&amp;gt;%POLL-QUESTION%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-answers-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-answers&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;gb_cust&amp;quot;&amp;gt;STIMMEN SIE JETZT AB !&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
    [ANSWER_CONTAINER]&lt;br /&gt;
    &amp;lt;li class=&amp;quot;gb-ac yop-poll-li-answer-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
      %POLL-ANSWER-CHECK-INPUT% &lt;br /&gt;
      %POLL-ANSWER-LABEL%&lt;br /&gt;
      &amp;lt;span class=&amp;quot;yop-poll-results-text-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
        %POLL-ANSWER-RESULT-LABEL%&lt;br /&gt;
      &amp;lt;/span&amp;gt;&lt;br /&gt;
      %POLL-ANSWER-RESULT-BAR%&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
    [/ANSWER_CONTAINER]&lt;br /&gt;
    [OTHER_ANSWER_CONTAINER]&lt;br /&gt;
    &amp;lt;li class=&amp;quot;gb-oac yop-poll-li-answer-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
      %POLL-OTHER-ANSWER-CHECK-INPUT% &lt;br /&gt;
      %POLL-OTHER-ANSWER-LABEL% &lt;br /&gt;
      &amp;lt;span class=&amp;quot;yop-poll-results-text-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
        %POLL-ANSWER-RESULT-LABEL%&lt;br /&gt;
      &amp;lt;/span&amp;gt;&lt;br /&gt;
      %POLL-OTHER-ANSWER-TEXT-INPUT% &lt;br /&gt;
      %POLL-ANSWER-RESULT-BAR%&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
    [/OTHER_ANSWER_CONTAINER]&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[CUSTOM_FIELD_CONTAINER]&lt;br /&gt;
		&amp;lt;li&amp;gt;%POLL-CUSTOM-FIELD-LABEL% %POLL-CUSTOM-FIELD-TEXT-INPUT%&amp;lt;/li&amp;gt;&lt;br /&gt;
		[/CUSTOM_FIELD_CONTAINER]&lt;br /&gt;
[CAPTCHA_CONTAINER]&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-captcha-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;yop-poll-captcha-image-div&amp;quot; id=&amp;quot;yop-poll-captcha-image-div-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
        %CAPTCHA-IMAGE%&lt;br /&gt;
        &amp;lt;div class=&amp;quot;yop-poll-captcha-helpers-div&amp;quot; id=&amp;quot;yop-poll-captcha-helpers-div-%POLL-ID%&amp;quot;&amp;gt;%RELOAD-CAPTCHA-IMAGE% &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;yop_poll_clear&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    %CAPTCHA-LABEL%&lt;br /&gt;
    &amp;lt;div class=&amp;quot;yop-poll-captcha-input-div&amp;quot; id=&amp;quot;yop-poll-captcha-input-div-%POLL-ID%&amp;quot;&amp;gt;%CAPTCHA-INPUT%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[/CAPTCHA_CONTAINER]&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-vote-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-footer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;poll-vote-button&amp;quot;&amp;gt;%POLL-VOTE-BUTTON%&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div&amp;gt;%POLL-TOTAL-ANSWERS%&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div&amp;gt;%POLL-TOTAL-VOTES%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;gb-storage&amp;quot; gb-poll-id=&amp;quot;%POLL-ID%&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Load check from Dean Edwards/Matthias Miller/John Resig&lt;br /&gt;
&lt;br /&gt;
function init() {&lt;br /&gt;
  if (arguments.callee.done) return;&lt;br /&gt;
  arguments.callee.done = true;&lt;br /&gt;
  if (_timer) clearInterval(_timer);&lt;br /&gt;
&lt;br /&gt;
  jQuery(document).ready(function() {&lt;br /&gt;
    // remove vote button&lt;br /&gt;
    jQuery(&amp;#039;.poll-vote-button&amp;#039;).html(&amp;#039;&amp;#039;);&lt;br /&gt;
    // add Buttons&lt;br /&gt;
    jQuery(&amp;#039;.gb-ac&amp;#039;).each(function(index,domEle){&lt;br /&gt;
      var answer_id;&lt;br /&gt;
      var label;&lt;br /&gt;
      var content;&lt;br /&gt;
      answer_id = jQuery(this).find(&amp;#039;input:first&amp;#039;).val();&lt;br /&gt;
      label = jQuery(this).find(&amp;#039;label:first&amp;#039;).html();&lt;br /&gt;
      content = &amp;#039;&amp;lt;button class=&amp;quot;gb-btn&amp;quot; value=&amp;quot;&amp;#039; + answer_id + &amp;#039;&amp;quot; type=&amp;quot;button&amp;quot;&amp;gt;&amp;#039; + label + &amp;#039;&amp;lt;/button&amp;gt;&amp;#039;;&lt;br /&gt;
      //jQuery(this).append(content);&lt;br /&gt;
      jQuery(this).html(content);&lt;br /&gt;
      //add click handler&lt;br /&gt;
      jQuery(this).find(&amp;#039;button:first&amp;#039;).click(function(){&lt;br /&gt;
        answer_id = jQuery(this).val();&lt;br /&gt;
        poll_id = jQuery(&amp;#039;.gb-storage:first&amp;#039;).attr(&amp;#039;gb-poll-id&amp;#039;);&lt;br /&gt;
        hidden_field = &amp;#039;&amp;lt;input id=&amp;quot;yop-poll-answer-&amp;#039; +answer_id + &amp;#039;&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;yop_poll_answer&amp;quot; value=&amp;quot;&amp;#039; + answer_id + &amp;#039;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
        jQuery(this).after(hidden_field);&lt;br /&gt;
        yop_poll_do_vote(poll_id);&lt;br /&gt;
        return false;&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/* for Mozilla/Opera9 */&lt;br /&gt;
if (document.addEventListener) {&lt;br /&gt;
  document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, init, false);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* for Internet Explorer */&lt;br /&gt;
/*@cc_on @*/&lt;br /&gt;
/*@if (@_win32)&lt;br /&gt;
  document.write(&amp;quot;&amp;lt;script id=__ie_onload defer src=javascript:void(0)&amp;gt;&amp;lt;\/script&amp;gt;&amp;quot;);&lt;br /&gt;
  var script = document.getElementById(&amp;quot;__ie_onload&amp;quot;);&lt;br /&gt;
  script.onreadystatechange = function() {&lt;br /&gt;
    if (this.readyState == &amp;quot;complete&amp;quot;) {&lt;br /&gt;
      init(); // call the onload handler&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
/*@end @*/&lt;br /&gt;
&lt;br /&gt;
/* for Safari */&lt;br /&gt;
if (/WebKit/i.test(navigator.userAgent)) { // sniff&lt;br /&gt;
  var _timer = setInterval(function() {&lt;br /&gt;
    if (/loaded|complete/.test(document.readyState)) {&lt;br /&gt;
      init(); // call the onload handler&lt;br /&gt;
    }&lt;br /&gt;
  }, 10);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* for other browsers */&lt;br /&gt;
window.onload = init;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach Umfrage&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-name-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-name&amp;quot;&amp;gt;%POLL-NAME%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-question-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-question&amp;quot;&amp;gt;%POLL-QUESTION%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-answers-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-answers&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;gb_cust&amp;quot;&amp;gt;VORLÄUFIGES ERGEBNIS DER ABSTIMMUNG&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
		[ANSWER_RESULT_CONTAINER]&lt;br /&gt;
		&amp;lt;li class=&amp;quot;yop-poll-li-result-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;label class=&amp;quot;pds-feedback-label-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;pds-answer-text-%POLL-ID%&amp;quot;&amp;gt;%POLL-ANSWER-LABEL%&amp;lt;/div&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;pds-feedback-result-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;div&amp;gt;&lt;br /&gt;
             %POLL-ANSWER-RESULT-BAR%&lt;br /&gt;
           &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;pds-feedback-per-%POLL-ID%&amp;quot;&amp;gt; %POLL-ANSWER-RESULT-LABEL%&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
		[/ANSWER_RESULT_CONTAINER]&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-vote-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-footer&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;%POLL-TOTAL-ANSWERS%&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;%POLL-TOTAL-VOTES%&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;!--&amp;lt;div id=&amp;quot;yop-poll-back-%POLL-ID%&amp;quot;&amp;gt;%POLL-BACK-TO-VOTE-LINK%&amp;lt;/div&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before Start Date&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This poll is about to &amp;lt;br&amp;gt;&lt;br /&gt;
start at %POLL-START-DATE%&amp;lt;br&amp;gt;&lt;br /&gt;
and finish at %POLL-END-DATE%&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After End Date&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This poll is closed!&lt;br /&gt;
Poll activity: &amp;lt;br&amp;gt;&lt;br /&gt;
start_date %POLL-START-DATE%&amp;lt;br&amp;gt;&lt;br /&gt;
end_date %POLL-END-DATE%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poll Results:&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-question-%POLL-ID%&amp;quot; class=&amp;quot;yop-poll-question&amp;quot;&amp;gt;%POLL-QUESTION%&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;yop-poll-answers-1&amp;quot; class=&amp;quot;yop-poll-answers&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
		[ANSWER_RESULT_CONTAINER]&lt;br /&gt;
		&amp;lt;li class=&amp;quot;yop-poll-li-result-%POLL-ID%&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;label class=&amp;quot;pds-feedback-label&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;span class=&amp;quot;pds-answer-text&amp;quot;&amp;gt;%POLL-ANSWER-LABEL%&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;span class=&amp;quot;pds-feedback-result&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;span class=&amp;quot;pds-feedback-per&amp;quot;&amp;gt; %POLL-ANSWER-RESULT-LABEL%&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;span class=&amp;quot;pds-clear&amp;quot; style=&amp;quot;display: block;clear: both;height:1px;line-height:1px;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
	%POLL-ANSWER-RESULT-BAR%&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
		[/ANSWER_RESULT_CONTAINER]&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
%POLL-VOTE-BUTTON%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
8.8.13&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo Mascha und Clemens,&lt;br /&gt;
&lt;br /&gt;
folgende Funktionalität ist jetzt implementiert:&lt;br /&gt;
&lt;br /&gt;
- Zu einem Hauptbeitrag (Sozusagen 1.Ebene - entspricht dem Post in&lt;br /&gt;
Wordpress) kann ein normaler Benutzer eine Frage stellen.&lt;br /&gt;
- Zu den Fragen (das wäre dann die 2. Ebene) kann jeder Benutzer&lt;br /&gt;
beliebig viele Beiträge machen&lt;br /&gt;
- Benutzer ab Level 7 (Redakteure und Admins) können beliebig viele&lt;br /&gt;
Fragen stellen.&lt;br /&gt;
&lt;br /&gt;
- Labels sind jetzt: &amp;quot;Hinterlasse einen Beitrag&amp;quot; und &amp;quot;Beitrag abschicken&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Grüße,&lt;br /&gt;
&lt;br /&gt;
Stephan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11&lt;br /&gt;
&lt;br /&gt;
10/2014&lt;br /&gt;
- Kommentare in Spalten sortieren, je nach Antwort&lt;br /&gt;
- Overflow für Kommentarausgabe, damit die Felder nicht zu groß werden&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Gesundheitsregion_Reutlingen_T%C3%BCbingen_Zollernalb&amp;diff=21314</id>
		<title>Gesundheitsregion Reutlingen Tübingen Zollernalb</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Gesundheitsregion_Reutlingen_T%C3%BCbingen_Zollernalb&amp;diff=21314"/>
		<updated>2015-11-17T10:06:21Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Partner für Backend einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;siehe auch [[Gesundheitsregion-rtz]]&lt;br /&gt;
&lt;br /&gt;
== Wichtige Hinweise ==&lt;br /&gt;
Die Gesundheitsregion nutzt die Extension gbimporter für den automatischen Import. Der Importer kann aber keine mm Verknüpfungen. Deshalb ist der Code modifiziert. Vorsicht beim Update. &lt;br /&gt;
&lt;br /&gt;
Besser wäre es den Importer zu modifizieren. Z.B. könnte man im sagen welches Feld zu welcher mm Tabelle gehört. In diesem Fall z.B: &lt;br /&gt;
 catis =&amp;gt; tx_gbseminars_catid_mm&lt;br /&gt;
Im Skript müßte er dann die id des erzeugten Datensatzes in local_uid der mmTabelle und catid in foreign_uid legen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Neuen Partner anlegen ==&lt;br /&gt;
=== Logo auf Partnerseite ===&lt;br /&gt;
Breite ca 150px&lt;br /&gt;
Verlinkung nicht vergessen&lt;br /&gt;
&lt;br /&gt;
=== Partner für Backend einrichten ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Neuen Veranstalter&amp;#039;&amp;#039;&amp;#039; im Ordner Assets anlegen und ID merken&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ordner&amp;#039;&amp;#039;&amp;#039; mit Veranstalternamen für Daten anlegen&lt;br /&gt;
** In den Seiteneigenschaften muß als &amp;#039;&amp;#039;&amp;#039;Allgemeine Datensatzsammlung&amp;#039;&amp;#039;&amp;#039; der Assets Ordner ausgewählt sein&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Benutzergruppe&amp;#039;&amp;#039;&amp;#039; anlegen &amp;quot;Bereich: [Benutzername]&amp;quot;&lt;br /&gt;
** Erhält als &amp;#039;&amp;#039;&amp;#039;Datenbankfreigabe&amp;#039;&amp;#039;&amp;#039; oben angelegten Ordner&lt;br /&gt;
** Enthält im &amp;#039;&amp;#039;&amp;#039;TS Config&amp;#039;&amp;#039;&amp;#039; die Zeile TCAdefaults.tx_gbseminars_seminars.organizerid = [Veranstalter ID] -&amp;gt; dient zur Vorwahl des Veranstalters beim anlegen einer Veranstaltung&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Benutzer&amp;#039;&amp;#039;&amp;#039; anlegen&lt;br /&gt;
** Die Benutzer erhalten als &amp;#039;&amp;#039;&amp;#039;Gruppe&amp;#039;&amp;#039;&amp;#039; den vorher angelegten Bereich + Rolle: Kalender Redakteure&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Zugriffsrechte&amp;#039;&amp;#039;&amp;#039; des Oben erstellten Ordners ändern. Die Gruppe auf die neu angelegte und Die Rechte für Seite anzeigen und Inhalte verändern setzen&lt;br /&gt;
&lt;br /&gt;
Evtl. Kontaktdaten des neuen Nutzers speichern&lt;br /&gt;
 === Frontend Ausgabe ===&lt;br /&gt;
* Speicherordner in den Plugins hinzufügen (Startseite, Einzelansicht, Gesundheitskalender-Seite)&lt;br /&gt;
&lt;br /&gt;
=== Automatischen Import einrichten ===&lt;br /&gt;
* Ordner für die Datensätze erstellen&lt;br /&gt;
** Bei Allgemeine Ressourcen Ordner mit Zielgruppen etc. angeben&lt;br /&gt;
* Importkonfiguration anlegen mit folgenden Daten:&lt;br /&gt;
** Bezeichnung (Beliebig)&lt;br /&gt;
** Speicherordner -&amp;gt; ID des vorher angelegten Ordners&lt;br /&gt;
** Mapping, falls Felderbezeichnungen von der Spezifikation abweichen. Es müssen nur Felder angegeben werden die gemappt werden sollen.&lt;br /&gt;
** Typ (im Moment nur Autoimport)&lt;br /&gt;
** Quelldatei -&amp;gt; Internetadresse der Datei &lt;br /&gt;
** Zugangsdaten bei htaccess geschützter Datei&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Mapping Beispiel ====&lt;br /&gt;
Name des Feldes in Import-Datei | Name auf das gemappt wird | Validierung (simplehtml oder text)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
short|descr|simplehtml&lt;br /&gt;
descr|short|text&lt;br /&gt;
instuctor|instructor|text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verbesserungen für gbseminars ==&lt;br /&gt;
&lt;br /&gt;
* Bei Löschen der Importdaten nach Veranstalter statt nach Seite suchen (oder beides)&lt;br /&gt;
* Prüfen ob Veranstalter erlaubt (oder Vorkonfiguration über TS)&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Extbase_-_Query_Objekt&amp;diff=21313</id>
		<title>Extbase - Query Objekt</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Extbase_-_Query_Objekt&amp;diff=21313"/>
		<updated>2015-11-13T12:29:44Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
&lt;br /&gt;
[[Extbase - Sortierung und Abfrage von Objekten]]&lt;br /&gt;
&lt;br /&gt;
http://mbless.de/blog/2015/03/05/typo3-extbase-query-methods.html (gute Sammlung und best practice)&lt;br /&gt;
&lt;br /&gt;
http://lbrmedia.net/codebase/Eintrag/extbase-query-methods/&lt;br /&gt;
&lt;br /&gt;
Das Query Object steuert Abfragen auf die Datenbank. Wenn man z.B. findAll() im Controller ausführt, werden die Parameter für die Abfrage aus diesem Objekt geholt. Die Standardfunktionen lassen sich überschreiben oder man kann die im Query Object enthaltenen Arrays manipulieren. Best Practise ist Query Funktionen etc. im Repository definieren. Ausführen dann im Controller.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
=== Allgemeines Vorgehen ===&lt;br /&gt;
==== Einfache Anfragen ====&lt;br /&gt;
Einfache Anfragen z.B. Filtern nach einer bestimmten Eigenschaft (Property) geht mit der findBy[property] Methode. Nach der uid sucht man z.B. mit.&lt;br /&gt;
 findByUid(42) &lt;br /&gt;
 findOneByName(&amp;#039;foo&amp;#039;) // gibt nur das erste zurück&lt;br /&gt;
Das geht mit allen Eigenschaften im Model (findByName, findByIrgendwas)&lt;br /&gt;
==== Speziellere Queries ====&lt;br /&gt;
Für &amp;#039;&amp;#039;&amp;#039;spezielle Queries&amp;#039;&amp;#039;&amp;#039; erstellt man mit &lt;br /&gt;
 $this-&amp;gt;createQuery()&lt;br /&gt;
ein neues &amp;#039;&amp;#039;&amp;#039;Query Objekt&amp;#039;&amp;#039;&amp;#039;. Diesem gibt man dann &amp;#039;&amp;#039;&amp;#039;Conditions und Sortierungen&amp;#039;&amp;#039;&amp;#039; mit. Wichtige Methoden sind z.B. matching(), execute() und setOrderings())&lt;br /&gt;
==== Daten im Controller nachbearbeiten ====&lt;br /&gt;
SQL wird normalerweise ausgeführt, wenn der ViewHelper des Fluid Templates Daten anfordert, also nachdem der Controller abgearbeitet ist. Das ist ein Problem wenn man die Daten noch im Controller bearbeiten will. Man kann die Daten aber auch im Controller durchgehen, bearbeiten und dann wieder dem Fluid Template übergeben.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&lt;br /&gt;
$array = array();&lt;br /&gt;
 &lt;br /&gt;
foreach($this-&amp;gt;repository-&amp;gt;findAll() as $object)&lt;br /&gt;
{&lt;br /&gt;
    $object-&amp;gt;SetWhatEver(42);&lt;br /&gt;
    $array[] = $object;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
$this-&amp;gt;view-&amp;gt;assign(&amp;#039;list&amp;#039;, $array);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Group By ===&lt;br /&gt;
Das wird von Extbase nicht erzeugt.  Aber es gibt einen GroupFor View Helper. Ansonsten kann man auch auf eigene Queries ausweichen.&lt;br /&gt;
=== Eigene Queries ===&lt;br /&gt;
Todo&lt;br /&gt;
&lt;br /&gt;
== Beipiele ==&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Sortierreihenfolge ===&lt;br /&gt;
Für angepasste Sortierungen reicht es &amp;#039;&amp;#039;&amp;#039;im Repository das Array $defaultOrderings zu überschreiben.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class DeviceRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {&lt;br /&gt;
	protected $defaultOrderings = array(&lt;br /&gt;
		&amp;#039;deviceClass.classTitle&amp;#039; =&amp;gt; \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,&lt;br /&gt;
		&amp;#039;deviceTitle&amp;#039; =&amp;gt; \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING&lt;br /&gt;
		//&amp;#039;date&amp;#039; =&amp;gt; \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: FE-User by uid und by group finden ===&lt;br /&gt;
Aus Powermail (gekürzt)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Repository&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use TYPO3\CMS\Extbase\Persistence\Repository;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * UserRepository&lt;br /&gt;
 *&lt;br /&gt;
 * @package powermail&lt;br /&gt;
 * @license http://www.gnu.org/licenses/lgpl.html&lt;br /&gt;
 * 			GNU Lesser General Public License, version 3 or later&lt;br /&gt;
 */&lt;br /&gt;
class UserRepository extends Repository {&lt;br /&gt;
	/**&lt;br /&gt;
	 * Find FE_Users by their group&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param int $uid fe_groups UID&lt;br /&gt;
	 * @return \TYPO3\CMS\Extbase\Persistence\Generic\QueryResult&lt;br /&gt;
	 */&lt;br /&gt;
	public function findByUsergroup($uid) {&lt;br /&gt;
		$query = $this-&amp;gt;createQuery();&lt;br /&gt;
		$query-&amp;gt;getQuerySettings()-&amp;gt;setRespectStoragePage(FALSE);&lt;br /&gt;
		$query-&amp;gt;matching(&lt;br /&gt;
			$query-&amp;gt;contains(&amp;#039;usergroup&amp;#039;, $uid)&lt;br /&gt;
		);&lt;br /&gt;
		return $query-&amp;gt;execute();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Find by Uid but don&amp;#039;t respect storage page&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param \int $uid&lt;br /&gt;
	 * @return \In2code\Powermail\Domain\Model\User&lt;br /&gt;
	 */&lt;br /&gt;
	public function findByUid($uid) {&lt;br /&gt;
		$query = $this-&amp;gt;createQuery();&lt;br /&gt;
		$query-&amp;gt;getQuerySettings()-&amp;gt;setRespectStoragePage(FALSE);&lt;br /&gt;
		$query-&amp;gt;matching(&lt;br /&gt;
			$query-&amp;gt;equals(&amp;#039;uid&amp;#039;, $uid)&lt;br /&gt;
		);&lt;br /&gt;
		return $query-&amp;gt;execute()-&amp;gt;getFirst();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Funktionen werden dann im &amp;#039;&amp;#039;&amp;#039;Controller&amp;#039;&amp;#039;&amp;#039; aufgerufen z.B.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;$mail-&amp;gt;setFeuser( $this-&amp;gt;userRepository-&amp;gt;findByUid(Div::getPropertyFromLoggedInFeUser(&amp;#039;uid&amp;#039;)) );&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Custom Query ===&lt;br /&gt;
Aus Powermail&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Get parent page uid form given field uid&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param int $fieldUid&lt;br /&gt;
	 * @return array&lt;br /&gt;
	 */&lt;br /&gt;
	protected function getPageUidFromFieldUid($fieldUid) {&lt;br /&gt;
		$query = $this-&amp;gt;createQuery();&lt;br /&gt;
		$sql = &amp;#039;select pages&amp;#039;;&lt;br /&gt;
		$sql .= &amp;#039; from tx_powermail_domain_model_fields&amp;#039;;&lt;br /&gt;
		$sql .= &amp;#039; where uid = &amp;#039; . (int) $fieldUid;&lt;br /&gt;
		$sql .= &amp;#039; and deleted = 0&amp;#039;;&lt;br /&gt;
		$sql .= &amp;#039; limit 1&amp;#039;;&lt;br /&gt;
		$row = $query-&amp;gt;statement($sql)-&amp;gt;execute(TRUE);&lt;br /&gt;
		return $row[0][&amp;#039;pages&amp;#039;];&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Mehrere Conditions auf die Abfrage anwenden === &lt;br /&gt;
Wenn du mehrere Filter brauchst oder etwas anderes als ein uid=4 Abfrage, dann erstelle ein Query Objekt mit mehreren Conditions&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function findNonPublicByTest(\TYPO3\MyExt\Domain\Model\Test $test) {&lt;br /&gt;
 	$query = $this-&amp;gt;createQuery();&lt;br /&gt;
 	$condition1 = $query-&amp;gt;equals(&amp;#039;public&amp;#039;, false);&lt;br /&gt;
	$condition2 = $query-&amp;gt;equals(&amp;#039;test&amp;#039;, $test);&lt;br /&gt;
	$condition  = $query-&amp;gt;logicalAnd($condition1, $condition2);&lt;br /&gt;
 	$query-&amp;gt;matching($condition);&lt;br /&gt;
	$query-&amp;gt;setOrderings(array(&amp;#039;titel&amp;#039; =&amp;gt; \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));&lt;br /&gt;
 	return $query-&amp;gt;execute();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispiel Logische Verknüpfungen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 Public Function findForMyView (  $var1, $var2  ) {&lt;br /&gt;
   $query = $this-&amp;gt;createQuery();&lt;br /&gt;
    Return $query&lt;br /&gt;
      -&amp;gt;matching(&lt;br /&gt;
        $query-&amp;gt;logicalAnd(&lt;br /&gt;
            $query-&amp;gt;equals(&amp;#039;field1&amp;#039;, $var1 ),&lt;br /&gt;
            $query-&amp;gt;lessThan(&amp;#039;field2&amp;#039;,  $var ),&lt;br /&gt;
            $query-&amp;gt;greaterThan(&amp;#039;field3&amp;#039;, &amp;#039;1&amp;#039;)&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
      -&amp;gt;setOrderings(Array(&amp;#039;uid&amp;#039; =&amp;gt; Tx_Extbase_Persistence_Query::ORDER_DESCENDING))&lt;br /&gt;
&lt;br /&gt;
      -&amp;gt; setLimit (1)&lt;br /&gt;
      -&amp;gt; execute();&lt;br /&gt;
  } &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Kommaseparierte Liste für Abfrage ===&lt;br /&gt;
http://www.buero-sonne.de/2014/10/16/mysql-orderby-field-in-extbase.html&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 *  Find by multiple uids using, seperated string and maintain the list order &lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
public function findByUidListOrderByList($uidList) {&lt;br /&gt;
    $uidArray = explode(&amp;quot;,&amp;quot;, $uidList);&lt;br /&gt;
    $query = $this-&amp;gt;createQuery();&lt;br /&gt;
    $query-&amp;gt;matching(&lt;br /&gt;
        $query-&amp;gt;in(&amp;#039;uid&amp;#039;, $uidArray),&lt;br /&gt;
        $query-&amp;gt;logicalAnd(&lt;br /&gt;
            $query-&amp;gt;equals(&amp;#039;hidden&amp;#039;, 0),&lt;br /&gt;
            $query-&amp;gt;equals(&amp;#039;deleted&amp;#039;, 0)&lt;br /&gt;
        )&lt;br /&gt;
    );&lt;br /&gt;
    $query-&amp;gt;setOrderings($this-&amp;gt;orderByField(&amp;#039;uid&amp;#039;, $uidArray));&lt;br /&gt;
 &lt;br /&gt;
    return $query-&amp;gt;execute();&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
 *  Set the order method &lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
protected function orderByField($field, $values) {&lt;br /&gt;
    $orderings = array();&lt;br /&gt;
    foreach ($values as $value) {&lt;br /&gt;
        $orderings[&amp;quot;$field={$value}&amp;quot;] = \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING;&lt;br /&gt;
    }&lt;br /&gt;
    return $orderings;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Beispiele aus Extensions ==&lt;br /&gt;
=== gbrma ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 *	Find by multiple family Ids using, seperated string and Sort by Name &lt;br /&gt;
	 * &lt;br /&gt;
	 */&lt;br /&gt;
	public function findByFamilies($uidList) {&lt;br /&gt;
		if(!is_array($uidList)) $uidArray = explode(&amp;quot;,&amp;quot;, $uidList);&lt;br /&gt;
		else $uidArray = $uidList;&lt;br /&gt;
		$query = $this-&amp;gt;createQuery();&lt;br /&gt;
		$query-&amp;gt;matching(&lt;br /&gt;
			$query-&amp;gt;in(&amp;#039;class_family&amp;#039;, $uidArray),&lt;br /&gt;
			$query-&amp;gt;logicalAnd(&lt;br /&gt;
				$query-&amp;gt;equals(&amp;#039;hidden&amp;#039;, 0),&lt;br /&gt;
				$query-&amp;gt;equals(&amp;#039;deleted&amp;#039;, 0)&lt;br /&gt;
			)&lt;br /&gt;
		);&lt;br /&gt;
		$query-&amp;gt;setOrderings($this-&amp;gt;orderByField(&amp;#039;class_title&amp;#039;, $uidArray));&lt;br /&gt;
	&lt;br /&gt;
		return $query-&amp;gt;execute();&lt;br /&gt;
	}	&lt;br /&gt;
	 /**&lt;br /&gt;
	 *	Set the order method &lt;br /&gt;
	 * &lt;br /&gt;
	 */&lt;br /&gt;
	protected function orderByField($field, $values) {&lt;br /&gt;
		$orderings = array();&lt;br /&gt;
		foreach ($values as $value) {&lt;br /&gt;
			$orderings[&amp;quot;$field={$value}&amp;quot;] = \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING;&lt;br /&gt;
		}&lt;br /&gt;
		return $orderings;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Extbase_-_Query_Objekt&amp;diff=21312</id>
		<title>Extbase - Query Objekt</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Extbase_-_Query_Objekt&amp;diff=21312"/>
		<updated>2015-11-13T12:28:53Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
&lt;br /&gt;
[[Extbase - Sortierung und Abfrage von Objekten]]&lt;br /&gt;
&lt;br /&gt;
http://mbless.de/blog/2015/03/05/typo3-extbase-query-methods.html (gute Sammlung)&lt;br /&gt;
&lt;br /&gt;
http://lbrmedia.net/codebase/Eintrag/extbase-query-methods/&lt;br /&gt;
&lt;br /&gt;
Das Query Object steuert Abfragen auf die Datenbank. Wenn man z.B. findAll() im Controller ausführt, werden die Parameter für die Abfrage aus diesem Objekt geholt. Die Standardfunktionen lassen sich überschreiben oder man kann die im Query Object enthaltenen Arrays manipulieren. Best Practise ist Query Funktionen etc. im Repository definieren. Ausführen dann im Controller.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
=== Allgemeines Vorgehen ===&lt;br /&gt;
==== Einfache Anfragen ====&lt;br /&gt;
Einfache Anfragen z.B. Filtern nach einer bestimmten Eigenschaft (Property) geht mit der findBy[property] Methode. Nach der uid sucht man z.B. mit.&lt;br /&gt;
 findByUid(42) &lt;br /&gt;
 findOneByName(&amp;#039;foo&amp;#039;) // gibt nur das erste zurück&lt;br /&gt;
Das geht mit allen Eigenschaften im Model (findByName, findByIrgendwas)&lt;br /&gt;
==== Speziellere Queries ====&lt;br /&gt;
Für &amp;#039;&amp;#039;&amp;#039;spezielle Queries&amp;#039;&amp;#039;&amp;#039; erstellt man mit &lt;br /&gt;
 $this-&amp;gt;createQuery()&lt;br /&gt;
ein neues &amp;#039;&amp;#039;&amp;#039;Query Objekt&amp;#039;&amp;#039;&amp;#039;. Diesem gibt man dann &amp;#039;&amp;#039;&amp;#039;Conditions und Sortierungen&amp;#039;&amp;#039;&amp;#039; mit. Wichtige Methoden sind z.B. matching(), execute() und setOrderings())&lt;br /&gt;
==== Daten im Controller nachbearbeiten ====&lt;br /&gt;
SQL wird normalerweise ausgeführt, wenn der ViewHelper des Fluid Templates Daten anfordert, also nachdem der Controller abgearbeitet ist. Das ist ein Problem wenn man die Daten noch im Controller bearbeiten will. Man kann die Daten aber auch im Controller durchgehen, bearbeiten und dann wieder dem Fluid Template übergeben.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&lt;br /&gt;
$array = array();&lt;br /&gt;
 &lt;br /&gt;
foreach($this-&amp;gt;repository-&amp;gt;findAll() as $object)&lt;br /&gt;
{&lt;br /&gt;
    $object-&amp;gt;SetWhatEver(42);&lt;br /&gt;
    $array[] = $object;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
$this-&amp;gt;view-&amp;gt;assign(&amp;#039;list&amp;#039;, $array);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Group By ===&lt;br /&gt;
Das wird von Extbase nicht erzeugt.  Aber es gibt einen GroupFor View Helper. Ansonsten kann man auch auf eigene Queries ausweichen.&lt;br /&gt;
=== Eigene Queries ===&lt;br /&gt;
Todo&lt;br /&gt;
&lt;br /&gt;
== Beipiele ==&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Sortierreihenfolge ===&lt;br /&gt;
Für angepasste Sortierungen reicht es &amp;#039;&amp;#039;&amp;#039;im Repository das Array $defaultOrderings zu überschreiben.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class DeviceRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {&lt;br /&gt;
	protected $defaultOrderings = array(&lt;br /&gt;
		&amp;#039;deviceClass.classTitle&amp;#039; =&amp;gt; \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,&lt;br /&gt;
		&amp;#039;deviceTitle&amp;#039; =&amp;gt; \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING&lt;br /&gt;
		//&amp;#039;date&amp;#039; =&amp;gt; \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: FE-User by uid und by group finden ===&lt;br /&gt;
Aus Powermail (gekürzt)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Repository&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use TYPO3\CMS\Extbase\Persistence\Repository;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * UserRepository&lt;br /&gt;
 *&lt;br /&gt;
 * @package powermail&lt;br /&gt;
 * @license http://www.gnu.org/licenses/lgpl.html&lt;br /&gt;
 * 			GNU Lesser General Public License, version 3 or later&lt;br /&gt;
 */&lt;br /&gt;
class UserRepository extends Repository {&lt;br /&gt;
	/**&lt;br /&gt;
	 * Find FE_Users by their group&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param int $uid fe_groups UID&lt;br /&gt;
	 * @return \TYPO3\CMS\Extbase\Persistence\Generic\QueryResult&lt;br /&gt;
	 */&lt;br /&gt;
	public function findByUsergroup($uid) {&lt;br /&gt;
		$query = $this-&amp;gt;createQuery();&lt;br /&gt;
		$query-&amp;gt;getQuerySettings()-&amp;gt;setRespectStoragePage(FALSE);&lt;br /&gt;
		$query-&amp;gt;matching(&lt;br /&gt;
			$query-&amp;gt;contains(&amp;#039;usergroup&amp;#039;, $uid)&lt;br /&gt;
		);&lt;br /&gt;
		return $query-&amp;gt;execute();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Find by Uid but don&amp;#039;t respect storage page&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param \int $uid&lt;br /&gt;
	 * @return \In2code\Powermail\Domain\Model\User&lt;br /&gt;
	 */&lt;br /&gt;
	public function findByUid($uid) {&lt;br /&gt;
		$query = $this-&amp;gt;createQuery();&lt;br /&gt;
		$query-&amp;gt;getQuerySettings()-&amp;gt;setRespectStoragePage(FALSE);&lt;br /&gt;
		$query-&amp;gt;matching(&lt;br /&gt;
			$query-&amp;gt;equals(&amp;#039;uid&amp;#039;, $uid)&lt;br /&gt;
		);&lt;br /&gt;
		return $query-&amp;gt;execute()-&amp;gt;getFirst();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Funktionen werden dann im &amp;#039;&amp;#039;&amp;#039;Controller&amp;#039;&amp;#039;&amp;#039; aufgerufen z.B.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;$mail-&amp;gt;setFeuser( $this-&amp;gt;userRepository-&amp;gt;findByUid(Div::getPropertyFromLoggedInFeUser(&amp;#039;uid&amp;#039;)) );&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Custom Query ===&lt;br /&gt;
Aus Powermail&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Get parent page uid form given field uid&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param int $fieldUid&lt;br /&gt;
	 * @return array&lt;br /&gt;
	 */&lt;br /&gt;
	protected function getPageUidFromFieldUid($fieldUid) {&lt;br /&gt;
		$query = $this-&amp;gt;createQuery();&lt;br /&gt;
		$sql = &amp;#039;select pages&amp;#039;;&lt;br /&gt;
		$sql .= &amp;#039; from tx_powermail_domain_model_fields&amp;#039;;&lt;br /&gt;
		$sql .= &amp;#039; where uid = &amp;#039; . (int) $fieldUid;&lt;br /&gt;
		$sql .= &amp;#039; and deleted = 0&amp;#039;;&lt;br /&gt;
		$sql .= &amp;#039; limit 1&amp;#039;;&lt;br /&gt;
		$row = $query-&amp;gt;statement($sql)-&amp;gt;execute(TRUE);&lt;br /&gt;
		return $row[0][&amp;#039;pages&amp;#039;];&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Mehrere Conditions auf die Abfrage anwenden === &lt;br /&gt;
Wenn du mehrere Filter brauchst oder etwas anderes als ein uid=4 Abfrage, dann erstelle ein Query Objekt mit mehreren Conditions&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function findNonPublicByTest(\TYPO3\MyExt\Domain\Model\Test $test) {&lt;br /&gt;
 	$query = $this-&amp;gt;createQuery();&lt;br /&gt;
 	$condition1 = $query-&amp;gt;equals(&amp;#039;public&amp;#039;, false);&lt;br /&gt;
	$condition2 = $query-&amp;gt;equals(&amp;#039;test&amp;#039;, $test);&lt;br /&gt;
	$condition  = $query-&amp;gt;logicalAnd($condition1, $condition2);&lt;br /&gt;
 	$query-&amp;gt;matching($condition);&lt;br /&gt;
	$query-&amp;gt;setOrderings(array(&amp;#039;titel&amp;#039; =&amp;gt; \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));&lt;br /&gt;
 	return $query-&amp;gt;execute();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispiel Logische Verknüpfungen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 Public Function findForMyView (  $var1, $var2  ) {&lt;br /&gt;
   $query = $this-&amp;gt;createQuery();&lt;br /&gt;
    Return $query&lt;br /&gt;
      -&amp;gt;matching(&lt;br /&gt;
        $query-&amp;gt;logicalAnd(&lt;br /&gt;
            $query-&amp;gt;equals(&amp;#039;field1&amp;#039;, $var1 ),&lt;br /&gt;
            $query-&amp;gt;lessThan(&amp;#039;field2&amp;#039;,  $var ),&lt;br /&gt;
            $query-&amp;gt;greaterThan(&amp;#039;field3&amp;#039;, &amp;#039;1&amp;#039;)&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
      -&amp;gt;setOrderings(Array(&amp;#039;uid&amp;#039; =&amp;gt; Tx_Extbase_Persistence_Query::ORDER_DESCENDING))&lt;br /&gt;
&lt;br /&gt;
      -&amp;gt; setLimit (1)&lt;br /&gt;
      -&amp;gt; execute();&lt;br /&gt;
  } &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Kommaseparierte Liste für Abfrage ===&lt;br /&gt;
http://www.buero-sonne.de/2014/10/16/mysql-orderby-field-in-extbase.html&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 *  Find by multiple uids using, seperated string and maintain the list order &lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
public function findByUidListOrderByList($uidList) {&lt;br /&gt;
    $uidArray = explode(&amp;quot;,&amp;quot;, $uidList);&lt;br /&gt;
    $query = $this-&amp;gt;createQuery();&lt;br /&gt;
    $query-&amp;gt;matching(&lt;br /&gt;
        $query-&amp;gt;in(&amp;#039;uid&amp;#039;, $uidArray),&lt;br /&gt;
        $query-&amp;gt;logicalAnd(&lt;br /&gt;
            $query-&amp;gt;equals(&amp;#039;hidden&amp;#039;, 0),&lt;br /&gt;
            $query-&amp;gt;equals(&amp;#039;deleted&amp;#039;, 0)&lt;br /&gt;
        )&lt;br /&gt;
    );&lt;br /&gt;
    $query-&amp;gt;setOrderings($this-&amp;gt;orderByField(&amp;#039;uid&amp;#039;, $uidArray));&lt;br /&gt;
 &lt;br /&gt;
    return $query-&amp;gt;execute();&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
 *  Set the order method &lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
protected function orderByField($field, $values) {&lt;br /&gt;
    $orderings = array();&lt;br /&gt;
    foreach ($values as $value) {&lt;br /&gt;
        $orderings[&amp;quot;$field={$value}&amp;quot;] = \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING;&lt;br /&gt;
    }&lt;br /&gt;
    return $orderings;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Beispiele aus Extensions ==&lt;br /&gt;
=== gbrma ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 *	Find by multiple family Ids using, seperated string and Sort by Name &lt;br /&gt;
	 * &lt;br /&gt;
	 */&lt;br /&gt;
	public function findByFamilies($uidList) {&lt;br /&gt;
		if(!is_array($uidList)) $uidArray = explode(&amp;quot;,&amp;quot;, $uidList);&lt;br /&gt;
		else $uidArray = $uidList;&lt;br /&gt;
		$query = $this-&amp;gt;createQuery();&lt;br /&gt;
		$query-&amp;gt;matching(&lt;br /&gt;
			$query-&amp;gt;in(&amp;#039;class_family&amp;#039;, $uidArray),&lt;br /&gt;
			$query-&amp;gt;logicalAnd(&lt;br /&gt;
				$query-&amp;gt;equals(&amp;#039;hidden&amp;#039;, 0),&lt;br /&gt;
				$query-&amp;gt;equals(&amp;#039;deleted&amp;#039;, 0)&lt;br /&gt;
			)&lt;br /&gt;
		);&lt;br /&gt;
		$query-&amp;gt;setOrderings($this-&amp;gt;orderByField(&amp;#039;class_title&amp;#039;, $uidArray));&lt;br /&gt;
	&lt;br /&gt;
		return $query-&amp;gt;execute();&lt;br /&gt;
	}	&lt;br /&gt;
	 /**&lt;br /&gt;
	 *	Set the order method &lt;br /&gt;
	 * &lt;br /&gt;
	 */&lt;br /&gt;
	protected function orderByField($field, $values) {&lt;br /&gt;
		$orderings = array();&lt;br /&gt;
		foreach ($values as $value) {&lt;br /&gt;
			$orderings[&amp;quot;$field={$value}&amp;quot;] = \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING;&lt;br /&gt;
		}&lt;br /&gt;
		return $orderings;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Timelapse_-_Zeitraffer&amp;diff=21311</id>
		<title>Timelapse - Zeitraffer</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Timelapse_-_Zeitraffer&amp;diff=21311"/>
		<updated>2015-11-11T15:51:56Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hochqualitative Timelapse Aufnahmen mit LRTimelapse&lt;br /&gt;
&lt;br /&gt;
== Workflow ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Shooting&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Feste Blende, Variable Belichtung, RAW&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Lightroom&amp;#039;&amp;#039;&amp;#039; -&amp;gt; Import aber noch nichts bearbeiten&lt;br /&gt;
* In &amp;#039;&amp;#039;&amp;#039;LRTimelapse&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
** Odner öffnen Referenzbereich definieren und Keyframes erzeugen / manuell setzen -&amp;gt; LRTimelapse berechnet die Helligkeitskurve&lt;br /&gt;
** Abspeichern -&amp;gt; LRTimelapse setzt automatisch Bewertungen bzw. Markierungen, mit denen man die Keyframes filtern kann.&lt;br /&gt;
* Lightroom -&amp;gt; Bearbeitung&lt;br /&gt;
** Helligkeitswerte und &amp;#039;&amp;#039;&amp;#039;Basisbearbeitung&amp;#039;&amp;#039;&amp;#039; der Keyframes etc.&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Metadaten speichern&amp;#039;&amp;#039;&amp;#039;. ACHTUNG: LRTimelapse kann nur Fotos verändern die vorher schon mal mit Lightroom angefasst wurden. Im Zweifel mal das erste Foto leicht verändern und die Änderung auf alle übertragen.&lt;br /&gt;
** Zusätzlich installiert LRTimelapse ein Skript mit dem man geschickt die Bearbeitungen auf die nächsten markierten Fotos übertragen kann (müßte aber mit Synchronisieren eigentlich auch funktionieren). &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;LRTimelapse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Neu Laden&amp;#039;&amp;#039;&amp;#039; der bearbeiteten Fotos (neu laden)&lt;br /&gt;
** Autoüberbgang berechnen -&amp;gt; LRTimelapse macht Übergänge zwischen den Keyframes&lt;br /&gt;
** Deflicker&lt;br /&gt;
** Speichern&lt;br /&gt;
* Lightroom&lt;br /&gt;
** Metadaten wieder einlesen&lt;br /&gt;
&lt;br /&gt;
== Lightroom ==&lt;br /&gt;
Nachteil: Viele gleichartige Bilder in Lightroom -&amp;gt; Katalog wird groß. Evtl. eher Bridge nehmen oder wieder Bilder rausschmeißen nach der Bearbeitung&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Timelapse_-_Zeitraffer&amp;diff=21310</id>
		<title>Timelapse - Zeitraffer</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Timelapse_-_Zeitraffer&amp;diff=21310"/>
		<updated>2015-11-10T10:47:07Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: Die Seite wurde neu angelegt: „Hochqualitative Timelapse Aufnahmen mit LRTimelapse  == Workflow == * &amp;#039;&amp;#039;&amp;#039;Shooting&amp;#039;&amp;#039;&amp;#039; ** Feste Blende, Variable Belichtung, RAW * &amp;#039;&amp;#039;&amp;#039;Lightroom&amp;#039;&amp;#039;&amp;#039; -&amp;gt; Import aber…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hochqualitative Timelapse Aufnahmen mit LRTimelapse&lt;br /&gt;
&lt;br /&gt;
== Workflow ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Shooting&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Feste Blende, Variable Belichtung, RAW&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Lightroom&amp;#039;&amp;#039;&amp;#039; -&amp;gt; Import aber noch nichts bearbeiten&lt;br /&gt;
* In &amp;#039;&amp;#039;&amp;#039;LRTimelapse&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
** Odner öffnen Referenzbereich definieren und Keyframes erzeugen / manuell setzen -&amp;gt; LRTimelapse berechnet die Helligkeitskurve&lt;br /&gt;
** Abspeichern -&amp;gt; LRTimelapse setzt automatisch Bewertungen bzw. Markierungen, mit denen man die Keyframes filtern kann.&lt;br /&gt;
* Lightroom -&amp;gt; Bearbeitung&lt;br /&gt;
** Helligkeitswerte und Basisbearbeitung der Keyframes&lt;br /&gt;
** Zusätzlich installiert LRTimelapse ein Skript mit dem man geschickt die Bearbeitungen auf die nächsten markierten Fotos übertragen kann (müßte aber mit Synchronisieren eigentlich auch funktionieren). ACHTUNG: LRTimelapse kann nur Fotos verändern die vorher schon mal mit Lightroom angefasst wurden. Im Zweifel mal das erste Foto leicht verändern und die Änderung auf alle übertragen.&lt;br /&gt;
* LRTimelapse&lt;br /&gt;
** Zurücklesen der bearbeiteten Fotos (neu laden)&lt;br /&gt;
** Autoüberbgang berechnen -&amp;gt; LRTimelapse macht Übergänge zwischen den Keyframes&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=DEKRA_Direkt_Blog&amp;diff=21309</id>
		<title>DEKRA Direkt Blog</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=DEKRA_Direkt_Blog&amp;diff=21309"/>
		<updated>2015-11-09T08:44:11Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Siehe auch: http://wiki.zone30.info/wikizone/index.php/Abstimmung_wordpress&lt;br /&gt;
&lt;br /&gt;
Photoaktion&lt;br /&gt;
&lt;br /&gt;
- für Motorradtage etc. NextGen Gallery -&amp;gt; Mascha lädt nur Bilder in einen Ordner&lt;br /&gt;
&lt;br /&gt;
Piwik&lt;br /&gt;
&lt;br /&gt;
Fehler in URL rausgenommen am 3.6.2015 aus footer.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Piwik --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
  var _paq = _paq || [];&lt;br /&gt;
  _paq.push([&amp;quot;trackPageView&amp;quot;]);&lt;br /&gt;
  _paq.push([&amp;quot;enableLinkTracking&amp;quot;]);&lt;br /&gt;
&lt;br /&gt;
  (function() {&lt;br /&gt;
    var u=((&amp;quot;https:&amp;quot; == document.location.protocol) ? &amp;quot;https&amp;quot; : &amp;quot;http&amp;quot;) + &amp;quot;://piwik.net.dd23306.kasserver.com/&amp;quot;;&lt;br /&gt;
    _paq.push([&amp;quot;setTrackerUrl&amp;quot;, u+&amp;quot;piwik.php&amp;quot;]);&lt;br /&gt;
    _paq.push([&amp;quot;setSiteId&amp;quot;, &amp;quot;2&amp;quot;]);&lt;br /&gt;
    var d=document, g=d.createElement(&amp;quot;script&amp;quot;), s=d.getElementsByTagName(&amp;quot;script&amp;quot;)[0]; g.type=&amp;quot;text/javascript&amp;quot;;&lt;br /&gt;
    g.defer=true; g.async=true; g.src=u+&amp;quot;piwik.js&amp;quot;; s.parentNode.insertBefore(g,s);&lt;br /&gt;
  })();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- End Piwik Code --&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Lightroom&amp;diff=21308</id>
		<title>Lightroom</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Lightroom&amp;diff=21308"/>
		<updated>2015-11-06T16:24:24Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Adobe Lightroom&lt;br /&gt;
&lt;br /&gt;
Shortcuts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
G - Rasteransicht&lt;br /&gt;
Y - Vorher / Nachher Vergleich&lt;br /&gt;
R - Goldener Schnitt, Drittel Regel etc. Rasterlinien&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Lightroom&amp;diff=21307</id>
		<title>Lightroom</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Lightroom&amp;diff=21307"/>
		<updated>2015-11-05T18:02:16Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: Die Seite wurde neu angelegt: „Adobe Lightroom  Shortcuts  G - Rasteransicht Y - Vorher / Nachher Vergleich“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Adobe Lightroom&lt;br /&gt;
&lt;br /&gt;
Shortcuts&lt;br /&gt;
&lt;br /&gt;
G - Rasteransicht&lt;br /&gt;
Y - Vorher / Nachher Vergleich&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Bilderplattformen&amp;diff=21306</id>
		<title>Bilderplattformen</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Bilderplattformen&amp;diff=21306"/>
		<updated>2015-10-28T13:45:17Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: Die Seite wurde neu angelegt: „== Bilder verkaufen == fotolia und co rentiert sich nicht  Bilderplattformen die Produkte anbieten haben eine etwas bessere Provision  whitewall.de, seenby.de,…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bilder verkaufen ==&lt;br /&gt;
fotolia und co rentiert sich nicht&lt;br /&gt;
&lt;br /&gt;
Bilderplattformen die Produkte anbieten haben eine etwas bessere Provision&lt;br /&gt;
&lt;br /&gt;
whitewall.de, seenby.de, fineartprint.de, posterlounge.de&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Fotografie&amp;diff=21305</id>
		<title>Fotografie</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Fotografie&amp;diff=21305"/>
		<updated>2015-10-28T13:43:29Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Portrait Retusche]]&lt;br /&gt;
&lt;br /&gt;
[[Bilderplattformen]]&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21304</id>
		<title>Ionic</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21304"/>
		<updated>2015-10-27T07:55:59Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
&lt;br /&gt;
http://ionicframework.com/getting-started/&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
&lt;br /&gt;
[[Hybrid Apps Development]]&lt;br /&gt;
&lt;br /&gt;
Ionic View App: http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
Generate splash screens and icons with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
https://www.airpair.com/javascript/posts/a-year-using-ionic-to-build-hybrid-applications&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
* Node.js falls nicht installiert (evtl, PATH anpassen)&lt;br /&gt;
* im Terminal über npm cordova ionic und gulp installieren&lt;br /&gt;
 sudo npm install -g cordova ionic gul&lt;br /&gt;
== Ionic Console - Befehle ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available tasks: (use --help or -h for more info)&lt;br /&gt;
&lt;br /&gt;
   start  ..........  Starts a new Ionic project in the specified PATH&lt;br /&gt;
   serve  ..........  Start a local development server for app dev/testing&lt;br /&gt;
   platform  .......  Add platform target for building an Ionic app&lt;br /&gt;
   run  ............  Run an Ionic project on a connected device&lt;br /&gt;
   emulate  ........  Emulate an Ionic project on a simulator or emulator&lt;br /&gt;
   build  ..........  Locally build an Ionic project for a given platform&lt;br /&gt;
   plugin  .........  Add a Cordova plugin&lt;br /&gt;
   resources  ......  Automatically create icon and splash screen resources (beta)&lt;br /&gt;
		      Put your images in the ./resources directory, named splash or icon.&lt;br /&gt;
		      Accepted file types are .png, .ai, and .psd.&lt;br /&gt;
		      Icons should be 192x192 px without rounded corners.&lt;br /&gt;
		      Splashscreens should be 2208x2208 px, with the image centered in the middle.&lt;br /&gt;
&lt;br /&gt;
   upload  .........  Upload an app to your Ionic account&lt;br /&gt;
   share  ..........  Share an app with a client, co-worker, friend, or customer&lt;br /&gt;
   lib  ............  Gets Ionic library version or updates the Ionic library&lt;br /&gt;
   setup  ..........  Configure the project with a build tool (beta)&lt;br /&gt;
   io  .............  Integrate your app with the ionic.io platform services (alpha)&lt;br /&gt;
   security  .......  Store your app&amp;#039;s credentials for the Ionic Platform (alpha)&lt;br /&gt;
   push  ...........  Upload APNS and GCM credentials to Ionic Push (alpha)&lt;br /&gt;
   package  ........  Use Ionic Package to build your app (alpha)&lt;br /&gt;
   config  .........  Set configuration variables for your ionic app (alpha)&lt;br /&gt;
   browser  ........  Add another browser for a platform (beta)&lt;br /&gt;
   service  ........  Add an Ionic service package and install any required plugins&lt;br /&gt;
   add  ............  Add an Ion, bower component, or addon to the project&lt;br /&gt;
   remove  .........  Remove an Ion, bower component, or addon from the project&lt;br /&gt;
   list  ...........  List Ions, bower components, or addons in the project&lt;br /&gt;
   ions  ...........  List available ions to add to your project&lt;br /&gt;
   templates  ......  List available Ionic starter templates&lt;br /&gt;
   info  ...........  List information about the users runtime environment&lt;br /&gt;
   help  ...........  Provides help for a certain command&lt;br /&gt;
   link  ...........  Sets your Ionic App ID for your project&lt;br /&gt;
   hooks  ..........  Manage your Ionic Cordova hooks&lt;br /&gt;
   state  ..........  Saves or restores state of your Ionic Application using the package.json file&lt;br /&gt;
   docs  ...........  Opens up the documentation for Ionic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ionic Server Befehle ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Selected address: 192.168.178.64&lt;br /&gt;
Running live reload server: http://192.168.178.64:35729&lt;br /&gt;
Watching: 0=www/**/*, 1=!www/lib/**/*&lt;br /&gt;
Running dev server:  http://192.168.178.64:8100&lt;br /&gt;
Ionic server commands, enter:&lt;br /&gt;
  restart or r to restart the client app from the root&lt;br /&gt;
  goto or g and a url to have the app navigate to the given url&lt;br /&gt;
  consolelogs or c to enable/disable console log output&lt;br /&gt;
  serverlogs or s to enable/disable server log output&lt;br /&gt;
  quit or q to shutdown the server and exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hybrid Apps mit Ionic und PhoneGap Builder==&lt;br /&gt;
=== Links ===&lt;br /&gt;
 https://www.youtube.com/watch?v=C-UwOWB9Io4&amp;amp;feature=youtu.be&lt;br /&gt;
=== Einleitung ===&lt;br /&gt;
Ionic basiert auf AngularJS, mit diesen Tools erstellen wir die Webapp, die dann mit PhoneGap Builder zu einer Hybrid App gebündelt wird. &lt;br /&gt;
&lt;br /&gt;
AngularJS ist ein Framework zur WebApp Entwicklung mit hoher Performance. Ionic steuert viele Komponenten und in MobileApp übliche Bedienelemente bei.&lt;br /&gt;
=== Schnelle App mit Ionic ===&lt;br /&gt;
# Install Ionic (s.o.)&lt;br /&gt;
# Create App&lt;br /&gt;
# Build and Test&lt;br /&gt;
&lt;br /&gt;
====Create====&lt;br /&gt;
Verzeichnis erstellen z.B. &lt;br /&gt;
 /myUserfolder/myApp&lt;br /&gt;
 ionic start myApp tabs&lt;br /&gt;
====Build and test ====&lt;br /&gt;
 cd myApp&lt;br /&gt;
 ionic platform add ios&lt;br /&gt;
 ionic build ios&lt;br /&gt;
 ionic emulate ios&lt;br /&gt;
 &lt;br /&gt;
=== Projekt anlegen ===&lt;br /&gt;
Es gibt verschiedene Grundtemplates&lt;br /&gt;
*leer&lt;br /&gt;
 $ ionic start myApp blank&lt;br /&gt;
* tab navigation&lt;br /&gt;
 $ ionic start myApp tabs&lt;br /&gt;
* side navigation&lt;br /&gt;
 $ ionic start myApp sidemenu&lt;br /&gt;
&lt;br /&gt;
===Quicktips für Projekte===&lt;br /&gt;
* cd into your project: &lt;br /&gt;
  cd firstIonicAppOrAnotherName&lt;br /&gt;
* Setup this project to &amp;#039;&amp;#039;&amp;#039;use Sass&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic setup sass&lt;br /&gt;
* Develop in the browser with &amp;#039;&amp;#039;&amp;#039;live reload&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic serve&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Add a platform&amp;#039;&amp;#039;&amp;#039; (ios or Android): &lt;br /&gt;
 ionic platform add ios [android]&lt;br /&gt;
Note: iOS development requires OS X currently&lt;br /&gt;
See the Android Platform Guide for full Android installation instructions: https://cordova.apache.org/docs/en/edge/guide_platforms_android_index.md.html&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Build&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic build &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Simulate&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic emulate &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Run&amp;#039;&amp;#039;&amp;#039; your app &amp;#039;&amp;#039;&amp;#039;on a device&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic run &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039; an app using Ionic package service: &lt;br /&gt;
 ionic package &amp;lt;MODE&amp;gt; &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Invite&amp;#039;&amp;#039;&amp;#039; anyone to preview &amp;#039;&amp;#039;&amp;#039;and test&amp;#039;&amp;#039;&amp;#039; your app&lt;br /&gt;
 ionic share EMAIL&lt;br /&gt;
&lt;br /&gt;
For more help use ionic --help or ionic docs&lt;br /&gt;
Visit the Ionic docs: http://ionicframework.com/docs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;View App&amp;#039;&amp;#039;&amp;#039; http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Generate splash screens and icons&amp;#039;&amp;#039;&amp;#039; with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
=== E-Mail Einladung zum App testen ===&lt;br /&gt;
Invite anyone to preview and test your app&lt;br /&gt;
 ionic share EMAIL&lt;br /&gt;
&lt;br /&gt;
===Ionic Account===&lt;br /&gt;
Create an ionic.io account to send Push Notifications and use the Ionic View app?&lt;br /&gt;
(Y/n):&lt;br /&gt;
&lt;br /&gt;
==  Ionic Tools ==&lt;br /&gt;
=== Icons ===&lt;br /&gt;
=== Splash Screen und Icon Generator ===&lt;br /&gt;
http://ionicframework.com/docs/cli/icon-splashscreen.html&lt;br /&gt;
&lt;br /&gt;
http://stackoverflow.com/questions/31557887/phonegap-ionic-app-splash-screen-are-not-shown&lt;br /&gt;
&lt;br /&gt;
Photoshop Template und Icon Template gibt es auf der Generator Seite:&lt;br /&gt;
* Plaziere Icon und Splash Dateien im &amp;#039;&amp;#039;&amp;#039;/resource&amp;#039;&amp;#039;&amp;#039; Ordner des Projekts&lt;br /&gt;
* Icons: icon.png, icon.psd oder icon.ai Minimum 192px&lt;br /&gt;
ionic resources --icon &lt;br /&gt;
* Splash-Screen splash.png, splash.psd or splash.ai 2088px Artwork innerhalb 1200px im Zentrum damit es für Landscape und Portrait passt.&lt;br /&gt;
ionic resources --splash&lt;br /&gt;
&lt;br /&gt;
http://ionicframework.com/docs/cli/icon-splashscreen.html&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21303</id>
		<title>Ionic</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21303"/>
		<updated>2015-10-27T07:52:29Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
&lt;br /&gt;
http://ionicframework.com/getting-started/&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
&lt;br /&gt;
[[Hybrid Apps Development]]&lt;br /&gt;
&lt;br /&gt;
Ionic View App: http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
Generate splash screens and icons with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
* Node.js falls nicht installiert (evtl, PATH anpassen)&lt;br /&gt;
* im Terminal über npm cordova ionic und gulp installieren&lt;br /&gt;
 sudo npm install -g cordova ionic gul&lt;br /&gt;
== Ionic Console - Befehle ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available tasks: (use --help or -h for more info)&lt;br /&gt;
&lt;br /&gt;
   start  ..........  Starts a new Ionic project in the specified PATH&lt;br /&gt;
   serve  ..........  Start a local development server for app dev/testing&lt;br /&gt;
   platform  .......  Add platform target for building an Ionic app&lt;br /&gt;
   run  ............  Run an Ionic project on a connected device&lt;br /&gt;
   emulate  ........  Emulate an Ionic project on a simulator or emulator&lt;br /&gt;
   build  ..........  Locally build an Ionic project for a given platform&lt;br /&gt;
   plugin  .........  Add a Cordova plugin&lt;br /&gt;
   resources  ......  Automatically create icon and splash screen resources (beta)&lt;br /&gt;
		      Put your images in the ./resources directory, named splash or icon.&lt;br /&gt;
		      Accepted file types are .png, .ai, and .psd.&lt;br /&gt;
		      Icons should be 192x192 px without rounded corners.&lt;br /&gt;
		      Splashscreens should be 2208x2208 px, with the image centered in the middle.&lt;br /&gt;
&lt;br /&gt;
   upload  .........  Upload an app to your Ionic account&lt;br /&gt;
   share  ..........  Share an app with a client, co-worker, friend, or customer&lt;br /&gt;
   lib  ............  Gets Ionic library version or updates the Ionic library&lt;br /&gt;
   setup  ..........  Configure the project with a build tool (beta)&lt;br /&gt;
   io  .............  Integrate your app with the ionic.io platform services (alpha)&lt;br /&gt;
   security  .......  Store your app&amp;#039;s credentials for the Ionic Platform (alpha)&lt;br /&gt;
   push  ...........  Upload APNS and GCM credentials to Ionic Push (alpha)&lt;br /&gt;
   package  ........  Use Ionic Package to build your app (alpha)&lt;br /&gt;
   config  .........  Set configuration variables for your ionic app (alpha)&lt;br /&gt;
   browser  ........  Add another browser for a platform (beta)&lt;br /&gt;
   service  ........  Add an Ionic service package and install any required plugins&lt;br /&gt;
   add  ............  Add an Ion, bower component, or addon to the project&lt;br /&gt;
   remove  .........  Remove an Ion, bower component, or addon from the project&lt;br /&gt;
   list  ...........  List Ions, bower components, or addons in the project&lt;br /&gt;
   ions  ...........  List available ions to add to your project&lt;br /&gt;
   templates  ......  List available Ionic starter templates&lt;br /&gt;
   info  ...........  List information about the users runtime environment&lt;br /&gt;
   help  ...........  Provides help for a certain command&lt;br /&gt;
   link  ...........  Sets your Ionic App ID for your project&lt;br /&gt;
   hooks  ..........  Manage your Ionic Cordova hooks&lt;br /&gt;
   state  ..........  Saves or restores state of your Ionic Application using the package.json file&lt;br /&gt;
   docs  ...........  Opens up the documentation for Ionic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ionic Server Befehle ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Selected address: 192.168.178.64&lt;br /&gt;
Running live reload server: http://192.168.178.64:35729&lt;br /&gt;
Watching: 0=www/**/*, 1=!www/lib/**/*&lt;br /&gt;
Running dev server:  http://192.168.178.64:8100&lt;br /&gt;
Ionic server commands, enter:&lt;br /&gt;
  restart or r to restart the client app from the root&lt;br /&gt;
  goto or g and a url to have the app navigate to the given url&lt;br /&gt;
  consolelogs or c to enable/disable console log output&lt;br /&gt;
  serverlogs or s to enable/disable server log output&lt;br /&gt;
  quit or q to shutdown the server and exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hybrid Apps mit Ionic und PhoneGap Builder==&lt;br /&gt;
=== Links ===&lt;br /&gt;
 https://www.youtube.com/watch?v=C-UwOWB9Io4&amp;amp;feature=youtu.be&lt;br /&gt;
=== Einleitung ===&lt;br /&gt;
Ionic basiert auf AngularJS, mit diesen Tools erstellen wir die Webapp, die dann mit PhoneGap Builder zu einer Hybrid App gebündelt wird. &lt;br /&gt;
&lt;br /&gt;
AngularJS ist ein Framework zur WebApp Entwicklung mit hoher Performance. Ionic steuert viele Komponenten und in MobileApp übliche Bedienelemente bei.&lt;br /&gt;
=== Schnelle App mit Ionic ===&lt;br /&gt;
# Install Ionic (s.o.)&lt;br /&gt;
# Create App&lt;br /&gt;
# Build and Test&lt;br /&gt;
&lt;br /&gt;
====Create====&lt;br /&gt;
Verzeichnis erstellen z.B. &lt;br /&gt;
 /myUserfolder/myApp&lt;br /&gt;
 ionic start myApp tabs&lt;br /&gt;
====Build and test ====&lt;br /&gt;
 cd myApp&lt;br /&gt;
 ionic platform add ios&lt;br /&gt;
 ionic build ios&lt;br /&gt;
 ionic emulate ios&lt;br /&gt;
 &lt;br /&gt;
=== Projekt anlegen ===&lt;br /&gt;
Es gibt verschiedene Grundtemplates&lt;br /&gt;
*leer&lt;br /&gt;
 $ ionic start myApp blank&lt;br /&gt;
* tab navigation&lt;br /&gt;
 $ ionic start myApp tabs&lt;br /&gt;
* side navigation&lt;br /&gt;
 $ ionic start myApp sidemenu&lt;br /&gt;
&lt;br /&gt;
===Quicktips für Projekte===&lt;br /&gt;
* cd into your project: &lt;br /&gt;
  cd firstIonicAppOrAnotherName&lt;br /&gt;
* Setup this project to &amp;#039;&amp;#039;&amp;#039;use Sass&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic setup sass&lt;br /&gt;
* Develop in the browser with &amp;#039;&amp;#039;&amp;#039;live reload&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic serve&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Add a platform&amp;#039;&amp;#039;&amp;#039; (ios or Android): &lt;br /&gt;
 ionic platform add ios [android]&lt;br /&gt;
Note: iOS development requires OS X currently&lt;br /&gt;
See the Android Platform Guide for full Android installation instructions: https://cordova.apache.org/docs/en/edge/guide_platforms_android_index.md.html&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Build&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic build &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Simulate&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic emulate &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Run&amp;#039;&amp;#039;&amp;#039; your app &amp;#039;&amp;#039;&amp;#039;on a device&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic run &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039; an app using Ionic package service: &lt;br /&gt;
 ionic package &amp;lt;MODE&amp;gt; &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Invite&amp;#039;&amp;#039;&amp;#039; anyone to preview &amp;#039;&amp;#039;&amp;#039;and test&amp;#039;&amp;#039;&amp;#039; your app&lt;br /&gt;
 ionic share EMAIL&lt;br /&gt;
&lt;br /&gt;
For more help use ionic --help or ionic docs&lt;br /&gt;
Visit the Ionic docs: http://ionicframework.com/docs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;View App&amp;#039;&amp;#039;&amp;#039; http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Generate splash screens and icons&amp;#039;&amp;#039;&amp;#039; with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
=== E-Mail Einladung zum App testen ===&lt;br /&gt;
Invite anyone to preview and test your app&lt;br /&gt;
 ionic share EMAIL&lt;br /&gt;
&lt;br /&gt;
===Ionic Account===&lt;br /&gt;
Create an ionic.io account to send Push Notifications and use the Ionic View app?&lt;br /&gt;
(Y/n):&lt;br /&gt;
&lt;br /&gt;
==  Ionic Tools ==&lt;br /&gt;
=== Icons ===&lt;br /&gt;
=== Splash Screen und Icon Generator ===&lt;br /&gt;
http://ionicframework.com/docs/cli/icon-splashscreen.html&lt;br /&gt;
&lt;br /&gt;
http://stackoverflow.com/questions/31557887/phonegap-ionic-app-splash-screen-are-not-shown&lt;br /&gt;
&lt;br /&gt;
Photoshop Template und Icon Template gibt es auf der Generator Seite:&lt;br /&gt;
* Plaziere Icon und Splash Dateien im &amp;#039;&amp;#039;&amp;#039;/resource&amp;#039;&amp;#039;&amp;#039; Ordner des Projekts&lt;br /&gt;
* Icons: icon.png, icon.psd oder icon.ai Minimum 192px&lt;br /&gt;
ionic resources --icon &lt;br /&gt;
* Splash-Screen splash.png, splash.psd or splash.ai 2088px Artwork innerhalb 1200px im Zentrum damit es für Landscape und Portrait passt.&lt;br /&gt;
ionic resources --splash&lt;br /&gt;
&lt;br /&gt;
http://ionicframework.com/docs/cli/icon-splashscreen.html&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21300</id>
		<title>Ionic</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21300"/>
		<updated>2015-10-26T13:18:09Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Ionic Console - Befehle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
&lt;br /&gt;
http://ionicframework.com/getting-started/&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
&lt;br /&gt;
[[Hybrid Apps Development]]&lt;br /&gt;
&lt;br /&gt;
Ionic View App: http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
Generate splash screens and icons with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
* Node.js falls nicht installiert (evtl, PATH anpassen)&lt;br /&gt;
* im Terminal über npm cordova ionic und gulp installieren&lt;br /&gt;
 sudo npm install -g cordova ionic gul&lt;br /&gt;
== Ionic Console - Befehle ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available tasks: (use --help or -h for more info)&lt;br /&gt;
&lt;br /&gt;
   start  ..........  Starts a new Ionic project in the specified PATH&lt;br /&gt;
   serve  ..........  Start a local development server for app dev/testing&lt;br /&gt;
   platform  .......  Add platform target for building an Ionic app&lt;br /&gt;
   run  ............  Run an Ionic project on a connected device&lt;br /&gt;
   emulate  ........  Emulate an Ionic project on a simulator or emulator&lt;br /&gt;
   build  ..........  Locally build an Ionic project for a given platform&lt;br /&gt;
   plugin  .........  Add a Cordova plugin&lt;br /&gt;
   resources  ......  Automatically create icon and splash screen resources (beta)&lt;br /&gt;
		      Put your images in the ./resources directory, named splash or icon.&lt;br /&gt;
		      Accepted file types are .png, .ai, and .psd.&lt;br /&gt;
		      Icons should be 192x192 px without rounded corners.&lt;br /&gt;
		      Splashscreens should be 2208x2208 px, with the image centered in the middle.&lt;br /&gt;
&lt;br /&gt;
   upload  .........  Upload an app to your Ionic account&lt;br /&gt;
   share  ..........  Share an app with a client, co-worker, friend, or customer&lt;br /&gt;
   lib  ............  Gets Ionic library version or updates the Ionic library&lt;br /&gt;
   setup  ..........  Configure the project with a build tool (beta)&lt;br /&gt;
   io  .............  Integrate your app with the ionic.io platform services (alpha)&lt;br /&gt;
   security  .......  Store your app&amp;#039;s credentials for the Ionic Platform (alpha)&lt;br /&gt;
   push  ...........  Upload APNS and GCM credentials to Ionic Push (alpha)&lt;br /&gt;
   package  ........  Use Ionic Package to build your app (alpha)&lt;br /&gt;
   config  .........  Set configuration variables for your ionic app (alpha)&lt;br /&gt;
   browser  ........  Add another browser for a platform (beta)&lt;br /&gt;
   service  ........  Add an Ionic service package and install any required plugins&lt;br /&gt;
   add  ............  Add an Ion, bower component, or addon to the project&lt;br /&gt;
   remove  .........  Remove an Ion, bower component, or addon from the project&lt;br /&gt;
   list  ...........  List Ions, bower components, or addons in the project&lt;br /&gt;
   ions  ...........  List available ions to add to your project&lt;br /&gt;
   templates  ......  List available Ionic starter templates&lt;br /&gt;
   info  ...........  List information about the users runtime environment&lt;br /&gt;
   help  ...........  Provides help for a certain command&lt;br /&gt;
   link  ...........  Sets your Ionic App ID for your project&lt;br /&gt;
   hooks  ..........  Manage your Ionic Cordova hooks&lt;br /&gt;
   state  ..........  Saves or restores state of your Ionic Application using the package.json file&lt;br /&gt;
   docs  ...........  Opens up the documentation for Ionic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ionic Server Befehle ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Selected address: 192.168.178.64&lt;br /&gt;
Running live reload server: http://192.168.178.64:35729&lt;br /&gt;
Watching: 0=www/**/*, 1=!www/lib/**/*&lt;br /&gt;
Running dev server:  http://192.168.178.64:8100&lt;br /&gt;
Ionic server commands, enter:&lt;br /&gt;
  restart or r to restart the client app from the root&lt;br /&gt;
  goto or g and a url to have the app navigate to the given url&lt;br /&gt;
  consolelogs or c to enable/disable console log output&lt;br /&gt;
  serverlogs or s to enable/disable server log output&lt;br /&gt;
  quit or q to shutdown the server and exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hybrid Apps mit Ionic und PhoneGap Builder==&lt;br /&gt;
=== Links ===&lt;br /&gt;
 https://www.youtube.com/watch?v=C-UwOWB9Io4&amp;amp;feature=youtu.be&lt;br /&gt;
=== Einleitung ===&lt;br /&gt;
Ionic basiert auf AngularJS, mit diesen Tools erstellen wir die Webapp, die dann mit PhoneGap Builder zu einer Hybrid App gebündelt wird. &lt;br /&gt;
&lt;br /&gt;
AngularJS ist ein Framework zur WebApp Entwicklung mit hoher Performance. Ionic steuert viele Komponenten und in MobileApp übliche Bedienelemente bei.&lt;br /&gt;
=== Schnelle App mit Ionic ===&lt;br /&gt;
# Install Ionic (s.o.)&lt;br /&gt;
# Create App&lt;br /&gt;
# Build and Test&lt;br /&gt;
&lt;br /&gt;
====Create====&lt;br /&gt;
Verzeichnis erstellen z.B. &lt;br /&gt;
 /myUserfolder/myApp&lt;br /&gt;
 ionic start myApp tabs&lt;br /&gt;
====Build and test ====&lt;br /&gt;
 cd myApp&lt;br /&gt;
 ionic platform add ios&lt;br /&gt;
 ionic build ios&lt;br /&gt;
 ionic emulate ios&lt;br /&gt;
 &lt;br /&gt;
=== Projekt anlegen ===&lt;br /&gt;
Es gibt verschiedene Grundtemplates&lt;br /&gt;
*leer&lt;br /&gt;
 $ ionic start myApp blank&lt;br /&gt;
* tab navigation&lt;br /&gt;
 $ ionic start myApp tabs&lt;br /&gt;
* side navigation&lt;br /&gt;
 $ ionic start myApp sidemenu&lt;br /&gt;
&lt;br /&gt;
===Quicktips für Projekte===&lt;br /&gt;
* cd into your project: &lt;br /&gt;
  cd firstIonicAppOrAnotherName&lt;br /&gt;
* Setup this project to &amp;#039;&amp;#039;&amp;#039;use Sass&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic setup sass&lt;br /&gt;
* Develop in the browser with &amp;#039;&amp;#039;&amp;#039;live reload&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic serve&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Add a platform&amp;#039;&amp;#039;&amp;#039; (ios or Android): &lt;br /&gt;
 ionic platform add ios [android]&lt;br /&gt;
Note: iOS development requires OS X currently&lt;br /&gt;
See the Android Platform Guide for full Android installation instructions: https://cordova.apache.org/docs/en/edge/guide_platforms_android_index.md.html&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Build&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic build &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Simulate&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic emulate &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Run&amp;#039;&amp;#039;&amp;#039; your app &amp;#039;&amp;#039;&amp;#039;on a device&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic run &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039; an app using Ionic package service: &lt;br /&gt;
 ionic package &amp;lt;MODE&amp;gt; &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Invite&amp;#039;&amp;#039;&amp;#039; anyone to preview &amp;#039;&amp;#039;&amp;#039;and test&amp;#039;&amp;#039;&amp;#039; your app&lt;br /&gt;
 ionic share EMAIL&lt;br /&gt;
&lt;br /&gt;
For more help use ionic --help or ionic docs&lt;br /&gt;
Visit the Ionic docs: http://ionicframework.com/docs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;View App&amp;#039;&amp;#039;&amp;#039; http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Generate splash screens and icons&amp;#039;&amp;#039;&amp;#039; with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
=== E-Mail Einladung zum App testen ===&lt;br /&gt;
Invite anyone to preview and test your app&lt;br /&gt;
 ionic share EMAIL&lt;br /&gt;
&lt;br /&gt;
===Ionic Account===&lt;br /&gt;
Create an ionic.io account to send Push Notifications and use the Ionic View app?&lt;br /&gt;
(Y/n):&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21299</id>
		<title>Ionic</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21299"/>
		<updated>2015-10-26T12:57:38Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Ionic Account */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
&lt;br /&gt;
http://ionicframework.com/getting-started/&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
&lt;br /&gt;
[[Hybrid Apps Development]]&lt;br /&gt;
&lt;br /&gt;
Ionic View App: http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
Generate splash screens and icons with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
* Node.js falls nicht installiert (evtl, PATH anpassen)&lt;br /&gt;
* im Terminal über npm cordova ionic und gulp installieren&lt;br /&gt;
 sudo npm install -g cordova ionic gul&lt;br /&gt;
== Ionic Console - Befehle ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available tasks: (use --help or -h for more info)&lt;br /&gt;
&lt;br /&gt;
   start  ..........  Starts a new Ionic project in the specified PATH&lt;br /&gt;
   serve  ..........  Start a local development server for app dev/testing&lt;br /&gt;
   platform  .......  Add platform target for building an Ionic app&lt;br /&gt;
   run  ............  Run an Ionic project on a connected device&lt;br /&gt;
   emulate  ........  Emulate an Ionic project on a simulator or emulator&lt;br /&gt;
   build  ..........  Locally build an Ionic project for a given platform&lt;br /&gt;
   plugin  .........  Add a Cordova plugin&lt;br /&gt;
   resources  ......  Automatically create icon and splash screen resources (beta)&lt;br /&gt;
		      Put your images in the ./resources directory, named splash or icon.&lt;br /&gt;
		      Accepted file types are .png, .ai, and .psd.&lt;br /&gt;
		      Icons should be 192x192 px without rounded corners.&lt;br /&gt;
		      Splashscreens should be 2208x2208 px, with the image centered in the middle.&lt;br /&gt;
&lt;br /&gt;
   upload  .........  Upload an app to your Ionic account&lt;br /&gt;
   share  ..........  Share an app with a client, co-worker, friend, or customer&lt;br /&gt;
   lib  ............  Gets Ionic library version or updates the Ionic library&lt;br /&gt;
   setup  ..........  Configure the project with a build tool (beta)&lt;br /&gt;
   io  .............  Integrate your app with the ionic.io platform services (alpha)&lt;br /&gt;
   security  .......  Store your app&amp;#039;s credentials for the Ionic Platform (alpha)&lt;br /&gt;
   push  ...........  Upload APNS and GCM credentials to Ionic Push (alpha)&lt;br /&gt;
   package  ........  Use Ionic Package to build your app (alpha)&lt;br /&gt;
   config  .........  Set configuration variables for your ionic app (alpha)&lt;br /&gt;
   browser  ........  Add another browser for a platform (beta)&lt;br /&gt;
   service  ........  Add an Ionic service package and install any required plugins&lt;br /&gt;
   add  ............  Add an Ion, bower component, or addon to the project&lt;br /&gt;
   remove  .........  Remove an Ion, bower component, or addon from the project&lt;br /&gt;
   list  ...........  List Ions, bower components, or addons in the project&lt;br /&gt;
   ions  ...........  List available ions to add to your project&lt;br /&gt;
   templates  ......  List available Ionic starter templates&lt;br /&gt;
   info  ...........  List information about the users runtime environment&lt;br /&gt;
   help  ...........  Provides help for a certain command&lt;br /&gt;
   link  ...........  Sets your Ionic App ID for your project&lt;br /&gt;
   hooks  ..........  Manage your Ionic Cordova hooks&lt;br /&gt;
   state  ..........  Saves or restores state of your Ionic Application using the package.json file&lt;br /&gt;
   docs  ...........  Opens up the documentation for Ionic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Hybrid Apps mit Ionic und PhoneGap Builder==&lt;br /&gt;
=== Links ===&lt;br /&gt;
 https://www.youtube.com/watch?v=C-UwOWB9Io4&amp;amp;feature=youtu.be&lt;br /&gt;
=== Einleitung ===&lt;br /&gt;
Ionic basiert auf AngularJS, mit diesen Tools erstellen wir die Webapp, die dann mit PhoneGap Builder zu einer Hybrid App gebündelt wird. &lt;br /&gt;
&lt;br /&gt;
AngularJS ist ein Framework zur WebApp Entwicklung mit hoher Performance. Ionic steuert viele Komponenten und in MobileApp übliche Bedienelemente bei.&lt;br /&gt;
=== Schnelle App mit Ionic ===&lt;br /&gt;
# Install Ionic (s.o.)&lt;br /&gt;
# Create App&lt;br /&gt;
# Build and Test&lt;br /&gt;
&lt;br /&gt;
====Create====&lt;br /&gt;
Verzeichnis erstellen z.B. &lt;br /&gt;
 /myUserfolder/myApp&lt;br /&gt;
 ionic start myApp tabs&lt;br /&gt;
====Build and test ====&lt;br /&gt;
 cd myApp&lt;br /&gt;
 ionic platform add ios&lt;br /&gt;
 ionic build ios&lt;br /&gt;
 ionic emulate ios&lt;br /&gt;
 &lt;br /&gt;
=== Projekt anlegen ===&lt;br /&gt;
Es gibt verschiedene Grundtemplates&lt;br /&gt;
*leer&lt;br /&gt;
 $ ionic start myApp blank&lt;br /&gt;
* tab navigation&lt;br /&gt;
 $ ionic start myApp tabs&lt;br /&gt;
* side navigation&lt;br /&gt;
 $ ionic start myApp sidemenu&lt;br /&gt;
&lt;br /&gt;
===Quicktips für Projekte===&lt;br /&gt;
* cd into your project: &lt;br /&gt;
  cd firstIonicAppOrAnotherName&lt;br /&gt;
* Setup this project to &amp;#039;&amp;#039;&amp;#039;use Sass&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic setup sass&lt;br /&gt;
* Develop in the browser with &amp;#039;&amp;#039;&amp;#039;live reload&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic serve&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Add a platform&amp;#039;&amp;#039;&amp;#039; (ios or Android): &lt;br /&gt;
 ionic platform add ios [android]&lt;br /&gt;
Note: iOS development requires OS X currently&lt;br /&gt;
See the Android Platform Guide for full Android installation instructions: https://cordova.apache.org/docs/en/edge/guide_platforms_android_index.md.html&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Build&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic build &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Simulate&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic emulate &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Run&amp;#039;&amp;#039;&amp;#039; your app &amp;#039;&amp;#039;&amp;#039;on a device&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic run &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039; an app using Ionic package service: &lt;br /&gt;
 ionic package &amp;lt;MODE&amp;gt; &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Invite&amp;#039;&amp;#039;&amp;#039; anyone to preview &amp;#039;&amp;#039;&amp;#039;and test&amp;#039;&amp;#039;&amp;#039; your app&lt;br /&gt;
 ionic share EMAIL&lt;br /&gt;
&lt;br /&gt;
For more help use ionic --help or ionic docs&lt;br /&gt;
Visit the Ionic docs: http://ionicframework.com/docs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;View App&amp;#039;&amp;#039;&amp;#039; http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Generate splash screens and icons&amp;#039;&amp;#039;&amp;#039; with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
=== E-Mail Einladung zum App testen ===&lt;br /&gt;
Invite anyone to preview and test your app&lt;br /&gt;
 ionic share EMAIL&lt;br /&gt;
&lt;br /&gt;
===Ionic Account===&lt;br /&gt;
Create an ionic.io account to send Push Notifications and use the Ionic View app?&lt;br /&gt;
(Y/n):&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21298</id>
		<title>Ionic</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21298"/>
		<updated>2015-10-26T12:56:48Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
&lt;br /&gt;
http://ionicframework.com/getting-started/&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
&lt;br /&gt;
[[Hybrid Apps Development]]&lt;br /&gt;
&lt;br /&gt;
Ionic View App: http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
Generate splash screens and icons with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
* Node.js falls nicht installiert (evtl, PATH anpassen)&lt;br /&gt;
* im Terminal über npm cordova ionic und gulp installieren&lt;br /&gt;
 sudo npm install -g cordova ionic gul&lt;br /&gt;
== Ionic Console - Befehle ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available tasks: (use --help or -h for more info)&lt;br /&gt;
&lt;br /&gt;
   start  ..........  Starts a new Ionic project in the specified PATH&lt;br /&gt;
   serve  ..........  Start a local development server for app dev/testing&lt;br /&gt;
   platform  .......  Add platform target for building an Ionic app&lt;br /&gt;
   run  ............  Run an Ionic project on a connected device&lt;br /&gt;
   emulate  ........  Emulate an Ionic project on a simulator or emulator&lt;br /&gt;
   build  ..........  Locally build an Ionic project for a given platform&lt;br /&gt;
   plugin  .........  Add a Cordova plugin&lt;br /&gt;
   resources  ......  Automatically create icon and splash screen resources (beta)&lt;br /&gt;
		      Put your images in the ./resources directory, named splash or icon.&lt;br /&gt;
		      Accepted file types are .png, .ai, and .psd.&lt;br /&gt;
		      Icons should be 192x192 px without rounded corners.&lt;br /&gt;
		      Splashscreens should be 2208x2208 px, with the image centered in the middle.&lt;br /&gt;
&lt;br /&gt;
   upload  .........  Upload an app to your Ionic account&lt;br /&gt;
   share  ..........  Share an app with a client, co-worker, friend, or customer&lt;br /&gt;
   lib  ............  Gets Ionic library version or updates the Ionic library&lt;br /&gt;
   setup  ..........  Configure the project with a build tool (beta)&lt;br /&gt;
   io  .............  Integrate your app with the ionic.io platform services (alpha)&lt;br /&gt;
   security  .......  Store your app&amp;#039;s credentials for the Ionic Platform (alpha)&lt;br /&gt;
   push  ...........  Upload APNS and GCM credentials to Ionic Push (alpha)&lt;br /&gt;
   package  ........  Use Ionic Package to build your app (alpha)&lt;br /&gt;
   config  .........  Set configuration variables for your ionic app (alpha)&lt;br /&gt;
   browser  ........  Add another browser for a platform (beta)&lt;br /&gt;
   service  ........  Add an Ionic service package and install any required plugins&lt;br /&gt;
   add  ............  Add an Ion, bower component, or addon to the project&lt;br /&gt;
   remove  .........  Remove an Ion, bower component, or addon from the project&lt;br /&gt;
   list  ...........  List Ions, bower components, or addons in the project&lt;br /&gt;
   ions  ...........  List available ions to add to your project&lt;br /&gt;
   templates  ......  List available Ionic starter templates&lt;br /&gt;
   info  ...........  List information about the users runtime environment&lt;br /&gt;
   help  ...........  Provides help for a certain command&lt;br /&gt;
   link  ...........  Sets your Ionic App ID for your project&lt;br /&gt;
   hooks  ..........  Manage your Ionic Cordova hooks&lt;br /&gt;
   state  ..........  Saves or restores state of your Ionic Application using the package.json file&lt;br /&gt;
   docs  ...........  Opens up the documentation for Ionic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Hybrid Apps mit Ionic und PhoneGap Builder==&lt;br /&gt;
=== Links ===&lt;br /&gt;
 https://www.youtube.com/watch?v=C-UwOWB9Io4&amp;amp;feature=youtu.be&lt;br /&gt;
=== Einleitung ===&lt;br /&gt;
Ionic basiert auf AngularJS, mit diesen Tools erstellen wir die Webapp, die dann mit PhoneGap Builder zu einer Hybrid App gebündelt wird. &lt;br /&gt;
&lt;br /&gt;
AngularJS ist ein Framework zur WebApp Entwicklung mit hoher Performance. Ionic steuert viele Komponenten und in MobileApp übliche Bedienelemente bei.&lt;br /&gt;
=== Schnelle App mit Ionic ===&lt;br /&gt;
# Install Ionic (s.o.)&lt;br /&gt;
# Create App&lt;br /&gt;
# Build and Test&lt;br /&gt;
&lt;br /&gt;
====Create====&lt;br /&gt;
Verzeichnis erstellen z.B. &lt;br /&gt;
 /myUserfolder/myApp&lt;br /&gt;
 ionic start myApp tabs&lt;br /&gt;
====Build and test ====&lt;br /&gt;
 cd myApp&lt;br /&gt;
 ionic platform add ios&lt;br /&gt;
 ionic build ios&lt;br /&gt;
 ionic emulate ios&lt;br /&gt;
 &lt;br /&gt;
=== Projekt anlegen ===&lt;br /&gt;
Es gibt verschiedene Grundtemplates&lt;br /&gt;
*leer&lt;br /&gt;
 $ ionic start myApp blank&lt;br /&gt;
* tab navigation&lt;br /&gt;
 $ ionic start myApp tabs&lt;br /&gt;
* side navigation&lt;br /&gt;
 $ ionic start myApp sidemenu&lt;br /&gt;
&lt;br /&gt;
===Quicktips für Projekte===&lt;br /&gt;
* cd into your project: &lt;br /&gt;
  cd firstIonicAppOrAnotherName&lt;br /&gt;
* Setup this project to &amp;#039;&amp;#039;&amp;#039;use Sass&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic setup sass&lt;br /&gt;
* Develop in the browser with &amp;#039;&amp;#039;&amp;#039;live reload&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic serve&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Add a platform&amp;#039;&amp;#039;&amp;#039; (ios or Android): &lt;br /&gt;
 ionic platform add ios [android]&lt;br /&gt;
Note: iOS development requires OS X currently&lt;br /&gt;
See the Android Platform Guide for full Android installation instructions: https://cordova.apache.org/docs/en/edge/guide_platforms_android_index.md.html&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Build&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic build &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Simulate&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic emulate &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Run&amp;#039;&amp;#039;&amp;#039; your app &amp;#039;&amp;#039;&amp;#039;on a device&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic run &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039; an app using Ionic package service: &lt;br /&gt;
 ionic package &amp;lt;MODE&amp;gt; &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Invite&amp;#039;&amp;#039;&amp;#039; anyone to preview &amp;#039;&amp;#039;&amp;#039;and test&amp;#039;&amp;#039;&amp;#039; your app&lt;br /&gt;
 ionic share EMAIL&lt;br /&gt;
&lt;br /&gt;
For more help use ionic --help or ionic docs&lt;br /&gt;
Visit the Ionic docs: http://ionicframework.com/docs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;View App&amp;#039;&amp;#039;&amp;#039; http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Generate splash screens and icons&amp;#039;&amp;#039;&amp;#039; with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
===Ionic Account===&lt;br /&gt;
Create an ionic.io account to send Push Notifications and use the Ionic View app?&lt;br /&gt;
(Y/n):&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21297</id>
		<title>Ionic</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Ionic&amp;diff=21297"/>
		<updated>2015-10-26T12:47:43Z</updated>

		<summary type="html">&lt;p&gt;78.43.112.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
&lt;br /&gt;
http://ionicframework.com/getting-started/&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
&lt;br /&gt;
[[Hybrid Apps Development]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
* Node.js falls nicht installiert (evtl, PATH anpassen)&lt;br /&gt;
* im Terminal über npm cordova ionic und gulp installieren&lt;br /&gt;
 sudo npm install -g cordova ionic gul&lt;br /&gt;
== Ionic Console - Befehle ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available tasks: (use --help or -h for more info)&lt;br /&gt;
&lt;br /&gt;
   start  ..........  Starts a new Ionic project in the specified PATH&lt;br /&gt;
   serve  ..........  Start a local development server for app dev/testing&lt;br /&gt;
   platform  .......  Add platform target for building an Ionic app&lt;br /&gt;
   run  ............  Run an Ionic project on a connected device&lt;br /&gt;
   emulate  ........  Emulate an Ionic project on a simulator or emulator&lt;br /&gt;
   build  ..........  Locally build an Ionic project for a given platform&lt;br /&gt;
   plugin  .........  Add a Cordova plugin&lt;br /&gt;
   resources  ......  Automatically create icon and splash screen resources (beta)&lt;br /&gt;
		      Put your images in the ./resources directory, named splash or icon.&lt;br /&gt;
		      Accepted file types are .png, .ai, and .psd.&lt;br /&gt;
		      Icons should be 192x192 px without rounded corners.&lt;br /&gt;
		      Splashscreens should be 2208x2208 px, with the image centered in the middle.&lt;br /&gt;
&lt;br /&gt;
   upload  .........  Upload an app to your Ionic account&lt;br /&gt;
   share  ..........  Share an app with a client, co-worker, friend, or customer&lt;br /&gt;
   lib  ............  Gets Ionic library version or updates the Ionic library&lt;br /&gt;
   setup  ..........  Configure the project with a build tool (beta)&lt;br /&gt;
   io  .............  Integrate your app with the ionic.io platform services (alpha)&lt;br /&gt;
   security  .......  Store your app&amp;#039;s credentials for the Ionic Platform (alpha)&lt;br /&gt;
   push  ...........  Upload APNS and GCM credentials to Ionic Push (alpha)&lt;br /&gt;
   package  ........  Use Ionic Package to build your app (alpha)&lt;br /&gt;
   config  .........  Set configuration variables for your ionic app (alpha)&lt;br /&gt;
   browser  ........  Add another browser for a platform (beta)&lt;br /&gt;
   service  ........  Add an Ionic service package and install any required plugins&lt;br /&gt;
   add  ............  Add an Ion, bower component, or addon to the project&lt;br /&gt;
   remove  .........  Remove an Ion, bower component, or addon from the project&lt;br /&gt;
   list  ...........  List Ions, bower components, or addons in the project&lt;br /&gt;
   ions  ...........  List available ions to add to your project&lt;br /&gt;
   templates  ......  List available Ionic starter templates&lt;br /&gt;
   info  ...........  List information about the users runtime environment&lt;br /&gt;
   help  ...........  Provides help for a certain command&lt;br /&gt;
   link  ...........  Sets your Ionic App ID for your project&lt;br /&gt;
   hooks  ..........  Manage your Ionic Cordova hooks&lt;br /&gt;
   state  ..........  Saves or restores state of your Ionic Application using the package.json file&lt;br /&gt;
   docs  ...........  Opens up the documentation for Ionic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Hybrid Apps mit Ionic und PhoneGap Builder==&lt;br /&gt;
=== Links ===&lt;br /&gt;
 https://www.youtube.com/watch?v=C-UwOWB9Io4&amp;amp;feature=youtu.be&lt;br /&gt;
=== Einleitung ===&lt;br /&gt;
Ionic basiert auf AngularJS, mit diesen Tools erstellen wir die Webapp, die dann mit PhoneGap Builder zu einer Hybrid App gebündelt wird. &lt;br /&gt;
&lt;br /&gt;
AngularJS ist ein Framework zur WebApp Entwicklung mit hoher Performance. Ionic steuert viele Komponenten und in MobileApp übliche Bedienelemente bei.&lt;br /&gt;
=== Schnelle App mit Ionic ===&lt;br /&gt;
# Install Ionic (s.o.)&lt;br /&gt;
# Create App&lt;br /&gt;
# Build and Test&lt;br /&gt;
&lt;br /&gt;
====Create====&lt;br /&gt;
Verzeichnis erstellen z.B. &lt;br /&gt;
 /myUserfolder/myApp&lt;br /&gt;
 ionic start myApp tabs&lt;br /&gt;
====Build and test ====&lt;br /&gt;
 cd myApp&lt;br /&gt;
 ionic platform add ios&lt;br /&gt;
 ionic build ios&lt;br /&gt;
 ionic emulate ios&lt;br /&gt;
 &lt;br /&gt;
=== Projekt anlegen ===&lt;br /&gt;
Es gibt verschiedene Grundtemplates&lt;br /&gt;
*leer&lt;br /&gt;
 $ ionic start myApp blank&lt;br /&gt;
* tab navigation&lt;br /&gt;
 $ ionic start myApp tabs&lt;br /&gt;
* side navigation&lt;br /&gt;
 $ ionic start myApp sidemenu&lt;br /&gt;
&lt;br /&gt;
===Quicktips für Projekte===&lt;br /&gt;
* cd into your project: &lt;br /&gt;
  cd firstIonicAppOrAnotherName&lt;br /&gt;
* Setup this project to &amp;#039;&amp;#039;&amp;#039;use Sass&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic setup sass&lt;br /&gt;
* Develop in the browser with &amp;#039;&amp;#039;&amp;#039;live reload&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic serve&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Add a platform&amp;#039;&amp;#039;&amp;#039; (ios or Android): &lt;br /&gt;
 ionic platform add ios [android]&lt;br /&gt;
Note: iOS development requires OS X currently&lt;br /&gt;
See the Android Platform Guide for full Android installation instructions: https://cordova.apache.org/docs/en/edge/guide_platforms_android_index.md.html&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Build&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic build &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Simulate&amp;#039;&amp;#039;&amp;#039; your app: &lt;br /&gt;
 ionic emulate &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Run&amp;#039;&amp;#039;&amp;#039; your app &amp;#039;&amp;#039;&amp;#039;on a device&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
 ionic run &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Package&amp;#039;&amp;#039;&amp;#039; an app using Ionic package service: &lt;br /&gt;
 ionic package &amp;lt;MODE&amp;gt; &amp;lt;PLATFORM&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Invite&amp;#039;&amp;#039;&amp;#039; anyone to preview &amp;#039;&amp;#039;&amp;#039;and test&amp;#039;&amp;#039;&amp;#039; your app&lt;br /&gt;
 ionic share EMAIL&lt;br /&gt;
&lt;br /&gt;
For more help use ionic --help or ionic docs&lt;br /&gt;
Visit the Ionic docs: http://ionicframework.com/docs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;View App&amp;#039;&amp;#039;&amp;#039; http://view.ionic.io&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Generate splash screens and icons&amp;#039;&amp;#039;&amp;#039; with ionic resource http://ionicframework.com/blog/automating-icons-and-splash-screens/&lt;br /&gt;
&lt;br /&gt;
===Ionic Account===&lt;br /&gt;
Create an ionic.io account to send Push Notifications and use the Ionic View app?&lt;br /&gt;
(Y/n):&lt;/div&gt;</summary>
		<author><name>78.43.112.126</name></author>
	</entry>
</feed>