<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://de.contaowiki.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://de.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lindesbs</id>
		<title>Contao Community Documentation - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://de.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lindesbs"/>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Spezial:Beitr%C3%A4ge/Lindesbs"/>
		<updated>2026-04-30T04:08:52Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>https://de.contaowiki.org/Backups_mit_Git</id>
		<title>Backups mit Git</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Backups_mit_Git"/>
				<updated>2013-05-24T16:46:07Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: /* Grundlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Sonstiges]]&lt;br /&gt;
&lt;br /&gt;
=Grundlagen=&lt;br /&gt;
&lt;br /&gt;
Backup einer Webpraesenz mittels GIT. Hierbei ist das Repository ausserhalb des Webpfades.&lt;br /&gt;
Der Zugriff auf die MySQL Datenbank erfolgt hierbei Passwortlos, d.h. es muss bei der Eingabe der Befehle mysqldump und mysql kein Passwort angegeben werden. Dies wurde durch entsprechende Konfiguration der $HOME/.my.cnf bewerkstelligt.&lt;br /&gt;
&lt;br /&gt;
* Backupverzeichnis : $HOME/backup/contao_1&lt;br /&gt;
* Contao Verzeichnis : /var/www/contao_1/html&lt;br /&gt;
* Datenbank Name : DB_NAME&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen des Backupverzeichnisses==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $HOME/backup/contao_1&lt;br /&gt;
git init --bare&lt;br /&gt;
git config core.worktree /var/www/contao_1/html&lt;br /&gt;
git config core.bare false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
in das Verzeicnis $HOME/backup/contao_1 wechseln und eine Datei &amp;quot;makeBackup.sh&amp;quot; erstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
TAGNAME=$(date &amp;quot;+%Y%m%d_%H%M&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;DATABASE Dump&amp;quot;&lt;br /&gt;
mysqldump DB_NAME &amp;gt; /var/www/contao_1/html/database.sql&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
git add .&lt;br /&gt;
git commit -m $TAGNAME&lt;br /&gt;
&lt;br /&gt;
rm /var/www/contao_1/html/database.sql&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
diese Datei ausfuehrbar machen :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod +x makeBackup.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Erstellen eines Backups=&lt;br /&gt;
&lt;br /&gt;
in das Backupverzeichnis wechseln und die makeBackup.sh aufrufen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $HOME/backup/contao_1&lt;br /&gt;
./makeBackup.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die DB erstellt, alles in GIT versioniert, und final die database.sql wieder geloescht.&lt;br /&gt;
Dies kann auch mittels cron automatisiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Restore eines Backups=&lt;br /&gt;
Anzeigen der vorhandenen Sicherungen :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$&amp;gt; git log --oneline&lt;br /&gt;
&lt;br /&gt;
1628ed4 20130524_1645&lt;br /&gt;
3405409 20130524_1630&lt;br /&gt;
ad83395 20130524_1615&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 git log --oneline | grep 1615&lt;br /&gt;
&lt;br /&gt;
ad83395 20130524_1615&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D.h. der Commit ist ad83395&lt;br /&gt;
und kann mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git checkout -f ad83395&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
wiederhergestellt werden. Danach nur noch die database.sql manuell wiederherstellen.&lt;br /&gt;
Oder via Hook. Hierzu im Verzeichnis hooks die Datei post-checkout erstellen mit diesem Inhalt :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;restore database&amp;quot;&lt;br /&gt;
mysql DB_NAME &amp;lt; /var/www/contao_1/html/database.sql&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rm /var/www/contao_1/html/database.sql&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion|Ein &amp;quot;Loeschen&amp;quot; von alten Sicherungen ist nicht moeglich}}&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Backups_mit_Git</id>
		<title>Backups mit Git</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Backups_mit_Git"/>
				<updated>2013-05-24T16:43:56Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „{{stub}}  Category:Sonstiges  =Grundlagen=  Backup einer Webpraesenz mittels GIT. Hierbei ist das Repository ausserhalb des Webpfades. Der Zugriff auf die MyS…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Sonstiges]]&lt;br /&gt;
&lt;br /&gt;
=Grundlagen=&lt;br /&gt;
&lt;br /&gt;
Backup einer Webpraesenz mittels GIT. Hierbei ist das Repository ausserhalb des Webpfades.&lt;br /&gt;
Der Zugriff auf die MySQL Datenbank erfolgt hierbei Passwortlos, d.h. es muss bei der Eingabe der Befehle mysqldump und mysql kein Passwort angegeben werden. Dies wurde durch entsprechende Konfiguration der $HOME/.my.cnf bewerkstelligt.&lt;br /&gt;
&lt;br /&gt;
Backupverzeichnis : $HOME/backup/contao_1&lt;br /&gt;
Contao Verzeichnis : /var/www/contao_1/html&lt;br /&gt;
Datenbank Name : DB_NAME&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erstellen des Backupverzeichnisses==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $HOME/backup/contao_1&lt;br /&gt;
git init --bare&lt;br /&gt;
git config core.worktree /var/www/contao_1/html&lt;br /&gt;
git config core.bare false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
in das Verzeicnis $HOME/backup/contao_1 wechseln und eine Datei &amp;quot;makeBackup.sh&amp;quot; erstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
TAGNAME=$(date &amp;quot;+%Y%m%d_%H%M&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;DATABASE Dump&amp;quot;&lt;br /&gt;
mysqldump DB_NAME &amp;gt; /var/www/contao_1/html/database.sql&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
git add .&lt;br /&gt;
git commit -m $TAGNAME&lt;br /&gt;
&lt;br /&gt;
rm /var/www/contao_1/html/database.sql&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
diese Datei ausfuehrbar machen :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod +x makeBackup.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Erstellen eines Backups=&lt;br /&gt;
&lt;br /&gt;
in das Backupverzeichnis wechseln und die makeBackup.sh aufrufen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $HOME/backup/contao_1&lt;br /&gt;
./makeBackup.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach wird die DB erstellt, alles in GIT versioniert, und final die database.sql wieder geloescht.&lt;br /&gt;
Dies kann auch mittels cron automatisiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Restore eines Backups=&lt;br /&gt;
Anzeigen der vorhandenen Sicherungen :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$&amp;gt; git log --oneline&lt;br /&gt;
&lt;br /&gt;
1628ed4 20130524_1645&lt;br /&gt;
3405409 20130524_1630&lt;br /&gt;
ad83395 20130524_1615&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 git log --oneline | grep 1615&lt;br /&gt;
&lt;br /&gt;
ad83395 20130524_1615&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D.h. der Commit ist ad83395&lt;br /&gt;
und kann mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git checkout -f ad83395&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
wiederhergestellt werden. Danach nur noch die database.sql manuell wiederherstellen.&lt;br /&gt;
Oder via Hook. Hierzu im Verzeichnis hooks die Datei post-checkout erstellen mit diesem Inhalt :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;restore database&amp;quot;&lt;br /&gt;
mysql DB_NAME &amp;lt; /var/www/contao_1/html/database.sql&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rm /var/www/contao_1/html/database.sql&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion|Ein &amp;quot;Loeschen&amp;quot; von alten Sicherungen ist nicht moeglich}}&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/DC_General</id>
		<title>DC General</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/DC_General"/>
				<updated>2012-09-06T18:51:34Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Extensions]]&lt;br /&gt;
Der '''DC_General''' ist als allgemeingültiger, umfassender Treiber für das gesamte Contao-Backend konzipiert.&lt;br /&gt;
{{ExtInfo&lt;br /&gt;
| DevSite=http://www.men-at-work.de&lt;br /&gt;
| ExtVersion=0.0.1&lt;br /&gt;
| Version=2.10 - 2.11&lt;br /&gt;
| TrackerLink=https://github.com/menatwork/DC_General/issues&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Wieso DC_General?==&lt;br /&gt;
&lt;br /&gt;
Der DC_General soll die bisherigen DC_Table, DC_File, DC_DynamicTable und DC_Memory etc etc ablösen. Der neue Catalog3 wird auf diesem DC basieren.&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Evernote_als_Blog_nutzen</id>
		<title>Evernote als Blog nutzen</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Evernote_als_Blog_nutzen"/>
				<updated>2012-01-16T12:34:42Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „{{stub}} Category:Admin HOWTOS Category:Evernote als Blog nutzen =Evernote als Blog nutzen=  Evernote bietet die Moeglichkeit, freigegebene Notizbuecher v…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Evernote als Blog nutzen]]&lt;br /&gt;
=Evernote als Blog nutzen=&lt;br /&gt;
&lt;br /&gt;
Evernote bietet die Moeglichkeit, freigegebene Notizbuecher via RSS in eigene Seiten zu integrieren.&lt;br /&gt;
&lt;br /&gt;
Jedoch ist es nmicht so einfach moeglich, die RSS URL zu eraten.&lt;br /&gt;
Mithilfe desen Codes, kann nach Angabe des Benutzernamens und des Namens des Notizbuches die RSS URL generiert werden&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
if (($this-&amp;gt;Input-&amp;gt;get(&amp;quot;evernote_username&amp;quot;)) &amp;amp;&amp;amp; ($this-&amp;gt;Input-&amp;gt;get(&amp;quot;evernote_notebook&amp;quot;)))&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	$objFeed = new Request();&lt;br /&gt;
	$objFeed-&amp;gt;send(sprintf('https://www.evernote.com/pub/%s/%s',$this-&amp;gt;Input-&amp;gt;get(&amp;quot;evernote_username&amp;quot;),$this-&amp;gt;Input-&amp;gt;get(&amp;quot;evernote_notebook&amp;quot;)));&lt;br /&gt;
	&lt;br /&gt;
	if (!$objFeed-&amp;gt;hasError)&lt;br /&gt;
	{&lt;br /&gt;
		preg_match('#href=[&amp;quot;\'](.*?)[&amp;quot;\']#i', $objFeed-&amp;gt;response, $match );&lt;br /&gt;
		echo $match[1];&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	die();&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form action=&amp;quot;&amp;quot; method=&amp;quot;get&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;FORM_SUBMIT&amp;quot; value=&amp;quot;tl_login&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;REQUEST_TOKEN&amp;quot; value=&amp;quot;{{REQUEST_TOKEN}}&amp;quot;&amp;gt;&lt;br /&gt;
LoginName : &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;evernote_username&amp;quot; class=&amp;quot;text&amp;quot; maxlength=&amp;quot;64&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Notebook : &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;evernote_notebook&amp;quot; class=&amp;quot;text&amp;quot; maxlength=&amp;quot;64&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; class=&amp;quot;submit&amp;quot; value=&amp;quot;Generate&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Notizbuch mit den Inhalten muss vorher mit der Webapplikation oder dem lokalen Client fuer externen Zugriff freigegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Skript wird im Verzeichnis templates gespeicher. Z.B. mit dem Namen evernote.php.&lt;br /&gt;
Um sich nun die URL generieren zu lassen, muss man einmal in einem Artikel via InsertTag die Datei einbinden {{file::evernote.php}}&lt;br /&gt;
&lt;br /&gt;
Im FE kann nun der EvernoteLogin Name als auch der Name des freigegebenen Notizbuches eingegeben werden.&lt;br /&gt;
Nach dem Abschicken, wird nur eine Zeile mit der URL ausgegeben.&lt;br /&gt;
Bsp.: &lt;br /&gt;
http://www.evernote.com/shard/s55/pub/5797619/lindesbs/NOTIZBUCH/rss.jsp?max=25&amp;amp;sort=2&amp;amp;search=&lt;br /&gt;
&lt;br /&gt;
Dieser Link kann dann in den Core RSS Reader eingebunden oder mittels der Erweiterung [http://www.contao.org/de/extension-list/view/XRssImport.de.html xRssImport] die RSS Daten automatisch in das Nachrichten Archiv importiert werden.&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Catalog_Detailansicht_Bilder_paginieren</id>
		<title>Catalog Detailansicht Bilder paginieren</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Catalog_Detailansicht_Bilder_paginieren"/>
				<updated>2011-11-29T19:42:13Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Catalog]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Bilder in Detailansicht mit Paginierung==&lt;br /&gt;
Ein Catalogobjekt hat eine Mehrfachauswahl fuer Bilder, diese sollen paginiert im FE ausgegeben werden.&lt;br /&gt;
Das hier im Beispiel genutzte Feld, heisst im Katalog '''allImages'''.&lt;br /&gt;
&lt;br /&gt;
==Template der Detailansicht modifizieren==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
	$arrImages = deserialize($entry['data']['allImages']['raw']);&lt;br /&gt;
	$arrMetaImages = $entry['data']['allImages']['meta'];&lt;br /&gt;
	$numTotal = count($arrImages); &lt;br /&gt;
	$numPerPage = 5;&lt;br /&gt;
	&lt;br /&gt;
	$objPagination = new Pagination($numTotal,$numPerPage);&lt;br /&gt;
	&lt;br /&gt;
	echo $objPagination-&amp;gt;generate(&amp;quot;\n  &amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	$page = $this-&amp;gt;Input-&amp;gt;get('page') ? $this-&amp;gt;Input-&amp;gt;get('page') : 1;&lt;br /&gt;
	$offset = ($page - 1) * $numPerPage;&lt;br /&gt;
	$limit = min($numPerPage + $offset, $numTotal);&lt;br /&gt;
&lt;br /&gt;
	for ($iImage=$offset;$iImage&amp;lt;=$limit;$iImage++)&lt;br /&gt;
	{&lt;br /&gt;
		$image = $arrImages[$iImage];&lt;br /&gt;
		$meta = $arrMetaImages[$iImage];&lt;br /&gt;
		&lt;br /&gt;
		?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;a rel=&amp;quot;lightbox[&amp;lt;?php echo $meta['lb'];?&amp;gt;]&amp;quot; href=&amp;quot;&amp;lt;?php echo $image;?&amp;gt;&amp;quot; title=&amp;quot;&amp;lt;?php echo $meta['alt'];?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;img src=&amp;quot;&amp;lt;?php echo $meta['src'];?&amp;gt;&amp;quot; alt=&amp;quot;&amp;lt;?php echo $meta['alt'];?&amp;gt;&amp;quot; width=&amp;quot;&amp;lt;?php echo $meta['w'];?&amp;gt;&amp;quot; height=&amp;quot;&amp;lt;?php echo $meta['h'];?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;		&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;?php&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Catalog_Detailansicht_Bilder_paginieren</id>
		<title>Catalog Detailansicht Bilder paginieren</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Catalog_Detailansicht_Bilder_paginieren"/>
				<updated>2011-11-29T07:25:37Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „Category:Catalog   =Bilder in Detailansicht mit Paginierung== Ein Catalogobjekt hat eine Mehrfachauswahl fuer Bilder, diese sollen paginiert im FE ausgegeben …“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Catalog]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Bilder in Detailansicht mit Paginierung==&lt;br /&gt;
Ein Catalogobjekt hat eine Mehrfachauswahl fuer Bilder, diese sollen paginiert im FE ausgegeben werden.&lt;br /&gt;
Das hier im Beispiel genutzte Feld, heisst im Katalog '''allImages'''.&lt;br /&gt;
&lt;br /&gt;
==Template des Listeners modifizieren==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
	$arrImages = deserialize($entry['data']['allImages']['raw']);&lt;br /&gt;
	$arrMetaImages = $entry['data']['allImages']['meta'];&lt;br /&gt;
	$numTotal = count($arrImages); &lt;br /&gt;
	$numPerPage = 5;&lt;br /&gt;
	&lt;br /&gt;
	$objPagination = new Pagination($numTotal,$numPerPage);&lt;br /&gt;
	&lt;br /&gt;
	echo $objPagination-&amp;gt;generate(&amp;quot;\n  &amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	$page = $this-&amp;gt;Input-&amp;gt;get('page') ? $this-&amp;gt;Input-&amp;gt;get('page') : 1;&lt;br /&gt;
	$offset = ($page - 1) * $numPerPage;&lt;br /&gt;
	$limit = min($numPerPage + $offset, $numTotal);&lt;br /&gt;
&lt;br /&gt;
	for ($iImage=$offset;$iImage&amp;lt;=$limit;$iImage++)&lt;br /&gt;
	{&lt;br /&gt;
		$image = $arrImages[$iImage];&lt;br /&gt;
		$meta = $arrMetaImages[$iImage];&lt;br /&gt;
		&lt;br /&gt;
		?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;a rel=&amp;quot;lightbox[&amp;lt;?php echo $meta['lb'];?&amp;gt;]&amp;quot; href=&amp;quot;&amp;lt;?php echo $image;?&amp;gt;&amp;quot; title=&amp;quot;&amp;lt;?php echo $meta['alt'];?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;img src=&amp;quot;&amp;lt;?php echo $meta['src'];?&amp;gt;&amp;quot; alt=&amp;quot;&amp;lt;?php echo $meta['alt'];?&amp;gt;&amp;quot; width=&amp;quot;&amp;lt;?php echo $meta['w'];?&amp;gt;&amp;quot; height=&amp;quot;&amp;lt;?php echo $meta['h'];?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;		&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;?php&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MultiColumnWizard</id>
		<title>MultiColumnWizard</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MultiColumnWizard"/>
				<updated>2011-09-07T15:37:14Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Es gibt noch Probleme bei der .de Domain des Trackers. deshalb umgeaendert auf .org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:MultiSelectWizard]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
{{ExtInfo&lt;br /&gt;
| DevSite=http://www.men-at-work.de&lt;br /&gt;
| ExtVersion=1.0.0&lt;br /&gt;
| Version=2.9 - 2.9.5&lt;br /&gt;
| ERLink=http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html&lt;br /&gt;
| TrackerLink=http://contao-forge.org/projects/multicolumnwizard/issues&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Dieses Widget ist dafür gedacht, beliebige Widget-Typen nebeneinander zu platzieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
Das Widget ist eigentlich das Gleiche wie der [[MultiTextWizard]] oder der [[MultiSelectWizard]]; es erweitert die Funktionalitäten für belibige Widgets.&lt;br /&gt;
&lt;br /&gt;
=Aussehen=&lt;br /&gt;
Die Extension kann für jede Art von Inputtype verwendet werden, eine Mischung der einzelnen Typen ist kein Problem.&lt;br /&gt;
[[Datei:MultiColumnWizard.jpg|MultiColumnWizard|frame|center]]&lt;br /&gt;
&lt;br /&gt;
=Verwendung=&lt;br /&gt;
Es gibt zwei Verwendungsmöglichkeiten. Entweder direkt mit der Angabe von &amp;quot;columnFields&amp;quot; im &amp;quot;eval&amp;quot;-Array oder mit einem Callback.&lt;br /&gt;
&lt;br /&gt;
==Angabe mit columnFields==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_DCA']['tl_theme']['fields']['templateSelection'] = array&lt;br /&gt;
(&lt;br /&gt;
	'label'			=&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_theme']['templateSelection'],&lt;br /&gt;
	'exclude' 		=&amp;gt; true,&lt;br /&gt;
	'inputType' 		=&amp;gt; 'multiColumnWizard',&lt;br /&gt;
	'eval' 			=&amp;gt; array&lt;br /&gt;
	(&lt;br /&gt;
		'columnFields' =&amp;gt; array&lt;br /&gt;
		(&lt;br /&gt;
			'ts_client_os' =&amp;gt; array&lt;br /&gt;
			(&lt;br /&gt;
				'label'                 =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_theme']['ts_client_os'],&lt;br /&gt;
				'exclude'               =&amp;gt; true,&lt;br /&gt;
				'inputType'             =&amp;gt; 'select',&lt;br /&gt;
				'options'            	=&amp;gt; array&lt;br /&gt;
				(&lt;br /&gt;
					'option1'       =&amp;gt; 'Option 1',&lt;br /&gt;
					'option2'     	=&amp;gt; 'Option 2',&lt;br /&gt;
				),&lt;br /&gt;
				'eval' 			=&amp;gt; array('style' =&amp;gt; 'width:250px', 'includeBlankOption'=&amp;gt;true)&lt;br /&gt;
			),&lt;br /&gt;
			'ts_client_browser' =&amp;gt; array&lt;br /&gt;
			(&lt;br /&gt;
				'label'                 =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_theme']['ts_client_browser'],&lt;br /&gt;
				'exclude'               =&amp;gt; true,&lt;br /&gt;
				'inputType'             =&amp;gt; 'text',&lt;br /&gt;
				'eval' 			=&amp;gt; array('style'=&amp;gt;'width:180px')&lt;br /&gt;
			),&lt;br /&gt;
			'ts_client_mobile' =&amp;gt; array&lt;br /&gt;
			(&lt;br /&gt;
				'label'                 =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_theme']['ts_client_mobile'],&lt;br /&gt;
				'exclude'               =&amp;gt; true,&lt;br /&gt;
				'inputType'             =&amp;gt; 'checkbox',&lt;br /&gt;
				'eval'                  =&amp;gt; array('style'=&amp;gt;'width:40px')&lt;br /&gt;
&lt;br /&gt;
			),&lt;br /&gt;
			'ts_extension' =&amp;gt; array&lt;br /&gt;
			(&lt;br /&gt;
				'label' 		=&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_theme']['ts_extension'],&lt;br /&gt;
				'inputType' 		=&amp;gt; 'text',&lt;br /&gt;
				'eval'                  =&amp;gt; array('mandatory'=&amp;gt;true, 'style'=&amp;gt;'width:115px')&lt;br /&gt;
			),&lt;br /&gt;
		)&lt;br /&gt;
	)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Angabe mit Callback==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_DCA']['tl_table']['fields']['anything'] = array&lt;br /&gt;
(&lt;br /&gt;
	'label'                 =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_table']['anything'],&lt;br /&gt;
	'exclude'		=&amp;gt; true,&lt;br /&gt;
	'inputType'		=&amp;gt; 'multiColumnWizard',&lt;br /&gt;
	'eval'			=&amp;gt; array('mandatory'=&amp;gt;true,'columnsCallback'=&amp;gt;array('Class', 'Method'))&lt;br /&gt;
										&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wobei natürlich der Return-Wert genau das selbe Array sein muss, wie bei der &amp;quot;columnFields&amp;quot;-Variante.&lt;br /&gt;
&lt;br /&gt;
==Verfügbare MultiColumnWizard Eval-Optionen==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| '''Schlüssel''' || '''Wert''' || '''Beschreibung'''&lt;br /&gt;
|-&lt;br /&gt;
| columnPos || Gruppenname&amp;lt;br /&amp;gt;''string'' || Gruppiert Felder und zeigt Sie untereinander an.&lt;br /&gt;
|-&lt;br /&gt;
| maxCount || Menge&amp;lt;br /&amp;gt;''integer'' || Legt die maximale Anzahl an Felder fest, die angelegt werden dürfen.&lt;br /&gt;
|-&lt;br /&gt;
| minCount || Menge&amp;lt;br /&amp;gt;''integer'' || Legt die minimale Anzahl an Felder fest, die angelegt werden dürfen.&lt;br /&gt;
|-&lt;br /&gt;
| valign || Position&amp;lt;br /&amp;gt;''string'' || Legt die vertikale Position der Zelle in der Tabelle fest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Contao Eval-Optionen==&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Downloadzaehler_im_catalog</id>
		<title>Downloadzaehler im catalog</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Downloadzaehler_im_catalog"/>
				<updated>2011-02-22T20:55:35Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
{{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
Manchmal ist es sinnvoll/gewuenscht, Dateien mit dem Catalog zum download anzubieten. Hierbei ist es jedoch nicht moeglich, Downloads zu zaehlen. Dies kann jedoch durch eine einfache Templateanpassung durchgefuehrt werden. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php if (count($this-&amp;gt;entries)): ?&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;div class=&amp;quot;layout_full&amp;quot;&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;?php foreach ($this-&amp;gt;entries as $entry): ?&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
		&amp;lt;?php if($entry['data']['file']['value']): ?&amp;gt;		&lt;br /&gt;
			&amp;lt;div class=&amp;quot;field file&amp;quot;&amp;gt;		&lt;br /&gt;
				&amp;lt;?php if ($this-&amp;gt;Input-&amp;gt;post(&amp;quot;file&amp;quot;)): ?&amp;gt;&lt;br /&gt;
					&amp;lt;?php $this-&amp;gt;SendFileToBrowser($this-&amp;gt;Input-&amp;gt;post(&amp;quot;file&amp;quot;)); ?&amp;gt;&lt;br /&gt;
				&amp;lt;?php else: ?&amp;gt;			&lt;br /&gt;
					&amp;lt;form action=&amp;quot;&amp;lt;?php echo $this-&amp;gt;Environment-&amp;gt;request; ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;file&amp;quot; value=&amp;quot;&amp;lt;?php echo $entry['data']['file']['raw']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;save&amp;quot; id=&amp;quot;save&amp;quot; class=&amp;quot;tl_submit&amp;quot; accesskey=&amp;quot;s&amp;quot; value=&amp;quot;Download&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/form&amp;gt;			&lt;br /&gt;
				&amp;lt;?php endif; ?&amp;gt;			&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.....&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Somit koennen mit vorhandenen Tools (dlstat zum Beispiel) die Anzahl der Downloads gezaehlt werden.&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Downloadzaehler_im_catalog</id>
		<title>Downloadzaehler im catalog</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Downloadzaehler_im_catalog"/>
				<updated>2011-02-22T20:54:38Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Downloadzaehler im catalog=&lt;br /&gt;
[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
{{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Manchmal ist es sinnvoll/gewuenscht, Dateien mit dem Catalog zum download anzubieten. Hierbei ist es jedoch nicht moeglich, Downloads zu zaehlen. Dies kann jedoch durch eine einfache Templateanpassung durchgefuehrt werden. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php if (count($this-&amp;gt;entries)): ?&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;div class=&amp;quot;layout_full&amp;quot;&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;?php foreach ($this-&amp;gt;entries as $entry): ?&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
		&amp;lt;?php if($entry['data']['file']['value']): ?&amp;gt;		&lt;br /&gt;
			&amp;lt;div class=&amp;quot;field file&amp;quot;&amp;gt;		&lt;br /&gt;
				&amp;lt;?php if ($this-&amp;gt;Input-&amp;gt;post(&amp;quot;file&amp;quot;)): ?&amp;gt;&lt;br /&gt;
					&amp;lt;?php $this-&amp;gt;SendFileToBrowser($this-&amp;gt;Input-&amp;gt;post(&amp;quot;file&amp;quot;)); ?&amp;gt;&lt;br /&gt;
				&amp;lt;?php else: ?&amp;gt;			&lt;br /&gt;
					&amp;lt;form action=&amp;quot;&amp;lt;?php echo $this-&amp;gt;Environment-&amp;gt;request; ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;file&amp;quot; value=&amp;quot;&amp;lt;?php echo $entry['data']['file']['raw']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;save&amp;quot; id=&amp;quot;save&amp;quot; class=&amp;quot;tl_submit&amp;quot; accesskey=&amp;quot;s&amp;quot; value=&amp;quot;Download&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/form&amp;gt;			&lt;br /&gt;
				&amp;lt;?php endif; ?&amp;gt;			&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.....&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Somit koennen mit vorhandenen Tools (dlstat zum Beispiel) die Anzahl der Downloads gezaehlt werden.&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Downloadzaehler_im_catalog</id>
		<title>Downloadzaehler im catalog</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Downloadzaehler_im_catalog"/>
				<updated>2011-02-22T20:54:11Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „=DCA: field mapping &amp;quot;user_id:tl_user.name&amp;quot;= Category:Dev HOWTOS Category:Dev Snippets {{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}   Manchmal ist es sinn…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=DCA: field mapping &amp;quot;user_id:tl_user.name&amp;quot;=&lt;br /&gt;
[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
{{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Manchmal ist es sinnvoll/gewuenscht, Dateien mit dem Catalog zum download anzubieten. Hierbei ist es jedoch nicht moeglich, Downloads zu zaehlen. Dies kann jedoch durch eine einfache Templateanpassung durchgefuehrt werden. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php if (count($this-&amp;gt;entries)): ?&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;div class=&amp;quot;layout_full&amp;quot;&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;?php foreach ($this-&amp;gt;entries as $entry): ?&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
		&amp;lt;?php if($entry['data']['file']['value']): ?&amp;gt;		&lt;br /&gt;
			&amp;lt;div class=&amp;quot;field file&amp;quot;&amp;gt;		&lt;br /&gt;
				&amp;lt;?php if ($this-&amp;gt;Input-&amp;gt;post(&amp;quot;file&amp;quot;)): ?&amp;gt;&lt;br /&gt;
					&amp;lt;?php $this-&amp;gt;SendFileToBrowser($this-&amp;gt;Input-&amp;gt;post(&amp;quot;file&amp;quot;)); ?&amp;gt;&lt;br /&gt;
				&amp;lt;?php else: ?&amp;gt;			&lt;br /&gt;
					&amp;lt;form action=&amp;quot;&amp;lt;?php echo $this-&amp;gt;Environment-&amp;gt;request; ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;file&amp;quot; value=&amp;quot;&amp;lt;?php echo $entry['data']['file']['raw']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;save&amp;quot; id=&amp;quot;save&amp;quot; class=&amp;quot;tl_submit&amp;quot; accesskey=&amp;quot;s&amp;quot; value=&amp;quot;Download&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/form&amp;gt;			&lt;br /&gt;
				&amp;lt;?php endif; ?&amp;gt;			&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.....&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Somit koennen mit vorhandenen Tools (dlstat zum Beispiel) die Anzahl der Downloads gezaehlt werden.&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Contao2Go</id>
		<title>Contao2Go</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Contao2Go"/>
				<updated>2011-01-28T19:26:06Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: /* Nutzung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
=Contao2Go=&lt;br /&gt;
&lt;br /&gt;
==Grundlagen==&lt;br /&gt;
&lt;br /&gt;
Contao2Go ist ein selbstkonfigurierendes WAMP System, welches ohne installation von Software auskommt.&lt;br /&gt;
Ein einfaches Auspacken und starten der Server2Go.exe ermoeglicht, Contao (sowie durch nachladbare C2G Pakete auch TYPOlight) lokal ausgiebeig zu testen.&lt;br /&gt;
&lt;br /&gt;
Besonderheit hierbei, ist das Snapshot System, womit jederzeit der Zustand einer Entwicklung eingefroren werden kann. Jederzeit wiederherstellbar.&lt;br /&gt;
&lt;br /&gt;
Hierdurch ist es zum Beispiel moeglich, Kundenpraesentationen aufzubauen, mit unterschiedlichen Designs, ohne das man spaeter beim Kunden gross im Backend etwas aendern muss. Es muss nur in den Designphasen ein SnapShot erstellt werden.&lt;br /&gt;
Dieser kann dann komfortabel mittels Klick wiederhergestellt werden. Innerhalb weniger Sekunden.&lt;br /&gt;
&lt;br /&gt;
Aktuell sind folgende Moeglichkeiten vorhanden :&lt;br /&gt;
*vHost Uebersicht&lt;br /&gt;
**vorhandene Installationen aufzeigen, incl. der Moeglichkeit, direkt in einem neuen Fenster das Frontend oder das Backend aufzurufen.&lt;br /&gt;
**Snapshot der Installation erstellen&lt;br /&gt;
**Installation incl. Datenbank entfernen &lt;br /&gt;
&lt;br /&gt;
*Sicherungen&lt;br /&gt;
**Vorhandene SIcherungen einsehen, hierbei sind die Sicherungen Installationsbezogen geordnet&lt;br /&gt;
**Sicherungen wiederherstellen&lt;br /&gt;
**Sicherungen loeschen&lt;br /&gt;
&lt;br /&gt;
==Nutzung==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{msgInfo|C2G-SnapShots sind Datenbank anonymisiert. D.h. Datenbank Eintraege in der localconfig.php sind automatisch entfernt. Und werden beim Import automatisch basierend auf dem aktuellen System gesetzt. Somit ist auch eine Weitergabe der C2G Pakete an Kunden problemlos moeglich}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{msgWarning|Contao2Go ist nicht fuer einen OnlineEinsatz vorgesehen, d.h. Sie sollten die Installation nicht oeffentlich im Netz betreiben}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Screenshots==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Contao2go_28012011_201855.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Contao2go_28012011_201943.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Contao2go_28012011_201957.png]]&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Contao2Go</id>
		<title>Contao2Go</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Contao2Go"/>
				<updated>2011-01-28T19:25:15Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
=Contao2Go=&lt;br /&gt;
&lt;br /&gt;
==Grundlagen==&lt;br /&gt;
&lt;br /&gt;
Contao2Go ist ein selbstkonfigurierendes WAMP System, welches ohne installation von Software auskommt.&lt;br /&gt;
Ein einfaches Auspacken und starten der Server2Go.exe ermoeglicht, Contao (sowie durch nachladbare C2G Pakete auch TYPOlight) lokal ausgiebeig zu testen.&lt;br /&gt;
&lt;br /&gt;
Besonderheit hierbei, ist das Snapshot System, womit jederzeit der Zustand einer Entwicklung eingefroren werden kann. Jederzeit wiederherstellbar.&lt;br /&gt;
&lt;br /&gt;
Hierdurch ist es zum Beispiel moeglich, Kundenpraesentationen aufzubauen, mit unterschiedlichen Designs, ohne das man spaeter beim Kunden gross im Backend etwas aendern muss. Es muss nur in den Designphasen ein SnapShot erstellt werden.&lt;br /&gt;
Dieser kann dann komfortabel mittels Klick wiederhergestellt werden. Innerhalb weniger Sekunden.&lt;br /&gt;
&lt;br /&gt;
Aktuell sind folgende Moeglichkeiten vorhanden :&lt;br /&gt;
*vHost Uebersicht&lt;br /&gt;
**vorhandene Installationen aufzeigen, incl. der Moeglichkeit, direkt in einem neuen Fenster das Frontend oder das Backend aufzurufen.&lt;br /&gt;
**Snapshot der Installation erstellen&lt;br /&gt;
**Installation incl. Datenbank entfernen &lt;br /&gt;
&lt;br /&gt;
*Sicherungen&lt;br /&gt;
**Vorhandene SIcherungen einsehen, hierbei sind die Sicherungen Installationsbezogen geordnet&lt;br /&gt;
**Sicherungen wiederherstellen&lt;br /&gt;
**Sicherungen loeschen&lt;br /&gt;
&lt;br /&gt;
==Nutzung==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{msgInfo|C2G-SnapShots sind Datenbank anonymisiert. D.h. Datenbank Eintraege in der localconfig.php sind automatisch entfernt. Und werden beim Import automatisch basierend auf dem aktuellen System gesetzt. Somit ist auch eine Weitergabe der C2G Pakete an Kunden problemlos moeglich}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{msgWarning|Contao2Go ist nicht fuer einen OnlineEinsatz vorgesehen, d.h. Sie sollten die Installation nicht oeffentlich im Netz betreiben}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Contao2go_28012011_201957.png]]&lt;br /&gt;
[[Datei:Contao2go_28012011_201943.png]]&lt;br /&gt;
[[Datei:Contao2go_28012011_201855.png]]&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Datei:Contao2go_28012011_201957.png</id>
		<title>Datei:Contao2go 28012011 201957.png</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Datei:Contao2go_28012011_201957.png"/>
				<updated>2011-01-28T19:24:01Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Contao2Go FE - Snapshots verwalten&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Contao2Go FE - Snapshots verwalten&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Datei:Contao2go_28012011_201943.png</id>
		<title>Datei:Contao2go 28012011 201943.png</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Datei:Contao2go_28012011_201943.png"/>
				<updated>2011-01-28T19:23:33Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Contao2Go FE - Snapshot erstellen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Contao2Go FE - Snapshot erstellen&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Datei:Contao2go_28012011_201855.png</id>
		<title>Datei:Contao2go 28012011 201855.png</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Datei:Contao2go_28012011_201855.png"/>
				<updated>2011-01-28T19:23:05Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Contao2Go Frontend - vHost&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Contao2Go Frontend - vHost&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Contao2Go</id>
		<title>Contao2Go</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Contao2Go"/>
				<updated>2011-01-28T19:17:30Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: /* Grundlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
=Contao2Go=&lt;br /&gt;
&lt;br /&gt;
==Grundlagen==&lt;br /&gt;
&lt;br /&gt;
Contao2Go ist ein selbstkonfigurierendes WAMP System, welches ohne installation von Software auskommt.&lt;br /&gt;
Ein einfaches Auspacken und starten der Server2Go.exe ermoeglicht, Contao (sowie durch nachladbare C2G Pakete auch TYPOlight) lokal ausgiebeig zu testen.&lt;br /&gt;
&lt;br /&gt;
Besonderheit hierbei, ist das Snapshot System, womit jederzeit der Zustand einer Entwicklung eingefroren werden kann. Jederzeit wiederherstellbar.&lt;br /&gt;
&lt;br /&gt;
Hierdurch ist es zum Beispiel moeglich, Kundenpraesentationen aufzubauen, mit unterschiedlichen Designs, ohne das man spaeter beim Kunden gross im Backend etwas aendern muss. Es muss nur in den Designphasen ein SnapShot erstellt werden.&lt;br /&gt;
Dieser kann dann komfortabel mittels Klick wiederhergestellt werden. Innerhalb weniger Sekunden.&lt;br /&gt;
&lt;br /&gt;
Aktuell sind folgende Moeglichkeiten vorhanden :&lt;br /&gt;
*vHost Uebersicht&lt;br /&gt;
**vorhandene Installationen aufzeigen, incl. der Moeglichkeit, direkt in einem neuen Fenster das Frontend oder das Backend aufzurufen.&lt;br /&gt;
**Snapshot der Installation erstellen&lt;br /&gt;
**Installation incl. Datenbank entfernen &lt;br /&gt;
&lt;br /&gt;
*Sicherungen&lt;br /&gt;
**Vorhandene SIcherungen einsehen, hierbei sind die Sicherungen Installationsbezogen geordnet&lt;br /&gt;
**Sicherungen wiederherstellen&lt;br /&gt;
**Sicherungen loeschen&lt;br /&gt;
&lt;br /&gt;
==Nutzung==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{msgInfo|C2G-SnapShots sind Datenbank anonymisiert. D.h. Datenbank Eintraege in der localconfig.php sind automatisch entfernt. Und werden beim Import automatisch basierend auf dem aktuellen System gesetzt. Somit ist auch eine Weitergabe der C2G Pakete an Kunden problemlos moeglich}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{msgWarning|Contao2Go ist nicht fuer einen OnlineEinsatz vorgesehen, d.h. Sie sollten die Installation nicht oeffentlich im Netz betreiben}}&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Contao2Go</id>
		<title>Contao2Go</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Contao2Go"/>
				<updated>2011-01-28T18:53:22Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
=Contao2Go=&lt;br /&gt;
&lt;br /&gt;
==Grundlagen==&lt;br /&gt;
&lt;br /&gt;
Contao2Go ist ein selbstkonfigurierendes WAMP System, welches ohne installation von Software auskommt.&lt;br /&gt;
Ein einfaches Auspacken und starten der Server2Go.exe ermoeglicht, Contao (sowie durch nachladbare C2G Pakete auch TYPOlight) lokal ausgiebeig zu testen.&lt;br /&gt;
&lt;br /&gt;
Besonderheit hierbei, ist das Snapshot System, womit jederzeit der Zustand einer Entwicklung eingefroren werden kann. Jederzeit wiederherstellbar.&lt;br /&gt;
&lt;br /&gt;
Hierdurch ist es zum Beispiel moeglich, Kundenpraesentationen aufzubauen, mit unterschiedlichen Designs, ohne das man spaeter beim Kunden gross im Backend etwas aendern muss. Es muss nur in den Designphasen ein SnapShot erstellt werden.&lt;br /&gt;
Dieser kann dann komfortabel mittels Klick wiederhergestellt werden. Innerhalb weniger Sekunden.&lt;br /&gt;
&lt;br /&gt;
Aktuell sind folgende Moeglichkeiten vorhanden :&lt;br /&gt;
* vHost Uebersicht&lt;br /&gt;
 * vorhandene Installationen aufzeigen, incl. der Moeglichkeit, direkt in einem neuen Fenster das Frontend oder das Backend aufzurufen.&lt;br /&gt;
 * Snapshot der Installation erstellen&lt;br /&gt;
 * Installation incl. Datenbank entfernen &lt;br /&gt;
* Sicherungen&lt;br /&gt;
 * Vorhandene SIcherungen einsehen, hierbei sind die Sicherungen Installationsbezogen geordnet&lt;br /&gt;
 * Sicherungen wiederherstellen&lt;br /&gt;
 * Sicherungen loeschen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nutzung==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{msgInfo|C2G-SnapShots sind Datenbank anonymisiert. D.h. Datenbank Eintraege in der localconfig.php sind automatisch entfernt. Und werden beim Import automatisch basierend auf dem aktuellen System gesetzt. Somit ist auch eine Weitergabe der C2G Pakete an Kunden problemlos moeglich}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{msgWarning|Contao2Go ist nicht fuer einen OnlineEinsatz vorgesehen, d.h. Sie sollten die Installation nicht oeffentlich im Netz betreiben}}&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Contao2Go</id>
		<title>Contao2Go</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Contao2Go"/>
				<updated>2011-01-28T18:50:23Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
Contao2Go&lt;br /&gt;
&lt;br /&gt;
Contao2Go ist ein selbstkonfigurierendes WAMP System, welches ohne installation von Software auskommt.&lt;br /&gt;
Ein einfaches Auspacken und starten der Server2Go.exe ermoeglicht, Contao (sowie durch nachladbare C2G Pakete auch TYPOlight) lokal ausgiebeig zu testen.&lt;br /&gt;
&lt;br /&gt;
Besonderheit hierbei, ist das Snapshot System, womit jederzeit der Zustand einer Entwicklung eingefroren werden kann. Jederzeit wiederherstellbar.&lt;br /&gt;
&lt;br /&gt;
Hierdurch ist es zum Beispiel moeglich, Kundenpraesentationen aufzubauen, mit unterschiedlichen Designs, ohne das man spaeter beim Kunden gross im Backend etwas aendern muss. Es muss nur in den Designphasen ein SnapShot erstellt werden.&lt;br /&gt;
Dieser kann dann komfortabel mittels Klick wiederhergestellt werden. Innerhalb weniger Sekunden.&lt;br /&gt;
&lt;br /&gt;
Aktuell sind folgende Moeglichkeiten vorhanden :&lt;br /&gt;
* vHost Uebersicht&lt;br /&gt;
 * vorhandene Installationen aufzeigen, incl. der Moeglichkeit, direkt in einem neuen Fenster das Frontend oder das Backend aufzurufen.&lt;br /&gt;
 * Snapshot der Installation erstellen&lt;br /&gt;
 * Installation incl. Datenbank entfernen &lt;br /&gt;
* Sicherungen&lt;br /&gt;
 * Vorhandene SIcherungen einsehen, hierbei sind die Sicherungen Installationsbezogen geordnet&lt;br /&gt;
 * Sicherungen wiederherstellen&lt;br /&gt;
 * Sicherungen loeschen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{msgWarning|Contao2Go ist nicht fuer einen OnlineEinsatz vorgesehen, d.h. Sie sollten die Installation nicht oeffentlich im Netz betreiben}}&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Contao2Go</id>
		<title>Contao2Go</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Contao2Go"/>
				<updated>2011-01-28T18:46:42Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „{{stub}}  Contao2Go  Contao2Go ist ein selbstkonfigurierendes WAMP System, welches ohne installation von Software auskommt. Ein einfaches Auspacken und starten de…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
Contao2Go&lt;br /&gt;
&lt;br /&gt;
Contao2Go ist ein selbstkonfigurierendes WAMP System, welches ohne installation von Software auskommt.&lt;br /&gt;
Ein einfaches Auspacken und starten der Server2Go.exe ermoeglicht, Contao (sowie durch nachladbare C2G Pakete auch TYPOlight) lokal ausgiebeig zu testen.&lt;br /&gt;
&lt;br /&gt;
Besonderheit hierbei, ist das Snapshot System, womit jederzeit der Zustand einer Entwicklung eingefroren werden kann. Jederzeit wiederherstellbar.&lt;br /&gt;
&lt;br /&gt;
Hierdurch ist es zum Beispiel moeglich, Kundenpraesentationen aufzubauen, mit unterschiedlichen Designs, ohne das man spaeter beim Kunden gross im Backend etwas aendern muss. Es muss nur in den Designphasen ein SnapShot erstellt werden.&lt;br /&gt;
Dieser kann dann komfortabel mittels Klick wiederhergestellt werden. Innerhalb weniger Sekunden.&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Wartungsmodus_mit_exclusiven_Zugriff</id>
		<title>Wartungsmodus mit exclusiven Zugriff</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Wartungsmodus_mit_exclusiven_Zugriff"/>
				<updated>2010-11-04T10:29:39Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]{{AppliesTo&lt;br /&gt;
|TLVersion=ab 2.7&lt;br /&gt;
|Version=ab 2.9&lt;br /&gt;
}}&lt;br /&gt;
Einen Wartungsmodus erstellen, und trotzdem Kunden und sich selbst Zugang zur Seite bieten.&lt;br /&gt;
&lt;br /&gt;
Befindet sich eine Seite online im Aufbau und ein Kunde soll sich Anpassungen anschauen koennen, jedoch normale Besucher und Suchmaschine nicht, ist durch diese kleinen Anpassungen moeglich dies zu verwirklichen.&lt;br /&gt;
&lt;br /&gt;
Aufbau eine geheimen Landingpage, die ein Cookie im Browser setzt. Diese kann zusaetlich noch via htaccess passwort geschuetzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;?php setcookie(&amp;quot;gesicherteSeite&amp;quot;,&amp;quot;halloWelt&amp;quot;); ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Ihr Zugang wurde gewaehrt!&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Link auf diese Webseite kann dem Kunden zugeschickt werden. Wird diese Seite nun aufgerufen, wird ein Cookie im Browser installiert.&lt;br /&gt;
&lt;br /&gt;
Nun nur noch in der fe_page.tpl eine kleine Anpassung in der ersten Zeile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
 &amp;lt;?php if ($_COOKIE[&amp;quot;gesicherteSeite&amp;quot;]!=&amp;quot;halloWelt&amp;quot;) $this-&amp;gt;redirect(&amp;quot;http://www.contao.org&amp;quot;); ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somit wird bei der Ausgabe der eigentlichen Webseite kontrolliert, ob das Cookie gesetzt ist. Wenn ja, geht alles normal weiter, und der Kunde kann die normale Webseite sehen. Ist das Cookie nicht vorhanden, wird direkt auf eine andere Seite umgeleitet, in diesem Falle auf contao.org&lt;br /&gt;
&lt;br /&gt;
{{msgInfo|Das Cookie kann auch noch eine Verfallszeit und die Domain enthalten. Dies ist hier nicht aufgefuehrt. Nachzulesen hier : http://php.net/manual/de/function.setcookie.php}}&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Wartungsmodus_mit_exclusiven_Zugriff</id>
		<title>Wartungsmodus mit exclusiven Zugriff</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Wartungsmodus_mit_exclusiven_Zugriff"/>
				<updated>2010-11-04T09:33:21Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „Category:Dev HOWTOS Category:Dev Snippets{{AppliesTo |TLVersion=ab 2.7 |Version=ab 2.9 }} Einen Wartungsmodus erstellen, und trotzdem Kunden und sich sleb…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]{{AppliesTo&lt;br /&gt;
|TLVersion=ab 2.7&lt;br /&gt;
|Version=ab 2.9&lt;br /&gt;
}}&lt;br /&gt;
Einen Wartungsmodus erstellen, und trotzdem Kunden und sich slebst Zugang zur Seite bieten.&lt;br /&gt;
&lt;br /&gt;
Befindet sich eine Seite online im Aufbau und ein Kunde soll sich Anpassungen anschauen koennen, jedoch normale Besucher und Suchmaschine nicht, ist durch diese kleinen Anpassungen moeglich dies zu verwirklichen.&lt;br /&gt;
&lt;br /&gt;
Aufbau eine geheimen Landingpage, die ein Cookie im Browser setzt. Diese kann zusaetlich noch via htaccess passwort geschuetzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;?php echo setcookie(&amp;quot;gesicherteSeite&amp;quot;,&amp;quot;halloWelt&amp;quot;); ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Ihr Zugang wurde gewaehrt!&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Link auf diese Webseite kann dem Kunden zugeschickt werden. Wird diese Seite nun aufgerufen, wird ein Cookie im Browser installiert.&lt;br /&gt;
&lt;br /&gt;
Nun nur noch in der fe_page.tpl eine kleine Anpassung in der ersten Zeile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
 &amp;lt;?php if ($_COOKIE[&amp;quot;gesicherteSeite&amp;quot;]!=&amp;quot;halloWelt&amp;quot;) $this-&amp;gt;redirect(&amp;quot;http://www.contao.org&amp;quot;); ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somit wird bei der Ausgabe der eigentlichen Webseite kontrolliert, ob das Cookie gesetzt ist. Wenn ja, geht alles normal weiter, und der Kunde kann die normale Webseite sehen. Ist das Cookie nicht vorhanden, wird direkt auf eine andere Seite umgeleitet, in diesem Falle auf contao.org&lt;br /&gt;
&lt;br /&gt;
{{msgInfo|Das Cookie kann auch noch eine Verfallszeit und die Domain enthalten. Dies ist hier nicht aufgefuehrt. Nachzulesen hier : http://php.net/manual/de/function.setcookie.php}}&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Im_Artikel_Template_evenodd_generieren</id>
		<title>Im Artikel Template evenodd generieren</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Im_Artikel_Template_evenodd_generieren"/>
				<updated>2010-08-10T21:21:22Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „Category:Dev_Snippets  Es koennte hilfreich sein, auf einer Seite mit mehreren Artikeln, eine even/odd Klasse mitzufuehren, da dies Contao/TYPOlight dies von …“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev_Snippets]]&lt;br /&gt;
&lt;br /&gt;
Es koennte hilfreich sein, auf einer Seite mit mehreren Artikeln, eine even/odd Klasse mitzufuehren, da dies Contao/TYPOlight dies von sich aus nicht erstellt.&lt;br /&gt;
&lt;br /&gt;
Hierzu sollte man das Template mod_article.tpl kopieren und diesen Quelltext am Anfang hinzufuegen :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	$evenodd = '';&lt;br /&gt;
	if (!$GLOBALS['article']['first'])&lt;br /&gt;
	{&lt;br /&gt;
		$evenodd .= &amp;quot; articleFirst&amp;quot;;&lt;br /&gt;
		$GLOBALS['article']['first']=1;&lt;br /&gt;
		$GLOBALS['article']['evenodd'] = true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$GLOBALS['article']['evenodd'] = !$GLOBALS['article']['evenodd'];&lt;br /&gt;
&lt;br /&gt;
	if ($GLOBALS['article']['evenodd'])&lt;br /&gt;
	{&lt;br /&gt;
		$evenodd .= &amp;quot; articleEven&amp;quot;;&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		$evenodd .= &amp;quot; articleOdd&amp;quot;;&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;&amp;lt;?php echo $this-&amp;gt;class; ?&amp;gt; block &amp;lt;?php echo $evenodd; ?&amp;gt; &amp;quot;&amp;lt;?php echo $this-&amp;gt;cssID; ?&amp;gt;&amp;lt;?php if ($this-&amp;gt;style): ?&amp;gt; style=&amp;quot;&amp;lt;?php echo $this-&amp;gt;style; ?&amp;gt;&amp;quot;&amp;lt;?php endif; ?&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|In der umschliessenden DIV Klasse um den Artikel muss wie oben aufgezeigt, die $evenodd noch eingefuegt werden (&amp;lt;?php echo $evenodd; ?&amp;gt;)}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun werden dem Artikel ein bis zwei CSS-Klassen hinzugefuegt. '''articleFirst''', wenn dies der erste Artikel ist. Und jeweils alternierend die Klassen '''articleEven''' und '''articleOdd'''.&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Letzte_Nachrichten_anzeigen</id>
		<title>Letzte Nachrichten anzeigen</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Letzte_Nachrichten_anzeigen"/>
				<updated>2010-07-01T07:18:59Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dev_Snippets]]&lt;br /&gt;
== Anzeige der letzten, aktuellen Nachricht in ALLEN Nachrichten Archiven ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Datei mit Namen LatestNews.php im Verzeichnis TL_ROOT/templates.&lt;br /&gt;
Nachfolgender Quelltext wird hineinkopiert :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$this-&amp;gt;import(&amp;quot;Database&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
$objLatestNews = $this-&amp;gt;Database-&amp;gt;prepare(&amp;quot;SELECT headline,text FROM tl_news WHERE published='1' ORDER BY date DESC&amp;quot;)&lt;br /&gt;
            -&amp;gt;limit(1)&lt;br /&gt;
            -&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
echo '&amp;lt;h1&amp;gt;'.$objLatestNews-&amp;gt;headline.'&amp;lt;/h1&amp;gt;';&lt;br /&gt;
echo $objLatestNews-&amp;gt;text;&lt;br /&gt;
?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anzeige der letzten, aktuellen Nachricht in ausgewaehlten Nachrichten Archiven ==&lt;br /&gt;
&lt;br /&gt;
Moechte man nun aber nur ausgewaehlte NewsArchive haben, kann man mittels folgendem Quelltext auch die ID des NewsArchives mitgeben.&lt;br /&gt;
Die ID eines NewsArchives laesst sich einfach in der Newsuebersicht des Backends erkennen, indem man kurzeitig ueber dem blauen &amp;quot;I&amp;quot; Icon des gewuenschten Archives verweilt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:NewsArchive_ShowID.png]]&lt;br /&gt;
&lt;br /&gt;
Einfach zu erkennen ist hierbei die ID, in diesem Falle : 3&lt;br /&gt;
&lt;br /&gt;
Im Quelltext finden sich diese Zeile : $arrNews=array(3);&lt;br /&gt;
Moechte man nun mehrere NewsArchive beruecksichtigen, werden kommasepariert die ID eingetragen, z.B. ''$arrNews=array(1,3,13);'' fuer die IDs 1,3 und 13. Die Reichenfolge der IDs spielt hierbei KEINE Rolle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$this-&amp;gt;import(&amp;quot;Database&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
$arrNews=array(3);&lt;br /&gt;
&lt;br /&gt;
$objLatestNews = $this-&amp;gt;Database-&amp;gt;prepare(&amp;quot;SELECT headline,text FROM tl_news WHERE published='1' AND pid IN (?) ORDER BY date DESC&amp;quot;)&lt;br /&gt;
            -&amp;gt;limit(1)&lt;br /&gt;
            -&amp;gt;execute(implode(&amp;quot;`,`&amp;quot;,$arrNews));&lt;br /&gt;
&lt;br /&gt;
echo '&amp;lt;h1&amp;gt;'.$objLatestNews-&amp;gt;headline.'&amp;lt;/h1&amp;gt;';&lt;br /&gt;
echo $objLatestNews-&amp;gt;text;&lt;br /&gt;
?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Eibinden des Codes in die eigene Webseite ==&lt;br /&gt;
Einbinden die Webseite laesst sich dies einfach via InsertTag [file] [[http://www.contao.org/inserttags.html#include-elements]] erledigen.&lt;br /&gt;
&lt;br /&gt;
'''{{file::LatestNews.php}}'''&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Datei:NewsArchive_ShowID.png</id>
		<title>Datei:NewsArchive ShowID.png</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Datei:NewsArchive_ShowID.png"/>
				<updated>2010-07-01T07:15:09Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Letzte_Nachrichten_anzeigen</id>
		<title>Letzte Nachrichten anzeigen</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Letzte_Nachrichten_anzeigen"/>
				<updated>2010-07-01T07:14:27Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „category:Dev_Snippets Anzeige der letzten, aktuellen Nachricht in ALLEN Nachrichten Archiven  Erstelle eine Datei mit Namen LatestNews.php im Verzeichnis TL_R…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dev_Snippets]]&lt;br /&gt;
Anzeige der letzten, aktuellen Nachricht in ALLEN Nachrichten Archiven&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Datei mit Namen LatestNews.php im Verzeichnis TL_ROOT/templates.&lt;br /&gt;
Nachfolgender Quelltext wird hineinkopiert :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$this-&amp;gt;import(&amp;quot;Database&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
$objLatestNews = $this-&amp;gt;Database-&amp;gt;prepare(&amp;quot;SELECT headline,text FROM tl_news WHERE published='1' ORDER BY date DESC&amp;quot;)&lt;br /&gt;
            -&amp;gt;limit(1)&lt;br /&gt;
            -&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
echo '&amp;lt;h1&amp;gt;'.$objLatestNews-&amp;gt;headline.'&amp;lt;/h1&amp;gt;';&lt;br /&gt;
echo $objLatestNews-&amp;gt;text;&lt;br /&gt;
?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Moechte man nun aber nur ausgewaehlte NewsArchive haben, kann man mittels folgendem Quelltext auch die ID des NewsArchives mitgeben.&lt;br /&gt;
Die ID eines NewsArchives laesst sich einfach in der Newsuebersicht des Backends erkennen, indem man kurzeitig ueber dem blauen &amp;quot;I&amp;quot; Icon des gewuenschten Archives verweilt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Beispiel.jpg]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$this-&amp;gt;import(&amp;quot;Database&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
$arrNews=array(2);&lt;br /&gt;
&lt;br /&gt;
$objLatestNews = $this-&amp;gt;Database-&amp;gt;prepare(&amp;quot;SELECT headline,text FROM tl_news WHERE published='1' AND pid IN (?) ORDER BY date DESC&amp;quot;)&lt;br /&gt;
            -&amp;gt;limit(1)&lt;br /&gt;
            -&amp;gt;execute(implode(&amp;quot;`,`&amp;quot;,$arrNews));&lt;br /&gt;
&lt;br /&gt;
echo '&amp;lt;h1&amp;gt;'.$objLatestNews-&amp;gt;headline.'&amp;lt;/h1&amp;gt;';&lt;br /&gt;
echo $objLatestNews-&amp;gt;text;&lt;br /&gt;
?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Einbinden die Webseite laesst sich dies einfach via InsertTag [file] [[http://www.contao.org/inserttags.html#include-elements]] erledigen.&lt;br /&gt;
&lt;br /&gt;
'''{{file::LatestNews.php}}'''&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Vorhandene_Module_erweitern</id>
		<title>Vorhandene Module erweitern</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Vorhandene_Module_erweitern"/>
				<updated>2010-06-29T20:22:48Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: /* Kurzanleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev_HOWTOS]]&lt;br /&gt;
{{AppliesTo&lt;br /&gt;
|Version=2.9 RC1&lt;br /&gt;
}}&lt;br /&gt;
=Vorwort=&lt;br /&gt;
Dieses Tutorial soll neben anderen vorhandenen Tutorials beim Einstieg in die Modulprogrammierung helfen. Hier wird kein eigenständiges Modul erstellt, sondern auf ein vorhandenes Core-Modul und der Demo-Installation ''Music Academy'' aufgebaut.&lt;br /&gt;
&lt;br /&gt;
=Anforderung=&lt;br /&gt;
Die Music Academy hat in diesem Jahr so viele talentierte Schüler, dass sie mit Hilfe deren musikalischer Unterstützung verschiedene Abendveranstaltungen durchführen möchte. Manche der Veranstaltungen werden mit kostenlosem Eintritt angeboten, andere Veranstaltungen sollen kostenpflichtig sein. Um den besonders kostenbewussten Musikliebhabern in der '''Veranstaltungsliste''' auf einem Blick aufzuzeigen, welche Veranstaltungen kostenfrei sind, soll '''diese Information''' in Zukunft '''bei jeder einzelnen Veranstaltung''' direkt angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
Zur Umsetzung der Anforderung wird das Formular zur Eingabe von Terminen um eine zusätzliche Checkbox erweitert. Diese Checkbox ist bei Veranstaltungen mit kostenlosem Eintritt zu aktivieren. Falls die Prüfung im Template ergibt, dass der Wert der Checkbox gesetzt ist, wird eine entsprechende Information im Frontend ausgegeben.&lt;br /&gt;
&lt;br /&gt;
=Kurzanleitung=&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry'' - neues Modulverzeichnis mit nötiger Verzeichnis- und Dateistruktur erstellen&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/config/database.sql'' – Datenbanktabelle um neues Feld ''freeEntry'' erweitern&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/dca/tl_calendar_events.php'' – Data Container Array erweitern&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/languages'' – Sprachdateien um neues Feld ''freeEntry'' erweitern&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/templates'' – Erweiterung Template um Laden der Sprachdatei, Prüfung des Feldes freeEntry und abhängiger Ausgabe&lt;br /&gt;
# ''&amp;lt;nowiki&amp;gt;http://www.meinedomain.de/typolight/install.php&amp;lt;/nowiki&amp;gt;'' - Datenbank-Update durchführen, Template in der Eventliste ändern, Termin einstellen, testen&lt;br /&gt;
&lt;br /&gt;
=Detailanleitung=&lt;br /&gt;
==Erstellen des neuen Modulverzeichnis mit nötiger Verzeichnis- und Dateistruktur==&lt;br /&gt;
In dieser Anleitung wird die Extension-Erweiterung lokal erstellt und anschließend auf den Webserver hoch geladen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/config&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/config/database.sql&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/dca&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/dca/tl_calendar_events.php&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/de&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/de/tl_calendar_events.php&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/en&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/en/tl_calendar_events.php&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/templates/&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/templates/event_list_freeEntry.tpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterung der vorhandenen Datenbanktabelle tl_calendar_events==&lt;br /&gt;
Dazu die Datei ''TL_ROOT/system/modules/calendarFreeEntry/config/database.sql'' öffnen und folgenden Inhalt einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
--		Table `tl_calendar_events`&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `tl_calendar_events` (&lt;br /&gt;
	`freeEntry` char(1) NOT NULL default '',&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=utf8;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschliessend speichern und schliessen.&lt;br /&gt;
&lt;br /&gt;
==Erweiterung des vorhandenen Data Container Arrays (DCA)==&lt;br /&gt;
Dazu die Datei ''TL_ROOT/system/modules/calendarFreeEntry/dca/tl_calendar_events.php'' öffnen und folgenden Inhalt einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php if (!defined('TL_ROOT')) die('You can not access this file directly!');&lt;br /&gt;
&lt;br /&gt;
//Anzeige im Backend&lt;br /&gt;
$GLOBALS['TL_DCA']['tl_calendar_events']['palettes']['default'] = str_replace('title,','title,freeEntry,', $GLOBALS['TL_DCA']['tl_calendar_events']['palettes']['default']);&lt;br /&gt;
&lt;br /&gt;
//Beschreibung des Feldes&lt;br /&gt;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['freeEntry'] = array&lt;br /&gt;
(&lt;br /&gt;
'label'                   =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry'],&lt;br /&gt;
'inputType'               =&amp;gt; 'checkbox'&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschliessend speichern und schliessen.&lt;br /&gt;
&lt;br /&gt;
==Erweiterung der vorhandenen Sprachdateien==&lt;br /&gt;
''TL_ROOT/system/modules/calendarFreeEntry/languages/de/tl_calendar_events.php''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php if (!defined('TL_ROOT')) die('You can not access this file directly!');&lt;br /&gt;
&lt;br /&gt;
$GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry']        = array('Free entry', 'Zeigen Sie den Termin mit kostenlosen Eintritt an.'); &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''TL_ROOT/system/modules/calendarFreeEntry/languages/en/tl_calendar_events.php''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php if (!defined('TL_ROOT')) die('You can not access this file directly!');&lt;br /&gt;
&lt;br /&gt;
$GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry']        = array('Free Entry', 'Display the event with free entry.');&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterung des vorhandenen Templates==&lt;br /&gt;
Damit im Template die gewünschte Information ausgegeben werden kann, wird das vorhandene Template der Kerninstallation kopiert, in das neue Modulverzeichnis eingefügt und die PHP-Logik entsprechend ergänzt. Dazu wird eine Prüfung eingebaut, die prüft, ob der Wert der Checkbox gesetzt wurde. Bei gesetztem Wert soll im Template sprachabhängig die Information ausgegeben, dass es sich um eine kostenlose Veranstaltung handelt. Damit die Inhalte der Sprachdateien zugegriffen werden kann, muss die Sprachdatei zu erst noch geladen werden. Contao wurde so konzipiert, dass ausschließlich nur die benötigten Ressourcen geladen werden, um das System auch in der Laufzeit möglichst performant zu halten.&lt;br /&gt;
&lt;br /&gt;
Vorhandene Datei aus ''TL_ROOT/system/modules/calendar/templates/event_list.tpl'' in ''TL_ROOT/system /modules/calendarFreeEntry/templates'' kopieren, in ''event_list_freeEntry.tpl'' umbenennen und entsprechend erweitern:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Load language file&lt;br /&gt;
&amp;lt;?php $this-&amp;gt;loadLanguageFile('tl_calendar_events'); ?&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
//Check field freeEntry&lt;br /&gt;
&amp;lt;?php if ($this-&amp;gt;freeEntry): ?&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;freeEntry&amp;quot;&amp;gt;&amp;lt;?php echo $GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry'][0]; ?&amp;gt;&amp;lt;/p&amp;gt;  &lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies war die letzte Datei, die erstellt / bearbeitet werden musste. Nun muss das ganze Paket in die Contao-Installation hoch geladen werden. Beim Hochladen ist darauf zu achten, dass der Ordner an die richtige Stelle kopiert wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_ftp.png|FTP]]&lt;br /&gt;
&lt;br /&gt;
==Datenbank-Update, Veranstaltung eintragen, Test==&lt;br /&gt;
Über ''&amp;lt;nowiki&amp;gt;http://www.meinedomain.de/typolight/install.php&amp;lt;/nowiki&amp;gt;'' ein Datenbank-Update durchführen (vorgeschlagene Änderungen per Haken aktivieren =&amp;gt; Update Database).&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_updatedb.png|Datenbank-Update durchführen]] &lt;br /&gt;
&lt;br /&gt;
Anschließend im Backend unter Themes das MusicAcademy-Theme bearbeiten und bei den Frontend-Modulen das Modul ''Calendar - Event List (Eventliste)'' suchen und dieses ebenfalls bearbeiten. Unter dem Punkt ''Template-Einstellungen'' wählt man nun das neu erstellte Template ''event_list_freeEntry'' aus.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_template.png|Erstelltes Template auswählen]]&lt;br /&gt;
&lt;br /&gt;
Wenn man nun ein neues Event erstellt oder ein vorhandenes bearbeitet, hat man unter dem ''Title''-Feld eine neue Auswahl ''Free entry'' zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_editevent.png|Event bearbeiten]]&lt;br /&gt;
&lt;br /&gt;
Wird diese Einstellung aktiviert, so wird im Frontend in der Eventliste (.../contao_music/index.php/event-list.html?month=201001) zu den normalen Informationen zusätzlich der Eintrag ''Free Entry'' angezeigt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_fe.png|Frontend Ausgabe]]&lt;br /&gt;
&lt;br /&gt;
=Credits=&lt;br /&gt;
Die Orginal-Anleitung wurde erstellt von manela&amp;lt;br /&amp;gt;&lt;br /&gt;
Div. Korrekturen und Anpassungen an die Contao-Version durch [[user:Toflar|Toflar]], [[user:BugBuster|BugBuster]] und [[user:manitougs|manitougs]]&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Vorhandene_Module_erweitern</id>
		<title>Vorhandene Module erweitern</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Vorhandene_Module_erweitern"/>
				<updated>2010-06-29T20:21:05Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: /* Erweiterung des vorhandenen Templates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev_HOWTOS]]&lt;br /&gt;
{{AppliesTo&lt;br /&gt;
|Version=2.9 RC1&lt;br /&gt;
}}&lt;br /&gt;
=Vorwort=&lt;br /&gt;
Dieses Tutorial soll neben anderen vorhandenen Tutorials beim Einstieg in die Modulprogrammierung helfen. Hier wird kein eigenständiges Modul erstellt, sondern auf ein vorhandenes Core-Modul und der Demo-Installation ''Music Academy'' aufgebaut.&lt;br /&gt;
&lt;br /&gt;
=Anforderung=&lt;br /&gt;
Die Music Academy hat in diesem Jahr so viele talentierte Schüler, dass sie mit Hilfe deren musikalischer Unterstützung verschiedene Abendveranstaltungen durchführen möchte. Manche der Veranstaltungen werden mit kostenlosem Eintritt angeboten, andere Veranstaltungen sollen kostenpflichtig sein. Um den besonders kostenbewussten Musikliebhabern in der '''Veranstaltungsliste''' auf einem Blick aufzuzeigen, welche Veranstaltungen kostenfrei sind, soll '''diese Information''' in Zukunft '''bei jeder einzelnen Veranstaltung''' direkt angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
Zur Umsetzung der Anforderung wird das Formular zur Eingabe von Terminen um eine zusätzliche Checkbox erweitert. Diese Checkbox ist bei Veranstaltungen mit kostenlosem Eintritt zu aktivieren. Falls die Prüfung im Template ergibt, dass der Wert der Checkbox gesetzt ist, wird eine entsprechende Information im Frontend ausgegeben.&lt;br /&gt;
&lt;br /&gt;
=Kurzanleitung=&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry'' - neues Modulverzeichnis mit nötiger Verzeichnis- und Dateistruktur erstellen&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/config/database.sql'' – Datenbanktabelle um neues Feld freeEntry erweitern&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/dca/tl_calendar_events.php'' – Data Container Array erweitern&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/languages'' – Sprachdateien um neues Feld freeEntry erweitern&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/templates'' – Erweiterung Template um Laden der Sprachdatei, Prüfung des Feldes freeEntry und abhängiger Ausgabe&lt;br /&gt;
# ''&amp;lt;nowiki&amp;gt;http://www.meinedomain.de/typolight/install.php&amp;lt;/nowiki&amp;gt;'' - Datenbank-Update durchführen, Template in der Eventliste ändern, Termin einstellen, testen&lt;br /&gt;
&lt;br /&gt;
=Detailanleitung=&lt;br /&gt;
==Erstellen des neuen Modulverzeichnis mit nötiger Verzeichnis- und Dateistruktur==&lt;br /&gt;
In dieser Anleitung wird die Extension-Erweiterung lokal erstellt und anschließend auf den Webserver hoch geladen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/config&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/config/database.sql&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/dca&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/dca/tl_calendar_events.php&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/de&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/de/tl_calendar_events.php&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/en&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/en/tl_calendar_events.php&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/templates/&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/templates/event_list_freeEntry.tpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterung der vorhandenen Datenbanktabelle tl_calendar_events==&lt;br /&gt;
Dazu die Datei ''TL_ROOT/system/modules/calendarFreeEntry/config/database.sql'' öffnen und folgenden Inhalt einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
--		Table `tl_calendar_events`&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `tl_calendar_events` (&lt;br /&gt;
	`freeEntry` char(1) NOT NULL default '',&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=utf8;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschliessend speichern und schliessen.&lt;br /&gt;
&lt;br /&gt;
==Erweiterung des vorhandenen Data Container Arrays (DCA)==&lt;br /&gt;
Dazu die Datei ''TL_ROOT/system/modules/calendarFreeEntry/dca/tl_calendar_events.php'' öffnen und folgenden Inhalt einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php if (!defined('TL_ROOT')) die('You can not access this file directly!');&lt;br /&gt;
&lt;br /&gt;
//Anzeige im Backend&lt;br /&gt;
$GLOBALS['TL_DCA']['tl_calendar_events']['palettes']['default'] = str_replace('title,','title,freeEntry,', $GLOBALS['TL_DCA']['tl_calendar_events']['palettes']['default']);&lt;br /&gt;
&lt;br /&gt;
//Beschreibung des Feldes&lt;br /&gt;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['freeEntry'] = array&lt;br /&gt;
(&lt;br /&gt;
'label'                   =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry'],&lt;br /&gt;
'inputType'               =&amp;gt; 'checkbox'&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschliessend speichern und schliessen.&lt;br /&gt;
&lt;br /&gt;
==Erweiterung der vorhandenen Sprachdateien==&lt;br /&gt;
''TL_ROOT/system/modules/calendarFreeEntry/languages/de/tl_calendar_events.php''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php if (!defined('TL_ROOT')) die('You can not access this file directly!');&lt;br /&gt;
&lt;br /&gt;
$GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry']        = array('Free entry', 'Zeigen Sie den Termin mit kostenlosen Eintritt an.'); &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''TL_ROOT/system/modules/calendarFreeEntry/languages/en/tl_calendar_events.php''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php if (!defined('TL_ROOT')) die('You can not access this file directly!');&lt;br /&gt;
&lt;br /&gt;
$GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry']        = array('Free Entry', 'Display the event with free entry.');&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterung des vorhandenen Templates==&lt;br /&gt;
Damit im Template die gewünschte Information ausgegeben werden kann, wird das vorhandene Template der Kerninstallation kopiert, in das neue Modulverzeichnis eingefügt und die PHP-Logik entsprechend ergänzt. Dazu wird eine Prüfung eingebaut, die prüft, ob der Wert der Checkbox gesetzt wurde. Bei gesetztem Wert soll im Template sprachabhängig die Information ausgegeben, dass es sich um eine kostenlose Veranstaltung handelt. Damit die Inhalte der Sprachdateien zugegriffen werden kann, muss die Sprachdatei zu erst noch geladen werden. Contao wurde so konzipiert, dass ausschließlich nur die benötigten Ressourcen geladen werden, um das System auch in der Laufzeit möglichst performant zu halten.&lt;br /&gt;
&lt;br /&gt;
Vorhandene Datei aus ''TL_ROOT/system/modules/calendar/templates/event_list.tpl'' in ''TL_ROOT/system /modules/calendarFreeEntry/templates'' kopieren, in ''event_list_freeEntry.tpl'' umbenennen und entsprechend erweitern:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Load language file&lt;br /&gt;
&amp;lt;?php $this-&amp;gt;loadLanguageFile('tl_calendar_events'); ?&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
//Check field freeEntry&lt;br /&gt;
&amp;lt;?php if ($this-&amp;gt;freeEntry): ?&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;freeEntry&amp;quot;&amp;gt;&amp;lt;?php echo $GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry'][0]; ?&amp;gt;&amp;lt;/p&amp;gt;  &lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies war die letzte Datei, die erstellt / bearbeitet werden musste. Nun muss das ganze Paket in die Contao-Installation hoch geladen werden. Beim Hochladen ist darauf zu achten, dass der Ordner an die richtige Stelle kopiert wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_ftp.png|FTP]]&lt;br /&gt;
&lt;br /&gt;
==Datenbank-Update, Veranstaltung eintragen, Test==&lt;br /&gt;
Über ''&amp;lt;nowiki&amp;gt;http://www.meinedomain.de/typolight/install.php&amp;lt;/nowiki&amp;gt;'' ein Datenbank-Update durchführen (vorgeschlagene Änderungen per Haken aktivieren =&amp;gt; Update Database).&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_updatedb.png|Datenbank-Update durchführen]] &lt;br /&gt;
&lt;br /&gt;
Anschließend im Backend unter Themes das MusicAcademy-Theme bearbeiten und bei den Frontend-Modulen das Modul ''Calendar - Event List (Eventliste)'' suchen und dieses ebenfalls bearbeiten. Unter dem Punkt ''Template-Einstellungen'' wählt man nun das neu erstellte Template ''event_list_freeEntry'' aus.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_template.png|Erstelltes Template auswählen]]&lt;br /&gt;
&lt;br /&gt;
Wenn man nun ein neues Event erstellt oder ein vorhandenes bearbeitet, hat man unter dem ''Title''-Feld eine neue Auswahl ''Free entry'' zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_editevent.png|Event bearbeiten]]&lt;br /&gt;
&lt;br /&gt;
Wird diese Einstellung aktiviert, so wird im Frontend in der Eventliste (.../contao_music/index.php/event-list.html?month=201001) zu den normalen Informationen zusätzlich der Eintrag ''Free Entry'' angezeigt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_fe.png|Frontend Ausgabe]]&lt;br /&gt;
&lt;br /&gt;
=Credits=&lt;br /&gt;
Die Orginal-Anleitung wurde erstellt von manela&amp;lt;br /&amp;gt;&lt;br /&gt;
Div. Korrekturen und Anpassungen an die Contao-Version durch [[user:Toflar|Toflar]], [[user:BugBuster|BugBuster]] und [[user:manitougs|manitougs]]&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Vorhandene_Module_erweitern</id>
		<title>Vorhandene Module erweitern</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Vorhandene_Module_erweitern"/>
				<updated>2010-06-29T20:18:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: /* Erweiterung des vorhandenen Data Container Arrays (DCA) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev_HOWTOS]]&lt;br /&gt;
{{AppliesTo&lt;br /&gt;
|Version=2.9 RC1&lt;br /&gt;
}}&lt;br /&gt;
=Vorwort=&lt;br /&gt;
Dieses Tutorial soll neben anderen vorhandenen Tutorials beim Einstieg in die Modulprogrammierung helfen. Hier wird kein eigenständiges Modul erstellt, sondern auf ein vorhandenes Core-Modul und der Demo-Installation ''Music Academy'' aufgebaut.&lt;br /&gt;
&lt;br /&gt;
=Anforderung=&lt;br /&gt;
Die Music Academy hat in diesem Jahr so viele talentierte Schüler, dass sie mit Hilfe deren musikalischer Unterstützung verschiedene Abendveranstaltungen durchführen möchte. Manche der Veranstaltungen werden mit kostenlosem Eintritt angeboten, andere Veranstaltungen sollen kostenpflichtig sein. Um den besonders kostenbewussten Musikliebhabern in der '''Veranstaltungsliste''' auf einem Blick aufzuzeigen, welche Veranstaltungen kostenfrei sind, soll '''diese Information''' in Zukunft '''bei jeder einzelnen Veranstaltung''' direkt angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
Zur Umsetzung der Anforderung wird das Formular zur Eingabe von Terminen um eine zusätzliche Checkbox erweitert. Diese Checkbox ist bei Veranstaltungen mit kostenlosem Eintritt zu aktivieren. Falls die Prüfung im Template ergibt, dass der Wert der Checkbox gesetzt ist, wird eine entsprechende Information im Frontend ausgegeben.&lt;br /&gt;
&lt;br /&gt;
=Kurzanleitung=&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry'' - neues Modulverzeichnis mit nötiger Verzeichnis- und Dateistruktur erstellen&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/config/database.sql'' – Datenbanktabelle um neues Feld freeEntry erweitern&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/dca/tl_calendar_events.php'' – Data Container Array erweitern&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/languages'' – Sprachdateien um neues Feld freeEntry erweitern&lt;br /&gt;
# ''TL_ROOT/system/modules/calendarFreeEntry/templates'' – Erweiterung Template um Laden der Sprachdatei, Prüfung des Feldes freeEntry und abhängiger Ausgabe&lt;br /&gt;
# ''&amp;lt;nowiki&amp;gt;http://www.meinedomain.de/typolight/install.php&amp;lt;/nowiki&amp;gt;'' - Datenbank-Update durchführen, Template in der Eventliste ändern, Termin einstellen, testen&lt;br /&gt;
&lt;br /&gt;
=Detailanleitung=&lt;br /&gt;
==Erstellen des neuen Modulverzeichnis mit nötiger Verzeichnis- und Dateistruktur==&lt;br /&gt;
In dieser Anleitung wird die Extension-Erweiterung lokal erstellt und anschließend auf den Webserver hoch geladen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/config&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/config/database.sql&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/dca&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/dca/tl_calendar_events.php&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/de&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/de/tl_calendar_events.php&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/en&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/languages/en/tl_calendar_events.php&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/templates/&lt;br /&gt;
TL_ROOT/system/modules/calendarFreeEntry/templates/event_list_freeEntry.tpl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterung der vorhandenen Datenbanktabelle tl_calendar_events==&lt;br /&gt;
Dazu die Datei ''TL_ROOT/system/modules/calendarFreeEntry/config/database.sql'' öffnen und folgenden Inhalt einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
--		Table `tl_calendar_events`&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `tl_calendar_events` (&lt;br /&gt;
	`freeEntry` char(1) NOT NULL default '',&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=utf8;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschliessend speichern und schliessen.&lt;br /&gt;
&lt;br /&gt;
==Erweiterung des vorhandenen Data Container Arrays (DCA)==&lt;br /&gt;
Dazu die Datei ''TL_ROOT/system/modules/calendarFreeEntry/dca/tl_calendar_events.php'' öffnen und folgenden Inhalt einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php if (!defined('TL_ROOT')) die('You can not access this file directly!');&lt;br /&gt;
&lt;br /&gt;
//Anzeige im Backend&lt;br /&gt;
$GLOBALS['TL_DCA']['tl_calendar_events']['palettes']['default'] = str_replace('title,','title,freeEntry,', $GLOBALS['TL_DCA']['tl_calendar_events']['palettes']['default']);&lt;br /&gt;
&lt;br /&gt;
//Beschreibung des Feldes&lt;br /&gt;
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['freeEntry'] = array&lt;br /&gt;
(&lt;br /&gt;
'label'                   =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry'],&lt;br /&gt;
'inputType'               =&amp;gt; 'checkbox'&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschliessend speichern und schliessen.&lt;br /&gt;
&lt;br /&gt;
==Erweiterung der vorhandenen Sprachdateien==&lt;br /&gt;
''TL_ROOT/system/modules/calendarFreeEntry/languages/de/tl_calendar_events.php''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php if (!defined('TL_ROOT')) die('You can not access this file directly!');&lt;br /&gt;
&lt;br /&gt;
$GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry']        = array('Free entry', 'Zeigen Sie den Termin mit kostenlosen Eintritt an.'); &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''TL_ROOT/system/modules/calendarFreeEntry/languages/en/tl_calendar_events.php''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php if (!defined('TL_ROOT')) die('You can not access this file directly!');&lt;br /&gt;
&lt;br /&gt;
$GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry']        = array('Free Entry', 'Display the event with free entry.');&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterung des vorhandenen Templates==&lt;br /&gt;
Damit im Template die gewünschte Information ausgegeben werden kann, wird das vorhandene Template der Kerninstallation kopiert, in das neue Modulverzeichnis eingefügt und die PHP-Logik entsprechend ergänzt. Dazu wird eine Prüfung eingebaut, die prüft, ob der Wert der Checkbox gesetzt wurde. Bei gesetztem Wert soll im Template sprachabhängig die Information ausgegeben, dass es sich um eine kostenlose Veranstaltung handelt. Damit die Inhalte der Sprachdateien zugegriffen werden kann, muss die Sprachdatei zu erst noch geladen werden. Contao wurde so konzipiert, dass ausschließlich nur die benötigten Ressourcen geladen werden, um das System auch in der Laufzeit möglichst performant zu halten.&lt;br /&gt;
&lt;br /&gt;
Vorhandene Datei aus ''TL_ROOT/system/modules/calendar/templates/event_list.tpl'' in ''TL_ROOT/system /modules/calendarFreeEntry/templates'' kopieren, in ''event_list_freeEntry.tpl'' umbenennen und entsprechend erweitern:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Load language file&lt;br /&gt;
&amp;lt;?php $this-&amp;gt;loadLanguageFile('tl_calendar_events'); ?&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
//Check field freeEntry&lt;br /&gt;
&amp;lt;?php if ($this-&amp;gt;freeEntry): ?&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;freeEntry&amp;quot;&amp;gt;&amp;lt;?php echo $GLOBALS['TL_LANG']['tl_calendar_events']['freeEntry']0; ?&amp;gt;&amp;lt;/p&amp;gt;  &lt;br /&gt;
&amp;lt;?php endif; &lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies war die letzte Datei, die erstellt / bearbeitet werden musste. Nun muss das ganze Paket in die Contao-Installation hoch geladen werden. Beim Hochladen ist darauf zu achten, dass der Ordner an die richtige Stelle kopiert wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_ftp.png|FTP]]&lt;br /&gt;
&lt;br /&gt;
==Datenbank-Update, Veranstaltung eintragen, Test==&lt;br /&gt;
Über ''&amp;lt;nowiki&amp;gt;http://www.meinedomain.de/typolight/install.php&amp;lt;/nowiki&amp;gt;'' ein Datenbank-Update durchführen (vorgeschlagene Änderungen per Haken aktivieren =&amp;gt; Update Database).&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_updatedb.png|Datenbank-Update durchführen]] &lt;br /&gt;
&lt;br /&gt;
Anschließend im Backend unter Themes das MusicAcademy-Theme bearbeiten und bei den Frontend-Modulen das Modul ''Calendar - Event List (Eventliste)'' suchen und dieses ebenfalls bearbeiten. Unter dem Punkt ''Template-Einstellungen'' wählt man nun das neu erstellte Template ''event_list_freeEntry'' aus.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_template.png|Erstelltes Template auswählen]]&lt;br /&gt;
&lt;br /&gt;
Wenn man nun ein neues Event erstellt oder ein vorhandenes bearbeitet, hat man unter dem ''Title''-Feld eine neue Auswahl ''Free entry'' zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_editevent.png|Event bearbeiten]]&lt;br /&gt;
&lt;br /&gt;
Wird diese Einstellung aktiviert, so wird im Frontend in der Eventliste (.../contao_music/index.php/event-list.html?month=201001) zu den normalen Informationen zusätzlich der Eintrag ''Free Entry'' angezeigt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:moduleext_fe.png|Frontend Ausgabe]]&lt;br /&gt;
&lt;br /&gt;
=Credits=&lt;br /&gt;
Die Orginal-Anleitung wurde erstellt von manela&amp;lt;br /&amp;gt;&lt;br /&gt;
Div. Korrekturen und Anpassungen an die Contao-Version durch [[user:Toflar|Toflar]], [[user:BugBuster|BugBuster]] und [[user:manitougs|manitougs]]&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Runonce</id>
		<title>Runonce</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Runonce"/>
				<updated>2010-06-08T07:34:26Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: /* Modulebasierte runonce.php */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
{{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}&lt;br /&gt;
Live Update nutzt diese, die Extensions nutzen diese auch: die Datei &amp;lt;code&amp;gt;TL_ROOT/system/runonce.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Datei tut genau das, was der Name schon vermuten lässt. Sie wird nur einmal ausgeführt und anschließend gelöscht.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bei jedem Seitenaufruf wird dazu geprüft, ob diese vorhanden ist und ggf. ausgeführt.&lt;br /&gt;
&lt;br /&gt;
In der Extension legt man diese Datei dann ab im Pfad wie wie oben bereits angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Anwendungsbeispiele==&lt;br /&gt;
===Löschen einer Datei===&lt;br /&gt;
 &amp;lt;?php @error_reporting(0); @ini_set(&amp;quot;display_errors&amp;quot;, 0); &lt;br /&gt;
 try { &lt;br /&gt;
     // Datei relativ zu TL_ROOT&lt;br /&gt;
     $file = 'system/modules/demo/delete_me.gif'; &lt;br /&gt;
     $objFiles = Files::getInstance();&lt;br /&gt;
     $objFiles-&amp;gt;delete($file);&lt;br /&gt;
 } catch (Exception $e) { $errors[] = $e-&amp;gt;getMessage(); }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
Die Fehlerausgaben, sollte es welche geben, werden in diesem Beispiel unterdrückt.&lt;br /&gt;
&lt;br /&gt;
===Datenbank Insert / Update===&lt;br /&gt;
 &amp;lt;?php @error_reporting(0); @ini_set(&amp;quot;display_errors&amp;quot;, 0); &lt;br /&gt;
 $objDatabase = Database::getInstance();&lt;br /&gt;
 //&lt;br /&gt;
 // Update database&lt;br /&gt;
 try { &lt;br /&gt;
     $objDatabase-&amp;gt;execute(&amp;quot;UPDATE `tl_demo_table` SET `demo_counter`=0 WHERE `demo_browser`='Unknown'&amp;quot;);&lt;br /&gt;
 } catch (Exception $e) { $errors[] = $e-&amp;gt;getMessage(); }&lt;br /&gt;
 //&lt;br /&gt;
 // Insert database&lt;br /&gt;
 try { &lt;br /&gt;
     $objDatabase-&amp;gt;execute(&amp;quot;INSERT INTO `tl_demo_table` (`id`, `demo_counter`) VALUES (0, '10')&amp;quot;); &lt;br /&gt;
 } catch (Exception $e) { $errors[] = $e-&amp;gt;getMessage(); }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Datenbank Insert, OOP Variante===&lt;br /&gt;
Quelle: Forum.&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 class RunonceJob extends Frontend&lt;br /&gt;
 {&lt;br /&gt;
    public function __construct()&lt;br /&gt;
    {&lt;br /&gt;
        parent::__construct();&lt;br /&gt;
    }&lt;br /&gt;
    public function run()&lt;br /&gt;
    {&lt;br /&gt;
        $arrInsert=array(&lt;br /&gt;
            'action'    =&amp;gt; 'runonce',&lt;br /&gt;
            'text'      =&amp;gt; 'runonce'&lt;br /&gt;
        );&lt;br /&gt;
        $this-&amp;gt;Database-&amp;gt;prepare(&amp;quot;INSERT INTO tl_log %s&amp;quot;)-&amp;gt;set($arrInsert)-&amp;gt;execute();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 $objRunonceJob = new RunonceJob();&lt;br /&gt;
 $objRunonceJob-&amp;gt;run();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis==&lt;br /&gt;
{{Achtung|Vorsicht damit bei Extensions mit Abhängigkeiten zu weiteren Extensions.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bringen 2 Extensions jeweils eine runonce.php mit, wird nur eine ausgeführt!}}&lt;br /&gt;
''Hier ist der Author nicht sicher, ob die erste oder die letzte davon.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modulbasierte runonce.php===&lt;br /&gt;
&lt;br /&gt;
Den nachfolgenden Code in die config.php des eigenen Modules einfuegen. Den Pfad anpassen und eine runonce.php im config Verzeichnis erstellen.&lt;br /&gt;
Diese runonce.php wird beim naechsten Ausfuehren einmalig ausgefuehrt, und danach geloescht.&lt;br /&gt;
&lt;br /&gt;
 $runonceFile = '/system/modules/MODULNAME/config/runonce.php';&lt;br /&gt;
 if (file_exists(TL_ROOT . $runonceFile))&lt;br /&gt;
 {&lt;br /&gt;
  include(TL_ROOT . $runonceFile);&lt;br /&gt;
  $objFiles = Files::getInstance();&lt;br /&gt;
  $objFiles-&amp;gt;delete($runonceFile);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Runonce</id>
		<title>Runonce</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Runonce"/>
				<updated>2010-06-08T07:34:08Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: /* Modulebasierte runonce.php */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
{{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}&lt;br /&gt;
Live Update nutzt diese, die Extensions nutzen diese auch: die Datei &amp;lt;code&amp;gt;TL_ROOT/system/runonce.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Datei tut genau das, was der Name schon vermuten lässt. Sie wird nur einmal ausgeführt und anschließend gelöscht.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bei jedem Seitenaufruf wird dazu geprüft, ob diese vorhanden ist und ggf. ausgeführt.&lt;br /&gt;
&lt;br /&gt;
In der Extension legt man diese Datei dann ab im Pfad wie wie oben bereits angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Anwendungsbeispiele==&lt;br /&gt;
===Löschen einer Datei===&lt;br /&gt;
 &amp;lt;?php @error_reporting(0); @ini_set(&amp;quot;display_errors&amp;quot;, 0); &lt;br /&gt;
 try { &lt;br /&gt;
     // Datei relativ zu TL_ROOT&lt;br /&gt;
     $file = 'system/modules/demo/delete_me.gif'; &lt;br /&gt;
     $objFiles = Files::getInstance();&lt;br /&gt;
     $objFiles-&amp;gt;delete($file);&lt;br /&gt;
 } catch (Exception $e) { $errors[] = $e-&amp;gt;getMessage(); }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
Die Fehlerausgaben, sollte es welche geben, werden in diesem Beispiel unterdrückt.&lt;br /&gt;
&lt;br /&gt;
===Datenbank Insert / Update===&lt;br /&gt;
 &amp;lt;?php @error_reporting(0); @ini_set(&amp;quot;display_errors&amp;quot;, 0); &lt;br /&gt;
 $objDatabase = Database::getInstance();&lt;br /&gt;
 //&lt;br /&gt;
 // Update database&lt;br /&gt;
 try { &lt;br /&gt;
     $objDatabase-&amp;gt;execute(&amp;quot;UPDATE `tl_demo_table` SET `demo_counter`=0 WHERE `demo_browser`='Unknown'&amp;quot;);&lt;br /&gt;
 } catch (Exception $e) { $errors[] = $e-&amp;gt;getMessage(); }&lt;br /&gt;
 //&lt;br /&gt;
 // Insert database&lt;br /&gt;
 try { &lt;br /&gt;
     $objDatabase-&amp;gt;execute(&amp;quot;INSERT INTO `tl_demo_table` (`id`, `demo_counter`) VALUES (0, '10')&amp;quot;); &lt;br /&gt;
 } catch (Exception $e) { $errors[] = $e-&amp;gt;getMessage(); }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Datenbank Insert, OOP Variante===&lt;br /&gt;
Quelle: Forum.&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 class RunonceJob extends Frontend&lt;br /&gt;
 {&lt;br /&gt;
    public function __construct()&lt;br /&gt;
    {&lt;br /&gt;
        parent::__construct();&lt;br /&gt;
    }&lt;br /&gt;
    public function run()&lt;br /&gt;
    {&lt;br /&gt;
        $arrInsert=array(&lt;br /&gt;
            'action'    =&amp;gt; 'runonce',&lt;br /&gt;
            'text'      =&amp;gt; 'runonce'&lt;br /&gt;
        );&lt;br /&gt;
        $this-&amp;gt;Database-&amp;gt;prepare(&amp;quot;INSERT INTO tl_log %s&amp;quot;)-&amp;gt;set($arrInsert)-&amp;gt;execute();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 $objRunonceJob = new RunonceJob();&lt;br /&gt;
 $objRunonceJob-&amp;gt;run();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis==&lt;br /&gt;
{{Achtung|Vorsicht damit bei Extensions mit Abhängigkeiten zu weiteren Extensions.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bringen 2 Extensions jeweils eine runonce.php mit, wird nur eine ausgeführt!}}&lt;br /&gt;
''Hier ist der Author nicht sicher, ob die erste oder die letzte davon.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modulebasierte runonce.php===&lt;br /&gt;
&lt;br /&gt;
Den nachfolgenden Code in die config.php des eigenen Modules einfuegen. Den Pfad anpassen und eine runonce.php im config Verzeichnis erstellen.&lt;br /&gt;
Diese runonce.php wird beim naechsten Ausfuehren einmalig ausgefuehrt, und danach geloescht.&lt;br /&gt;
&lt;br /&gt;
 $runonceFile = '/system/modules/MODULNAME/config/runonce.php';&lt;br /&gt;
 if (file_exists(TL_ROOT . $runonceFile))&lt;br /&gt;
 {&lt;br /&gt;
  include(TL_ROOT . $runonceFile);&lt;br /&gt;
  $objFiles = Files::getInstance();&lt;br /&gt;
  $objFiles-&amp;gt;delete($runonceFile);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Runonce</id>
		<title>Runonce</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Runonce"/>
				<updated>2010-06-08T07:33:18Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
{{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}&lt;br /&gt;
Live Update nutzt diese, die Extensions nutzen diese auch: die Datei &amp;lt;code&amp;gt;TL_ROOT/system/runonce.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Datei tut genau das, was der Name schon vermuten lässt. Sie wird nur einmal ausgeführt und anschließend gelöscht.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bei jedem Seitenaufruf wird dazu geprüft, ob diese vorhanden ist und ggf. ausgeführt.&lt;br /&gt;
&lt;br /&gt;
In der Extension legt man diese Datei dann ab im Pfad wie wie oben bereits angegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Anwendungsbeispiele==&lt;br /&gt;
===Löschen einer Datei===&lt;br /&gt;
 &amp;lt;?php @error_reporting(0); @ini_set(&amp;quot;display_errors&amp;quot;, 0); &lt;br /&gt;
 try { &lt;br /&gt;
     // Datei relativ zu TL_ROOT&lt;br /&gt;
     $file = 'system/modules/demo/delete_me.gif'; &lt;br /&gt;
     $objFiles = Files::getInstance();&lt;br /&gt;
     $objFiles-&amp;gt;delete($file);&lt;br /&gt;
 } catch (Exception $e) { $errors[] = $e-&amp;gt;getMessage(); }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
Die Fehlerausgaben, sollte es welche geben, werden in diesem Beispiel unterdrückt.&lt;br /&gt;
&lt;br /&gt;
===Datenbank Insert / Update===&lt;br /&gt;
 &amp;lt;?php @error_reporting(0); @ini_set(&amp;quot;display_errors&amp;quot;, 0); &lt;br /&gt;
 $objDatabase = Database::getInstance();&lt;br /&gt;
 //&lt;br /&gt;
 // Update database&lt;br /&gt;
 try { &lt;br /&gt;
     $objDatabase-&amp;gt;execute(&amp;quot;UPDATE `tl_demo_table` SET `demo_counter`=0 WHERE `demo_browser`='Unknown'&amp;quot;);&lt;br /&gt;
 } catch (Exception $e) { $errors[] = $e-&amp;gt;getMessage(); }&lt;br /&gt;
 //&lt;br /&gt;
 // Insert database&lt;br /&gt;
 try { &lt;br /&gt;
     $objDatabase-&amp;gt;execute(&amp;quot;INSERT INTO `tl_demo_table` (`id`, `demo_counter`) VALUES (0, '10')&amp;quot;); &lt;br /&gt;
 } catch (Exception $e) { $errors[] = $e-&amp;gt;getMessage(); }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Datenbank Insert, OOP Variante===&lt;br /&gt;
Quelle: Forum.&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 class RunonceJob extends Frontend&lt;br /&gt;
 {&lt;br /&gt;
    public function __construct()&lt;br /&gt;
    {&lt;br /&gt;
        parent::__construct();&lt;br /&gt;
    }&lt;br /&gt;
    public function run()&lt;br /&gt;
    {&lt;br /&gt;
        $arrInsert=array(&lt;br /&gt;
            'action'    =&amp;gt; 'runonce',&lt;br /&gt;
            'text'      =&amp;gt; 'runonce'&lt;br /&gt;
        );&lt;br /&gt;
        $this-&amp;gt;Database-&amp;gt;prepare(&amp;quot;INSERT INTO tl_log %s&amp;quot;)-&amp;gt;set($arrInsert)-&amp;gt;execute();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 $objRunonceJob = new RunonceJob();&lt;br /&gt;
 $objRunonceJob-&amp;gt;run();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis==&lt;br /&gt;
{{Achtung|Vorsicht damit bei Extensions mit Abhängigkeiten zu weiteren Extensions.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bringen 2 Extensions jeweils eine runonce.php mit, wird nur eine ausgeführt!}}&lt;br /&gt;
''Hier ist der Author nicht sicher, ob die erste oder die letzte davon.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modulebasierte runonce.php===&lt;br /&gt;
&lt;br /&gt;
Den nachfolgenden Code in die config.php des eigenen Modules einfuegen. Den Pfad anpassen und eine runonce.php im config Verzeichnis erstellen.&lt;br /&gt;
Diese runonce.php wird beim naechsten Ausfuehren einmalig ausgefuehrt, und danach geloescht.&lt;br /&gt;
&lt;br /&gt;
$runonceFile = '/system/modules/MODULNAME/config/runonce.php';&lt;br /&gt;
if (file_exists(TL_ROOT . $runonceFile))&lt;br /&gt;
{&lt;br /&gt;
	include(TL_ROOT . $runonceFile);&lt;br /&gt;
	$objFiles = Files::getInstance();&lt;br /&gt;
	$objFiles-&amp;gt;delete($runonceFile);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Runonce</id>
		<title>Runonce</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Runonce"/>
				<updated>2010-06-07T18:59:04Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „Category:Dev HOWTOS Category:Dev Snippets {{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}  Die Datei runonce.php im Verzeichnis TL_ROOT/system/ kann unter a…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
{{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}&lt;br /&gt;
&lt;br /&gt;
Die Datei runonce.php im Verzeichnis TL_ROOT/system/ kann unter anderem fuer automatische Datenbefuellung bei Modulinstallation genutzt werden.&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Benutzer:Lindesbs</id>
		<title>Benutzer:Lindesbs</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Benutzer:Lindesbs"/>
				<updated>2010-06-07T18:09:38Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Nick:''' &lt;br /&gt;
* lindesbs&lt;br /&gt;
&lt;br /&gt;
'''Real Name:''' &lt;br /&gt;
* Stefan Lindecke&lt;br /&gt;
&lt;br /&gt;
'''Arbeit''': &lt;br /&gt;
* Angestellter&lt;br /&gt;
&lt;br /&gt;
'''Tätigkeit:''' &lt;br /&gt;
* Offiziell Projektleiter und Produktmanager&lt;br /&gt;
&lt;br /&gt;
'''Hobbies:'''&lt;br /&gt;
* Contao Open Source CMS Modulentwicklung&lt;br /&gt;
* Ideengenerator&lt;br /&gt;
* typolight-forge.org / contao-forge.org&lt;br /&gt;
* Paddeln&lt;br /&gt;
&lt;br /&gt;
'''Webseite:'''&lt;br /&gt;
* [http://www.chektrion.de http://www.chektrion.de]&lt;br /&gt;
&lt;br /&gt;
Contao2Go - Das Contao fuer unterwegs&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Benutzer:Lindesbs</id>
		<title>Benutzer:Lindesbs</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Benutzer:Lindesbs"/>
				<updated>2010-06-07T18:07:50Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „'''Nick:'''  * lindesbs  '''Real Name:'''  * Stefan Lindecke  '''Arbeit''':  * Angestellter  '''Tätigkeit:'''  * Offiziell Projektleiter und Produktmanager  '''H…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Nick:''' &lt;br /&gt;
* lindesbs&lt;br /&gt;
&lt;br /&gt;
'''Real Name:''' &lt;br /&gt;
* Stefan Lindecke&lt;br /&gt;
&lt;br /&gt;
'''Arbeit''': &lt;br /&gt;
* Angestellter&lt;br /&gt;
&lt;br /&gt;
'''Tätigkeit:''' &lt;br /&gt;
* Offiziell Projektleiter und Produktmanager&lt;br /&gt;
&lt;br /&gt;
'''Hobby:'''&lt;br /&gt;
* Contao Open Source CMS Modulentwicklung&lt;br /&gt;
* Paddeln&lt;br /&gt;
&lt;br /&gt;
'''Webseite:'''&lt;br /&gt;
* [http://www.chektrion.de http://www.chektrion.de]&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Doppelte_URL_im_base-Tag</id>
		<title>Doppelte URL im base-Tag</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Doppelte_URL_im_base-Tag"/>
				<updated>2010-05-06T19:37:07Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „{{stub}} Category:Admin HOWTOS Category:Installation und Updates =Doppelte URL im BASE Tag=  In der HTML Ansicht der Webseite tauchen im Header-&amp;gt;Base Bere…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Installation und Updates]]&lt;br /&gt;
=Doppelte URL im BASE Tag=&lt;br /&gt;
&lt;br /&gt;
In der HTML Ansicht der Webseite tauchen im Header-&amp;gt;Base Bereich die URL doppelt auf : &lt;br /&gt;
'''&amp;lt;base href=&amp;quot;http://www.domain.tld/www.domain.tld/&amp;quot;&amp;gt;&amp;lt;/base&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Loesung&lt;br /&gt;
unset($_SERVER['HTTP_X_FORWARDED_FOR']);&lt;br /&gt;
unset($_SERVER['HTTP_X_FORWARDED_HOST']);&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Allgemeine_Checklisten</id>
		<title>Allgemeine Checklisten</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Allgemeine_Checklisten"/>
				<updated>2010-03-01T19:30:44Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Checkliste fuer Installation :&lt;br /&gt;
RewriteBase, Websitepath in localconfig.php, abeaenderte template&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Allgemeine_Checklisten</id>
		<title>Allgemeine Checklisten</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Allgemeine_Checklisten"/>
				<updated>2010-03-01T19:30:17Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „[Category:Allgemeine Checklisten]  Checkliste fuer Installation : RewriteBase, Websitepath in localconfig.php, abeaenderte template“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Category:Allgemeine Checklisten]&lt;br /&gt;
&lt;br /&gt;
Checkliste fuer Installation :&lt;br /&gt;
RewriteBase, Websitepath in localconfig.php, abeaenderte template&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Diskussion:Hauptseite</id>
		<title>Diskussion:Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Diskussion:Hauptseite"/>
				<updated>2010-02-27T07:25:28Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: Die Seite wurde neu angelegt: „Checkliste fuer Installation : RewriteBase, Websitepath in localconfig.php, abeaenderte template  wohin mit diesen Listen ?“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Checkliste fuer Installation :&lt;br /&gt;
RewriteBase, Websitepath in localconfig.php, abeaenderte template&lt;br /&gt;
&lt;br /&gt;
wohin mit diesen Listen ?&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Hauptseite</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Hauptseite"/>
				<updated>2010-02-26T23:41:32Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;'''MediaWiki wurde erfolgreich installiert.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [http://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Snippets]]&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Hauptseite</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Hauptseite"/>
				<updated>2010-02-26T23:41:04Z</updated>
		
		<summary type="html">&lt;p&gt;Lindesbs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;'''MediaWiki wurde erfolgreich installiert.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [http://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].&lt;br /&gt;
&lt;br /&gt;
== Starthilfen ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Snippets]&lt;/div&gt;</summary>
		<author><name>Lindesbs</name></author>	</entry>

	</feed>