<?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>Le Blog d&#039;un Développeur Web</title>
	<atom:link href="http://www.kezaweb.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kezaweb.fr</link>
	<description>Partage d&#039;expériences sur Symfony et Javascript</description>
	<lastBuildDate>Thu, 10 Nov 2011 21:02:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>CaptchaBundle sur Symfony2</title>
		<link>http://www.kezaweb.fr/captchabundle-sur-symfony2/</link>
		<comments>http://www.kezaweb.fr/captchabundle-sur-symfony2/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 21:02:30 +0000</pubDate>
		<dc:creator>yoann</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.kezaweb.fr/?p=80</guid>
		<description><![CDATA[Si comme moi, le bundle présent sur Symfony2Bundle et proposé par biGGer vous intéresse, il faut néamoins quelques petites modifications pour le faire fonctionner. Le but de ce ticket est de vous proposer les adaptations pour y arriver. En espérant pouvoir aider certains d&#8217;entre vous.  Pour commencer, je vous propose de télécharger le Bundle à &#8230; <a href="http://www.kezaweb.fr/captchabundle-sur-symfony2/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Si comme moi, le bundle présent sur <a title="Symfony2Bundle" href="http://symfony2bundle.org">Symfony2Bundle</a> et proposé par biGGer vous intéresse, il faut néamoins quelques petites modifications pour le faire fonctionner. Le but de ce ticket est de vous proposer les adaptations pour y arriver. En espérant pouvoir aider certains d&#8217;entre vous.</p>
<p><span id="more-80"></span><a href="http://www.kezaweb.fr/wp-content/uploads/2011/11/Capture.png"><img class="size-full wp-image-81 alignleft" title="Capture" src="http://www.kezaweb.fr/wp-content/uploads/2011/11/Capture.png" alt="" width="95" height="38" /></a> Pour commencer, je vous propose de télécharger le Bundle à l&#8217;adresse  <a title=" http://symfony2bundles.org/fr/biGGer/CaptchaBundle" href=" http://symfony2bundles.org/fr/biGGer/CaptchaBundle">http://symfony2bundles.org/fr/biGGer/CaptchaBundle</a>. Le principe est de réutiliser le  Captcha proposé dans le Framework Zend. Pour cela il vous est nécessaire d&#8217;intégrer ZF à votre application. A l&#8217;époque de la création du CaptchaBundle de biGGer, Symfony2 intégrait nativement sous forme de Bundle le framework Zend. Etant donnée que cela n&#8217;est plus d&#8217;actualité, commencez tout d&#8217;abord par récupérer Zend via Github.com et intégrez le à votre application. Petite astuce, il sera nécessaire dans autoload.php de rajouter le ligne suivante :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">set_include_path</span><span style="color: #009900;">&#40;</span>__DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/zf/library'</span><span style="color: #339933;">.</span>PATH_SEPARATOR<span style="color: #339933;">.</span><span style="color: #990000;">get_include_path</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Dans le CaptchaBundle, nous devons modifier la déclaration de la classe du fichier Word.php</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">abstract <span style="color: #000000; font-weight: bold;">class</span> Word <span style="color: #000000; font-weight: bold;">extends</span> \Zend_Captcha_Base</pre></div></div>

<p>Dans votre contrôleur, contrairement à ce qui est dit dans la documentation du CaptchaBundle, vous devez récupérer session et code de la façon suivant :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$session</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$session</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'word'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Vous venez alors d&#8217;intégrer dans votre application Symfony, un composant Zend !</p>
<p>Bon codage à tous !</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kezaweb.fr/captchabundle-sur-symfony2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax et référencement : La Cohabitation</title>
		<link>http://www.kezaweb.fr/ajax-et-referencement-la-cohabitation/</link>
		<comments>http://www.kezaweb.fr/ajax-et-referencement-la-cohabitation/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 18:48:35 +0000</pubDate>
		<dc:creator>yoann</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[chargement]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twig]]></category>

		<guid isPermaLink="false">http://www.kezaweb.fr/?p=64</guid>
		<description><![CDATA[Si la conception d&#8217;applications utilisant la technologie AJAX ( Asynchronous JavaScript and XML ) est en vogue, c&#8217;est avant tout pour l&#8217;amélioration de l’ergonomie de l&#8217;application. Une navigation plus agréable et plus rapide pour l&#8217;internaute est la clé du Web 2.0. En AJAX, le serveur est interrogé sur un requête précise, et cela ne nécessite pas le rechargement globale de la page. &#8230; <a href="http://www.kezaweb.fr/ajax-et-referencement-la-cohabitation/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Si la conception d&#8217;applications utilisant la technologie AJAX ( Asynchronous JavaScript and XML ) est en vogue, c&#8217;est avant tout pour l&#8217;amélioration de l’ergonomie de l&#8217;application. Une navigation <strong>plus agréable et plus rapide</strong> pour l&#8217;internaute est la clé du Web 2.0. En AJAX, le serveur est interrogé sur un requête précise, et cela ne nécessite pas le rechargement globale de la page. Le but de cet article n&#8217;est pas d&#8217;expliquer en détail le fonctionnement d&#8217;AJAX, mais plus de définir la problèmatique <strong>d&#8217;Ajax sur le référencement</strong>&#8230;</p>
<p><span id="more-64"></span>Une des règles du référencement veut que ce que l&#8217;internaute voit en cliquant sur un lien, le robot doit voir la même chose. En PHP brute, l&#8217;idée est de détecter si nous avons à faire à une requête AJAX ou non.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">array_key_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP_X_REQUESTED_WITH'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_X_REQUESTED_WITH'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">'xmlhttprequest'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// On affiche juste ce dont nous avons besoin</span>
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Nous devons afficher l'application dans son ensemble</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Pour les adeptes de la conception Web sous Symfony, il est possible de traiter cette problématique de façon simple sur Symfony 2. Il vous suffit de faire suivre l&#8217;objet &laquo;&nbsp;Request&nbsp;&raquo; à votre template Twig et de choisir le template &laquo;&nbsp;Maître&nbsp;&raquo; en fonction.</p>

<div class="wp_syntax"><div class="code"><pre class="twig" style="font-family:monospace;">{% extends request.isXmlHttpRequest ? '::ajax.html.twig' : '::base.html.twig' %}</pre></div></div>

<p>ajax.html.twig étant un template minimaliste, et base.html.twig un template complet avec header et footer en bonne et due forme.</p>
<p>Pour conclure, Ajax et SEO peuvent très bien cohabiter ensemble, il suffit juste d&#8217;y penser durant <strong>la conception de votre application</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kezaweb.fr/ajax-et-referencement-la-cohabitation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stopper un Effect.Pulsate</title>
		<link>http://www.kezaweb.fr/stopper_un_effect_pulsate/</link>
		<comments>http://www.kezaweb.fr/stopper_un_effect_pulsate/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 14:15:21 +0000</pubDate>
		<dc:creator>yoann</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[chargement]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[script.aculo.us]]></category>

		<guid isPermaLink="false">http://www.kezaweb.fr/?p=10</guid>
		<description><![CDATA[Pour un site internet d&#8217;artiste, je souhaitais faire patienter les internautes durant le chargement de la page ( réponse php + chargement en cache des images et du javascript ). Je précise &#171;&#160;Artiste&#160;&#187; car le visuel et l&#8217;univers sont des choses de très importantes dans ce milieu, et l&#8217;affichage de façon uniforme et instantané du &#8230; <a href="http://www.kezaweb.fr/stopper_un_effect_pulsate/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pour un site internet d&#8217;artiste, je souhaitais faire patienter les internautes durant le <strong>chargement de la page</strong> ( réponse php + chargement en cache des images et du javascript ). Je précise &laquo;&nbsp;Artiste&nbsp;&raquo; car le visuel et l&#8217;univers sont des choses de très importantes dans ce milieu, et l&#8217;affichage de façon uniforme et instantané du contenu me semblait être primordiale. Effect.Pulsate de la librairie <a title="script.aculos.us" href="http://script.aculo.us" target="_blank">script.aculo.us</a> prend en paramètre <strong>le nombre de pulsation</strong> ainsi que <strong>la durée</strong>. Il n&#8217;est pas possible de<strong> stopper l&#8217;animation</strong> lorsqu&#8217;on le souhaite. Je vous propose ici même ma petite astuce pour contourner ce problème&#8230;</p>
<p><span id="more-10"></span></p>
<div id="attachment_11" class="wp-caption alignleft" style="width: 258px"><a href="http://www.script.aculo.us"><img class="size-full wp-image-11 " title="script_aculo.us" src="http://www.kezaweb.fr/wp-content/uploads/2011/10/script_aculo.us_.png" alt="Script aculo us" width="248" height="54" /></a><p class="wp-caption-text">Script aculo us - Librairie Graphique</p></div>
<p>Script.aculo.us, un framework javascript très puissant qui vous permet de rendre votre application web vivante avec de riches effets ! L&#8217;effet qui nous intéresse dans cet article est &laquo;&nbsp;<strong>Effect.Pulsate</strong>&laquo;&nbsp;. Son but est de faire &laquo;&nbsp;<strong>Clignoter</strong>&nbsp;&raquo; un élément de votre page. Il prend en paramètre le nombre de pulsation ainsi que la durée de l&#8217;effet.</p>
<p>&nbsp;</p>
<p>Durant le chargement de la page, je fais &laquo;&nbsp;<strong>Clignoter</strong>&nbsp;&raquo; le logo du site Internet à l&#8217;aide de cette fonction. Je lui définie une durée assez longue pour tenir compte des connections bas débit. Lorsque la page est chargée, je souhaite stopper l&#8217;animation.</p>
<p>Dans le fichier Effects.js de <strong>la librairie Script.aculo.us</strong>, après la déclaration de l&#8217;objet Effect, j&#8217;ajoute l&#8217;attribut <strong>Stop</strong>.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">  <span style="color: #000066;">Stop</span><span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
    Pulsate <span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">new</span> Object<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span></pre></div></div>

<p>L&#8217;objet Pulsate renseignera l&#8217;objet concerné par l&#8217;arrêt de l&#8217;effet. Ensuite, dans la fonction Effect.Pulsate, on initialise l&#8217;attribut Stop.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">Effect.<span style="color: #000066;">Stop</span>.<span style="color: #660066;">Pulsate</span><span style="color: #009900;">&#91;</span>element.<span style="color: #660066;">id</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span></pre></div></div>

<p>Et pour finir, dans ce que retourne la fonction, on ajoute le contrôle suivant</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">beforeUpdate<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>effect<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>Effect.<span style="color: #000066;">Stop</span>.<span style="color: #660066;">Pulsate</span><span style="color: #009900;">&#91;</span>effect.<span style="color: #660066;">element</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> effect.<span style="color: #660066;">cancel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Et voila ! Maintenant, où vous le souhaitez dans votre code, vous pourrez stopper l’évènement en effectuant l&#8217;appel suivant :</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">Effect.<span style="color: #000066;">Stop</span>.<span style="color: #660066;">Pulsate</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'id_de_mon_element'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span></pre></div></div>

<p>Dans mon cas, l&#8217;appel s’effectuera sur l’évènement window.onload.</p>
<p>Si vous trouvez que j&#8217;ai l&#8217;art de me compliquer la vie ( ce qui n&#8217;est pas impossible ), n&#8217;hésitez pas à réagir sur cet article !</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kezaweb.fr/stopper_un_effect_pulsate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google célèbre Halloween à sa façon !</title>
		<link>http://www.kezaweb.fr/google-celebre-halloween-a-sa-facon/</link>
		<comments>http://www.kezaweb.fr/google-celebre-halloween-a-sa-facon/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 21:30:13 +0000</pubDate>
		<dc:creator>yoann</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[citrouille]]></category>
		<category><![CDATA[fête]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Halloween]]></category>

		<guid isPermaLink="false">http://www.kezaweb.fr/?p=1</guid>
		<description><![CDATA[On est habitué de trouver chez Google la célébration d&#8217;évènements intéressants mais pas forcément connus sous forme d&#8217;images. Pour le 30ème anniversaire de PAC-MAN, les créateurs ont permis à leurs internautes de jouer en ligne à ce jeu ayant marqué une génération ! Sur fond de musique Tzigane, ces artistes ont sculpté d&#8217;énormes citrouilles en vue &#8230; <a href="http://www.kezaweb.fr/google-celebre-halloween-a-sa-facon/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>On est habitué de trouver chez <a title="Google" href="http://www.google.fr">Google</a> la célébration d&#8217;évènements intéressants mais pas forcément connus sous forme d&#8217;images. Pour le 30ème anniversaire de PAC-MAN, les créateurs ont permis à leurs internautes de jouer en ligne à ce jeu ayant marqué une génération !</p>
<p>Sur fond de musique Tzigane, ces artistes ont <strong>sculpté d&#8217;énormes citrouilles</strong> en vue de célébrer Halloween. Le rendu ( en vidéo s&#8217;il vous plait ! ) est impressionnant !</p>
<p><span id="more-1"></span></p>
<div id="attachment_6" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.kezaweb.fr/wp-content/uploads/2011/10/halloween_2.png"><img class="size-medium wp-image-6" title="halloween_2" src="http://www.kezaweb.fr/wp-content/uploads/2011/10/halloween_2-300x157.png" alt="Google fête Halloween" width="300" height="157" /></a><p class="wp-caption-text">Google fête Halloween</p></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kezaweb.fr/google-celebre-halloween-a-sa-facon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

