<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://fbb.just4test.de/extern.php?action=feed&amp;tid=1471&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Informationen für CMS/made simple / Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
		<link>http://www.cmsmadesimple.de/forum/viewtopic.php?id=1471</link>
		<description><![CDATA[Die aktuellsten Beiträge in Dokumentation von Smarty-kompatiblen PHP-Funktionen?.]]></description>
		<lastBuildDate>Fri, 11 Nov 2011 15:45:17 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12853#p12853</link>
			<description><![CDATA[<div class="quotebox"><cite>NaN schrieb:</cite><blockquote><div><p>Aber die Anwendung eines Modifikators ist im Prinzip immer gleich. Nur die Funktionsweise bzw. die Reihenfolge der Argumente beim Aufruf eines Modifikators hängt davon ab, ob smartyfiziert oder PHP.</p></div></blockquote></div><p><strong>smartyfiziert</strong> gefällt mir&#160; <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/monkey.png" alt="monkey" /></p>]]></description>
			<author><![CDATA[dummy@example.com (nicmare)]]></author>
			<pubDate>Fri, 11 Nov 2011 15:45:17 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12853#p12853</guid>
		</item>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12851#p12851</link>
			<description><![CDATA[<div class="quotebox"><cite>nockenfell schrieb:</cite><blockquote><div><p>Gewöhnungsbedürfig ist es insofern, dass die Variable erst am Schluss kommt und zuerst die anderen Argumente. Da Smarty Modifikatoren jeweils mit $variable|Modifikator:Argument aufgebaut sind, ist es ungewohnt Argument|Modifikator:Argument:$variable zu nutzen.</p></div></blockquote></div><p>Wenn man sich immer vor Augen hält, dass ein Smarty-Modifikator nichts weiter ist als eine PHP Funktion wie oben beschrieben, dann sollte man das allgemeine Prinzip von Modifikatoren (ob nun PHP oder <em>smartyfiziert</em>) schnell verstehen. </p><p>Jede Funktion ist anders aufgebaut und erwartet demzufolge Argumente in einer jeweils ihr eigenen spezifischen Reihenfolge. Alle <em>smartyfizierten</em> Funktionen, die für die Template-Engine Smarty geschrieben wurden, haben glücklicherweise immer dasselbe Schema. Sie sind sozusagen für den Template-Designer intuitiver und vor allem einheitlich gestaltet: </p><p>{<span style="color: red"><em>was</em>_will_ich_ändern</span>|<span style="color: blue"><em>womit</em>_will_ich_es_ändern</span>:<span style="color: green"><em>wie</em>_will_ich_es_ändern</span>: <span style="color: green">...</span> }</p><p>Die dazu nötige PHP Funktion sähe dann so aus:</p><p>function <span style="color: blue"><em>womit</em>_will_ich_es_ändern</span>(<span style="color: red"><em>was</em>_will_ich_ändern</span>, <span style="color: green"><em>wie</em>_will_ich_es_ändern</span>, <span style="color: green">...</span> ) {<br />&#160; &#160;...<br />}</p><br /><p>Bei PHP sieht das leider nun mal anders aus. Da kann es eben sein, dass eine Funktion so aufgebaut ist: </p><p><span style="color: blue">mache_<em>dies</em></span>( <span style="color: green">anhand_<em>jenem</em></span>, <span style="color: red">mit_<em>folgendem</em></span>, <span style="color: green">und_beschränke_auf_<em>soundsoviel</em></span>); <br />(immer noch explode <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/wink.png" alt="wink" /> ) </p><p>oder</p><p><span style="color: blue">mache_<em>das</em></span>( <span style="color: green">anhand_<em>diesem</em></span> , <span style="color: green">und_<em>jenem</em></span>, <span style="color: red">mit_<em>folgendem</em></span> ); <br />(str_replace)</p><p>Und das ist bei PHP leider nicht einheitlich. Wodurch der Smarty-Code dann so aussähe:</p><p>{<span style="color: green"><em>wie</em>_will_ich_es_ändern</span>|<span style="color: blue"><em>womit</em>_will_ich_es_ändern</span>:<span style="color: red"><em>was</em>_will_ich_ändern</span>:<span style="color: green"><em>wie</em>_will_ich_es_ändern</span>: <span style="color: green">...</span> }</p><p>bzw.</p><p>{<span style="color: green"><em>wie</em>_will_ich_es_ändern</span>|<span style="color: blue"><em>womit</em>_will_ich_es_ändern</span>:<span style="color: green"><em>wie</em>_will_ich_es_ändern</span>:<span style="color: red"><em>was</em>_will_ich_ändern</span>: <span style="color: green">...</span> }</p><p>D.h. man muss manchmal einfach nur über den Smarty-Tellerrand nach PHP schauen, wenn man etwas verwenden will, wofür es keine smartyfizierte Entsprechung gibt, weil das eigentliche <em>Subject</em> nicht immer an derselben Stelle steht.</p><p>Aber die Anwendung eines Modifikators ist im Prinzip immer gleich. Nur die Reihenfolge der Argumente (bzw. deren jeweilige Bedeutung an dieser Stelle) beim Aufruf eines Modifikators hängt davon ab, ob smartyfiziert oder PHP. </p><p>Man muss sozusagen den Smarty-Aufruf immer auf die jeweilige Funktion <em>mappen</em>, um zu wissen, wo man was angeben muss.</p>]]></description>
			<author><![CDATA[dummy@example.com (NaN)]]></author>
			<pubDate>Fri, 11 Nov 2011 15:42:08 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12851#p12851</guid>
		</item>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12849#p12849</link>
			<description><![CDATA[<div class="quotebox"><cite>NaN schrieb:</cite><blockquote><div><div class="quotebox"><cite>nockenfell schrieb:</cite><blockquote><div><p>Wichtig daran ist einfach, dass die Reihenfolge z.T. ein wenig gewöhnungsbedürftig ist.</p></div></blockquote></div><p>Sie ist nicht gewöhnungsbedürftig. Sie ist exakt die gleiche.</p><div class="codebox"><pre><code>{argument_1|modifikator:argument_2:argument_3: ...}</code></pre></div></div></blockquote></div><p>Gewöhnungsbedürfig ist es insofern, dass die Variable erst am Schluss kommt und zuerst die anderen Argumente. Da Smarty Modifikatoren jeweils mit $variable|Modifikator:Argument aufgebaut sind, ist es ungewohnt Argument|Modifikator:Argument:$variable zu nutzen.</p><div class="quotebox"><cite>nicmare schrieb:</cite><blockquote><div><p>wobei. eine kurze frage. shuffle funktioniert ja mal ganz anders als in smarty als in php oder?<br />smarty: {$array|@shuffle}<br />wie soll man darauf kommen? ich bin durch zufall drauf gekommen</p></div></blockquote></div><p>Finde ich nicht. Ist doch genau der gleiche Aufruf.</p>]]></description>
			<author><![CDATA[dummy@example.com (nockenfell)]]></author>
			<pubDate>Fri, 11 Nov 2011 15:24:47 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12849#p12849</guid>
		</item>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12848#p12848</link>
			<description><![CDATA[<p>Wieso funktioniert shuffle anders?<br />Laut PHP Doku:</p><div class="codebox"><pre><code>shuffle($argument_1)</code></pre></div><p>D.h. in Smarty</p><div class="codebox"><pre><code>{$argument_1|shuffle}</code></pre></div><p>Exakt das gleiche wie mit jedem anderen Modifikator.</p><p>Warum Du an dieser Stelle das @-Zeichen verwenden musst, habe ich auch schon mal in einem anderen Zusammenhang erklärt. </p><p>Wenn <em>$argument_1 </em>ein Array ist und Du in Smarty einfach nur <em>{$argument_1}</em> schreibst, würdest Du ein Array als String ausgeben wollen. Und das geht nicht. Das Ergebnis wäre wortwörtlich <em>&quot;Array&quot;</em>. </p><p>Mit <em>{$argument_1|shuffle}</em> erhältst Du als Ergebnis auch nur wieder ein Array, was also zum gleichen Resultat führen würde. </p><p>Du möchtest aber an dieser Stelle das Array gar nicht <em>ausgeben</em>, sondern es nur <em>modifizieren</em>. </p><p>D.h. Du musst die <em>Ausgabe</em> des Ergebnisses von <em>{$argument_1|shuffle}</em> unterdrücken. Und das macht man in Smarty mit diesem @-Zeichen. </p><p>Um ganz korrekt zu sein, gibt das @-Zeichen an, dass man die Variable lediglich an den Modifikator übergeben will. Ob da etwas ausgegeben wird, hängt vom Modifikator ab.</p>]]></description>
			<author><![CDATA[dummy@example.com (NaN)]]></author>
			<pubDate>Fri, 11 Nov 2011 15:23:21 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12848#p12848</guid>
		</item>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12847#p12847</link>
			<description><![CDATA[<p>wobei. eine kurze frage. <a href="http://php.net/manual/en/function.shuffle.php" rel="nofollow">shuffle</a> funktioniert ja mal ganz anders als in smarty als in php oder?</p><p>smarty: {$array|@shuffle}</p><p>wie soll man darauf kommen? ich bin durch zufall drauf gekommen</p>]]></description>
			<author><![CDATA[dummy@example.com (nicmare)]]></author>
			<pubDate>Fri, 11 Nov 2011 15:14:58 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12847#p12847</guid>
		</item>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12846#p12846</link>
			<description><![CDATA[<div class="quotebox"><cite>nockenfell schrieb:</cite><blockquote><div><p>Wichtig daran ist einfach, dass die Reihenfolge z.T. ein wenig gewöhnungsbedürftig ist.</p></div></blockquote></div><p>Sie ist nicht gewöhnungsbedürftig. Sie ist exakt die gleiche.</p><div class="codebox"><pre><code>{argument_1|modifikator:argument_2:argument_3: ...}</code></pre></div><p>Das ist bei Smarty-Modifikatoren exakt das gleiche wie bei PHP Funktionen.</p><p>Der einzige Unterschied besteht darin, dass das erste Argument bei Smarty immer das Argument ist, mit dem etwas gemacht werden soll (<em>Subject</em>). Bei PHP ist das erste Argument immer das, was laut PHP-Doku an erster Stelle verlangt wird. Dazu muss man sich die Doku der jeweiligen PHP-Funktion durchlesen.</p>]]></description>
			<author><![CDATA[dummy@example.com (NaN)]]></author>
			<pubDate>Fri, 11 Nov 2011 15:11:11 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12846#p12846</guid>
		</item>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12845#p12845</link>
			<description><![CDATA[<p>ok danke für die erläuterung</p>]]></description>
			<author><![CDATA[dummy@example.com (nicmare)]]></author>
			<pubDate>Fri, 11 Nov 2011 15:10:54 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12845#p12845</guid>
		</item>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12844#p12844</link>
			<description><![CDATA[<p>In Smarty sind ALLE PHP-Funktionen als Modifikator verfügbar. </p><p>Wichtig daran ist einfach, dass die Reihenfolge z.T. ein wenig gewöhnungsbedürftig ist. Vor kurzem habe ich mich mit explode in meinem Blog befasst:</p><p><a href="http://www.blattertech.ch/blog/49/Smarty-Ein-String-mit-explode-in-ein-Array-umwandeln.htm" rel="nofollow">http://www.blattertech.ch/blog/49/Smart … andeln.htm</a></p>]]></description>
			<author><![CDATA[dummy@example.com (nockenfell)]]></author>
			<pubDate>Fri, 11 Nov 2011 15:07:25 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12844#p12844</guid>
		</item>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12843#p12843</link>
			<description><![CDATA[<p>Hä?<br />Wieso?<br />Welcher Teil von </p><div class="quotebox"><cite>NaN schrieb:</cite><blockquote><div><p>{<span style="color: red">arg_1</span>|<span style="color: blue">modifikator</span>:<span style="color: green">arg_2</span>:<span style="color: green">arg_3</span>:...}</p></div></blockquote></div><p>verleitet Dich zu der Annahme, für jede PHP Funktion einen eigenen Modifikator schreiben zu müssen? </p><p>Du musst halt nur wissen, in welcher Reihenfolge die PHP-Funktion ihre Argumente erwartet. Das mit dem smarty_explode war doch nur ein Beispiel, um zu zeigen, wo der Unterschied zwischen Smarty-aufbereiteten Modifikatoren und reinen PHP Funktionen besteht.</p><p>Smarty Modifikator: {<span style="color: red">$subject</span>|<span style="color: blue">modifikator</span>:<span style="color: green">argument_2</span>:<span style="color: green">argument_3</span>: <span style="color: green">...</span> }<br />PHP Modifikator (gemäß der Doku): {<span style="color: red">argument_1</span>|<span style="color: blue">modifikator</span>:<span style="color: green">$subject</span>:<span style="color: green">argument_3</span>: <span style="color: green">...</span> } </p><p>(um mal beim Beispiel explode zu bleiben - an welcher Stelle genau $subject und welche Werte für welches Argument gelten müssen, hängt von der jeweiligen PHP-Funktion ab).</p>]]></description>
			<author><![CDATA[dummy@example.com (NaN)]]></author>
			<pubDate>Fri, 11 Nov 2011 15:02:53 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12843#p12843</guid>
		</item>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12842#p12842</link>
			<description><![CDATA[<p>Aber von Modifikationen schreiben war ja nicht die Rede. </p><p>Ich will einfach nur die vorhandenen Funktionen benutzen und nicht für alles ne extra Smarty-Variante bauen. Außerdem weiß man ja eben nicht, welche PHP-Funktionen mit Smarty von Hause aus abrufbar sind. </p><p>Aber du schreibst ja dass es grundsätzlich mit allen php funktionen geht?! &quot;All php-functions can be used as modifiers implicitly&quot;. Das widerspricht sich ja mit deinem beispielhaften Explode-Code oder?</p>]]></description>
			<author><![CDATA[dummy@example.com (nicmare)]]></author>
			<pubDate>Fri, 11 Nov 2011 14:59:15 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12842#p12842</guid>
		</item>
		<item>
			<title><![CDATA[Re: Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12841#p12841</link>
			<description><![CDATA[<p>Eigentlich suchst Du da an der falschen Stelle. <a href="http://www.php.net/manual/de/index.php" rel="nofollow">http://www.php.net/manual/de/index.php</a> wäre hier richtig, da all diese &quot;Modifikatoren&quot; normale PHP Funktionen sind:</p><div class="quotebox"><cite>smarty docs schrieb:</cite><blockquote><div><p><strong>All php-functions can be used as modifiers implicitly</strong>, as demonstrated in the example above. However, using php-functions as modifiers has two little pitfalls:</p><p>&#160; &#160; First - sometimes the order of the function-parameters is not the desirable one. Formatting $foo with {&quot;%2.f&quot;|sprintf:$foo} actually works, but asks for the more intuitive, like {$foo|string_format:&quot;%2.f&quot;} that is provided by the Smarty distribution.</p></div></blockquote></div><p>Im Prinzip muss man sich einen Modifkator als eine PHP Funktion vorstellen, die so aufgebaut ist:</p><p>function <span style="color: blue">modifikator</span>( <span style="color: red">$arg_1</span> , <span style="color: green">$arg_2</span> , <span style="color: green">$arg_3</span> , <span style="color: green">...</span> ) {<br />&#160; &#160; ...<br />}</p><p>In Smarty sähe der Aufruf dann so aus:<br />{<span style="color: red">arg_1</span>|<span style="color: blue">modifikator</span>:<span style="color: green">arg_2</span>:<span style="color: green">arg_3</span>:<span style="color: green">...</span>}</p><p>Bei reinen Smarty-Modifikatoren kommt als Erstes immer erst das <em>Subject</em>, also die Variable, mit der ich irgendetwas machen will. Dann kommt der Funktionsname und dann alle weiteren Argumente. </p><p>Bei PHP-Modifikatoren müssen die Argumente in der Reihenfolge stehen, wie es in der PHP Funktion verlangt wird (siehe dazu PHP-Doku). D.h. das Subject kann irgendwo in der Reihe der Argumente vorkommen. </p><p>Einfaches Beispiel sei hier mal die PHP Funktion explode. Laut PHP Syntax kommt </p><p>1. das Trennzeichen, <br />2. der Wert, den ich aufteilen will, und <br />3. die Anzahl der Elemente, die ich haben will:</p><p><span style="color: blue">explode</span>(<span style="color: red"> &#039;,&#039;</span> , <span style="color: green">$string</span> , <span style="color: green">4</span> )</p><p>In Smarty sähe das dann also so aus:</p><p>{<span style="color: red">&#039;,&#039;</span>|<span style="color: blue">explode</span>:<span style="color: green">$string</span>:<span style="color: green">4</span>}</p><p>Wenn jemand einen Smarty-Explode-Modifikator schreiben würde, müsste der dann (beispielhaft) so aussehen:</p><p>function <span style="color: blue">smarty_explode</span>( <span style="color: red">$subject</span> , <span style="color: green">$delimiter</span> , <span style="color: green">$num</span> ) {<br />&#160; &#160; return explode( <span style="color: green">$delimiter</span> , <span style="color: red">$subject</span> , <span style="color: green">$num</span>);<br />}</p><p>Der Aufruf wäre dann so:</p><p>{<span style="color: red">$string</span>|<span style="color: blue">smarty_explode</span>:<span style="color: green">&#039;,&#039;</span>:<span style="color: green">4</span>}</p><p>Mehr gibt&#039;s dazu meiner Meinung nach eigentlich nicht zu sagen.</p>]]></description>
			<author><![CDATA[dummy@example.com (NaN)]]></author>
			<pubDate>Fri, 11 Nov 2011 14:54:32 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12841#p12841</guid>
		</item>
		<item>
			<title><![CDATA[Dokumentation von Smarty-kompatiblen PHP-Funktionen?]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12835#p12835</link>
			<description><![CDATA[<p>Gibt es irgendwo eine Ansammlung von Smarty-Modifiern, die eigentlich von PHP kommen? Also zB |@shuffle, |strstr, |strpos, |substr, |glob usw?</p><p>Darüber habe ich in der <a href="http://www.smarty.net/docs/en/plugins.modifiers.tpl" rel="nofollow">Smarty Dokumentation</a> nichts gefunden!!</p>]]></description>
			<author><![CDATA[dummy@example.com (nicmare)]]></author>
			<pubDate>Fri, 11 Nov 2011 10:39:07 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=12835#p12835</guid>
		</item>
	</channel>
</rss>
