<?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>Yet another blog about PHP, HTML and CSS &#187; Smarty</title>
	<atom:link href="http://blog.pepa.info/php-html-css/category/smarty/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.pepa.info</link>
	<description>Petr 'PePa' Pavel</description>
	<lastBuildDate>Thu, 19 Aug 2010 18:17:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How to concatenate two object attributes and assign the result to a variable</title>
		<link>http://blog.pepa.info/php-html-css/programming-techniques/how-to-concatenate-two-object-attributes-and-assign-the-result-to-a-variable/</link>
		<comments>http://blog.pepa.info/php-html-css/programming-techniques/how-to-concatenate-two-object-attributes-and-assign-the-result-to-a-variable/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 18:21:25 +0000</pubDate>
		<dc:creator>Petr 'PePa' Pavel</dc:creator>
				<category><![CDATA[Programming Techniques]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://blog.pepa.info/2008/03/smarty/how-to-concatenate-two-object-attributes-and-assign-the-result-to-a-variable/</guid>
		<description><![CDATA[All right, this is really no rocket science it&#8217;s just something I needed and took me some time to figure out. &#123;assign var=&#34;fullName&#34; value=&#34;`$human-&#62;first` `$human-&#62;last`&#34;&#125; or more robust version: &#123;capture assign=&#34;fullName&#34;&#125; &#123;$human-&#62;first&#125; &#123;$human-&#62;last&#125; &#123;/capture&#125;]]></description>
			<content:encoded><![CDATA[<p>All right, this is really no rocket science it&#8217;s just something I needed and took me some time to figure out.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span><a href="http://smarty.php.net/assign"><span class="kw3">assign</span></a> var=<span class="st0">&quot;fullName&quot;</span> <span class="kw6">value</span>=<span class="st0">&quot;`$human-&gt;first` `$human-&gt;last`&quot;</span><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>or more robust version:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span><a href="http://smarty.php.net/capture"><span class="kw1">capture</span></a> <a href="http://smarty.php.net/assign"><span class="kw3">assign</span></a>=<span class="st0">&quot;fullName&quot;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span>$human-&gt;first<span class="br0">&#125;</span> <span class="br0">&#123;</span>$human-&gt;last<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span>/capture<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.pepa.info/php-html-css/programming-techniques/how-to-concatenate-two-object-attributes-and-assign-the-result-to-a-variable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Date formatting in Smarty</title>
		<link>http://blog.pepa.info/php-html-css/programming-techniques/date-formatting-in-smarty/</link>
		<comments>http://blog.pepa.info/php-html-css/programming-techniques/date-formatting-in-smarty/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 21:23:44 +0000</pubDate>
		<dc:creator>Petr 'PePa' Pavel</dc:creator>
				<category><![CDATA[Programming Techniques]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://blog.pepa.info/2007/09/programming-techniques/date-formatting-in-smarty/</guid>
		<description><![CDATA[If you use the so called, German date format (day of month. month. year) you may have wondered how to achieve it with Smarty &#8211; without the leading zeroes for month. You all know the common way to format date in Smarty: &#123;$myDate&#124;date_format:&#34;%e. %m. %Y&#34;&#125; If you ever wanted to have month number without the [...]]]></description>
			<content:encoded><![CDATA[<p>If you use the so called, German date format (day of month. month. year) you may have wondered how to achieve it with Smarty &#8211; without the leading zeroes for month.<br />
<span id="more-11"></span><br />
You all know the common way to format date in Smarty:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span>$myDate|date_format:<span class="st0">&quot;%e. %m. %Y&quot;</span><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>If you ever wanted to have month number without the leading zeroes, here&#8217;s how:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span>$myDate|date_format:<span class="st0">&quot;%e. %#m. %Y&quot;</span><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>or even a cooler way:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span><a href="http://smarty.php.net/assign"><span class="kw3">assign</span></a> var=<span class="st0">&quot;myDateTimestamp&quot;</span> <span class="kw6">value</span>=$myDate|strtotime<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span><span class="st0">&quot;j. n. Y&quot;</span>|date:$myDateTimestamp<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>(because you can use almost any PHP function as Smarty variable modifier, just solve the parameters-order problem)</p>
<p><strong>Question</strong></p>
<p>Got any better solution? Tell me about it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pepa.info/php-html-css/programming-techniques/date-formatting-in-smarty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to report messages to user</title>
		<link>http://blog.pepa.info/php-html-css/programming-techniques/how-to-report-messages-to-user/</link>
		<comments>http://blog.pepa.info/php-html-css/programming-techniques/how-to-report-messages-to-user/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 10:21:45 +0000</pubDate>
		<dc:creator>Petr 'PePa' Pavel</dc:creator>
				<category><![CDATA[Programming Techniques]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://blog.pepa.info/2007/09/uncategorized/how-to-report-messages-to-user/</guid>
		<description><![CDATA[In the course of executing a program you need to report errors / success messages to the user. But you don&#8217;t want to mix your code with HTML, right? (A quick explanation on separating presentation from business / data logic.) So here&#8217;s what I use: class MessageStack &#123; var $_stack = array&#40;&#41;; &#8230; /** * [...]]]></description>
			<content:encoded><![CDATA[<p>In the course of executing a program you need to report errors / success messages to the user. But you don&#8217;t want to mix your code with HTML, right? (A <a target="_blank" href="http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=21">quick explanation on separating presentation from business / data logic</a>.)</p>
<p>So here&#8217;s what I use:<br />
<span id="more-9"></span></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">class</span> MessageStack <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> <span class="re0">$_stack</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&#8230;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/**</span></div>
</li>
<li class="li2">
<div class="de2"><span class="coMULTI">* Factory function, ensures that</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">* MessageStack is a singleton</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">*/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> create<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&#8230;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> add<span class="br0">&#40;</span><span class="re0">$type</span>, <span class="re0">$text</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span>-&gt;_stack<span class="br0">&#91;</span><span class="re0">$type</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="re0">$text</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/**</span></div>
</li>
<li class="li2">
<div class="de2"><span class="coMULTI">* Returns stack contents</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">*/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> get<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">return</span> <span class="re0">$this</span>-&gt;_stack;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>When I want to report something I call:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$messageStack</span> = MessageStack::<span class="me2">create</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$messageStack</span>-&gt;<span class="me1">add</span><span class="br0">&#40;</span><span class="st0">&#8216;ok&#8217;</span>, <span class="st0">&#8216;Record saved.&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Then in your main file you run this:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$messageStack</span> = MessageStack::<span class="me2">create</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$smarty</span>-&gt;<span class="me1">assign</span><span class="br0">&#40;</span><span class="st0">&quot;messages&quot;</span>, <span class="re0">$messageStack</span>-&gt;<span class="me1">get</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Include this into template (preferably the part that is included into every template):</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span><a href="http://smarty.php.net/foreach"><span class="kw1">foreach</span></a> <span class="kw6">from</span>=$messages <span class="kw6">key</span>=type <span class="kw6">item</span>=messagesType<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span><a href="http://smarty.php.net/section"><span class="kw1">section</span></a> <span class="kw6">name</span>=pc <span class="kw6">loop</span>=$messagesType<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&lt;div class=&quot;message <span class="br0">&#123;</span>$type<span class="br0">&#125;</span>&quot;&gt;<span class="br0">&#123;</span>$messagesType<span class="br0">&#91;</span>pc<span class="br0">&#93;</span><span class="br0">&#125;</span>&lt;/div&gt;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span>/section<span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#123;</span>/foreach<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>And then in css, define all message types:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re1">.message</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">font-weight</span>: <span class="kw2">bold</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">padding</span>: <span class="re3">5px</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="re1">.critical</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">background-color</span>: <span class="kw1">black</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">padding</span>: <span class="re3">2px</span> <span class="re3">5px</span> <span class="re3">3px</span> <span class="re3">5px</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">margin</span>: <span class="re3">3px</span> <span class="re3">0px</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><strong>Question</strong></p>
<p>Do you use something like this or something more clever? Share your wisdom :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pepa.info/php-html-css/programming-techniques/how-to-report-messages-to-user/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
