<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programmieren &#8211; am Röschibach</title>
	<atom:link href="/tags/programmieren/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description></description>
	<lastBuildDate>Wed, 28 Feb 2018 14:39:19 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.0</generator>
	<item>
		<title>Opera Mini und die Bildschirmauflösung</title>
		<link>/2011/10/opera-mini-und-die-bildschirmauflosung/</link>
		<comments>/2011/10/opera-mini-und-die-bildschirmauflosung/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 08:49:22 +0000</pubDate>
		<dc:creator><![CDATA[jule_]]></dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobiltelefon]]></category>

		<guid isPermaLink="false">/?p=1148</guid>
		<description><![CDATA[Für einen grossen Kunden soll eine auf mobile Endgeräte optimierte Version der existierenden Website erstellt werden. Laut den Anforderungen muss die Website auf Safari, dem Android Browser, Opera Mobile und Opera Mini laufen. Die mobile Website ist prinzipiell flexibel aufgebaut, das heisst Elemente werden so breit dargestellt wie der Bildschirm es erlaubt. Gewisse Elemente (beispielsweise [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Für einen grossen Kunden soll eine auf mobile Endgeräte optimierte Version der existierenden Website erstellt werden. Laut den Anforderungen muss die Website auf <em>Safari</em>, dem <em>Android Browser</em>, <em>Opera Mobile</em> und <em>Opera Mini</em> laufen. Die mobile Website ist prinzipiell flexibel aufgebaut, das heisst Elemente werden so breit dargestellt wie der Bildschirm es erlaubt. Gewisse Elemente (beispielsweise ein <em>Sprache-Wechseln</em> <span style="font-family: 'Courier New', Courier, monospace;">div</span>) sind im CSS mit <span style="font-family: 'Courier New', Courier, monospace;">float: right</span> deklariert und werden daher &#8211; egal wie gross die horizontale Auflösung des Endgeräts ist &#8211; am rechten Rand positioniert.</p>
<p>Für Endgeräte mit einer Bildschirmbreite von 240 Pixel oder weniger funktioniert das <span style="font-family: 'Courier New', Courier, monospace;">float: right</span> System konzeptionell nicht, weil dann eine Überlappung der rechts am Rand positionierten Elemente mit dem restlichen Inhalt stattfindet. Aus diesem Grund wird in dem Fall eine weitere CSS Datei <em>mobile240.css</em> geladen, die diese Elemente verkleinert und absolut positioniert.</p>
<p>Zusätzlich wird für Opera Mini ein weiteres CSS <em>mobile240.css</em> geladen, weil in diesem Browser das <a title="externer Link: Opera Mini: web content authoring guidelines" href="http://dev.opera.com/articles/view/opera-mini-web-content-authoring-guidelines/">vertikale Zentrieren mittels der CSS Eigenschaft <span style="font-family: 'Courier New', Courier, monospace;">line-height</span></a> nicht funktioniert. Im Code unten wird das mit Javascript erreicht. Das dient nur zur Veranschaulichung und zur Debug-Ausgabe. Im Produktivsystem wird dies mit <a title="externer Link: Using CSS media queries - MDN" href="https://developer.mozilla.org/en/CSS/Media_queries">CSS Mediaqueries</a> erreicht:</p>
<pre class="brush: xml; gutter: true; tab-size: 4; title: ; notranslate">
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;only screen and (max-device-width: 240px)&quot; href=&quot;css/mobile240.css&quot; /&gt;
</pre>
<p>Das System funktioniert hervorragend, ausser bei <em>Opera Mini</em>.</p>
<p><span id="more-1148"></span></p>
<pre class="brush: xml; gutter: true; tab-size: 4; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
	&lt;title&gt;Opera Mini Test&lt;/title&gt;
	&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[
		function loadCss(cssfile) {
			loadcss = document.createElement('link')
			loadcss.setAttribute('rel', 'stylesheet')
			loadcss.setAttribute('type', 'text/css')
			loadcss.setAttribute('href', 'css/' + cssfile)
			document.getElementsByTagName('head')[0].appendChild(loadcss)
		}

		var status = '';
		var operaMini = (/opera mini/i.test(navigator.userAgent.toLowerCase()));
		if (operaMini) {
			status += 'loading operamini.css&lt;br /&gt;';
			loadCss('mobile_operamini.css');
		}

		screenWidth = screen.width;
		if (screenWidth &lt; '320') {
			status += 'loading mobile240.css&lt;br /&gt;';
			loadCss('mobile240.css');
		}

		status += 'screen values: ' + screen.width + &quot;x&quot; + screen.height + ', ';
		status += window.innerWidth + 'x' + window.innerHeight;
	// ]]&gt;&lt;/script&gt;
	&lt;style type=&quot;text/css&quot;&gt;
	&lt;!--
		body {
			margin: 0px;
			padding: 0px;
		}

		#testcontainer {
			height: 50px;
			width: 320px;
			background: #666666 url('image/debug-width-2.png') 0px 0px no-repeat;
		}
	--&gt;
	&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;div id=&quot;testcontainer&quot;&gt;
		Opera Mini Test
	&lt;/div&gt;
	&lt;div id=&quot;browserinfo&quot;&gt;
	&lt;/div&gt;
	&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[
		document.getElementById('browserinfo').innerHTML = status;
	// ]]&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Opera Mini gibt auf dem <a title="externer Link: Das Samsung Galaxy Ace GT-S5830 im Test - androidapptests.com" href="http://www.androidapptests.com/das-samsung-galaxy-ace-gt-s5830-im-test-die-mittelklasse-muckt-auf.html">Samsung Galaxy Ace GT-S5830</a> Testgerät bei obigem Code folgendes als Ausgabe:</p>
<pre class="brush: plain; gutter: true; tab-size: 4; title: ; notranslate">
loading operamini.css
loading mobile240.css
screen values: 228x245,229x246
</pre>
<p>Das <em>Galaxy Ace</em> hat eine Bildschirmauflösung von 320&#215;480 Pixel, warum liefert <em>Opera Mini</em> als Wert für <span style="font-family: 'Courier New', Courier, monospace;">screen.width</span> 228? Im <a title="externer Link: Opera mini gives wrong screen size through javascript code - Opera Community" href="http://my.opera.com/community/forums/topic.dml?id=140030"><em>Opera Mini</em> Forum</a> wird die gleiche Frage gestellt und vermutet, dass das Verhalten mit der Tatsache zusammenhängt, dass alle via <em>Opera Mini</em> aufgerufenen Seiten auf den Servern von Opera gerendert und dann erst an das mobile Endgerät geschickt werden. Eine Lösung wurde dort aber leider nicht gepostet.</p>
<p><em>Opera Mobile</em> und der <em>Andriod Browser</em> liefern für obigen Code das erwartete Ergebnis. Auch der <a title="externer Link: Opera Mobile Emulator for Desktop - Dev.Opera" href="http://dev.opera.com/articles/view/opera-mobile-emulator/">Opera Mobile Emulator</a> unter Windows liefert sinnvolle Werte:</p>
<p style="text-align: center;"><a href="/wp-content/uploads/2011/10/screenshot-operaemulator-240.png" rel="shadowbox[sbpost-1148];player=img;" title="Screenshot Opera Mobile Emulator 240 Pixel"><img class="aligncenter size-full wp-image-1155 centerfloat" title="Screenshot Opera Mobile Emulator 240 Pixel" src="/wp-content/uploads/2011/10/screenshot-operaemulator-240.png" alt="Screenshot Opera Mobile Emulator 240 Pixel" width="256" height="494" srcset="/wp-content/uploads/2011/10/screenshot-operaemulator-240.png 256w, /wp-content/uploads/2011/10/screenshot-operaemulator-240-155x300.png 155w" sizes="(max-width: 256px) 100vw, 256px" /></a></p>
<p style="text-align: center;"><a href="/wp-content/uploads/2011/10/screenshot-operaemulator-320.png" rel="shadowbox[sbpost-1148];player=img;" title="Screenshot Opera Mobile Emulator 320 Pixel"><img class="aligncenter size-full wp-image-1156 centerfloat" title="Screenshot Opera Mobile Emulator 320 Pixel" src="/wp-content/uploads/2011/10/screenshot-operaemulator-320.png" alt="Screenshot Opera Mobile Emulator 320 Pixel" width="336" height="494" srcset="/wp-content/uploads/2011/10/screenshot-operaemulator-320.png 336w, /wp-content/uploads/2011/10/screenshot-operaemulator-320-204x300.png 204w" sizes="(max-width: 336px) 100vw, 336px" /></a></p>
<p>Ich bin für jeden Lösungsvorschlag dankbar, der mich näher zum Ziel führt zuverlässig zu erkennen, ob bei der Verwendung von <em>Opera Mini</em> das 240er CSS geladen werden muss oder nicht.</p>
]]></content:encoded>
			<wfw:commentRss>/2011/10/opera-mini-und-die-bildschirmauflosung/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress: Alle Beiträge einer Kategorie separat darstellen</title>
		<link>/2011/09/wordpress-alle-beitrage-einer-kategorie-separat-darstellen/</link>
		<comments>/2011/09/wordpress-alle-beitrage-einer-kategorie-separat-darstellen/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 17:01:03 +0000</pubDate>
		<dc:creator><![CDATA[jule_]]></dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">/?p=901</guid>
		<description><![CDATA[Einige werden es vielleicht schon bemerkt haben: Seit einiger Zeit bloggt Martha auch auf diesem Blog. Um unsere Beiträge separat zu halten habe ich für ihre Beiträge eine neue Kategorie &#8222;Martha&#8220; erstellt. Alle Beiträge dieser Kategorie sollen nicht im WordPress Loop (&#8222;The Loop&#8222;) der Hauptseite index.php erscheinen, sondern auf einer extra dafür angelegten Seite. Im [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Einige werden es vielleicht schon bemerkt haben: Seit einiger Zeit bloggt <a title="Neues von Martha" href="http://am.röschiba.ch/martha/">Martha</a> auch auf diesem Blog. Um unsere Beiträge separat zu halten habe ich für ihre Beiträge eine neue Kategorie &#8222;Martha&#8220; erstellt. Alle Beiträge dieser Kategorie sollen nicht im WordPress Loop (&#8222;<a title="externer Link: WordPress Codex The Loop" href="https://codex.wordpress.org/The_Loop">The Loop</a>&#8222;) der Hauptseite <span style="font-family: 'Courier New', Courier, monospace;">index.php</span> erscheinen, sondern auf einer extra dafür angelegten Seite.</p>
<p><span id="more-901"></span>Im ersten Schritt müssen Beiträge mit der Kategorie &#8222;Martha&#8220;, die bei mir die ID 36 hat, im WordPress Loop der <span style="font-family: 'Courier New', Courier, monospace;">index.php</span> ausgeblendet werden. Die ID einer Kategorie kann man beispielsweise erfahren, in dem man im WordPress Admin-Bereich auf <em>Artikel</em> → <em>Kategorien</em> klickt und dann mit der Maus über die gewünschte Kategorie fährt. Der GET-Parameter <span style="font-family: 'Courier New', Courier, monospace;">tag_ID</span> verrät die ID (&#8230;&amp;tag_ID=36&amp;&#8230;).</p>
<p>In der <span style="font-family: 'Courier New', Courier, monospace;">index.php</span> muss dazu nach der <span style="font-family: 'Courier New', Courier, monospace;">have_posts()</span> Bedingung eine Zeile (bei mir Zeile 3, hängt aber natürlich vom verwendeten Template ab) eingefügt werden. Mit dem Parameter <span style="font-family: 'Courier New', Courier, monospace;">cat=-36</span> werden Beiträge der Kategorie 36 ausgeschlossen. Wenn man mehrere Kategorien ausschliessen will kann man nach folgendem Schema beispielsweise zusätzlich die Kategorien 3, 6 und 7 ausschliessen: <span style="font-family: 'Courier New', Courier, monospace;">cat=-36,-3,-6,-7</span>.</p>
<pre class="brush: php; highlight: [3]; html-script: true; tab-size: 4; title: index.php; notranslate">
&lt;?php get_header(); ?&gt;
	&lt;!?php if (have_posts()) : ?&gt;
	    &lt;?php query_posts($query_string . '&amp;cat=-36'); ?&gt;
		&lt;?php while (have_posts()) : the_post(); ?&gt;
		    // Darstellung des Beitrags
		&lt;?php endwhile; ?&gt;
	&lt;?php else : ?&gt;
		// Fehlermeldung, falls das Gesuchte nicht gefunden wurde
	&lt;?php endif; &gt;
	&lt;?php get_sidebar(); &gt;
&lt;?php get_footer(); &gt;
</pre>
<p>Marthas Beiträge sollen auf einer separaten Seite erscheinen, dazu muss erstmal ein Template erstellt werden. Dazu haben ich die <span style="font-family: 'Courier New', Courier, monospace;">index.php</span> meines Templates kopiert und in <span style="font-family: 'Courier New', Courier, monospace;">blogmartha.php</span> umbenannt. Danach habe ich die Datei im Texteditor bearbeitet und den Header (Zeilen 1 bis 5) ergänzt. Ähnlich wie zuvor muss die Query bearbeitet werden (Zeile 10), diesmal wird keine Kategorie ausgeschlossen sondern explizit nur die Beiträge einer Kategorie (ID 36) geladen.</p>
<pre class="brush: php; highlight: [1,2,3,4,5,10]; html-script: true; tab-size: 4; title: blogmartha.php; notranslate">
&lt;?php
/*
Template Name: Blogmartha
*/
?&gt;

&lt;?php get_header(); ?&gt;
	&lt;?php if (have_posts()) : ?&gt;
	    &lt;?php query_posts('cat=36'); ?&gt;
		&lt;?php while (have_posts()) : the_post(); ?&gt;
			// Darstellung des Beitrags
		&lt;?php endwhile; ?&gt;
	&lt;?php else : ?&gt;
		// Fehlermeldung, falls das Gesuchte nicht gefunden wurde
	&lt;?php endif; ?&gt;
	&lt;?php get_sidebar(); ?&gt;
&lt;?php get_footer(); ?&gt;
</pre>
<p>Der Header ist wichtig für die Identifizierung beim Anlegen der Seite. Dazu geht man im WordPress Admin-Bereich auf <em>Seiten</em> → <em>Erstellen</em> und wählt dort im rechten Bereich unter &#8222;Template&#8220; das entsprechende Template (in meinem Fall Blogmartha) aus. Der Inhalt der Seite ist irrelevant, da er nicht dargestellt wird. Als Titel wählt man den in der Navigation gewünschten Titel. Danach publiziert man die Seite.</p>
<p>Als Ergebnis erhält man am WordPress Frontend einen weiteren Eintrag in der Seitennavigation mit dem angegebenen Titel in dem alle Beiträge der eingestellten Kategorie(n) dargestellt werden.</p>
<p>Als zusätzlichen Eye-Catcher habe ich in der Sidebar noch das Plugin/Widget <a title="externer Link: WordPress Plugin Recent Category Posts Widget" href="http://wordpress.org/extend/plugins/category-posts-widget/">Recent Category Posts</a> positioniert in dem die 5 letzten Beiträge der Kategorie &#8222;Martha&#8220; dargestellt werden.</p>
]]></content:encoded>
			<wfw:commentRss>/2011/09/wordpress-alle-beitrage-einer-kategorie-separat-darstellen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Microsoft Consolas als Schriftart zum Programmieren</title>
		<link>/2011/09/microsoft-consolas-als-schriftart-zum-programmieren/</link>
		<comments>/2011/09/microsoft-consolas-als-schriftart-zum-programmieren/#respond</comments>
		<pubDate>Mon, 12 Sep 2011 12:19:50 +0000</pubDate>
		<dc:creator><![CDATA[jule_]]></dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">/?p=722</guid>
		<description><![CDATA[Zufällig hab ich auf dem davblog über die Schriftart Consolas von Microsoft gelesen und beschlossen die Schrift zum Entwickeln im Zend Studio auszuprobieren. Dazu muss man die Schriftart erst bei Microsoft runterladen und installieren. Danach kann man im Zend Studio unter Window → Preferences die Schriftart einstellen. Für meine Zwecke hat es genügt unter General [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>
Zufällig hab ich auf dem <a title="externer Link: Schriftartempfehlung: Consolas - davblog" href="http://www.d-mueller.de/blog/schriftartempfehlung-consolas/">davblog</a> über die Schriftart <a title="externer Link: Wikipedia Microsoft Consolas" href="https://secure.wikimedia.org/wikipedia/de/wiki/Consolas">Consolas</a> von Microsoft gelesen und beschlossen die Schrift zum Entwickeln im Zend Studio auszuprobieren. Dazu muss man die Schriftart erst bei Microsoft <a title="externer Link: Consolas Download auf microsoft.com" href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=17879">runterladen</a> und installieren. Danach kann man im Zend Studio unter <em>Window</em> → <em>Preferences</em> die Schriftart einstellen.
</p>
<p><span id="more-722"></span></p>
<p style="text-align: center;"><a href="/wp-content/uploads/2012/08/preferences-small-2.jpg" rel="shadowbox[sbpost-722];player=img;" title="Screenshot Zend Studio Einstellungen"><img class="aligncenter size-full wp-image-746 centerfloat" title="Screenshot Zend Studio Einstellungen" src="/wp-content/uploads/2012/08/preferences-small-2.jpg" alt="Screenshot Zend Studio Einstellungen" width="620" height="640" srcset="/wp-content/uploads/2012/08/preferences-small-2.jpg 620w, /wp-content/uploads/2012/08/preferences-small-2-290x300.jpg 290w" sizes="(max-width: 620px) 100vw, 620px" /></a></p>
<p style="clear: both;">Für meine Zwecke hat es genügt unter <em>General</em> → <em>Appearance</em> → <em>Colors and Fonts</em> im Bereich &#8222;Basic&#8220; die &#8222;Text Font&#8220; zu ändern. Die Schriftgrösse habe ich nicht geändert, ich finde Consolas ist in Grösse 10 recht gut lesbar.</p>
<p><a href="/wp-content/uploads/2012/08/couriernew.jpg" rel="shadowbox[sbpost-722];player=img;" title="Screenshot: Zend Studio Code-Fenster in der Schriftart 'Courier New'"><img class="aligncenter size-full wp-image-751 centerfloat" title="Screenshot: Zend Studio Code-Fenster in der Schriftart 'Courier New'" src="/wp-content/uploads/2012/08/couriernew-2.jpg" alt="Screenshot: Zend Studio Code-Fenster in der Schriftart 'Courier New'" width="620" height="292" srcset="/wp-content/uploads/2012/08/couriernew-2.jpg 620w, /wp-content/uploads/2012/08/couriernew-2-300x141.jpg 300w" sizes="(max-width: 620px) 100vw, 620px" /></a></p>
<p><a href="/wp-content/uploads/2012/08/consolas.jpg" rel="shadowbox[sbpost-722];player=img;" title="Screenshot: Zend Studio Code-Fenster in der Schriftart 'Consolas'"><img class="aligncenter size-full wp-image-752 centerfloat" title="Screenshot: Zend Studio Code-Fenster in der Schriftart 'Consolas'" src="/wp-content/uploads/2012/08/consolas-2.jpg" alt="Screenshot: Zend Studio Code-Fenster in der Schriftart 'Consolas'" width="620" height="265" srcset="/wp-content/uploads/2012/08/consolas-2.jpg 620w, /wp-content/uploads/2012/08/consolas-2-300x128.jpg 300w" sizes="(max-width: 620px) 100vw, 620px" /></a></p>
<p>Gut finde ich, dass Consolas bei gleicher Schriftgrösse nicht so breit wie Courier New ist und dadurch mehr Code pro Zeile lesbar ist (siehe zum Beispiel Zeile 129 oder Zeile 136 im Code oben). Ausserdem empfinde ich das Schriftbild nun als angenehmer und das Programmieren macht noch mehr Spass.</p>
<p>Kurzum: Ich möchte Consolas nicht mehr missen!</p>
]]></content:encoded>
			<wfw:commentRss>/2011/09/microsoft-consolas-als-schriftart-zum-programmieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smarty Plugin in einem anderen Smarty Plugin aufrufen</title>
		<link>/2011/06/smarty-plugin-in-einem-anderen-smarty-plugin-aufrufen/</link>
		<comments>/2011/06/smarty-plugin-in-einem-anderen-smarty-plugin-aufrufen/#respond</comments>
		<pubDate>Wed, 22 Jun 2011 12:36:39 +0000</pubDate>
		<dc:creator><![CDATA[jule_]]></dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">/?p=412</guid>
		<description><![CDATA[Heute stand ich vor dem relativ trivialen Problem, dass ich die Funktionalität eines Smarty Plugins in einem anderen Smarty Plugin verwenden wollte. Konkret ging es darum ein Plugin zum dynamischen Konstruieren von Dateinamen in einem Plugin zur Darstellung einer Tabellenzeile aufzurufen. Google hat mir bei der Lösung vorerst nicht wirklich geholfen, erst durch Variation des [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Heute stand ich vor dem relativ trivialen Problem, dass ich die Funktionalität eines <a title="externer Link: Smarty PHP Template Engine" href="http://www.smarty.net/">Smarty</a> Plugins in einem anderen Smarty Plugin verwenden wollte. Konkret ging es darum ein Plugin zum dynamischen Konstruieren von Dateinamen in einem Plugin zur Darstellung einer Tabellenzeile aufzurufen.</p>
<p><span id="more-412"></span></p>
<p>
Google hat mir bei der Lösung vorerst nicht wirklich geholfen, erst durch Variation des Suchterms stiess ich schliesslich auf <a title="externer Link: Velvet Blues - Smarty Templates: How To Create Custom Functions" href="http://www.velvetblues.com/web-development-blog/smarty-templates-create-custom-functions/">diesen Beitrag</a>, bei dem in den Kommentaren die Lösung zu finden war:</p>
<pre><pre class="brush: php; tab-size: 4; title: function.load_file.php; notranslate">
function smarty_function_load_file($params, &amp;$smarty) {
    if (empty($params['file'])) {
        $smarty-&gt;trigger_error(&quot;assign: missing 'file' parameter&quot;);
        return;
    }
    else {
        $file = $params['file'];
    }

    // assemble output path here
    // ...

    return $outputPath;
}
</pre>
<p>
Normalerweise wird das load_file plugin im Smarty Template mit folgender Zeile aufgerufen:
</p>
<pre><pre class="brush: xml; tab-size: 4; title: index.inc.tpl; notranslate">
&lt;img src=&quot;{load_file file='path/to/my/file.gif'}&quot; /&gt;
</pre>
<p>
Das folgende Codeschnipsel verwendet die load_file Funktion innerhalb eines anderen Smarty Plugins:
</p>
<pre><pre class="brush: php; highlight: [4,8]; title: function.html_table_row.php; notranslate">
function smarty_function_html_table_row($params, &amp;$smarty) {

    // include the smarty load file plugin
    require_once($smarty-&gt;_get_plugin_filepath('function', 'load_file'));

    // some code skipped

    $returnValue .= '&lt;img src=&quot;' . smarty_function_load_file(array('file' =&gt; 'path/to/my/file.gif'), $smarty) . '&quot; /&gt;';

    // even more skipped code

    return $returnValue;
}
</pre>
<p>
Die Magie passiert in Zeile 4, wo das function.load_file.php Plugin geladen wird, und in Zeile 8, in der die Funktion dann aufgerufen wird. Die Parameter werden in Form eines assoziativen Arrays als erster Parameter übergeben. In meinem Fall übergebe ich &#8218;file&#8216;. Parameter zwei ist das Smarty Objekt, das scheinbar zwingend benötigt wird.</p>
]]></content:encoded>
			<wfw:commentRss>/2011/06/smarty-plugin-in-einem-anderen-smarty-plugin-aufrufen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
