<?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/index.php?action=history&amp;feed=atom&amp;title=TEE-10_Frontend_Feinschliff</id>
		<title>TEE-10 Frontend Feinschliff - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://de.contaowiki.org/index.php?action=history&amp;feed=atom&amp;title=TEE-10_Frontend_Feinschliff"/>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/index.php?title=TEE-10_Frontend_Feinschliff&amp;action=history"/>
		<updated>2026-04-30T07:58:35Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in Contao Community Documentation</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>https://de.contaowiki.org/index.php?title=TEE-10_Frontend_Feinschliff&amp;diff=3081&amp;oldid=prev</id>
		<title>Stefan.sl: /* Etwas Feinschliff */</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/index.php?title=TEE-10_Frontend_Feinschliff&amp;diff=3081&amp;oldid=prev"/>
				<updated>2011-02-05T18:46:18Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Etwas Feinschliff&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 5. Februar 2011, 18:46 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; protected $strDetailTemplate = 'gw_turnierpaarliste_detail'; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; protected $strDetailTemplate = 'gw_turnierpaarliste_detail'; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; protected $strDetailErrorTemplate = 'gw_turnierpaarliste_error'; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; protected $strDetailErrorTemplate = 'gw_turnierpaarliste_error'; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &lt;/del&gt;public static $strDetailKey = 'info'; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;public static $strDetailKey = 'info'; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160;  &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;public static $StartGruppen = array('KIN I','KIN II', 'JUN I', 'JUN II', 'JUG', 'HGR', 'HGR II', 'SEN I', 'SEN II', 'SEN III', 'SEN IV'); &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &lt;/del&gt;public static $StartGruppen = array('KIN I','KIN II', 'JUN I', 'JUN II', 'JUG', 'HGR', 'HGR II', 'SEN I', 'SEN II', 'SEN III', 'SEN IV'); &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;public static $StartKlassen = array('-', 'E','D', 'C', 'B', 'A', 'S', 'PRO', 'LL', 'OL', 'RL', '2. BL', '1. BL');&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160;  &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &lt;/del&gt;public static $StartKlassen = array('-', 'E','D', 'C', 'B', 'A', 'S', 'PRO', 'LL', 'OL', 'RL', '2. BL', '1. BL');&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key kunde29sql1:diff:version:1.11a:oldid:3080:newid:3081 --&gt;
&lt;/table&gt;</summary>
		<author><name>Stefan.sl</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/index.php?title=TEE-10_Frontend_Feinschliff&amp;diff=3080&amp;oldid=prev</id>
		<title>Stefan.sl: Formatierung Geshi</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/index.php?title=TEE-10_Frontend_Feinschliff&amp;diff=3080&amp;oldid=prev"/>
				<updated>2011-02-05T18:29:45Z</updated>
		
		<summary type="html">&lt;p&gt;Formatierung Geshi&lt;/p&gt;
