<?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 coin du dev Web de Spacefrog</title>
	<atom:link href="https://blog.developpez.com/spacefrog/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/spacefrog</link>
	<description>Dans l&#039;espaaaaaaaaaaaaaaaaaaaaaaaaaace !</description>
	<lastBuildDate>Thu, 18 Jul 2019 08:46:26 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Mauvaise la Hyène</title>
		<link>https://blog.developpez.com/spacefrog/p11843/humeur/mauvaise-la-hyene</link>
		<comments>https://blog.developpez.com/spacefrog/p11843/humeur/mauvaise-la-hyene#comments</comments>
		<pubDate>Wed, 20 Mar 2013 10:06:38 +0000</pubDate>
		<dc:creator><![CDATA[SpaceFrog]]></dc:creator>
				<category><![CDATA[Humeur]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/spacefrog/?p=139</guid>
		<description><![CDATA[Juste un petit billet en passant pour vous signaler l&#8217;ouverture de Mauvaise La HyèneMLH-Post, un petit site d&#8217;humeur et d&#8217;humour sur l&#8217;actualité. Mauvaise La Hyène Le Flyer Bonne lecture !]]></description>
				<content:encoded><![CDATA[<p>Juste un petit billet en passant pour vous signaler l&rsquo;ouverture de <strong><a href="http://mauvaiselahyene.blogspot.fr/">Mauvaise La Hyène</a><a href="http://blog.developpez.com/spacefrog/files/2013/03/MLH-Post.pdf">MLH-Post</a></strong>, un petit site d&rsquo;humeur et d&rsquo;humour sur l&rsquo;actualité.</p>
<p><a href="http://blog.developpez.com/spacefrog/files/2013/03/MLH-Post.pdf">Mauvaise La Hyène Le Flyer</a></p>
<p>Bonne lecture !</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roman coup de coeur   (anglais)</title>
		<link>https://blog.developpez.com/spacefrog/p11704/humeur/roman-coup-de-coeur-en-anglais</link>
		<comments>https://blog.developpez.com/spacefrog/p11704/humeur/roman-coup-de-coeur-en-anglais#comments</comments>
		<pubDate>Tue, 08 Jan 2013 11:39:10 +0000</pubDate>
		<dc:creator><![CDATA[SpaceFrog]]></dc:creator>
				<category><![CDATA[Humeur]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/spacefrog/?p=126</guid>
		<description><![CDATA[Pour les lecteurs anglophiles, j&#8217;ai déniché ce livre qui sort des sentiers battus. Entre anticipation et science-fiction, entre intrigue et action, entre mysticisme et philosophie. Bref un roman captivant ! Vous le trouverez au format kindle sur un site de &#8230; <a href="https://blog.developpez.com/spacefrog/p11704/humeur/roman-coup-de-coeur-en-anglais">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Pour les lecteurs anglophiles, j&rsquo;ai déniché ce livre qui sort des sentiers battus.<br />
Entre anticipation et science-fiction, entre intrigue et action, entre mysticisme et philosophie.<br />
Bref un roman captivant !<img src="https://images-na.ssl-images-amazon.com/images/I/411D5GTct0L._AA278_PIkin4,BottomRight,-34,22_AA300_SH20_OU08_.jpg" alt="AmanO" /><br />
<a href="http://www.amazon.fr/gp/product/B00AVZ37WM/ref=cm_cr_mts_prod_img" target="_blank">Vous le trouverez au format kindle sur un site de vente de livres pour un prix modique&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Traductions de qualité</title>
		<link>https://blog.developpez.com/spacefrog/p11450/humeur/traductions-de-qualite</link>
		<comments>https://blog.developpez.com/spacefrog/p11450/humeur/traductions-de-qualite#comments</comments>
		<pubDate>Tue, 23 Oct 2012 13:04:48 +0000</pubDate>
		<dc:creator><![CDATA[SpaceFrog]]></dc:creator>
				<category><![CDATA[Humeur]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/spacefrog/?p=100</guid>
		<description><![CDATA[Vous avez un projet de traduction pour votre site internet,un document commercial, une présentation, un article&#8230; Communiquez en toute confiance, confiez vos traductions à des professionnels spécialisés. Planet Languages est une agence spécialisée dans les traductions techniques. Visitez le site &#8230; <a href="https://blog.developpez.com/spacefrog/p11450/humeur/traductions-de-qualite">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Vous avez un projet de traduction pour votre site internet,un document commercial, une présentation, un article&#8230;<br />
Communiquez en toute confiance, confiez vos traductions à des professionnels spécialisés.<br />
Planet Languages est une agence spécialisée dans les traductions techniques.<br />
<a href="http://www.oxygen-translations.fr/" title="Visitez le site de Oxygen-Translations" target="_blank">Visitez le site de Oxygen Translations</a><br />
Traduction du français vers les principales langues européennes ainsi que le chinois, le russe &#8230; et inversement.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ne vous jetez pas par la fenêtre !</title>
		<link>https://blog.developpez.com/spacefrog/p11332/astuce/jeter-pas-la-fenetre</link>
		<comments>https://blog.developpez.com/spacefrog/p11332/astuce/jeter-pas-la-fenetre#comments</comments>
		<pubDate>Fri, 21 Sep 2012 06:52:39 +0000</pubDate>
		<dc:creator><![CDATA[SpaceFrog]]></dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Logiciel]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/spacefrog/?p=86</guid>
		<description><![CDATA[Vous êtes fatigués de vous battre avec vos fenêtres de l&#8217;explorateur windows ? Je vous propose un petit addon windows qui pallie au manque cruel d&#8217;onglets dans l&#8217;explorateur windows. Une fois installé, cet addon ajoute un sytème d&#8217;onglets (façon chrome) &#8230; <a href="https://blog.developpez.com/spacefrog/p11332/astuce/jeter-pas-la-fenetre">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Vous êtes fatigués de vous battre avec vos fenêtres de l&rsquo;explorateur windows ?<br />
Je vous propose un petit addon windows qui pallie au manque cruel d&rsquo;onglets dans l&rsquo;explorateur windows.<br />
<span id="more-86"></span><br />
Une fois installé, cet addon ajoute un sytème d&rsquo;onglets (façon chrome) dans votre explorateur window, tout en conservant intégralement toutes les fonctionnalités de base ou ajoutées de votre explorateur windows.<br />
Vous pourrez ainsi visualiser vos dossiers dans les onglets d&rsquo;une fenêtre unique, copier ou déplacer vos fichiers entre vos onglets.<br />
Bref rien que du bonheur&#8230;</p>
<p>L&rsquo;addon se nomme Clover et vous pourrez le télécharger <a href="http://www.softpedia.com/progDownload/Clover-EJIE-Download-220301.html" title="softpedia clover download">ici</a></p>
<p>Taille : 2.4 MB<br />
Compatible :  Windows XP / Vista / Vista64 / 7 / 7 x64</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Astuce pour visualiser ses variables PHP sans debugeur</title>
		<link>https://blog.developpez.com/spacefrog/p11278/astuce/astuce-pour-visulaiser-ses-variables-php-sans-debuger</link>
		<comments>https://blog.developpez.com/spacefrog/p11278/astuce/astuce-pour-visulaiser-ses-variables-php-sans-debuger#comments</comments>
		<pubDate>Mon, 17 Sep 2012 05:00:00 +0000</pubDate>
		<dc:creator><![CDATA[SpaceFrog]]></dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/spacefrog/?p=16</guid>
		<description><![CDATA[Posons le contexte: Je code avec komodo Edit qui ne possède pas de debugger PHP (version gratuite). Visualisation avec firefox du contenu des variables, dans la console de firebug. La problématique: Comment visualiser le contenu des variables PHP en runtime. &#8230; <a href="https://blog.developpez.com/spacefrog/p11278/astuce/astuce-pour-visulaiser-ses-variables-php-sans-debuger">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Posons le contexte:<br />
Je code avec komodo Edit qui ne possède pas de debugger PHP (version gratuite).<br />
Visualisation avec firefox du contenu des variables, dans la console de firebug.</p>
<p>La problématique:<br />
Comment visualiser le contenu des variables PHP en runtime.</p>
<p>Combien de fois ais-je perdu des heures à chercher le pourquoi d&rsquo;un bug à cause de variables php non visibles.<br />
Combien de fois ai-je collé des echo par ci et par là dans mes codes pour tenter de voir le contenu de mes variables php.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">echo &quot;&lt;!-- &quot;.$mavar.&quot;--&gt;&quot;;</div></td></tr></tbody></table></div>
<p>Obligeant d&rsquo;aller ensuite visualiser le code source de la page html dans le navigateur.<br />
<span id="more-16"></span><br />
Je ne rencontrais pas ce souci avec javascript. L&rsquo;excellent outil Firebug permettant de visualiser directement les variables et leur contenu en runtime (quitte à ajouter un point d&rsquo;arrêt ou utiliser le mode pas à pas), et même de logguer des messages en console avec console.log().<br />
Du coup il m&rsquo;en venu l&rsquo;idée de passer des informations de PHP à la console de firebug !<br />
Au départ une simple insertion de script php qui rédigeait un script js de console.log, j&rsquo;ai soumis cette idée à Cahnory sur le chat qui s&rsquo;est empressé d&rsquo;en faire une petite classe que j&rsquo;ai a mon tour lègèrement modifiée.<br />
Je vous en soumet le premier jet:</p>
<pre style="border: inset 2px silver;height: 250px">
class FfxConsoleDebug
  {
    private $dumps = array();
    
    static private function getEmptyDump($type = 'log', $back = 1) {
      $d    = debug_backtrace();
      return array(
        'type'  =&#062; $type,
        'file'  =&gt; $d[$back]['file'],
        'line'  =&gt; $d[$back]['line']
      );
    }
    
    public function dump($var) {
      $vars = func_get_args();
      $dump = self::getEmptyDump();
      $dump['vars'] = array();
      foreach($vars as $key =&gt; $value) {
        if(is_object($value) &amp;&amp; !is_a($value, 'stdClass')) {
          $value = array(
            'class' =&gt; get_class($value),
            'id'    =&gt; spl_object_hash($value),
            'attr'  =&gt; get_object_vars($value)
          );
        }
        $dump['vars'][]   = $value;
      }
      $this-&gt;dumps[] = $dump;
    }
    
    public function warn($warning) {
      $dump = self::getEmptyDump('warn');
      $dump['msg'] = $warning;
      $this-&gt;dumps[]   = $dump;
    }
    
    public function alert($alert) {
      $dump = self::getEmptyDump('alert');
      $dump['msg'] = $alert;
      $this-&gt;dumps[]   = $dump;
    }
    
    public function toJs($json=true) {
      $js = '';
      foreach($this-&gt;dumps as $dump) {
        
        switch($dump['type']){
          case 'log' :  $msg=($json)?"',".json_encode((object)$dump['vars']):(preg_replace('~\r?\n~',"\\r\\n",addslashes(var_export($dump['vars'],true))))."'";
                        //$js .='console.info(\'PHP debug line ==============='.$msg.',\''.addslashes($dump['file']).':'.$dump['line'].'\');';
                        $js .='console.info(\'================= PHP debug info ==============='."\\nFile :\t".addslashes($dump['file'])."\\nLine :\t".$dump['line']."\\n".$msg.',\''.':'.'\');';
                        
                        break;
          case 'warn' : $js .= 'console.warn(\'PHP:'.stripslashes($dump['msg'])."\\nFile :\t".addslashes($dump['file'])."\\nLine :\t".$dump['line']."\\n".'\');';
                          break;
          case 'alert': $js .= 'alert(\'PHP ALERT : \n'.stripslashes($dump['msg']).'\');';
                          break;              
                        
        }              
      }
      
      return $js;
    }
    
    public function toHeader() {
      $hash = spl_object_hash($this);
      foreach($this-&gt;dumps as $k =&gt; $dump) {
        $id = $hash.'-'.$k;
        if($dump['type'] === 'log') {
          header('PHPrint-'.$id.'-source: ' . $dump['file'].' on line '.$dump['line']);
          foreach($dump['vars'] as $i =&gt; $v) {
            header('PHPrint-'.$id.'-'.$i.'-value: '. json_encode($v));
          }
        } else {
          header('PHPrint-'.$id.'-warning: ' . $dump['msg']);
        }
      }
    }
  }
  $debug = new FfxConsoleDebug;
  
  
  //USAGE
  /*
  $d-&gt;dump('test','ok');
  $d-&gt;dump(array('test'));
  $d-&gt;dump($d);
  $d-&gt;warn('Ne pas oublier de supprimer les dumps');
   echo '' . $d-&gt;toJs( [true/false]) . '';  */

</pre>
<p>J&rsquo;ai mis cette classe dans un fichier que j&rsquo;inclus dans tous mes projets au moyen d&rsquo;un require()</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">require('debuglib.php');</div></td></tr></tbody></table></div>
<p>Il suffit de placer les lignes souhaitées dans le code php à l&rsquo;endroit ou l&rsquo;on souhaite visualiser ses variables<br />
Lors de l&rsquo;affichage dans le navigateur, les lignes de debug apparaissent dans la console firebug avec le numéro de ligne et le nom du fichier.</p>
<p>le paramètre boolean true / false permet:<br />
 en mode true (par defaut) d&rsquo;obtenir un objet dans la console<br />
 en mode false  d&rsquo;obtenir un string mis en forme comme un var_export de php</p>
<p>Personnellement cette petit classe m&rsquo;a fait gagner un temps précieux en me permettant d&rsquo;avoir un aperçu direct des ce qui se passe au niveau de mes variables php.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>css sprite &#8211; Ou comment regrouper vos images</title>
		<link>https://blog.developpez.com/spacefrog/p11297/astuce/css-sprite-ou-comment-regrouper-vos-images</link>
		<comments>https://blog.developpez.com/spacefrog/p11297/astuce/css-sprite-ou-comment-regrouper-vos-images#comments</comments>
		<pubDate>Tue, 11 Sep 2012 14:17:52 +0000</pubDate>
		<dc:creator><![CDATA[SpaceFrog]]></dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Logiciel]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/spacefrog/?p=64</guid>
		<description><![CDATA[Lorsque l&#8217;on code un site web, on est souvent obligé d&#8217;utiliser beaucoup de petites images, des coins, des puces, des icônes, des symboles, des flèches et autres. Lors du chargement la page fait autant d&#8217;appels réseau qu&#8217;il y a d&#8217;images &#8230; <a href="https://blog.developpez.com/spacefrog/p11297/astuce/css-sprite-ou-comment-regrouper-vos-images">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Lorsque l&rsquo;on code un site web, on est souvent obligé d&rsquo;utiliser beaucoup de petites images, des coins, des puces, des icônes, des symboles, des flèches et autres.<br />
Lors du chargement la page fait autant d&rsquo;appels réseau qu&rsquo;il y a d&rsquo;images différentes sur la page. Ce qui peut allonger le temps de chargement.<br />
Il existe une technique qui permet de limiter ces accès multiples en n&rsquo;ayant qu&rsquo;une seule image.<br />
Il suffit d&rsquo;un peu de css pour positionner correctement l&rsquo;image afin que n’apparaisse que la partie voulue: Cette technique s&rsquo;appelle le sprite.<br />
<span id="more-64"></span><br />
Cependant il n&rsquo;est pas aisé de regrouper les images en une seule et surtout de récupérer les coordonnées permettant l&rsquo;affichage de l&rsquo;extrait d&rsquo;image souhaité.<br />
Heureusement votre grenouille préférée vous a trouvé deux petits software qui vous aideront dans cette difficile tache.<br />
 <a href="http://codebrewery.blogspot.fr/p/cssspriter.html" title="cssSpriter" target="_blank">cssSpriter </a><br />
<a href="https://spritesheetpacker.codeplex.com/" title="Sprite Sheet Packer" target="_blank">Sprite Sheet Packer</a><br />
Ces deux outils non seulement génèrent une image unique à partir de vos différentes images, mais génèrent également les codes html et css vous permettant de les intégrer dans vos sites webs.</p>
<p>Cette technique est également utilisée dans les jeux afin d&rsquo;animer des personnages en faisant défiler les différentes postures d&rsquo;un personnage par modification dynamique de la position de l&rsquo;image.<br />
j&rsquo;avais déja abordé les animations avec sprite <a href="http://www.developpez.net/forums/d905614/webmasters-developpement-web/contribuez/jquery-dessin-anime/" target="_blank">ici</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestion de droits minimaliste en PHP</title>
		<link>https://blog.developpez.com/spacefrog/p11281/astuce/gestion-de-droits-minimaliste-en-php</link>
		<comments>https://blog.developpez.com/spacefrog/p11281/astuce/gestion-de-droits-minimaliste-en-php#comments</comments>
		<pubDate>Thu, 06 Sep 2012 11:29:17 +0000</pubDate>
		<dc:creator><![CDATA[SpaceFrog]]></dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/spacefrog/?p=44</guid>
		<description><![CDATA[J&#8217;ai été amené à développer un mini CMS avec niveaux d&#8217;accès différentiés. Le but: n&#8217;autoriser l&#8217;accès à certains modules qu&#8217;à certaines personnes. J&#8217;ai opté par un système assez simple basé sur les sommes de puissances de 2. On attribue à &#8230; <a href="https://blog.developpez.com/spacefrog/p11281/astuce/gestion-de-droits-minimaliste-en-php">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>J&rsquo;ai été amené à développer un mini CMS avec niveaux d&rsquo;accès différentiés.<br />
Le but: n&rsquo;autoriser l&rsquo;accès à certains modules qu&rsquo;à certaines personnes.</p>
<p>J&rsquo;ai opté par un système assez simple basé sur les sommes de puissances de 2.<br />
<span id="more-44"></span><br />
On attribue à chaque module une puissance de 2<br />
On additionne pour chaque utilisateur les sommes des puissances de deux pour les modules autorisés.<br />
Une conversion de la somme en binaire suivi d&rsquo;un reverse de la chaine obtenue donne une série de 0 et 1 qui dans l&rsquo;ordre donnent les accès aux modules sous forme de boolean  (0= accès refusé  , 1 accès autorisé).</p>
<p>Un petit exemple :</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000088;">$valdroits</span><span style="color: #339933;">=</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;compta&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;fournitures&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;documents&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;admin&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$droits</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//$valdroits[&quot;fournitures&quot;]+$valdroits[&quot;admin&quot;];</span><br />
<span style="color: #000088;">$booldroits</span><span style="color: #339933;">=</span> <a href="http://www.php.net/strrev"><span style="color: #990000;">strrev</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/decbin"><span style="color: #990000;">decbin</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$droits</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$menu</span><span style="color: #339933;">=</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$i</span><span style="color: #339933;">=-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$valdroits</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$rub</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$i</span><span style="color: #339933;">++;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$menu</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$rub</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$booldroits</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>?<span style="color: #000088;">$booldroits</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<br />
<span style="color: #b1b100;">echo</span> <a href="http://www.php.net/nl2br"><span style="color: #990000;">nl2br</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/print_r"><span style="color: #990000;">print_r</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$menu</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;br/&gt;&quot;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$menu</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$rub</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp;<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'vous avez accès au menu '</span><span style="color: #339933;">.</span><span style="color: #000088;">$rub</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br/&gt;&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;/body&gt;<br />
&lt;/html&gt;</div></td></tr></tbody></table></div>
<p>Explications:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$valdroits</span><span style="color: #339933;">=</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;compta&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;fournitures&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;documents&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;admin&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>ici chacun des modules se voit attribuer une puissance de 2 (attention pas de doublon !)</p>
<p>Pour un utilisateur on somme les puissances de deux des modules autorisés</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$droits</span><span style="color: #339933;">=</span><span style="color: #000088;">$valdroits</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;fournitures&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #000088;">$valdroits</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;admin&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 1+4</span></div></td></tr></tbody></table></div>
<p>ici les modules compta et documents </p>
<p>Et voici le conversion magique :</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$booldroits</span><span style="color: #339933;">=</span> <a href="http://www.php.net/strrev"><span style="color: #990000;">strrev</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/decbin"><span style="color: #990000;">decbin</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$droits</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>qui nous retourne la chaine &laquo;&nbsp;1010&nbsp;&raquo;<br />
que l&rsquo;on peut décomposer comme suit:<br />
compta        1     => true<br />
fournitures   0     => false<br />
documents     1     => true<br />
admin         0     => false</p>
<p>Par commodité on peut associer à chaque module les boolean d&rsquo;accès pour l&rsquo;utilisateur:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$menu</span><span style="color: #339933;">=</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$i</span><span style="color: #339933;">=-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$valdroits</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$rub</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$i</span><span style="color: #339933;">++;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$menu</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$rub</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$booldroits</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>?<span style="color: #000088;">$booldroits</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>ce qui nous donne</p>
<blockquote><p>
$menu[&laquo;&nbsp;compta&nbsp;&raquo;]=>1<br />
$menu[&laquo;&nbsp;fournitures&nbsp;&raquo;]=>0<br />
$menu[&laquo;&nbsp;documents&nbsp;&raquo;]=>1<br />
$menu[&laquo;&nbsp;admin&nbsp;&raquo;]=>0;
</p></blockquote>
<p>il suffit ensuite de tester pour avoir si le module est autorisé on non</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$menu</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$rub</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp;<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'vous avez accès au menu '</span><span style="color: #339933;">.</span><span style="color: #000088;">$rub</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br/&gt;&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Avantages :<br />
Pas besoin de table, gestion simple des groupes : un groupe = un integer, la même somme donnant les mêmes accès.<br />
Ajout aisé de module : il suffit d&rsquo;ajouter une puissance de 2</p>
<p>Désavantage :<br />
Devient vite fouillis lorsque l&rsquo;on a beaucoup de modules</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Les égouts et les couleurs &#8230;</title>
		<link>https://blog.developpez.com/spacefrog/p11279/astuce/les-egouts-et-les-couleurs</link>
		<comments>https://blog.developpez.com/spacefrog/p11279/astuce/les-egouts-et-les-couleurs#comments</comments>
		<pubDate>Wed, 05 Sep 2012 11:19:51 +0000</pubDate>
		<dc:creator><![CDATA[SpaceFrog]]></dc:creator>
				<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Logiciel]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/spacefrog/?p=21</guid>
		<description><![CDATA[Je suis développeur web, plutôt codeur ou intégrateur, pas graphiste. La plupart du temps je récupère des chartes graphiques, mon coté artiste est donc très peu sollicité, ce qui n&#8217;est pas plus mal &#8230; Dans les rares cas ou je &#8230; <a href="https://blog.developpez.com/spacefrog/p11279/astuce/les-egouts-et-les-couleurs">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Je suis développeur web, plutôt codeur ou intégrateur, pas graphiste.<br />
La plupart du temps je récupère des chartes graphiques, mon coté artiste est donc très peu sollicité, ce qui n&rsquo;est pas plus mal &#8230;<br />
Dans les rares cas  ou je me suis lancé dans la création du design de sites, je me suis souvent heurté au casse tête des associations de couleurs.<br />
<span id="more-21"></span></p>
<p>Pour éviter les fautes de goût je vous conseille d&rsquo;utiliser des outils qui, à partir d&rsquo;une couleur maitresse, vous indiqueront une palette de couleurs que vous pourrez y associer.</p>
<p>Il existe des sites en ligne que vous trouverez facilement en tapant &laquo;&nbsp;color scheme&nbsp;&raquo; sur votre moteur de recherche de prédilection.</p>
<p>Mon choix s&rsquo;est porté sur un petit freeware nommé CSDesigner<br />
Doté d&rsquo;une pipette qui vous permet de repiquer la couleur maitresse, il vous propose les dégradés et couleurs complémentaires que vous pourrez lui associer sans risques pour les rétines.<br />
Vous trouvez cette petite application <a href="http://www.snapfiles.com/get/csdesigner.html" title="ici" target="_blank">ici</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Le blog de la grenouille sidérale.</title>
		<link>https://blog.developpez.com/spacefrog/p11277/humeur/le-blog-de-la-grenouille-siderale</link>
		<comments>https://blog.developpez.com/spacefrog/p11277/humeur/le-blog-de-la-grenouille-siderale#comments</comments>
		<pubDate>Wed, 05 Sep 2012 09:36:22 +0000</pubDate>
		<dc:creator><![CDATA[SpaceFrog]]></dc:creator>
				<category><![CDATA[Humeur]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/spacefrog/?p=7</guid>
		<description><![CDATA[Bonjour et bienvenue sur mon blog developpez.com !! Je code au quotidien en html, css, javascript, php et mysql avec très peu de moyens, pour ne pas dire un budget null et des objectifs professionnels. Je me débrouille donc au &#8230; <a href="https://blog.developpez.com/spacefrog/p11277/humeur/le-blog-de-la-grenouille-siderale">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Bonjour et bienvenue sur mon blog developpez.com !!</strong><br />
<span id="more-7"></span><br />
Je code au quotidien en html, css, javascript, php et mysql avec très peu de moyens, pour ne pas dire un budget null et des objectifs professionnels.<br />
Je me débrouille donc au quotidien avec des logiciels open source et des astuces.<br />
Le but de ce blog est de partager ces astuces qui ne font pas l&rsquo;objet du tutoriels, articles ou autres posts de FAQ sur les forums de développez.</p>
<p>En espérant que cela puisse vous être utile, mais aussi recueillir vos commentaires et vos astuces.</p>
<p>N&rsquo;hésitez pas à me contacter sur le forum !</p>
<p>Spacefrog </p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
