
<?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>Waanser &#187; trucs &amp; astuces</title>
	<atom:link href="http://www.waanser.com/tag/trucs-astuces/feed" rel="self" type="application/rss+xml" />
	<link>http://www.waanser.com</link>
	<description>Un blog utilisant WordPress</description>
	<lastBuildDate>Wed, 07 Jul 2010 21:54:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>smarty boite à outils</title>
		<link>http://www.waanser.com/php/smarty/1035-smarty-boite-a-outils.html</link>
		<comments>http://www.waanser.com/php/smarty/1035-smarty-boite-a-outils.html#comments</comments>
		<pubDate>Fri, 06 Mar 2009 14:56:17 +0000</pubDate>
		<dc:creator>roul</dc:creator>
				<category><![CDATA[Smarty]]></category>
		<category><![CDATA[trucs & astuces]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=1035</guid>
		<description><![CDATA[Smarty est un moteur de template vraiment complet. Il offre en effet un pannel de fonction bien utile. Dans ce tutoriel nous allons voir les trucs et astuces connus et méconnus de smarty. Accéder aux variables globales Nous allons voir ici comment accéder aux constantes smarty très simplement. Les constantes Nous avons définis une constante [...]]]></description>
			<content:encoded><![CDATA[<p>Smarty est un moteur de template vraiment complet. Il offre en effet un pannel de fonction bien utile.<br />
Dans ce tutoriel nous allons voir les trucs et astuces connus et méconnus de smarty.</p>
<h2>Accéder aux variables globales </h2>
<p>Nous allons voir ici comment accéder aux constantes smarty très simplement.</p>
<p><strong><u>Les constantes</u></strong></p>
<p>Nous avons définis une constante comme ceci :</p>
<pre class="brush: php">
 define(&#039;WEB&#039;,           &#039;http://www.waanser.com&#039;);
</pre>
<p>Pour accéder à cette session avec smarty il faut faire appel à {$smarty.const.<em>[nom de la constante]</em>}</p>
<p>cela donne :</p>
<pre class="brush: html">
{$smarty.const.WEB}
</pre>
<p><strong><u>Accéder aux sessions </u></strong></p>
<p>Pour accéder aux sessions c&#8217;est un peu près la même méthode :</p>
<pre class="brush: php">
$_SESSION[&#039;waanser&#039;][&#039;url&#039;]=&#039;www.waanser.com&#039;;
</pre>
<p>En smarty on y accède comme cela :</p>
<pre class="brush: html">
$smarty.session. waanser. url
</pre>
<h2>Les tableaux et smarty</h2>
<p>Vous l&#8217;avez certainement remarqué avec les sessions, l&#8217;accès aux données du tableau ce fait avec le point.</p>
<pre class="brush: php">
$aEcole =
	array(&#039;2007&#039;=&gt;
			array(
				&#039;CM2&#039; =&gt; array(&#039;Marc&#039;, &#039;Maude&#039;, &#039;Sophie&#039;),
				&#039;CM1&#039; =&gt; array(&#039;Roul&#039;, &#039;Tilkc&#039;, &#039;Pauline&#039;)
				),
			&#039;2008&#039;=&gt;
			array(
				&#039;CM2&#039; =&gt; array(&#039;Roul&#039;, &#039;Tilkc&#039;, &#039;Pauline&#039;),
				&#039;CM1&#039; =&gt; array(&#039;Henry&#039;, &#039;Manon&#039;, &#039;Dedeweb&#039;,&#039;Laure&#039;)
				)
			);
</pre>
<p>Dans cet exemple, si l&#8217;on veut accéder aux deuxième élève de la classe de CM2 à l&#8217;année 2008 on va saisir :</p>
<p>{$aEcole.2008.CM2.1}</p>
<p><strong><u>Parcourir un tableau avec la boucle foreach</u></strong></p>
<p>Pour parcourir ce tableau nous allons utiliser la fonction foreach de smarty.</p>
<p>{foreach from=<em>NOM DU TABLEAU</em>   item=<em>INDICE </em>key=<em>CLE</em>}</p>
<p>L&#8217;attribut item et key ne sont pas obligatoires.</p>
<p>Ci-dessous l&#8217;exemple de code qui parcourt tout le tableau aEcole :</p>
<pre class="brush: html">
{foreach from=$aEcole item=aAnnee key=sAnnee}
	{$sAnnee} : &lt;br/&gt;
	{foreach from=$aAnnee item=aClasse key=sClasse}
	&lt;ul&gt;&lt;li&gt;{$sClasse}
		{foreach from=$aClasse item=sEleve}
			&lt;ul&gt;&lt;li&gt;{$sEleve}&lt;/li&gt;&lt;/ul&gt;
		{/foreach}
	&lt;/li&gt;&lt;/ul&gt;
	{/foreach}
{/foreach}
</pre>
<p><strong><u>Un compteur avec smarty</u></strong></p>
<p>Si vous avez besoin de mettre un compteur dans votre page, smarty offre la possibilité d&#8217;utiliser des compteurs avec la fonction <strong>{counter}</strong></p>
<p>{counter name=<em>NOM DU COMPTEUR</em> start=<em>POSITION DE DEPART</em> skip=<em>INCREMENT</em> assign=<em>VARIABLE ASSIGNE</em>}</p>
<p>Dans notre exemple, nous allons afficher le nombre d&#8217;élève pour chaque classe.</p>
<pre class="brush: html">
{foreach from=$aEcole item=aAnnee key=sAnnee}
	{$sAnnee} : &lt;br/&gt;
	{foreach from=$aAnnee item=aClasse key=sClasse}
	&lt;ul&gt;&lt;li&gt;{$sClasse}
	{counter name=cCompt start=0 skip=1 assign=iNbEleve}
		{foreach from=$aClasse item=sEleve}
			{counter name=cCompt}
			&lt;ul&gt;&lt;li&gt;{$sEleve}&lt;/li&gt;&lt;/ul&gt;
		{/foreach}
		&lt;ul&gt;nombre d&#039;élève : {$iNbEleve}&lt;/ul&gt;
	&lt;/li&gt;&lt;/ul&gt;
	{/foreach}
{/foreach}
</pre>
<p>Comme vous le voyez à chaque fois que l&#8217;on fait appel à <strong>{counter name=cCompt}</strong> le compteur va s&#8217;incrémenter de 1.</p>
<p>Voila, vous connaissez les fonctions essentielles de smarty. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/php/smarty/1035-smarty-boite-a-outils.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

