<?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>Blog d&#039;un WebActeur ! &#187; Astuces et Tutoriaux</title>
	<atom:link href="http://webacteur.fr/category/archives/tutoriaux/feed/" rel="self" type="application/rss+xml" />
	<link>http://webacteur.fr</link>
	<description>Bertrand Soulier, webacteur depuis 1996</description>
	<lastBuildDate>Fri, 30 Jul 2010 21:38:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Insérer le bouton Facebook &#171;&#160;Like&#160;&#187; dans Spip en 2 minutes</title>
		<link>http://webacteur.fr/2010/04/24/inserer-le-bouton-facebook-like-dans-spip-en-2-minutes/</link>
		<comments>http://webacteur.fr/2010/04/24/inserer-le-bouton-facebook-like-dans-spip-en-2-minutes/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 11:13:50 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[spip]]></category>

		<guid isPermaLink="false">http://webacteur.fr/?p=2409</guid>
		<description><![CDATA[Facebook permet désormais d&#8217;insérer un bouton &#171;&#160;I Like&#160;&#187; sur n&#8217;importe quelle page de son site. L&#8217;intégration est ultra-simplissime et se fait en deux minutes. Voici comment l&#8217;ajouter sur un site réalisé avec Spip.
Pas besoin de plugin, il vous suffit d&#8217;ajouter dans le squelette article.html le code suivant :

1
&#60;iframe src=&#34;http://www.facebook.com/plugins/like.php?href=[(#URL_ARTICLE&#124;url_absolue&#124;urlencode)]&#38;layout=standard&#38;show_faces=true&#38;width=125&#38;action=like&#38;colorscheme=light&#34; scrolling=&#34;no&#34; frameborder=&#34;0&#34; allowTransparency=&#34;true&#34; style=&#34;border:none; overflow:hidden; width:125px; [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>F<a href="http://webacteur.fr/wp-content/uploads/2010/04/exemple-ilike.png"><img class="size-medium wp-image-2410 alignright" title="exemple-ilike" src="http://webacteur.fr/wp-content/uploads/2010/04/exemple-ilike-300x67.png" alt="" width="300" height="67" /></a>acebook permet désormais d&#8217;insérer <a href="http://developers.facebook.com/docs/reference/plugins/like">un bouton &laquo;&nbsp;I Like&nbsp;&raquo; sur n&#8217;importe quelle page de son site</a>. L&#8217;intégration est ultra-simplissime et se fait en deux minutes. Voici comment l&#8217;ajouter sur un site réalisé avec Spip.</p>
<p>Pas besoin de plugin, il vous suffit d&#8217;ajouter dans le squelette article.html le code suivant :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=[(#URL_ARTICLE|url_absolue|urlencode)]&amp;layout=standard&amp;show_faces=true&amp;width=125&amp;action=like&amp;colorscheme=light&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; allowTransparency=&quot;true&quot; style=&quot;border:none; overflow:hidden; width:125px; height:px&quot;&gt;&lt;/iframe&gt;</pre></td></tr></table></div>

<p>Il faut bien entendu ajouter ce bout  de code à l&#8217;intérieur d&#8217;une boucle article pour que cela fonctionne.</p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2010/04/24/inserer-le-bouton-facebook-like-dans-spip-en-2-minutes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mettre à jour le statut de sa page Facebook automatiquement</title>
		<link>http://webacteur.fr/2009/09/26/mettre-a-jour-le-statut-de-sa-page-facebook-automatiquement/</link>
		<comments>http://webacteur.fr/2009/09/26/mettre-a-jour-le-statut-de-sa-page-facebook-automatiquement/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 15:58:00 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>
		<category><![CDATA[conseils]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[hellotxt]]></category>
		<category><![CDATA[ping.fm]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://webacteur.fr/2009/09/26/mettre-a-jour-le-statut-de-sa-page-facebook-automatiquement/</guid>
		<description><![CDATA[Facebook est une formidable source de trafic pour les blogueurs et webmasters. Sur Cyberbougnat.net, Facebook est ainsi devenu la troisième source de trafic, loin derrière Google, mais quasiment au même niveau que Google Actualités.
Encore faut-il parvenir à faire des liens de la bonne manière. Ce qui permet d&#8217;apporter du trafic, c&#8217;est de partager le lien [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Facebook est une formidable source de trafic pour les blogueurs et webmasters. Sur <a href="http://www.cyberbougnat.net">Cyberbougnat.net</a>, Facebook est ainsi devenu la troisième source de trafic, loin derrière Google, mais quasiment au même niveau que Google Actualités.</p>
<p>Encore faut-il parvenir à faire des liens de la bonne manière. Ce qui permet d&#8217;apporter du trafic, c&#8217;est de partager le lien via son statut sur son mur. Facebook rend l&#8217;URL cliquable automatiquement et renvoie directement vers le site. Beaucoup plus pratique que l&#8217;import de RSS prévu dans l&#8217;application Notes qui ne fait qu&#8217;importer les articles. L&#8217;internaute lira de ce fait votre billet dans Facebook et ne viendra que rarement sur vos pages.</p>
<h3>Combiner les services</h3>
<p>Il est assez simple d&#8217;automatiser la mise à jour de ce statut en se basant sur les flux RSS. L&#8217;idée est de combiner deux services complémentaires :</p>
<ul>
<li><b><span style="font-weight: normal;"><b><a href="http://webacteur.fr/wp-content/uploads/2009/09/hellotxt.png"><img src="http://webacteur.fr/wp-content/uploads/2009/09/hellotxt-tm.jpg" width="150" height="43" alt="Capture d’écran 2009-09-26 à 17.50.44.png" style="float:right;" /></a><a href="http://ping.fm/">Ping.fm</a> ou <a href="http://hellotxt.com">HelloTxt</a></b> : Ces deux services vous permettent de publier un statut sur bon paquet de services sociaux : Facebook, Twitter, Plurk, FriendFeed et bien d&#8217;autres. Une bonne centaine chacun. Une fois inscrit, vous paramétrez vos services et pouvez publier vos statuts en même temps très rapidement.</span></b></li>
</ul>
<ul>
<li><b><a href="http://twitterfeed.com/">Twitterfeed</a></b> : A l&#8217;origine, ce service est destiné à la mise à jour automatique d&#8217;un compte Twitter depuis un flux RSS. Petit à petit, le service s&#8217;est étoffé et peut publier vers d&#8217;autres services et notamment HelloTxt et Ping.fm. Dans la pratique, Twitterfeed vérifie votre flux RSS à intervalle régulier et demande à Ping.fm ou HelloTxt de mettre à jours vos réseaux sociaux.</li>
</ul>
<p>Cette méthode fonctionne bien, mais dans le cas de Facebook elle a longtemps été limité à la mise des statuts des comptes. Facebook ne permettait en effet pas la mise à jour du statut d&#8217;une page. On devait alors se contenter de l&#8217;import de Notes dans Facebook ou essayer de se débrouiller avec quelques applis au comportement aléatoire.</p>
<p>Cette limitation expliquait aussi pourquoi nous étions un paquet à avoir créé un compte pour notre site avec une mise à jour automatique du statut. Toutefois c&#8217;est peu pratique, normalement interdit par Facebook et limité à 5000 amis.</p>
<p>Mais les choses évoluent et Facebook a palié ce problème. <b>On peut désormais mettre à jour le statut d&#8217;une page</b> via les api et applications tiers. Bonne nouvelle, HelloTxt et Ping.fm ont tous les deux intégré cette possibilité.</p>
<h3>Mon choix : Ping.fm</h3>
<p>Utilisant HelloTxt depuis quelques temps j&#8217;ai d&#8217;abord essayé d&#8217;ajouter cette solution. HelloTxt avait pris un peu d&#8217;avance dans ses fonctionnalités. Hélas, le lien avec Facebook ne semble pas très au point pour l&#8217;instant et l&#8217;application par laquelle tout passe est un peu obscure. Je n&#8217;ai ainsi pas réussi à la faire fonctionner correctement ni à paramétrer exactement comme je le voulais. Elle publiait sur mon profil et non sur ma page ou alors ne publiait plus du tout.</p>
<p>La solution Ping.fm est elle bien plus aboutie et fonctionne parfaitement. Surtout son paramétrage est bien plus simple et se passe directement sur le site de Ping.fm. Il suffit de lui indiquer vos identifiants et Ping vous affiche ensuite votre compte et les pages que vous administrez. On peut difficilement faire plus rapide.</p>
<p>Note : Twitterfeed vous demandera pour poster sur HelloTxt et Ping.fm de lui indiquer votre API KEY. Pas forcément simple à trouver voici le lien direct pour <a href="http://ping.fm/key/">Ping.fm</a> et <a href="http://hellotxt.com/settings/api">HelloTxt</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2009/09/26/mettre-a-jour-le-statut-de-sa-page-facebook-automatiquement/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Pourquoi Frédéric Lefebvre ne sera pas secrétaire d&#8217;Etat de l&#8217;économie numérique</title>
		<link>http://webacteur.fr/2009/01/13/pourquoi-frederic-lefebvre-ne-sera-pas-secretaire-detat-de-leconomie-numerique/</link>
		<comments>http://webacteur.fr/2009/01/13/pourquoi-frederic-lefebvre-ne-sera-pas-secretaire-detat-de-leconomie-numerique/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 10:58:24 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>
		<category><![CDATA[Pensées webiques]]></category>
		<category><![CDATA[Frédéric Lefebvre]]></category>
		<category><![CDATA[Humour]]></category>
		<category><![CDATA[Politique]]></category>

		<guid isPermaLink="false">http://webacteur.fr/2009/01/13/pour-frederic-lefebvre-ne-sera-pas-secretaire-detat-de-leconomie-numerique/</guid>
		<description><![CDATA[Et bien tout simplement parce que je l&#8217;ai kidnappé&#8230; dans Facebook. Je trouve l&#8216;application Kidnappeur en série un peu débile, mais elle au moins servi à quelque chose. Notez toutefois que je me suis refusé pour l&#8217;instant à le torturer comme le permet l&#8217;application. Notez aussi que personne n&#8217;est venu le libérer, y compris des [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img src="http://webacteur.fr/wp-content/uploads/2009/01/lefebvre.png" width="111" height="105" alt="Lefebvre.png" style="float:right;" />Et bien tout simplement parce que je l&#8217;ai kidnappé&#8230; dans Facebook. Je trouve l<a href="http://apps.facebook.com/kidnappeur/">&#8216;application Kidnappeur en série</a> un peu débile, mais elle au moins servi à quelque chose. Notez toutefois que je me suis refusé pour l&#8217;instant à le torturer comme le permet l&#8217;application. Notez aussi que personne n&#8217;est venu le libérer, y compris des gens de droite que j&#8217;ai dans mes amis facebook.</p>
<p>Je crois que je vais attendre la nomination du secrétaire d&#8217;Etat au développement de l&#8217;économie numérique pour le libérer. D&#8217;ailleurs <a href="http://www.numerama.com/magazine/11667-Economie-numerique-Devedjian-plutot-que-Lefebvre.html">on annonce Devedjan à ce poste</a>. Je n&#8217;aime pas particulièrement ce bonhomme mais cela me semble plus cohérent que Lefebvre.</p>
<p>Tout cela n&#8217;est bien sûr qu&#8217;une petite blague&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2009/01/13/pourquoi-frederic-lefebvre-ne-sera-pas-secretaire-detat-de-leconomie-numerique/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thèmes wordpress : osez le changement de couleurs</title>
		<link>http://webacteur.fr/2008/12/09/themes-wordpress-osez-le-changement-de-couleurs/</link>
		<comments>http://webacteur.fr/2008/12/09/themes-wordpress-osez-le-changement-de-couleurs/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 06:26:14 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webacteur.fr/2008/12/09/themes-wordpress-osez-le-changement-de-couleurs/</guid>
		<description><![CDATA[Si vous avez du mal pour trouver votre thème Wordpress, envisagez la solution de la personnalisation et notamment du changement de couleurs. Par exemple un thème comme Dilectio est très bien organisé et proportionné mais vous n&#8217;aimez peut être pas les couleurs. Personnalisez le en modifiant quelques images et vous voilà avec un thème à [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Si vous avez du mal pour trouver votre thème Wordpress, envisagez la solution de la personnalisation et notamment du changement de couleurs. Par exemple <a href="http://wp-themes.designdisease.com/testrun/">un thème comme Dilectio</a> est très bien organisé et proportionné mais vous n&#8217;aimez peut être pas les couleurs. Personnalisez le en modifiant quelques images et vous voilà avec un thème à votre goût sans avoir besoin de tout réinventer. Exemple réussi avec le <a href="http://www.paulcarr.com/">blog de Paul Car</a>r qui a adapté le fameux Dilectio.</p>
<p><img src="http://webacteur.fr/wp-content/uploads/2008/12/dilecto.jpg" width="520" height="310" alt="Dilectio thème adapté" class="frame" /></p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2008/12/09/themes-wordpress-osez-le-changement-de-couleurs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faire une sonnerie pour iPhone c&#8217;est facile&#8230;</title>
		<link>http://webacteur.fr/2008/11/12/faire-une-sonnerie-pour-iphone-cest-facile/</link>
		<comments>http://webacteur.fr/2008/11/12/faire-une-sonnerie-pour-iphone-cest-facile/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 07:18:22 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://webacteur.fr/2008/11/12/faire-une-sonnerie-pour-iphone-cest-facile/</guid>
		<description><![CDATA[J&#8217;ai voulu ce week-end personnaliser un tout petit peu mon iPhone avec une sonnerie personnalisée. Rien de compliqué, juste un petit bout d&#8217;une chanson de Brad Sucks que j&#8217;avais en mp3 et qui se trouve dans mon iTunes et dans mon iPhone. Pas besoin d&#8217;acheter une sonnerie pour ça.
Alors voici la technique qui est très [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>J&#8217;ai voulu ce week-end personnaliser un tout petit peu mon iPhone avec une sonnerie personnalisée. Rien de compliqué, juste un petit bout d&#8217;une chanson de <a href="http://www.bradsucks.net/">Brad Sucks</a> que j&#8217;avais en mp3 et qui se trouve dans mon iTunes et dans mon iPhone. Pas besoin d&#8217;acheter une sonnerie pour ça.</p>
<p>Alors voici la technique qui est très simple :</p>
<ol>
<li><strong>Ouvrez</strong> votre mp3 avec un éditeur audio comme <a href="http://audacity.sourceforge.net/">Audacity</a>.</li>
<li>Prenez les <strong>30 secondes maxi</strong> qui vous intéresse et enregistrez votre mp3</li>
<li>Maintenant ouvrez votre mp3 avec <strong>Quicktime</strong></li>
<li><strong><span style="font-weight: normal;"><strong>Exportez le au format iPhon</strong>e. Vous obtenez ainsi un joli fichier avec une extension m4v.</span></strong></li>
<li><strong><span style="font-weight: normal;">Remplacez <strong>l&#8217;extension</strong> m4v par <strong>m4r</strong> (ça doit être le r de ringtone)</span></strong></li>
<li><strong><span style="font-weight: normal;"><strong>Double cliquez</strong> sur ce nouveau fichier, ça va l&#8217;ajouter dans vos sonnerie dans iTunes.</span></strong></li>
<li><strong><span style="font-weight: normal;"><strong>Synchronisez</strong> votre iPhone et vous maintenant allez dans les options pour la choisir en sonnerie générale ou pour un contact.</span></strong></li>
</ol>
<p>Simple non ?! Maintenant, par comparaison voici la méthode Nokia :</p>
<ol>
<li>Dans votre téléphone allez sur la liste des titres mp3. Faites Option &gt; Définir comme sonnerie. Et voilà&#8230;</li>
</ol>
<p>Comme quoi, chez Apple ce sont les rois de l&#8217;ergonomie sauf quand ça pourrait les empêcher de gagner de l&#8217;argent&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2008/11/12/faire-une-sonnerie-pour-iphone-cest-facile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Solutions pour les problèmes avec une clé 3G SFR et Eee-PC</title>
		<link>http://webacteur.fr/2008/08/15/solutions-pour-les-problemes-avec-une-cle-3g-sfr-et-eee-pc/</link>
		<comments>http://webacteur.fr/2008/08/15/solutions-pour-les-problemes-avec-une-cle-3g-sfr-et-eee-pc/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 14:59:10 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>
		<category><![CDATA[3f]]></category>
		<category><![CDATA[eee-pc]]></category>
		<category><![CDATA[eeepc]]></category>
		<category><![CDATA[sfr]]></category>

		<guid isPermaLink="false">http://webacteur.fr/?p=1640</guid>
		<description><![CDATA[Assez curieusement, hier ma clé 3G SFR a cessé de fonctionner sur EEE-PC sous Xandros. Quand je la branchais, la clé clignotait, le logiciel démarrait bien mais sans demander le code PIN de la clé. Plusieurs redémarrages furent inutiles et je me suis donc même en quête d&#8217;une solution. En fait j&#8217;en ai trouvé deux [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Assez curieusement, hier ma clé 3G SFR a cessé de fonctionner sur EEE-PC sous Xandros. Quand je la branchais, la clé clignotait, le logiciel démarrait bien mais sans demander le code PIN de la clé. Plusieurs redémarrages furent inutiles et je me suis donc même en quête d&#8217;une solution. En fait j&#8217;en ai trouvé deux : recréer une connexion ou faire un reset.</p>
<p><strong>Recréer la connexion</strong></p>
<ol>
<li>Branchez la clé sur l&#8217;EEE-PC.</li>
<li>Dans l&#8217;onglet  internet, allez dans Réseau (ou connexion réseau) et cliquez sur <em>Créer&#8230;</em></li>
<li>Choisissez GSM / 3G (UMTS) / HSDPA</li>
<li>Sélectionnez ensuite le modem <em>huawei</em></li>
<li>Il vous demande ensuite le code PIN de la clé. N&#8217;oubliez pas de cocher la case <em>&laquo;&nbsp;Mémoriser&nbsp;&raquo;</em></li>
<li>Cliquez ensuite sur Rechercher et choisissez le réseau SFR. Essayez plusieurs fois si ça ne marche pas.</li>
<li>Cliquez sur suivant et choisissez <em>France &#8211; SFR</em> comme opérateur</li>
<li>Sur l&#8217;écran suivant APN devrait être <em>websfr.</em> Je ne sais pas si ça marche avec ce websfr, mais vous pouvez aussi mettre <em>slsfr</em> qui marche bien. Supprimez le nom d&#8217;utilisateur et le mot de passe</li>
<li>Cliquez sur <em>Terminer</em> pour enregistrer votre connexion.</li>
</ol>
<p>La connexion est maintenant créée et il vous suffit d&#8217;aller dans Réseau et de sélectionner la connexion pour vous connecter. Je me suis rendu compte par contre que cela ne marchait parfois pas si le logiciel Asus était démarré.</p>
<p><strong>Reset de l&#8217;Eee-Pc</strong></p>
<p>La première méthode marche pas mal mais le logiciel Asus continuait de s&#8217;afficher pour rien. De plus je trouve le logiciel Asus plus pratique. J&#8217;ai donc opté pour un reset total qui est d&#8217;une simplicité redoutable.</p>
<ol>
<li>Pendant le démarrage de l&#8217;Eee-PC appuyez sur la <em>touche F9</em> au moment où s&#8217;affiche un premier écran Eee-PC (celui qui vous donne les commandes pour aller dans le Bios).</li>
<li>Choisissez &#8216;<em>Reset Factory Settings</em>&#8216;</li>
<li>Tapez <em>Yes</em> quand il vous le demande</li>
</ol>
<p>Vous obtenez un Eee-PC tout neuf. Attention donc de sauvegarder vos données personnelles avant. La première fois j&#8217;ai essayé en ayant la clé branchée. Cependant l&#8217;outil s&#8217;était affiché au même moment que les écrans Asus demandant mon nom et mon mot de passe et impossible de faire disparaître l&#8217;outil de connexion. J&#8217;ai recommencé sans la clé et ça a marché aussi.</p>
<p>Voilà deux astuces qui vous éviteront de passer du temps pour rien avec la Hotline SFR et vous permettront de retrouver votre connexion.</p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2008/08/15/solutions-pour-les-problemes-avec-une-cle-3g-sfr-et-eee-pc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Synchroniser un Pocket PC et Thunderbird ? C&#8217;est possible !</title>
		<link>http://webacteur.fr/2006/10/08/synchroniser-un-pocket-pc-et-thunderbird-cest-possible/</link>
		<comments>http://webacteur.fr/2006/10/08/synchroniser-un-pocket-pc-et-thunderbird-cest-possible/#comments</comments>
		<pubDate>Sun, 08 Oct 2006 21:00:00 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>

		<guid isPermaLink="false">http://www.bertrand-soulier.com/2006/10/08/synchroniser-un-pocket-pc-et-thunderbird-cest-possible/</guid>
		<description><![CDATA[Voici un logiciel qui risque de vite devenir indispensable pour moi si j&#8217;arrive à le faire marcher à 100%. Pour l&#8217;instant je ne pouvais synchroniser mes contacts de mon téléphone Pocket PC qu&#8217;avec Outlook. Normal dans la logique Microsoft mais peu pratique car sur mon ordinateur je n&#8217;utilise pas Outlook mais Thunderbird pour tout ce [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Voici un logiciel qui risque de vite devenir indispensable pour moi si j&#8217;arrive à le faire marcher à 100%. Pour l&#8217;instant je ne pouvais synchroniser mes contacts de mon téléphone Pocket PC qu&#8217;avec Outlook. Normal dans la logique Microsoft mais peu pratique car sur mon ordinateur je n&#8217;utilise pas Outlook mais Thunderbird pour tout ce qui est messagerie. Je me retrouvais donc avec des listes de contacts différentes et j&#8217;étais obligé d&#8217;aller piocher dans Outlook des adresses pour écrire sous Thunderbird.</p>
<p>Et c&#8217;est là que <a href="http://www.mozilla.org/projects/calendar/lightning/">BirdieSync</a> constitue une petite révolution attendue depuis longtemps pour ma part. Il permet en effet d&#8217;ajouter une synchro entre Pocket Outlook et Thunderbird. Mieux il supporte aussi en principe <a href="http://www.mozilla.org/projects/calendar/lightning/">Lightning</a> qui est la solution de calendrier pour ThunderBird. Là je dis en principe car cela n&#8217;a pas marché pour moi.</p>
<p>BirdieSync n&#8217;est pas gratuit, mais son prix de 20 ? n&#8217;est finalement pas très élevé comparé à nombre de logiciels pour Pocket PC qui sont inutiles et surtout par rapport au service rendu.</p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2006/10/08/synchroniser-un-pocket-pc-et-thunderbird-cest-possible/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Convertir des fichiers amr</title>
		<link>http://webacteur.fr/2006/06/26/convertir-des-fichiers-amr/</link>
		<comments>http://webacteur.fr/2006/06/26/convertir-des-fichiers-amr/#comments</comments>
		<pubDate>Mon, 26 Jun 2006 08:41:11 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>

		<guid isPermaLink="false">http://www.bertrand-soulier.com/2006/06/26/convertir-des-fichiers-amr/</guid>
		<description><![CDATA[Les fichiers amr sont des fichiers sons utilisés sur des téléphones portables (Nokia, Sony Ericsson par exemple). Par exemple sur le Nokia 6111 dispose d&#8217;une fonction d&#8217;enregistrement qui stocke les fichiers en .amr.
Pour les lire une fois rapatriés sur un PC pas de problème : Winamp sait faire, Real Player aussi une fois qu&#8217;il a [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Les fichiers amr sont des fichiers sons utilisés sur des téléphones portables (Nokia, Sony Ericsson par exemple). Par exemple sur le <a href="http://www.nokia.fr/index.php?content_id=6365&#038;increment=1">Nokia 6111</a> dispose d&#8217;une fonction d&#8217;enregistrement qui stocke les fichiers en .amr.</p>
<p>Pour les lire une fois rapatriés sur un PC pas de problème : Winamp sait faire, Real Player aussi une fois qu&#8217;il a récupéré les codecs sur internet. Seulement moi j&#8217;avais besoin de reprendre le fichier, le redécouper et le mixer avec un mp3 sous <a href="http://audacity.sourceforge.net/">Audacity</a> et en faire un petit podcast.<br />
Je n&#8217;ai pas trouvé la bonne manipulation sous Audacity pour le faire ou en tout cas pas le bon paramètre avec Raw Import. J&#8217;ai ensuite d&#8217;abord essayé le logiciel <a href="http://www.nch.com.au/switch/">Switch</a>. Ce logiciel est normalement capable de convertir pas mal de formats en mp3 mais là il n&#8217;a pas réussi.</p>
<p>J&#8217;ai donc cherché un spécialiste du format et j&#8217;ai trouvé chez <a href="http://www.miksoft.net/mobileMediaConverter.htm">Miksoft Mobile Media Converter</a>. Une fois installé rien de plus simple, vous lui indiquez le fichier .amr et lui transforme ça en mp3. Simple et efficace !! A noter que le logiciel sait aussi faire l&#8217;inverse et qu&#8217;il sait aussi faire les même choses pour le format vidéo 3GP <img src='http://webacteur.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2006/06/26/convertir-des-fichiers-amr/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Templates : configurer Dreamweaver MX</title>
		<link>http://webacteur.fr/2005/06/30/templates-configurer-dreamweaver-mx/</link>
		<comments>http://webacteur.fr/2005/06/30/templates-configurer-dreamweaver-mx/#comments</comments>
		<pubDate>Thu, 30 Jun 2005 09:22:06 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<p>Voici le dernier tutorial repris de l'ancienne série. Si vous utilisez Dreamweaver MX, vous devez avoir eu la désagréable surprise de ne pas réussir à ouvrir les fichiers .tpl autrement qu'en mode "code". Mais la solution existe...  (Article initialement écris le 01/12/2002)</p>]]></description>
			<content:encoded><![CDATA[<p></p><p>Avec les versions précédentes de Dreamweaver, il était très simple d&#8217;ouvrir un fichier .tpl (ou autre extension choisie pour vos templates). Il suffisait en effet d&#8217;associer l&#8217;extension au logiciel, et comme par magie on pouvait travailler sur les fichiers comme sur n&#8217;importe quelle page HTML</p>
<p>Avec la version MX, cette manipulation n&#8217;est pas suffisante, puisque le fichier sera ouvert en mode Code et qu&#8217;il est impossible de passer en mode Création.</p>
<h4>Trifouiller dans les fichiers de configuration</h4>
<p>Pourtant la solution est très simple. Le logiciel dispose en effet de toute une série de fichiers de configuration en xml que vous pouvez simplement modifier avec Notepad ou tout autre éditeur texte.</p>
<p>Cherchez donc le fichier <strong>MMDocumentTypes.xml</strong> qui se trouve dans le dossier <strong>Configuration\DocumentTypes</strong> du dossier où vous avez installé Dreamweaver MX. La troisième ligne doit ressembler à cela&nbsp;:</p>
<pre>&lt;documenttype id="HTML" internaltype="HTML" winfileextension="htm,html,shtml,shtm,stm,lasso,xhtml" macfileextension="html,htm,shtml,shtm,lasso,xhtml" file="Default.html" writebyteordermark="false"&gt;</pre>
<p>Modifiez la simplement en rajoutant l&#8217;extension de vos fichiers template (ici tpl)&nbsp;:</p>
<pre>&lt;documenttype id="HTML" internaltype="HTML" winfileextension="htm,html,shtml,shtm,stm,lasso,xhtml,tpl" macfileextension="html,htm,shtml,shtm,lasso,xhtml,tpl" file="Default.html" writebyteordermark="false"&gt;</pre>
<p>Dreamweaver assimile maintenant vos fichier .tpl a des fichiers html des plus classiques, et vous pourrez les ouvrir en mode Création.</p>
<h4>Autre astuce</h4>
<p>Il y a un autre fichier qui peut vous être utile de modifier, il concerne cette fois le type de document dans les boites de dialogue &laquo;&nbsp;Ouvrir&nbsp;&raquo;. Trouver dans le dossier Configuration le fichier Extensions.txt. Il contient tous les filtres possibles sur le type de document lorsque vous faites Fichier &gt; Ouvrir dans Dreamweaver.</p>
<p>Pour ma part j&#8217;ai rajouté une ligne dans ce fichier&nbsp;:</p>
<pre>TPL:Fichiers templates</pre>
<p>Ainsi je peux choisir de n&#8217;afficher que les fichier .tpl, ce qui est parfois bien pratique. Vous pouvez aussi ajouter l&#8217;extenson dans une autre ligne, comme ici à la ligne 2&nbsp;:</p>
<pre>HTM,HTML,XHTML,HTA,HTC,TPL:Documents HTML</pre>
<p>Ainsi vous pourrez n&#8217;afficher que les document .htm, .html &#8230; et .tpl</p>
<p>Bien sûr vous pouvez ajouter le support d&#8217;autres extensions de la même manière.</p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2005/06/30/templates-configurer-dreamweaver-mx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Templates : les blocks imbriqués et une astuce</title>
		<link>http://webacteur.fr/2005/06/30/templates-les-blocks-imbriques-et-une-astuce/</link>
		<comments>http://webacteur.fr/2005/06/30/templates-les-blocks-imbriques-et-une-astuce/#comments</comments>
		<pubDate>Thu, 30 Jun 2005 09:01:32 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<p>Pour finir sur les blocks, voilà quelques astuces sur les blocks imbriqués. Si l'utilisation est très simple il y a un ou deux points à ne pas oublier si l'on veut que cela fonctionne. (Article initialement écris le 25/06/2001)</p>]]></description>
			<content:encoded><![CDATA[<p></p><p>Pour illustrer le cas, nous allons mettre en place une sorte d&#8217;annuaire des liens sur PHP&nbsp;! Pour simplifier au maximum je ne prendrais que les titres des sites.</p>
<h4>Les données</h4>
<p>J&#8217;utilise ici des tableaux, car c&#8217;est plus simple dans le cadre du tutorial. Mais nous pourrions, utiliser des données provenant d&#8217;une base de données.</p>
<pre>&lt;?
$categories = array( // les catégories de liens
    0 =&gt;"Francais",
    1 =&gt;"Anglais"
    );
$liens[0]=array( // les liens de la catégorie 0
    0 =&gt; "Phpinfo.net",
    1 =&gt; "PhpFrance.com"
    );

$liens[1]=array( // les liens de la catégorie 1
    0 =&gt; "PhpBuilder.com",
    1 =&gt; "Php.net"
    );
?&gt;</pre>
<h4>Le template</h4>
<p>Comme le tutorial est sur les blocks imbriqués, nous allons créer un seul fichier (tableau.tpl) contenant un titre et 2 blocks&nbsp;:</p>
<pre>&lt;html&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;b&gt;Mes liens&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;!-- BEGIN CATEGORIE --&gt;&lt;p&gt;&lt;b&gt;{TITRE_CATEGORIE}&lt;/b&gt;&lt;br&gt;
&lt;!-- BEGIN ITEM --&gt; * {TITRE_ITEM}&lt;br&gt;
&lt;!-- END ITEM --&gt;&lt;/p&gt;&lt;!-- END CATEGORIE --&gt;
&lt;/html&gt;</pre>
<p>Comme vous pouvez le constater le block ITEM commence et se termine à l&#8217;intérieur du block CATEGORIE. Il ne faut pas l&#8217;oublier au moment d&#8217;écrire son code Php. On doit en effet commencer par déclarer le block à l&#8217;intérieur, puis l&#8217;autre&nbsp;:</p>
<pre>$t-&gt;set_block("tableau","ITEM","item"); // on définit le block intérieur
$t-&gt;set_block("tableau","CATEGORIE","categorie"); // on définit le block extérieur</pre>
<p><ins>IMPORTANT</ins>&nbsp;: Si on faisait l&#8217;inverse, le block ITEM ne sera pas vu du tout, et vous obtiendriez un message d&#8217;erreur.</p>
<h4>Le script</h4>
<pre>&lt;?
include "template.inc";
$t=new template("."); // création du template
$t-&gt;set_file("tableau","tableau.tpl"); // on indique le fichier servant de modèle
$t-&gt;set_block("tableau","ITEM","item"); // on définit le block intérieur
$t-&gt;set_block("tableau","CATEGORIE","categorie"); // on définit le block extérieur
for ($i=0; $i&lt;sizeof($categories); $i++) { // on commence par lister les catégories
       $t-&gt;set_var("TITRE_CATEGORIE",$categories[$i]);
       $t-&gt;set_var("item",""); // ligne à ne pas oublier sous peine de surprise !!!
        for ($j=0; $j&lt;sizeof($liens[$i]); $j++) { // on liste les liens pour chaque catégorie
                     $t-&gt;set_var("TITRE_ITEM",$liens [$i][$j]);
                     $t-&gt;parse ("item","ITEM",true); //on traite le block ITEM
                     }
       $t-&gt;parse ("categorie","CATEGORIE",true); // on traite le block CATEGORIE
       }
$t-&gt;parse("MyOutput","tableau",true); // on traite le reste de la page
$t-&gt;p("MyOutput"); // on affiche la page
?&gt;</pre>
<p>Si vous avez lu les tutoriaux précédents, il n&#8217;y a rien de nouveau pour vous. On appelle le fichier, on déclare le block, on affecte les valeur aux zones et on affiche le tout. Il y a une seule variante, mais il ne faut absolument pas l&#8217;oublier&nbsp;:</p>
<pre>$t-&gt;set_var("item",""); // ligne à ne pas oublier sous peine de surprise !!!</pre>
<p>Elle tient au fait que vous avez 2 boucles imbriquées. Cette ligne affecte une valeur nulle au block ITEM. Ce nettoyage permet de vider la valeur, qui sans cette ligne suivrait dans la boucle suivante. Pour faire un test, essayez d&#8217;enlever cette ligne. Pour la première catégorie cela ne change rien, mais dans la deuxième, vous obtenez les liens de la deuxième catégorie mais aussi ceux de la première qui ont suivis.  Si vous aviez 3 catégories, la troisième afficherait les liens de la première, de la deuxième et bien sûr ceux de la troisième. Alors imaginez le résultat si vous programmez un annuaire de 20 ou 30 catégories avec quelques sous-catégories !!</p>
<h4>Conclusion</h4>
<p>Si vous pouvez vous passer des blocks imbriqués, la technique utilisée pour vider le contenu du block vous sera certainement très utile. Elle fonctionne aussi de la même manière si vous utlisez plusieurs fichiers template plutôt que des blocks.<br />
Je connais certains développeurs qui ont passé leur week-end sur ce problème, surtout que la documentation de la Phplib ne mentionne pas du tout cette astuce.</p>
<p>Je crois que vous en savez maintenant assez pour développer votre site avec les templates&nbsp;!</p>
<p><a href="http://www.bertrand-soulier.com/php/tutoriaux/template3.zip">Télécharger les sources du tutorial</a></p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2005/06/30/templates-les-blocks-imbriques-et-une-astuce/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Templates : les blocks</title>
		<link>http://webacteur.fr/2005/06/30/templates-les-blocks/</link>
		<comments>http://webacteur.fr/2005/06/30/templates-les-blocks/#comments</comments>
		<pubDate>Thu, 30 Jun 2005 08:51:12 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<p>La suite du tutorial précédent, ou une autre manière de gérer les templates multiples. Les blocks permettent de combiner plusieurs templates en un seul. (Article initialement écris le 23/05/2001)</p>]]></description>
			<content:encoded><![CDATA[<p></p><p>Pour étudier les blocks nous allons revenir sur le tutorial sur les templates. Reprenons le deuxième exemple. D&#8217;abord le tableau (tableau.tpl)&nbsp;:</p>
<pre>&lt;html&gt;
   &lt;table&gt;
       {LISTE}
   &lt;/table&gt;
&lt;/html&gt;</pre>
<p>il nous faut un deuxième template qui correspond à la présentation d&#8217;une ligne du tableau (ligne.tpl)&nbsp;:</p>
<pre>&lt;tr&gt;
   &lt;td&gt;{ID} : {NOM}&lt;/td&gt;
&lt;/tr&gt;</pre>
<p>Maintenant voyons le script pour afficher le tableau (test2.php):</p>
<pre>&lt;?
include "template.inc";
$tableau=array("tarzan","jane","cheetah");
$t = new Template("tpl/"); // création du template $t
$t-&gt;set_file(array(
     "page"=&gt;"tableau.tpl",
     "ligne"=&gt;"ligne.tpl"
)); // on définit le fichier contenant le modèle

// traitement des lignes du tableau
reset($tableau);
while (list($cle,$valeur) = each($tableau)) {
 $t-&gt;set_var(array(
     "ID"=&gt;$cle,
     "NOM"=&gt;$valeur
 ) );
 $t-&gt;parse("LISTE","ligne",true);
}
// fin du traitement des lignes du tableau
$t-&gt;pparse("MyOutput","page"); // traitement du modele et affichage
?&gt;</pre>
<h4>Et avec les blocks&nbsp;?</h4>
<p>Cet exemple utilisait 2 fichiers template pour afficher le tableau. Les blocks vont permettre de n&#8217;en utiliser qu&#8217;un seul, ce qui réduit le nombre de fichiers et simplifie parfois le travail. On crée donc tableau.tpl&nbsp;:</p>
<pre>&lt;table border="0" cellspacing="0" cellpadding="0" width="200"&gt;
&lt;!-- BEGIN LIGNE --&gt;&lt;tr&gt;
&lt;td&gt;{ID} : {NOM}&lt;/td&gt;
&lt;/tr&gt;&lt;!-- END LIGNE --&gt;
&lt;/table&gt;</pre>
<p>J&#8217;ai volontairement pris le même exemple très simple. Le block est la partie définie par les commentaires&nbsp;: <code>&lt;!-- BEGIN LIGNE --&gt;...&lt;!-- END LIGNE --&gt;</code>. Dans ce cas ce block s&#8217;appelle LIGNE. Ce block est équivalent au fichier ligne.tpl de l&#8217;exemple précédent, et remplit le même rôle&nbsp;: il sera répété autant de fois que l&#8217;on en aura besoin.</p>
<p>Une petite remarque à ce sujet&nbsp;: quand vous créez un commentaire avec Dreamweaver, il ne laisse jamais d&#8217;espace avant le texte, et en laisse toujours un après. Pour que le script fonctionne, il faut rajouter l&#8217;espace de début, sinon vous aurez toujours une erreur.</p>
<p>Voyons maintenant le script php (index.php)&nbsp;:</p>
<pre>&lt;?
include "template.inc";
$t=new template("."); // création du template
$t-&gt;set_file("tableau","tableau.tpl"); // on indique le fichier servant de modèle
$t-&gt;set_block("tableau","LIGNE","une_ligne"); // on définit le block

$tableau=array("Tarzan", "Jane","cheetah"); // les données qui serviront d'exemple
// on va afficher le tableau ligne par ligne
reset($tableau);
while (list($cle,$valeur)=each($tableau)) {
 $t-&gt; set_var(array(
   "ID"=&gt;$cle,
   "NOM"=&gt;$valeur
   ));
 $t-&gt;parse("une_ligne","LIGNE",true); // on traite le block
}
$t-&gt;parse("MyOutput","tableau"); // on traite le reste de la page
$t-&gt;p("MyOutput"); // on affiche la page
?&gt;</pre>
<p>Le script est très ressemblant là encore, et produit le même résultat. Seulement on appelle plus qu&#8217;un seul fichier à l&#8217;aide de set_file(), et on définit le block avec la fonction set_var(). Sinon la démarche est la même, car à chaque passage dans la boucle on utilise la fonction parse() pour traiter le block.</p>
<p><strong>Conclusion</strong></p>
<p>L&#8217;utilisation des blocks plutôt que des fichiers templates séparés produit le même résultat, et ne complique pas plus le script. Souvent l&#8217;utilisation des blocks vous évitera seulement d&#8217;avoir plusieurs fichiers pour une même page. Je n&#8217;ai pas fait de test précis de rapidité entre les 2 méthodes, mais pour utiliser les 2 je ne vois pas de différence.</p>
<p><a href="http://www.bertrand-soulier.com/php/tutoriaux/template2.zip">Télécharger les sources du tutorial</a></p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2005/06/30/templates-les-blocks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Les templates Kesako ?</title>
		<link>http://webacteur.fr/2005/06/30/les-templates-kesako/</link>
		<comments>http://webacteur.fr/2005/06/30/les-templates-kesako/#comments</comments>
		<pubDate>Thu, 30 Jun 2005 08:20:45 +0000</pubDate>
		<dc:creator>bertrand</dc:creator>
				<category><![CDATA[Astuces et Tutoriaux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<p>J'ai décidé de reprendre un peu mes tutoriaux sur les templates. Je vais d'abord intégrer les quatre premier dans ce blog ce qui vous permettra de les commenter. Je les reprends tels quels en corrigeant seulement les liens qui ont changé depuis. On verra ensuite pour les compléter un peu. Le premier tutorial est une présentation du principe des templates et les premières bases pour travailler avec les templates de la phplib. (Article initialement écris le 08/04/2001)</p>]]></description>
			<content:encoded><![CDATA[<p></p><p>Les templates (ou modèles) permettent de séparer le code HTML et le script PHP. Dit comme ça, le bénéfice ne vous semble pas évident par rapport à l&#8217;immersion des balises html dans le script php. Voilà pour moi les avantages des templates&nbsp;:</p>
<ul>
<li>simplification des scripts php</li>
<li>optimisation plus simple du code html</li>
<li>plus de flexibilité dans le développement et modification de l&#8217;aspect d&#8217;un site en quelques secondes</li>
<li>customization du site (voir les skins)</li>
<li>permet au webdesigner qui ne connait pas la programmation de travailler tranquillement sur des sites dynamiques tout en conservant ses outils</li>
<li>réutilisation plus facile du code</li>
</ul>
<p><strong>Avant de commencer</strong></p>
<p>Il existe actuellement de nombreuses librairies de scripts gérant les templates. La plus connue est sûrement FastTemplate, mais elle n&#8217;est pas la seule. Pour ma part je lui préfère l&#8217;implémentation de la <a href="http://phplib.sourceforge.net">PHPLib</a>. Je lis régulièrement des avis sur la supériorité de l&#8217;une par rapport à l&#8217;autre, et je ne rentrerai pas dans ces considérations. Mais pour résumer il semble que FastTemplate soit moins rapide car ce serait une simple traduction d&#8217;une librairie PERL et donc n&#8217;utilisant pas les meilleurs fonctions de PHP.<br />
Pour ceux qui s&#8217;inquiètent déjà en se disant qu&#8217;il faut installer la PHPLib, ce qui n&#8217;est pas toujours possible, ne vous inquiétez pas. Vous n&#8217;avez besoin que d&#8217;un fichier&nbsp;: <a href="http://www.bertrand-soulier.com/php/tutoriaux/template.inc">template.inc</a>. Vous pouvez jetter le reste si vous le souhaitez.</p>
<p><strong>Premier exemple</strong></p>
<p>Créons un fichier html (template.tpl) contenant ce simple code (attention, retapez le code, car le copier-coller risque de créer des erreurs)&nbsp;:</p>
<pre>Bonjour {NOM} !</pre>
<p>C&#8217;est ce fichier qui définit l&#8217;apparence. Le nom et l&#8217;extension du fichier importent peu, c&#8217;est à vous de créer une convention qui vous indique que c&#8217;est un fichier template.</p>
<p>Maintenant un petit bout de script php, créons un fichier test.php&nbsp;:</p>
<pre><code>&lt;? </code>
<code> include "template.inc";</code>
<code> $nom="tarzan";</code>
<code> $t = new Template("."); // création du template $t </code>
<code> $t-&gt;set_file("page","template.tpl"); // on définit le fichier contenant le modèle</code>
<code> $t-&gt;set_var("NOM",$nom); // on indique que l'on doit remplacer {NOM} par le contenu de la variable $nom</code>
<code> $t-&gt;parse("MyOutput","page"); // traitement du modele </code>
<code> $t-&gt;p("MyOutput"); // on affiche la page complète </code>
<code> ?&gt;</code></pre>
<p>c&#8217;est une exemple volontairement très simple, mais vous avez là pratiquement toutes les fonctions des templates. Décryptons un peu ce code. La première ligne inclut le fichier template.inc livrée avec la PHPLib, c&#8217;est lui qui contient les fonctions neccesaires pour utiliser les templates. En fait c&#8217;est une classe (<a href="http://www.phpinfo.net/articles/article_classes.html">voir le tutorial sur phpinfo.net</a>), et il faut donc créer un objet pour pouvoir utiliser les fonctions de la classe.</p>
<p>Le code <strong>$t = new Template(&laquo;&nbsp;.&nbsp;&raquo;);</strong> crée donc un objet $t et indique le chemin pour accéder aux fichiers templates. Dans ce cas le fichier php et le template sont dans le même dossier, et on aurait aussi pû créer l&#8217;objet comme ça&nbsp;: <strong>$t = new Template();</strong> .</p>
<p>Ensuite set_file() indique le fichier template à utiliser. Puis; on défini le contenu de la zone {NOM} avec la fonction set_var(). La fonction parse() traite ensuite le template mais n&#8217;affiche rien. Pour afficher la page, on utilise la fonction p().<br />
Sur un exemple aussi simple, l&#8217;intérêt des templates est limité, mais il vous permet de tester quelques possibilités. Pour modifier l&#8217;aspect de votre page, vous n&#8217;avez plus qu&#8217;à modifier template.tpl. Vous pouvez le modifier sans rique dans un éditeur HTML comme Dreamweaver car il ne contient aucun code php.</p>
<p><strong>On complique un peu</strong></p>
<p>Créons un tableau avec une liste de nom. Nous allons utiliser non pas un, mais deux templates. D&#8217;abord le tableau (tableau.tpl)&nbsp;:</p>
<pre><code>&lt;html&gt;</code>
<code>   &lt;table&gt;</code>
<code>       {LISTE}</code>
<code>   &lt;/table&gt;</code>
<code>&lt;/html&gt; </code></pre>
<p>il nous faut un deuxième template qui correspond à la présentation d&#8217;une ligne du tableau (ligne.tpl)&nbsp;:</p>
<pre> &lt;tr&gt;
    &lt;td&gt;{ID} : {NOM}&lt;/td&gt;
 &lt;/tr&gt;</pre>
<p>Maintenant voyons le script pour afficher le tableau (test2.php):</p>
<pre>&lt;?
include "template.inc";
$tableau=array("tarzan","jane","cheetah");
$t = new Template("tpl/"); // création du template $t
$t-&gt;set_file(array(
     "page"=&gt;"tableau.tpl",
     "ligne"=&gt;"ligne.tpl"
)); // on définit le fichier contenant le modèle

// traitement des lignes du tableau
reset($tableau);
while (list($cle,$valeur) = each($tableau)) {
 $t-&gt;set_var(array(
     "ID"=&gt;$cle,
     "NOM"=&gt;$valeur
 ) );
 $t-&gt;parse("LISTE","ligne",true);
}
// fin du traitement des lignes du tableau
$t-&gt;pparse("MyOutput","page"); // traitement du modele et affichage
?&gt;</pre>
<p>J&#8217;ai introduit ici quelques différences. Tout d&#8217;abord, j&#8217;ai placé les fichier templates dans un dossier spécial nommé tpl. la création de l&#8217;objet est donc <strong>$t = new Template(&laquo;&nbsp;tpl/&nbsp;&raquo;);</strong> Comme on utilise 2 templates, on doit le spécifier dans le script. Plutôt que de faire 2 fois appel à la fonction set_var(), on passe un tableau en paramètres. Les fonctions set_file() et set_var() permettent en effet de passer un tableau en paramètre ce qui est parfois bien utile.</p>
<p>La ligne <strong>$t-&gt;parse(&laquo;&nbsp;LISTE&nbsp;&raquo;,&nbsp;&raquo;ligne&nbsp;&raquo;,true);</strong> introduit une petite variante par rapport au 1er exemple. Ici elle permet de créer une ligne du tableau à chaque passage dans la boucle while(). Le paramètre &laquo;&nbsp;true&nbsp;&raquo; est neccessaire ici pour afficher plusieurs lignes. Le tableau $tableau a en effet 3 lignes, et sans le paramètre true seule la dernière ligne serait affichée.</p>
<p>Enfin la fonction <strong>pparse()</strong> rassemble les fonction parse() et p(). La ligne <strong>$t-&gt;pparse(&laquo;&nbsp;MyOutput&nbsp;&raquo;,&nbsp;&raquo;page&nbsp;&raquo;);</strong> est équivalente aux 2 lignes suivantes&nbsp;:</p>
<pre><code>$t-&gt;parse("MyOutput","page");</code>
<code>$t-&gt;p("MyOutput");</code></pre>
<p><strong>Conclusion</strong></p>
<p>Voilà une aperçu rapide des templates. Dans un prochain tutorial, nous verrons que le deuxième exemple peut être aussi traité avec les blocks, ce qui permet de n&#8217;utiliser qu&#8217;un fichier template au lieu de deux.<br />
Les templates ne se limitent pas aux pages html. on peut aussi générer du xml, wml, texte des e-mails&#8230;. On peut par exemple avec le même script php générer la version html et la version wml d&#8217;une page en indiquant seulement un template différent.</p>
]]></content:encoded>
			<wfw:commentRss>http://webacteur.fr/2005/06/30/les-templates-kesako/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