&lt;a href=&quot;https://de.contaowiki.org/index.php?title=TEE-10_Frontend_Feinschliff&amp;amp;diff=3080&amp;amp;oldid=1487&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Stefan.sl</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/index.php?title=TEE-10_Frontend_Feinschliff&amp;diff=1487&amp;oldid=prev</id>
		<title>Manitougs: div. Korrekturen</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/index.php?title=TEE-10_Frontend_Feinschliff&amp;diff=1487&amp;oldid=prev"/>
				<updated>2010-07-13T19:04:54Z</updated>
		
		<summary type="html">&lt;p&gt;div. Korrekturen&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 13. Juli 2010, 19:04 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zunächst definiere ich mir neben meinem &amp;quot;Defaulttemplate&amp;quot; noch einen Templatenamen für die Detailansicht, und ein &amp;quot;Error-Template&amp;quot;, das angezeigt wird, wenn das für die Detailansicht gewünschte Tanzpaar nicht gefunden wird.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zunächst definiere ich mir neben meinem &amp;quot;Defaulttemplate&amp;quot; noch einen Templatenamen für die Detailansicht, und ein &amp;quot;Error-Template&amp;quot;, das angezeigt wird, wenn das für die Detailansicht gewünschte Tanzpaar nicht gefunden wird.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dann folgen 3 statische Variablendeklarationen, dies sind also Klassenvariablen. Die werde ich &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Klassenübergreifend &lt;/del&gt;nutzen, weil die entsprechenden Einträge in mehreren Files genutzt werden, und ich sie nur an einer Stelle editieren möchte. ''$strDetailKey'' benötigen wir im Listentemplate, die beiden anderen Variablen im DCA-Record für die Tabelle ''tl_gw_turnierpaare'' und für die sortierte Ausgabe nach Startgruppe und -klasse.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dann folgen 3 statische Variablendeklarationen, dies sind also Klassenvariablen. Die werde ich &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Klassen übergreifend &lt;/ins&gt;nutzen, weil die entsprechenden Einträge in mehreren Files genutzt werden, und ich sie nur an einer Stelle editieren möchte. ''$strDetailKey'' benötigen wir im Listentemplate, die beiden anderen Variablen im DCA-Record für die Tabelle ''tl_gw_turnierpaare'' und für die sortierte Ausgabe nach Startgruppe und -klasse.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hier verwenden wir sie dann auch (Funktion ''compileListTemplate()''):&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hier verwenden wir sie dann auch (Funktion ''compileListTemplate()''):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 110:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 110:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hier benutzen wir auch das Insert-Tag ''{{env: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; age_alias&lt;/del&gt;}}'', um den Seitenalias nicht wie bisher hart im Template kodiert zu haben. Das funktioniert jetzt&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, egal wie die &lt;/del&gt;Seite &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;heißt&lt;/del&gt;, auf der das &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Frondendmodul &lt;/del&gt;eingebunden &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;wird&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hier benutzen wir auch das Insert-Tag ''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;nowiki&amp;gt;&lt;/ins&gt;{{env:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;:page_alias&lt;/ins&gt;}}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/nowiki&amp;gt;&lt;/ins&gt;'', um den Seitenalias nicht wie bisher hart im Template kodiert zu haben. Das funktioniert jetzt &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;auf jeder &lt;/ins&gt;Seite, auf der das &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Frontendmodul &lt;/ins&gt;eingebunden &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ist, egal wie diese heißt&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hier sieht man auch noch eine andere Änderung: ''$paar['alias']''. Ich möchte die Detailseite nicht nur über die numerische ID des Paares aufrufen können, sondern eleganter über einen Seitenalias, z.b. /turnierpaarliste/info/mueller.html.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hier sieht man auch noch eine andere Änderung: ''$paar['alias']''. Ich möchte die Detailseite nicht nur über die numerische ID des Paares aufrufen können, sondern eleganter über einen Seitenalias, z.b. /turnierpaarliste/info/mueller.html.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 198:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 198:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	 &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	 &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Seitenalias ist ''nachnameherr_nachnamedame'', wenn die Nachnamen verschieden sind&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, falls &lt;/del&gt;sie gleich sind nur ''nachname''. Ein Paar Müller/Schulze wäre also mueller_schulze, ein Ehepaar Maier nur maier. Das ganze wird mit einer eingebauten TL-Funktion standardisiert. Sollte der Alias schon existieren (eher unwahrscheinlich), dann wird die ID hintenan gehängt. Das ist 1:1 so wie bei Seitenaliasen in TL auch.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Seitenalias ist ''nachnameherr_nachnamedame'', wenn die Nachnamen verschieden sind&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Falls &lt;/ins&gt;sie gleich sind nur ''nachname''. Ein Paar Müller/Schulze wäre also mueller_schulze, ein Ehepaar Maier nur maier. Das ganze wird mit einer eingebauten TL-Funktion standardisiert. Sollte der Alias schon existieren (eher unwahrscheinlich), dann wird die ID hintenan gehängt. Das ist 1:1 so wie bei Seitenaliasen in TL auch.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Im Frontendmodul ''/system/modules/gw_turnierpaare/gwTurnierpaarliste.php'' erfolgen dafür nun auch noch Anpassungen. Zunächst in der Funktion ''obj2Arr'', damit das neue Feld auch im Template zur Verfügung steht:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Im Frontendmodul ''/system/modules/gw_turnierpaare/gwTurnierpaarliste.php'' erfolgen dafür nun auch noch Anpassungen. Zunächst in der Funktion ''obj2Arr'', damit das neue Feld auch im Template zur Verfügung steht:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key kunde29sql1:diff:version:1.11a:oldid:1415:newid:1487 --&gt;
&lt;/table&gt;</summary>
		<author><name>Manitougs</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/index.php?title=TEE-10_Frontend_Feinschliff&amp;diff=1415&amp;oldid=prev</id>
		<title>Schnippsel: Die Seite wurde neu angelegt: „{{stub}} Tagebuch einer Extension-Entwicklung Category:Tagebuch_einer_Extension-Entwicklung {{AppliesTo |Ext1=Extension Creator |TLVersion=ab TL 2.8}}  =Etwas…“</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/index.php?title=TEE-10_Frontend_Feinschliff&amp;diff=1415&amp;oldid=prev"/>
				<updated>2010-07-07T20:11:40Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „{{stub}} Tagebuch einer Extension-Entwicklung &lt;a href=&quot;/Kategorie:Tagebuch_einer_Extension-Entwicklung&quot; title=&quot;Kategorie:Tagebuch einer Extension-Entwicklung&quot;&gt;Category:Tagebuch_einer_Extension-Entwicklung&lt;/a&gt; {{AppliesTo |Ext1=Extension Creator |TLVersion=ab TL 2.8}}  =Etwas…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{stub}}&lt;br /&gt;
Tagebuch einer Extension-Entwicklung&lt;br /&gt;
[[Category:Tagebuch_einer_Extension-Entwicklung]]&lt;br /&gt;
{{AppliesTo&lt;br /&gt;
|Ext1=Extension Creator&lt;br /&gt;
|TLVersion=ab TL 2.8}}&lt;br /&gt;
&lt;br /&gt;
=Etwas Feinschliff=&lt;br /&gt;
Einige Details will ich noch verbessern, bevor es endlich an die noch fehlenden Turniermeldungen geht.&lt;br /&gt;
&lt;br /&gt;
Insgesamt ist es ein Mischmasch von vielen Kleinigkeiten, die aber teilweise in mehreren Dateien Auswirkungen haben. Es könnte also chaotisch werden :-).&lt;br /&gt;
&lt;br /&gt;
Beginnen wir wir mit ''/system/modules/gw_turnierpaare/geTurnierpaarliste.php'', der Klasse in der die Frontendtemplates gefüllt werden.&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class gwTurnierpaarliste extends Module &lt;br /&gt;
{ &lt;br /&gt;
    /** &lt;br /&gt;
     * Template &lt;br /&gt;
     * @var string &lt;br /&gt;
     */ &lt;br /&gt;
    protected $strTemplate = 'gw_turnierpaarliste'; &lt;br /&gt;
    protected $strDetailTemplate = 'gw_turnierpaarliste_detail'; &lt;br /&gt;
    protected $strDetailErrorTemplate = 'gw_turnierpaarliste_error'; &lt;br /&gt;
  public static $strDetailKey = 'info'; &lt;br /&gt;
   &lt;br /&gt;
  public static $StartGruppen = array('KIN I','KIN II', 'JUN I', 'JUN II', 'JUG', 'HGR', 'HGR II', 'SEN I', 'SEN II', 'SEN III', 'SEN IV'); &lt;br /&gt;
   &lt;br /&gt;
  public static $StartKlassen = array('-', 'E','D', 'C', 'B', 'A', 'S', 'PRO', 'LL', 'OL', 'RL', '2. BL', '1. BL');  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zunächst definiere ich mir neben meinem &amp;quot;Defaulttemplate&amp;quot; noch einen Templatenamen für die Detailansicht, und ein &amp;quot;Error-Template&amp;quot;, das angezeigt wird, wenn das für die Detailansicht gewünschte Tanzpaar nicht gefunden wird.&lt;br /&gt;
&lt;br /&gt;
Dann folgen 3 statische Variablendeklarationen, dies sind also Klassenvariablen. Die werde ich Klassenübergreifend nutzen, weil die entsprechenden Einträge in mehreren Files genutzt werden, und ich sie nur an einer Stelle editieren möchte. ''$strDetailKey'' benötigen wir im Listentemplate, die beiden anderen Variablen im DCA-Record für die Tabelle ''tl_gw_turnierpaare'' und für die sortierte Ausgabe nach Startgruppe und -klasse.&lt;br /&gt;
&lt;br /&gt;
Hier verwenden wir sie dann auch (Funktion ''compileListTemplate()''):&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... &lt;br /&gt;
      // Nach Altersgruppen sortieren &lt;br /&gt;
      $fieldstartgruppe=&amp;quot;''&amp;quot;; &lt;br /&gt;
       foreach(gwTurnierpaarliste::$StartGruppen as $gruppe) &lt;br /&gt;
      { &lt;br /&gt;
        $fieldstartgruppe .= &amp;quot;,'&amp;quot;.$gruppe.&amp;quot;'&amp;quot;; &lt;br /&gt;
      } &lt;br /&gt;
      $fieldstartklasse=&amp;quot;''&amp;quot;; &lt;br /&gt;
      foreach(gwTurnierpaarliste::$StartKlassen as $klasse) &lt;br /&gt;
      {&lt;br /&gt;
        $fieldstartklasse .= &amp;quot;,'&amp;quot;.$klasse.&amp;quot;'&amp;quot;; &lt;br /&gt;
      } &lt;br /&gt;
...  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und auch die Verwendung von ''$strDetailKey'' wird angepasst:&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... &lt;br /&gt;
        if ( strlen($this-&amp;gt;Input-&amp;gt;get(gwTurnierpaarliste::$strDetailKey)) ) &lt;br /&gt;
...  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im DCA-Record für die Felder ''startgruppe'', ''startklasselatein'' und ''startklassestandard'' sinngemäß (Datei  ''/system/modules/gw_turnierpaare/dca/tl_gw_turnierpaare.php''):&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... &lt;br /&gt;
        'startgruppe' =&amp;gt; array &lt;br /&gt;
        ( &lt;br /&gt;
            'label'                   =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['startgruppe'], &lt;br /&gt;
            'inputType'               =&amp;gt; 'select', &lt;br /&gt;
            'sorting'                 =&amp;gt; true, &lt;br /&gt;
            'options'                 =&amp;gt; gwTurnierpaarliste::$StartGruppen, &lt;br /&gt;
            'eval'                    =&amp;gt; array('mandatory'=&amp;gt;false, 'includeBlankOption' =&amp;gt; true) &lt;br /&gt;
        ), &lt;br /&gt;
        'startklasselatein' =&amp;gt; array &lt;br /&gt;
        (&lt;br /&gt;
            'label'                   =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['startklasselatein'], &lt;br /&gt;
            'inputType'               =&amp;gt; 'select', &lt;br /&gt;
            'sorting'                 =&amp;gt; true, &lt;br /&gt;
            'options'                 =&amp;gt; gwTurnierpaarliste::$StartKlassen, &lt;br /&gt;
            'eval'                    =&amp;gt; array('mandatory'=&amp;gt;true, 'tl_class' =&amp;gt; 'w50') &lt;br /&gt;
        ), &lt;br /&gt;
        'startklassestandard' =&amp;gt; array &lt;br /&gt;
        ( &lt;br /&gt;
            'label'                   =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['startklassestandard'], &lt;br /&gt;
            'inputType'               =&amp;gt; 'select', &lt;br /&gt;
            'sorting'                 =&amp;gt; true, &lt;br /&gt;
            'options'                 =&amp;gt; gwTurnierpaarliste::$StartKlassen, &lt;br /&gt;
            'eval'                    =&amp;gt; array('mandatory'=&amp;gt;true) &lt;br /&gt;
        ), &lt;br /&gt;
...&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
und schließlich noch im Template für die Übersichtsliste ''/system/modules/gw_turnierpaare/templates/gw_turnierpaarliste.tpl'':&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... &lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;?php echo '&amp;lt;a href=&amp;quot;/{{env::page_alias}}/'.gwTurnierpaarliste::&lt;br /&gt;
$strDetailKey.'/'.$paar['alias'].'.html&amp;quot;&amp;gt;Detail&amp;lt;/a&amp;gt;'; ?&amp;gt; &lt;br /&gt;
... &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier benutzen wir auch das Insert-Tag ''{{env:  age_alias}}'', um den Seitenalias nicht wie bisher hart im Template kodiert zu haben. Das funktioniert jetzt, egal wie die Seite heißt, auf der das Frondendmodul eingebunden wird.&lt;br /&gt;
&lt;br /&gt;
Hier sieht man auch noch eine andere Änderung: ''$paar['alias']''. Ich möchte die Detailseite nicht nur über die numerische ID des Paares aufrufen können, sondern eleganter über einen Seitenalias, z.b. /turnierpaarliste/info/mueller.html.&lt;br /&gt;
&lt;br /&gt;
Dafür definiere ich ein neues ''varchar(128)''-Feld in der ''tl_gw_turnierpaare-Tabelle'' (''/system/modules/gw_turnierpaare/config/database.sql''):&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
  `partnerinvorname` varchar(64) NULL default NULL,&lt;br /&gt;
  `alias` varchar(128) NOT NULL default '',&lt;br /&gt;
  `startgruppe` varchar(32) NOT NULL default '',&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Definitionen für den DCA-Record klaue ich mir bei ''tl_article.php'' aus dem Backend (''/system/modules/gw_turnierpaare/dca/tl_gw_turnierpaare.php''):&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... &lt;br /&gt;
        'alias' =&amp;gt; array &lt;br /&gt;
        ( &lt;br /&gt;
            'label'                   =&amp;gt; &amp;amp;$GLOBALS['TL_LANG']&lt;br /&gt;
['tl_gw_turnierpaare']['alias'], &lt;br /&gt;
            'exclude'                 =&amp;gt; true, &lt;br /&gt;
            'inputType'               =&amp;gt; 'text', &lt;br /&gt;
            'eval'                    =&amp;gt; array('rgxp'=&amp;gt;'alnum', 'doNotCopy'=&amp;gt;true, 'spaceToUnderscore'=&amp;gt;true, 'maxlength'=&amp;gt;128, 'tl_class'=&amp;gt;'w50'), &lt;br /&gt;
            'save_callback' =&amp;gt; array &lt;br /&gt;
            ( &lt;br /&gt;
                array('tl_gw_turnierpaare', 'generateAlias') &lt;br /&gt;
            ) &lt;br /&gt;
    ), &lt;br /&gt;
... &lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
In die Palette tragen wir das Feld auch noch ein, damit es manuell editierbar bleibt:&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Palettes &lt;br /&gt;
    'palettes' =&amp;gt; array &lt;br /&gt;
    ( &lt;br /&gt;
        '__selector__'                =&amp;gt; array('resetpassword'), &lt;br /&gt;
        'default'                     =&amp;gt; '{name_legend},partnernachname,partnervorname,partnerinnachname,partnerinvorname,alias;' &lt;br /&gt;
                                      .'{classes_legend},startgruppe,startklasselatein,startklassestandard;' &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
Und wir müssen den Callback schreiben&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /** &lt;br /&gt;
   * Generate alias from couples names &lt;br /&gt;
   */ &lt;br /&gt;
    public function generateAlias($varValue, DataContainer $dc) &lt;br /&gt;
    { &lt;br /&gt;
        $autoAlias = false; &lt;br /&gt;
        // Generate alias if there is none &lt;br /&gt;
        if (!strlen($varValue)) &lt;br /&gt;
        { &lt;br /&gt;
            $autoAlias = true; &lt;br /&gt;
            $key = $dc-&amp;gt;activeRecord-&amp;gt;partnernachname; &lt;br /&gt;
            if(strlen($dc-&amp;gt;activeRecord-&amp;gt;partnerinnachname) &amp;gt; 0 &amp;amp;&amp;amp; strcmp($dc-&amp;gt;activeRecord-&amp;gt;partnernachname,$dc-&amp;gt;activeRecord-&amp;gt;partnerinnachname)) &lt;br /&gt;
            { &lt;br /&gt;
        $key = $key.'_'.$dc-&amp;gt;activeRecord-&amp;gt;partnerinnachname; &lt;br /&gt;
      } &lt;br /&gt;
            $varValue = standardize($key); &lt;br /&gt;
        } &lt;br /&gt;
        $objAlias = $this-&amp;gt;Database-&amp;gt;prepare(&amp;quot;SELECT id FROM tl_gw_turnierpaare WHERE id=? OR alias=?&amp;quot;) &lt;br /&gt;
                                   -&amp;gt;execute($dc-&amp;gt;id, $varValue); &lt;br /&gt;
        // Check whether the page alias exists &lt;br /&gt;
        if ($objAlias-&amp;gt;numRows &amp;gt; 1) &lt;br /&gt;
        { &lt;br /&gt;
            if (!$autoAlias) &lt;br /&gt;
            { &lt;br /&gt;
                throw new Exception(sprintf($GLOBALS['TL_LANG']['ERR']['aliasExists'], $varValue)); &lt;br /&gt;
            } &lt;br /&gt;
            $varValue .= '-' . $dc-&amp;gt;id; &lt;br /&gt;
        } &lt;br /&gt;
        return $varValue; &lt;br /&gt;
    } &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	 &lt;br /&gt;
Der Seitenalias ist ''nachnameherr_nachnamedame'', wenn die Nachnamen verschieden sind, falls sie gleich sind nur ''nachname''. Ein Paar Müller/Schulze wäre also mueller_schulze, ein Ehepaar Maier nur maier. Das ganze wird mit einer eingebauten TL-Funktion standardisiert. Sollte der Alias schon existieren (eher unwahrscheinlich), dann wird die ID hintenan gehängt. Das ist 1:1 so wie bei Seitenaliasen in TL auch.&lt;br /&gt;
&lt;br /&gt;
Im Frontendmodul ''/system/modules/gw_turnierpaare/gwTurnierpaarliste.php'' erfolgen dafür nun auch noch Anpassungen. Zunächst in der Funktion ''obj2Arr'', damit das neue Feld auch im Template zur Verfügung steht:&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... &lt;br /&gt;
        'id' =&amp;gt; $objPaar-&amp;gt;id, &lt;br /&gt;
        'alias' =&amp;gt; $objPaar-&amp;gt;alias, &lt;br /&gt;
        'beschreibung' =&amp;gt; $objPaar-&amp;gt;beschreibung, &lt;br /&gt;
...  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und schließlich in ''compileDetailTemplate'':&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  // Compiles the data for the turnierparliste_detail template &lt;br /&gt;
  protected function compileDetailTemplate() &lt;br /&gt;
  { &lt;br /&gt;
    $coupleRow = $this-&amp;gt;Database-&amp;gt;prepare(&amp;quot;SELECT * FROM tl_gw_turnierpaare WHERE id=? OR alias=?&amp;quot;) 		  &lt;br /&gt;
            -&amp;gt;limit(1) &lt;br /&gt;
            -&amp;gt;execute($this-&amp;gt;Input-&amp;gt;get(self::$strDetailKey),$this-&amp;gt;Input-&amp;gt;get(self::$strDetailKey)); &lt;br /&gt;
    if($coupleRow-&amp;gt;numRows == 0) &lt;br /&gt;
    { &lt;br /&gt;
          $this-&amp;gt;Template = new FrontendTemplate($this-&amp;gt;strDetailErrorTemplate); &lt;br /&gt;
    } &lt;br /&gt;
    else &lt;br /&gt;
    { &lt;br /&gt;
      $this-&amp;gt;Template = new FrontendTemplate($this-&amp;gt;strDetailTemplate); &lt;br /&gt;
      $newArr = $this-&amp;gt;obj2Arr($coupleRow); &lt;br /&gt;
      if(strlen($coupleRow-&amp;gt;bild) == 0) &lt;br /&gt;
      { &lt;br /&gt;
        $newArr['bild'] = '/system/modules/gw_turnierpaare/icons/default.png'; &lt;br /&gt;
      } &lt;br /&gt;
      else &lt;br /&gt;
      { &lt;br /&gt;
        $newArr['bild'] = $this-&amp;gt;getImage($coupleRow-&amp;gt;bild, '180', ''); &lt;br /&gt;
        $newArr['bildfullsize'] = $coupleRow-&amp;gt;bild; &lt;br /&gt;
      } &lt;br /&gt;
      $this-&amp;gt;Template-&amp;gt;paar = $newArr; &lt;br /&gt;
    } &lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
Hier wird entweder nach ID oder nach Alias gesucht. Aufruf der Detailseite würde also sowohl über /info/12.html als auch info/mueller.html funktionieren. Wird kein Datensatz mit dieser ID gefunden, wird das Error-Template ausgegeben, ansonsten wie üblich der Detail-Datensatz.&lt;br /&gt;
&lt;br /&gt;
Schließlich noch das sehr simple neue Template 	''system/modules/gw_turnierpaare/templates/gw_turnierpaarliste_error.tpl'':&lt;br /&gt;
&lt;br /&gt;
PHP-Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;&amp;lt;?php echo $this-&amp;gt;class; ?&amp;gt; block paarvisitenkarte&amp;quot;&amp;lt;?php echo $this-&amp;gt;cssID; ?&amp;gt; &lt;br /&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;
&amp;lt;h3&amp;gt;Dieses Paar existiert leider nicht!&amp;lt;/h3&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da sich rein optisch außer einem Extra Feld im Backend für den Alias nichts getan hat, verzichte ich in diesem Schritt auf Screenshots. Leider ging es auch etwas kreuz und quer mit kleinen Änderungen in mehreren Dateien. Ich hoffe trotzdem man konnte noch folgen... &lt;br /&gt;
&lt;br /&gt;
==Diskussion==&lt;br /&gt;
'''user: Jürgen''' &lt;br /&gt;
&lt;br /&gt;
Eine Frage zu der Demoanwendung am Anfang. Diese habe ich installiert und das Backend funktioniert auch &lt;br /&gt;
gut. Nur das erstellen eines Moduls macht mir Schwierigkeiten. Da scheint Typolight sich aufzuhängen. Der &lt;br /&gt;
Bildschirm bleibt einfach weiß.&lt;br /&gt;
&lt;br /&gt;
Ich hab es local unter winxp pro oder win7 pro unter xampp laufen. Ich hab mal ''displayErrors'' aktiviert und als &lt;br /&gt;
erstes kommt die Fehlermeldung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Warning: Cannot modify header information - headers already sent by (output started at  &lt;br /&gt;
G:\xampplite\htdocs\test\system\modules\gw_turnier paare\dca\tl_module.php:32) in  &lt;br /&gt;
G:\xampplite\htdocs\test\system\libraries\Template .php on line 174 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''user: dl1ely''' &lt;br /&gt;
&lt;br /&gt;
bitte öffne ''/system/modules/gw_turnierpaare/dca/tl_module.php'' in einem Editor. Zeilen 31 und 32 sind &lt;br /&gt;
Leerzeilen, bitte entferne die. Die letzte Zeile muss Zeile 30 mit &amp;quot;?&amp;gt;&amp;quot; sein.&lt;br /&gt;
&lt;br /&gt;
Ich denke, daran wird es liegen. Ich vermute, das hängt mit den unterschiedlichen Zeilenumbrüchen bei &lt;br /&gt;
Linux/Windows zusammen, bei mir tritt das Problem zumindest nicht auf. Dadurch werden wohl zwei Leerzeilen &lt;br /&gt;
ausgegeben, bevor dann in Zeile 174 von ''system/libraries/Template.php'' der Header für die Seite gesetzt wird. &lt;br /&gt;
Das schlägt dann natürlich fehl. In Zukunft werde ich mehr auf die Leerzeilen-Problematik achten. In der &lt;br /&gt;
nächsten &amp;quot;Version&amp;quot; des Quelltexts wird das behoben sein.&lt;/div&gt;</summary>
		<author><name>Schnippsel</name></author>	</entry>

	</feed>