<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://sandrock.fr/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>SandRock.getBlog();</title>
  <link>http://sandrock.fr/blog/</link>
  <atom:link href="http://sandrock.fr/blog/feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Dev, découvertes, mangas... C'est déjà pas mal :D</description>
  <language>fr</language>
  <pubDate>Sat, 07 Dec 2013 16:24:36 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>WP7 app for Windows Phone 7 about to be released</title>
    <link>http://sandrock.fr/blog/post/2011/01/04/WP7-app-for-Windows-Phone-7-about-to-be-released</link>
    <guid isPermaLink="false">urn:md5:1d19c9d0a078c5dd9bbd70ba5459f99f</guid>
    <pubDate>Tue, 04 Jan 2011 21:21:00 +0100</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Dev</category>
            
    <description>    &lt;p&gt;Hi people.&lt;/p&gt;


&lt;p&gt;I've been working since half November on a WP7 application. It's called &quot;Betaseries WPC&quot; and is linked with &lt;a href=&quot;http://www.betaseries.com/&quot; hreflang=&quot;fr&quot;&gt;Betaseries.com&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Betaseries.com permits to manage a list of TV shows that you are watching. You can set the last episode you've seen for each show. And you can share with your friends. I like the place because it's pretty friendly and the website is ad-free and well realized.&lt;/p&gt;


&lt;p&gt;My application does basic stuff: you start by logging-in with your account, then some information show up. You can see the next episode to watch for each show you follow. You can also see a small description of episodes. You've got friends updates (what they watch, what they do). Finally some statistics about you and an small &quot;About&quot; page.&lt;/p&gt;


&lt;p&gt;Here are some screenshots:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://static.projects.sandrock.fr/betaseries/screens-2010-12-19/MainPage.home.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;http://static.projects.sandrock.fr/betaseries/screens-2011-01-04/MainPage.Episodes.English.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;http://static.projects.sandrock.fr/betaseries/screens-2011-01-04/MainPage.Friends.English.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;This is gonna make more things in future. I'd like to publish as soon as possible on the marketplace. Once it's done, sources will be opened. I'm also helped by a few friends which will show up later.&lt;/p&gt;


&lt;p&gt;As you understood, the application is not yet available. I'm waiting for my publisher account to be ready. But here are some links:&lt;/p&gt;


&lt;pre&gt;* &lt;a href=&quot;http://projects.sandrock.fr/trac/betaseries/&quot;&gt;Project home&lt;/a&gt;
* &lt;a href=&quot;http://projects.sandrock.fr/trac/betaseries/wiki/Wp7AppScreenshots&quot;&gt;Screenshots&lt;/a&gt;&lt;/pre&gt;


&lt;p&gt;A .NET/Silverlight library will be set under a GNU GPL license for those who want to create more stuff with betaseries.&lt;/p&gt;


&lt;p&gt;My main profile is &lt;a href=&quot;http://www.betaseries.com/membres/albator&quot; hreflang=&quot;fr&quot;&gt;albator&lt;/a&gt;, but you might prefer to look at &lt;a href=&quot;http://www.betaseries.com/membres/srktest&quot; hreflang=&quot;fr&quot;&gt;srktest&lt;/a&gt; which is specific for the application (and public btw).&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Take screenshots by code in your Windows Phone 7 application with auto-upload to your machine</title>
    <link>http://sandrock.fr/blog/post/2010/12/20/Make-screenshots-by-code-in-your-Windows-Phone-7-%28emulator%29</link>
    <guid isPermaLink="false">urn:md5:fe910dad9a21a7c6dfc57045cd567ab3</guid>
    <pubDate>Mon, 20 Dec 2010 20:39:00 +0100</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Dev</category>
        <category>.NET</category><category>wp7</category>    
    <description>    &lt;p&gt;Hello there,&lt;/p&gt;


&lt;p&gt;Here a simple code I tried to make to take screenshots inside a Windows Phone 7 application. This works in the emulator. I'm pretty sure it will work with a phone.&lt;/p&gt;


&lt;p&gt;I found this article to take screenshots with few lines of code: &lt;a href=&quot;http://blog.markarteaga.com/ScreenCaptureOnWindowsPhone7.aspx&quot; hreflang=&quot;en&quot;&gt;Screen Capture on Windows Phone 7&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;The issue here is that you only have a Bitmap image in the phone's memory. What I did is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a simple web application for IIS able to receive a screenshot (you may host it on your local IIS)&lt;/li&gt;
&lt;li&gt;a class for your WP7 application to send screenshots to the web server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You will find an attached file named Wp7Screenshots.rar. It contains a Visual Studio 2010 solution to build &amp;amp; publish on your local IIS (or anywhere you like).&lt;/p&gt;


&lt;p&gt;If you look at the code, you will find a simple IHttpHandler. It's main goal is to detect files in a HTTP POST query and to save them on your hard drive.&lt;/p&gt;


&lt;p&gt;After publishing, make sure the web application contains a &lt;ins&gt;Files&lt;/ins&gt; folder and verify IIS have permission to create files into it.&lt;/p&gt;


&lt;p&gt;Now, let's see you WP7 application. This only apply to Silverlight projects. So if you are using XNA, perhaps this blog entry is not for you.&lt;/p&gt;


&lt;p&gt;The only configuration you have to do is to set the URL of your deployed HttpHandler. You can do this anywhere.&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;Tools.&lt;span style=&quot;color: #0000FF;&quot;&gt;ScreenshotSender&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;UploadUrl&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://172.24.1.32/wp7/Upload.ashx?key=fvkjorejv&amp;quot;&lt;/span&gt;;&lt;/pre&gt;


&lt;p&gt;Then, you have to call the magic method to take the screenshot. You need a reference to a PhoneApplicationPage. Here is a code to take a screenshot 5 seconds after the application startup. You can of course use any event to take more screenshots (mouse click, navigation event, timer...).&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; partial &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; MainPage &lt;span style=&quot;color: #008000;&quot;&gt;:&lt;/span&gt; PhoneApplicationPage &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; MainPage&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
            InitializeComponent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
            Tools.&lt;span style=&quot;color: #0000FF;&quot;&gt;ScreenshotSender&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;UploadUrl&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://172.24.1.32/wp7/Upload.ashx?key=fvkjorejv&amp;quot;&lt;/span&gt;;
&amp;nbsp;
            &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// go off-thread to wait&lt;/span&gt;
            ThreadPool.&lt;span style=&quot;color: #0000FF;&quot;&gt;QueueUserWorkItem&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;r &lt;span style=&quot;color: #008000;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
                Thread.&lt;span style=&quot;color: #0000FF;&quot;&gt;Sleep&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;5000&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                var dispatcher &lt;span style=&quot;color: #008000;&quot;&gt;=&lt;/span&gt; r &lt;span style=&quot;color: #0600FF;&quot;&gt;as&lt;/span&gt; Dispatcher;
&amp;nbsp;
                &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// go on the UI thread to take a screenshot&lt;/span&gt;
                dispatcher.&lt;span style=&quot;color: #0000FF;&quot;&gt;BeginInvoke&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Action&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
                    Tools.&lt;span style=&quot;color: #0000FF;&quot;&gt;ScreenshotSender&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;TakeAndSend&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;, Deployment.&lt;span style=&quot;color: #0000FF;&quot;&gt;Current&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Dispatcher&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Don't forget this code was made from scratch. &lt;strong&gt;It is NOT ready for production.&lt;/strong&gt; I wrote this to take screenshots for documentation purpose. If you want to use this in a published application, you might want to read the whole code file (for the silverlight application). And the server code IS INSECURE: anyone can upload any file to your webserver. The only simple protection is a hard-coded key. So again, &lt;ins&gt;sample&lt;/ins&gt; &lt;ins&gt;insecure&lt;/ins&gt; &lt;ins&gt;code&lt;/ins&gt; here. You are free to enhance (and optionally post your own code).&lt;/p&gt;


&lt;p&gt;Here is my &lt;ins&gt;C:\inetpub\wwwroot\wp7\Files&lt;/ins&gt; folder with screenshots from the emulator.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/wp7screenshots/screenshots.jpg&quot; alt=&quot;screenshots.jpg&quot; title=&quot;screenshots.jpg, Dec 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Hope this can help. I'm still searching how to take a screenshot of a whole panorama control...&lt;/p&gt;</description>
    
          <enclosure url="http://sandrock.fr/dotclear/public/articles-2010/wp7screenshots/Wp7Screenshots.rar"
      length="13773" type="application/rar" />
          <enclosure url="http://sandrock.fr/dotclear/public/articles-2010/wp7screenshots/ScreenshotSender.cs"
      length="4808" type="text/plain" />
    
    
      </item>
    
  <item>
    <title>Mail notification for subversion repository</title>
    <link>http://sandrock.fr/blog/post/2010/09/14/Mail-notification-for-subversion-repository</link>
    <guid isPermaLink="false">urn:md5:3ba62625c73de0f92c447cafd13b679a</guid>
    <pubDate>Tue, 14 Sep 2010 23:33:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Software</category>
        <category>php</category><category>svn</category>    
    <description>    &lt;p&gt;I was searching for a little script able to email my collaborators and myself when someone commits something to my SVN repositories.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2010/svn_commit_notification_-_sample_email.png&quot; title=&quot;SVN commit email - sample email&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/.svn_commit_notification_-_sample_email_m.jpg&quot; alt=&quot;SVN commit email - sample email&quot; title=&quot;SVN commit email - sample email, août 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;There seem to be a popular perl script &lt;a href=&quot;http://svn.apache.org/repos/asf/subversion/tags/0.13.2/tools/hook-scripts/commit-email.pl&quot; hreflang=&quot;en&quot;&gt;commit-email.pl&lt;/a&gt;. But I had several errors when implementing it. This is why I decided to make one. Because it's useful and easy to configure, I'll share my entire script here.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://f.sandrock.fr/commit-email.php&quot; hreflang=&quot;en&quot;&gt;Download commit-email.php&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;As you can see, there is a little configuration section.&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// CONFIGURATION&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$svnlook&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'/usr/bin/svnlook'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$globaladdress&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'someone+logs@gmail.com'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$repoaddress&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;  &lt;span style=&quot;color: #ff0000;&quot;&gt;'repoAAA'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'user1@aaa.com, user2@aaa.com'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;  &lt;span style=&quot;color: #ff0000;&quot;&gt;'repoBBB'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'user1@b.com, user2@b.com'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$from&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'svn-noreply@svn-hosting.lol'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$replyto&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'admin@svn-hosting.lol'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Nothing fancy here. $svnlook is the path where the svnlook command can be run. $globaladdress is a email address where all commit will be notified. $repoaddress is a field for specific repositories to add email addresses. $from and $replyto are what they are.&lt;/p&gt;


&lt;p&gt;It's following the svn postcommit hook. My SVN repos are located in /home/svn. You can create a hook in /home/svn/repoX/hooks/post-commit containing:&lt;/p&gt;

&lt;pre class=&quot;bash&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;#!/bin/sh&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #007800;&quot;&gt;REPOS=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;$1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #007800;&quot;&gt;REV=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;$2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;php &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;svn&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;commit-email.php &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;$REPOS&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Don't forget to place my script in /home/svn and to install php5-cli.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Deletion confirmation with ASP.NET MVC</title>
    <link>http://sandrock.fr/blog/post/2010/06/12/Deletion-confirmation-with-ASP.NET-MVC</link>
    <guid isPermaLink="false">urn:md5:0b7dc01009b7b46cfbe6b6f037901621</guid>
    <pubDate>Sat, 12 Jun 2010 15:26:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Dev</category>
        <category>.NET</category><category>ASP.NET MVC</category><category>jquery</category><category>web</category>    
    <description>    &lt;p&gt;Here is my approach for deleting stuff with ASP.NET MVC 2.&lt;/p&gt;


&lt;p&gt;As mentioned &lt;a href=&quot;http://stephenwalther.com/blog/archive/2009/01/21/asp.net-mvc-tip-46-ndash-donrsquot-use-delete-links-because.aspx&quot; hreflang=&quot;en&quot;&gt;here&lt;/a&gt;, the default Delete view isn't quite correct. What I wanted is a deletion solution that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;is powered with Ajax for a better user experience
&lt;ul&gt;
&lt;li&gt;we will make a HTTP DELETE on /Items/Delete/12 to delete item #12&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;is accessible for non-JS enabled browsers (we need a confirmation form)
&lt;ul&gt;
&lt;li&gt;when confirmed, the deletion occurs with HTTP POST on /Items/Delete/12 to delete item #12&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With those specifications, we can write the following (&lt;strong&gt;wrong&lt;/strong&gt;) controller code:&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; ItemsController &lt;span style=&quot;color: #008000;&quot;&gt;:&lt;/span&gt; Controller&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;HttpGet&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; ActionResult Delete&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; id&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            ViewData.&lt;span style=&quot;color: #0000FF;&quot;&gt;Model&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; ConfirmFormModel &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;                Id &lt;span style=&quot;color: #008000;&quot;&gt;=&lt;/span&gt; id.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToString&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;                BackAction &lt;span style=&quot;color: #008000;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; View&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;HttpDelete&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;HttpPost&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; ActionResult Delete&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;ConfirmFormModel model&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            ViewData.&lt;span style=&quot;color: #0000FF;&quot;&gt;Model&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;=&lt;/span&gt; model;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// business action here&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// if we use Ajax, backaction will be null and have&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// to prevent a secondary GET request&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; model.&lt;span style=&quot;color: #0000FF;&quot;&gt;BackAction&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;?&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;:&lt;/span&gt; RedirectToAction&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;model.&lt;span style=&quot;color: #0000FF;&quot;&gt;BackAction&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// Simple model class to store the Id for a confirmation form.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; ConfirmFormModel &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// Item's ID&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Id &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// Confirmation message.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Message &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// The controller action to redirect to if the user wants to cancel.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; BackAction &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;A created a little model class to store the confirmation message and the item ID; this way I can use it all over my project. You can notice the &lt;code&gt;[HttpDelete]&lt;/code&gt; and &lt;code&gt;[HttpPost]&lt;/code&gt; on the second &lt;code&gt;Delete()&lt;/code&gt; method. Obviously this won't work as &lt;a href=&quot;http://stackoverflow.com/questions/2648783/how-do-the-httppost-httpput-etc-attributes-in-asp-net-mvc-2-work&quot; hreflang=&quot;en&quot;&gt;asked here&lt;/a&gt;. You have to create your own attribute.&lt;/p&gt;


&lt;p&gt;So I created the related views with (not-included) javascript. Here is the index:&lt;/p&gt;

&lt;pre class=&quot;html&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;lt;!-- Index page --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;% &lt;span style=&quot;color: #000066;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;int i &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;; i &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;10&lt;/span&gt;; i++&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; %&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;li&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;%&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; Html.ActionLink&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Delete #&amp;quot;&lt;/span&gt; + i, &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Delete&amp;quot;&lt;/span&gt;, new &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;id&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; i &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;, new &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; @&lt;span style=&quot;color: #000066;&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;deleteLink&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;%&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;% &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; %&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;The delete page where I include a generic partial-view:&lt;/p&gt;

&lt;pre class=&quot;html&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;lt;!-- Delete page --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;&lt;/span&gt;Confirmation&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;% Html.RenderPartial&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;ConfirmForm&amp;quot;&lt;/span&gt;, Model&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; %&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Finally, the partial view:&lt;/p&gt;

&lt;pre class=&quot;html&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;lt;!-- Delete form in a partial view --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;% Html.BeginForm&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;  %&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;fieldset&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;legend&amp;gt;&lt;/span&gt;&lt;/span&gt;Confirmation&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/legend&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;%&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; Html.Encode&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Model.Message ?? &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Are you sure you want to delete this?&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;%&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;%&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; Html.HiddenFor&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;m &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; m.Id) %&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;%&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; Html.HiddenFor&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;m &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; m.BackAction) %&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;%&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; Html.ActionLink&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Cancel&amp;quot;&lt;/span&gt;, Model.BackAction ?? &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; %&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;submit&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Continue&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Continue&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/fieldset&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;% Html.EndForm&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; %&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Now we have a working solution to confirm some action on a website. Sources attached...&lt;/p&gt;</description>
    
          <enclosure url="http://sandrock.fr/dotclear/public/articles-2010/DeleteSample.rar"
      length="244186" type="application/rar" />
    
    
      </item>
    
  <item>
    <title>Test de VS.PHP 2010</title>
    <link>http://sandrock.fr/blog/post/2010/01/07/Test-de-VS.PHP-2010</link>
    <guid isPermaLink="false">urn:md5:e5a1dea9445aed1d313adb4d00bcaba9</guid>
    <pubDate>Thu, 07 Jan 2010 23:33:00 +0100</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Software</category>
        <category>ide</category><category>visual studio</category><category>vs.php</category><category>zend framework</category>    
    <description>    &lt;p&gt;Bonjour à tous.&lt;/p&gt;


&lt;p&gt;Dans le but de créer un petit projet perso en PHP + ZF, j'ai décidé de tester pour de bon VS.PHP 2010 &lt;a href=&quot;http://www.jcxsoftware.com/jcx/node/2779&quot; hreflang=&quot;en&quot;&gt;actuellement en développement&lt;/a&gt;. Le test est réalisé sur le build 2.8.1.6090.&lt;/p&gt;


&lt;p&gt;VS.PHP est une extension pour Microsoft Visual Studio conçue pour écrire des applis PHP. Je m'attend globalement à la même expérience qu'avec Netbeans 6.5+. VS.PHP 2008 coûte $99.99 ou €73.99. Notez que Visual Studio existe sous une forme gratuite&amp;nbsp;; si vous n'êtes pas développeur .NET, VS.PHP ne nécessitera pas de version payante de VS.&lt;/p&gt;


&lt;p&gt;A noter que je ne connais presque pas le logiciel, je pars à sa découverte.&lt;/p&gt;


&lt;h2&gt;Installation&lt;/h2&gt;


&lt;p&gt;Depuis le &lt;a href=&quot;http://sandrock.fr/blog/post/2010/01/07/&quot; hreflang=&quot;en&quot;&gt;site de dev&lt;/a&gt;, récupérez l'installateur le plus récemment compilé. L'installateur est un web install.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/00-installation.jpg&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/.00-installation_s.jpg&quot; alt=&quot;Installation...&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Installation..., janv. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;Première utilisation&lt;/h2&gt;


&lt;p&gt;Quelle surprise de voir qu'un projet de type 'Zend MVC Project' m'est proposé&amp;nbsp;! Effectivement, dans le fenêtre de nouveau projet, on peut créer un projet classique ou un projet ZF. Ca tombe bien, c'est mon framework préféré&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/01-new-project.jpg&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/.01-new-project_s.jpg&quot; alt=&quot;New project window&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;New project window, janv. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;En plus de tout ça, je vais utiliser AnkhSVN pour versionner mon projet...&lt;/p&gt;


&lt;p&gt;Voilà mon projet PHP+ZF créé. La structure de fichiers proposée ne me convient déjà pas. Le template de projet crée quelques malheureux fichiers. Rien de transcendant... De plus, la colorisation syntaxique est très mal intégrée...&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/03-cs-colors.jpg&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/.03-cs-colors_s.jpg&quot; alt=&quot;Ma colorisation C#&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Ma colorisation C#, janv. 2010&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/02-zf-and-colors.jpg&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/.02-zf-and-colors_s.jpg&quot; alt=&quot;PHP colors and ZF structure&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;PHP colors and ZF structure, janv. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Impossible de trouver les options de colorisation pour le code PHP. Une recherche sur le web m'indique qu'elles devraient s'afficher avec VS démarré en administrateur... Même pas... Petite restructuration de l'appli&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/04-application-ready-to-run.jpg&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/.04-application-ready-to-run_s.jpg&quot; alt=&quot;The application is ready to run&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;The application is ready to run, janv. 2010&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/05-builtin-webserver.jpg&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/.05-builtin-webserver_s.jpg&quot; alt=&quot;Built-in web server displays an error&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Built-in web server displays an error, janv. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Un mini server web de debug est inclus. J'imagine que le but est de fournir un debug pas-à-pas. Très bon point.&lt;/p&gt;


&lt;p&gt;Malheureusement, de nombreux bugs surviennent avec cette version beta. Actuellement VS a gardé un lock sur le fichier .phpproj et n'arrive pas à sauvegarder la structure du projet (cette action est nécessaire pour démarrer l'appli).&lt;/p&gt;


&lt;p&gt;Néanmoins, l'IntelliSense est au rendez-vous. Vous pouvez dans un premier temps définir un include_path pour spécifier l'emplacement de votre framework.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/06-php-include-path.jpg&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/.06-php-include-path_s.jpg&quot; alt=&quot;PHP include path&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;PHP include path, janv. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Par la suite, l'IDE affichera un IntelliSense digne de celui que l'on a en developpement .NET&amp;nbsp;: le meilleur.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/07-php-intellisense.jpg&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/.07-php-intellisense_s.jpg&quot; alt=&quot;PHP IntelliSense&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;PHP IntelliSense, janv. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;Conclusion&lt;/h2&gt;


&lt;p&gt;Le bug cité ayant détruit mon projet&amp;nbsp;; considérons qu'il est trop tôt pour tester cette version. D'ici quelques jours je ferai un test avec VS 2008 si j'arrive à négocier l'extension de la durée d'évaluation...&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2010/vs.php2010/08-bug-empty-project.jpg&quot; alt=&quot;Bug bug bug bug bug bug&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Bug bug bug bug bug bug, janv. 2010&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>SUPINFO, le point</title>
    <link>http://sandrock.fr/blog/post/2009/11/30/SUPINFO%2C-le-point</link>
    <guid isPermaLink="false">urn:md5:2e9bb0033396df64c347a01c6dc3f6ad</guid>
    <pubDate>Mon, 30 Nov 2009 12:29:00 +0100</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>SUPINFO</category>
            
    <description>    &lt;p&gt;Me voilà en 4ième année à SUPINFO en tant que STA .NET.&lt;/p&gt;


&lt;p&gt;Tout à commencé en 2006 lorsque je suis entré en B1. Ayant découvert SUPINFO assez tôt, la JPO à laquelle je suis allé m'a motivé à avoir mon BAC. J'ai donc bossé de mon mieux pour entrer dans cette école. Le coucours d'entrée était encore exigé. Je pense d'ailleurs que c'est grâce à SUPINFO que j'ai eu mon BAC.&lt;/p&gt;


&lt;p&gt;L'année de B1 était fantastique. J'ai découvert des gens tous passionnés et ouverts avec un niveau général satisfaisant. Les cours était excellents, on en profitait pour bien se marrer. C'était vraiment un renouveau pour moi qui venait d'une campagne profonde du Nord. Je remercie au passage les directeurs régionaux, les assistantes de direction et les SCT pour leur excellent travail.&lt;/p&gt;


&lt;p&gt;L'année de B2 ressemblait fortement à la précédente. C'est pourtant durant celle-ci que les petits problèmes ont commencé à arriver. Il faut dire qu'à SUPINFO, les étudiants sont les beta-testeurs constants des nouvelles pratiques que l'on ne cesse d'instaurer. Le SGES qui crash pendant l'éval de maths qui me semblait impossible à valider, c'était le pied&amp;nbsp;! Malgrès tout l'ambiance restait la même, les petits problèmes étaient et resteraient petits...&lt;/p&gt;


&lt;p&gt;Ensuite vient la difficile année en B3. Le site de SUPINFO Lille ayant ouvert, la moitié de ma promo à Valenciennes a déserté et nous nous sommes retrouvés dans une promo de 15 étudiants. Durant l'année, j'ai entendu des feedbacks douteux concernant ce site de Lille. Mais ici à Valenciennes on ne s'en souciait pas, on était dans une sorte de bulle où tout était toujours correct (ou presque). Pourtant les communications commençaient à se faire rares, les ressources vitales du bâtiment n'était plus renouvelées. Une sorte de crise quoi. Je salue une seconde fois notre DR qui s'est impliqué au maximum pour faire tourner la baraque. C'est d'ailleurs sont implication qui lui a valu sa démission. On constatait des soucis auprès des SCT. Pourtant les SCT sont le cœur de l'enseignement à SUPINFO.&lt;/p&gt;


&lt;p&gt;Ensuite vint les vacances d'étés façon zéro-comm' (le fait qu'il n'y ait pas de communication était en fait une forme de communication). De la dernière comm' annoncant les infos pour les conventions de stages jusqu'à la rentrée, les mails n'ont pas vraiment circulé. On était pourtant habitué à beaucoup de mails&amp;nbsp;! Les romans d'Alick que personne n'arrivait à lire jusqu'à la fin... Les mails divers de l'administration. Les avertissements pour &quot;contenu non pédagogique sur le dossier éphémère&quot;. Les campagnes d'inscription aux pôles&amp;nbsp;! Les réunions de délégués, les communications blagues comme &quot;Installation de caméras de surveillance sur tous les sites&quot;. Bref, on rigolait bien au début et tout fonctionnait bien&amp;nbsp;; jusqu'à cet été.&lt;/p&gt;


&lt;p&gt;De plus cet été, la grande arrivée des français sur twitter a amplifié le phénomène de non-comm' par un phénomène de rumeur-à-gogo. Voilà toutes les conneries qu'on pouvait voir sur twitter&amp;nbsp;! Des gens qui tentaient de couler SUPINFO avec des articles de blogs bidon... Des étudiants demandant des infos... Des infos totalement bidon... Bref, je n'ai pas du tout apprécié tout ça. J'aimais mon école, je l'aime toujours et je souhaite y être impliqué à jamais&amp;nbsp;! C'est elle qui m'a sorti de ma rue de campagne sans avenir, c'est elle qui m'a fait bien rire durant des années. Je salue au passage toute ma promo (et même ceux qui se sont cassés à Lille), mais surtout Etienne, Flavien, François, Hugo, Geoffroy, Alex, Jonathan, Augustin, Bertrand.&lt;/p&gt;


&lt;p&gt;Je constatait que beaucoup de monde tentait de casser l'école dans laquelle ils étudiaient&amp;nbsp;! Que ce soit par les sites de news en ligne ou via des réactions de profs de FAC. SUPINFO voulait se faire l'image d'une grande école au TOP niveau de la technologie. Et c'était le cas&amp;nbsp;! Et ça sera toujours le cas&amp;nbsp;! Pourtant beaucoup de monde a perdu espoir et s'est abaissé à envoyer des skuds gratuits sur les réseaux sociaux. Tous ces gens qui ont descendu l'école m'ont dégoutté. Lorsqu'on paie 5 K€ par an et que l'on a un enseignement des plus efficace de France, on n'aide pas le bateau à couler lorsqu'il y a des brèches dans la coque&amp;nbsp;! L'administration trop fière pour appeler à l'aide a juste occulté toute info. J'aurai apprécié un petit mail du style &quot;On galère un peu. On répare tout. Vous inquiétez pas, on revient.&quot;. Je pense qu'un énorme travail de fond s'est fait durant cet été. La restructuration complète pour permettre le franchisage. Le chamboulement de tout ce qui existait (les SCT/STA, la nouvelle façon de donner cours, tout...). Malheureusement 4 mois étaient insuffisants pour tout changer, la rentrée 2009  fût donc très hésitante.&lt;/p&gt;


&lt;p&gt;Dans tout ça, je me posais des questions. Non pas sur l'avenir de SUPINFO -car je crois qu'avec les revenus des étudiants, cette boite ne peut pas couler-, non. Mais sur le mien. Des centaines de gens -stupides pour la plupart- étaient en train de faire tomber notre réputation et de compromettre notre diplôme. M1 étant le meilleure année pour devenir SCT, j'ai donc opté pour cette option, dans l'espoir de participer un peu. Je salue au passage mes collègues qui on su me motiver et me montrer qu'un avenir magique s'ouvrait à moi avec cette école.&lt;/p&gt;


&lt;p&gt;Me voilà donc STA en Microsoft .NET le 27 Octobre 2009. Malheureusement la procédure s'est fait tardivement. Enfin ce n'est pas grave, tout se passe pour le mieux. Ce statut va me permettre de travailler mes capacités de formateur, c'est carrément super.&lt;/p&gt;


&lt;p&gt;En tout cas l'organisation du coté du labo .NET et Microsoft est exemplaire, des gens motivés ont repris les rennes. Mon Full Prof exige beaucoup et c'est pas plus mal. Je le remercie au nom de l'école pour le travail qu'il apporte&amp;nbsp;: il s'implique beaucoup et les STA sont bien dirigés.&lt;/p&gt;


&lt;p&gt;Me voilà donc à mon premier cours à Lille en face des M1. Certains M1 ayant quitté Valenciennes d'ailleurs. J'ai heureusement été bien accueilli.&lt;/p&gt;


&lt;p&gt;Nous voilà donc au jour de la rédaction de ce billet. C'est assez impressionnant de raconter 4 ans sur 1 seul billet&amp;nbsp;! Bref, je me sentais dans l'obligation de faire le point sur mon école.&lt;/p&gt;


&lt;p&gt;A tous ceux qui souhaitent intégrer l'école&amp;nbsp;: SUPINFO c'est bien&amp;nbsp;! Beaucoup de gens motivés mais aussi des gens chiants à qui il ne faut cesser de prouver qu'on peut avancer&amp;nbsp;!
A ceux qui on raconté de la merde sur l'école&amp;nbsp;: oui, SUPINFO galère un peu mais c'est pas une raison pour empirer les choses. Pensez à la valeur de votre diplôme.
A toi lecteur&amp;nbsp;: merci d'avoir lu mon roman médiocrement objectif. Je tenterai de faire mieux à l'avenir.&lt;/p&gt;


&lt;p&gt;PS&amp;nbsp;: Je vous prie de pardonner l'apparence plutôt moche de mon blog,&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Nouveautées de Silverlight 3</title>
    <link>http://sandrock.fr/blog/post/2009/07/21/Nouveaut%C3%A9es-de-Silverlight-3</link>
    <guid isPermaLink="false">urn:md5:7ebc295b1ef02f3ba03322e2e51025e6</guid>
    <pubDate>Tue, 21 Jul 2009 20:15:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Dev</category>
        <category>flash</category><category>silverlight</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://silverlight.net/getstarted/&quot; hreflang=&quot;en&quot;&gt;Silverlight 3 étant sortit il y a quelques jours&lt;/a&gt;, je vais vous en parler un petit peu.&lt;/p&gt;


&lt;p&gt;Je vous rapelle que Silverlight est un plugin pour navigateur ressemblant (du point de vu utilisateur) à Adobe Flash et est développé par Microsoft. Les principaux atouts de Silverlight sont les suivants&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C'est un format ouvert (&lt;a href=&quot;http://en.wikipedia.org/wiki/Xaml&quot; hreflang=&quot;en&quot;&gt;XAML&lt;/a&gt;) donc théoriquement compatible avec n'importe quel OS et toutes architectures (x86, x64...).&lt;/li&gt;
&lt;li&gt;Des logiciels de développement gratuits existent (&lt;a href=&quot;http://www.microsoft.com/express/&quot; hreflang=&quot;en&quot;&gt;Visual Studio Express&lt;/a&gt;). Le XAML étant un format XML, un éditeur de texte suffit presque à créer un composant.&lt;/li&gt;
&lt;li&gt;L'utilisation du XAML permet à l'application d'être portée sous forme de fenêtre grâce à &lt;a href=&quot;http://en.wikipedia.org/wiki/Windows_Presentation_Foundation&quot; hreflang=&quot;en&quot;&gt;WPF&lt;/a&gt;. (Flash le permet via Adobe Air mais il est difficile de trouver une version x64 pour GNU/Linux... (en fait, il n'y en a pas))&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je vous invite à consulter le web pour plus de détails.&lt;/p&gt;


&lt;p&gt;Au passage, voici un &lt;a href=&quot;http://blogs.dotnet-france.com/juliend/post/Silverlight3-Livre-Blanc-sur-la-version-finale-de-Silverlight-3.aspx&quot; hreflang=&quot;fr&quot;&gt;White paper édité par Julien Dollon&lt;/a&gt; regrouppant les nouveautées de la version 3.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Télécharger vidéo et musique sur un flux Windows Media depuis linux</title>
    <link>http://sandrock.fr/blog/post/2009/04/13/T%C3%A9l%C3%A9charger-depuis-un-flux-Windows-Media-depuis-linux</link>
    <guid isPermaLink="false">urn:md5:fe9bd3c54708f4be69472e4f1838f721</guid>
    <pubDate>Mon, 13 Apr 2009 12:29:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Software</category>
        <category>linux</category><category>mms</category><category>Windows Media</category>    
    <description>    &lt;p&gt;Alors que cela est un calvaire sous Windows, il est possible de récupérer simplement un fichier vidéo Windows Media hébergé sur un serveur de streaming mms:// avec la commande mplayer.&lt;/p&gt;


&lt;p&gt;Exemple : &lt;code&gt;mplayer &quot;mms://.../....wmv&quot; -dumpstream -dumpfile &quot;Ma Vidéo.wmv&quot;&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Simple et efficace&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Meilleures images d'Hapudopi</title>
    <link>http://sandrock.fr/blog/post/2009/04/10/Meilleures-images-d-Hapudopi</link>
    <guid isPermaLink="false">urn:md5:d45e1c7176fb059e2ab792043b099b30</guid>
    <pubDate>Fri, 10 Apr 2009 20:08:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
            
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/sunfox/3411599828/&quot; hreflang=&quot;en&quot;&gt;Firewall Spécial Hadopi&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/sunfox/3411599828/&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3307/3411599828_bda32bf51f.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/33276582@N03/3428386452/&quot; hreflang=&quot;en&quot;&gt;HADOPI&amp;nbsp;: erreur 404&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/33276582@N03/3428386452/&quot; hreflang=&quot;en&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3332/3428386452_74d077dbb0.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/millynet/142112825/&quot; hreflang=&quot;en&quot;&gt;Criminel en puissance&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/millynet/142112825/&quot;&gt;&lt;img src=&quot;http://farm1.static.flickr.com/50/142112825_0629401044.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/nitot/3428799744/&quot; hreflang=&quot;en&quot;&gt;Erreur 404, Députés non trouvés&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/nitot/3428799744/&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3549/3428799744_eb0e60cd84.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/yingrichard/3350767008/&quot; hreflang=&quot;en&quot;&gt;Ne télécharge plus à l'adresse IP indiquée&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.travailleursduweb.com/&quot; hreflang=&quot;fr&quot;&gt;Signé les Travailleurs Du Web&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/yingrichard/3350767008/&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3420/3350767008_85bf90a4bb.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/deubeuliou/3349502141/&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3439/3349502141_984d4061e6.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/gunthert/3269288618/&quot; hreflang=&quot;en&quot;&gt;Contenu non autorisé&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/gunthert/3269288618/&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3436/3269288618_b0111856bb.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/30436617@N05/3427691214/&quot; hreflang=&quot;en&quot;&gt;Hadopi Pwned&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/30436617@N05/3427691214/&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3300/3427691214_82a5e37429.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Les liens du dimanche - Office Hacks &amp; Hadopi</title>
    <link>http://sandrock.fr/blog/post/2009/04/05/Les-liens-du-dimanche</link>
    <guid isPermaLink="false">urn:md5:7b7b81ee23bc6c33af876da0a75570de</guid>
    <pubDate>Sun, 05 Apr 2009 12:57:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Saga liens du Dimanche</category>
        <category>hadopi</category><category>office hacks</category>    
    <description>    &lt;p&gt;Comme il m'est un peu difficile d'entretenir un blog, je vais démarrer une petite saga des liens du dimanche, ça sera toujours mieux que rien&amp;nbsp;! Alors c'est partit&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Ce blog s'adressant surtout à des développeurs, et un développeur étant souvent assis devant son pc, voici quelques liens permettant d'entretenir sa santé et sa concentration&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://lifehacker.com/5195844/top-10-home-office-hacks&quot; hreflang=&quot;en&quot;&gt;Top 10 Home Office Hacks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.geeksaresexy.net/2009/01/27/how-changing-my-posture-transformed-my-life/&quot; hreflang=&quot;en&quot;&gt;How Changing my Posture Transformed my Life&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.ergotron.com/tabid/305/language/en-US/default.aspx&quot; hreflang=&quot;en&quot;&gt;Le petit outil permettant de bien arranger votre bureau&lt;/a&gt; (un lien permet d'utiliser des unités métriques)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://lifehacker.com/5195844/top-10-home-office-hacks&quot; hreflang=&quot;en&quot;&gt;Beyond Life Hacks: Reusable Solutions to Common Productivity Problems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le sujet du moment en France est bien Hadopi, &lt;del&gt;cette loi a fait couler beaucoup de...&lt;/del&gt; cette loi a fait sauter beaucoup de touches de claviers... Beaucoup de gens critiquent directement la loi car ce sont des pirates qui n'en veulent pas. Voici quelques articles qui prennent un peu plus de recul que d'autres&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://standblog.org/blog/post/2009/04/04/Hadopi%2C-la-fin&quot; hreflang=&quot;fr&quot;&gt;Hadopi, la fin&lt;/a&gt; Hadopi, frein au téléchargement illégal dans un premier temps, gros problème économique dans un second&amp;nbsp;!&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://torrentfreak.com/france-to-block-the-pirate-bay-disconnect-file-sharers-090403/&quot; hreflang=&quot;en&quot;&gt;France to Block The Pirate Bay, Disconnect File-Sharers&lt;/a&gt; Un point de vue extérieur... &lt;q&gt;What struck us most is that the people who get to decide on these issues have no clue about file-sharing at all. Many of them don’t know what BitTorrent is, or how it works. Yet, they decide the fate of hundreds of thousands of Internet users.&lt;/q&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.lefigaro.fr/medias/2009/04/02/04002-20090402ARTFIG00587-a-peine-votee-hadopi-pose-des-problemes-.php&quot; hreflang=&quot;fr&quot;&gt;A peine votée, Hadopi pose des problèmes&lt;/a&gt; &lt;q&gt;Est-ce aux consommateurs de sauver une industrie en déclin parce qu'elle n'a pas su s'adapter à la nouvelle donne technologique et élaborer un nouveau modèle économique ?&lt;/q&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dans Hadopi, ce que je trouve le plus grave est que des députés peuvent passer n'importe qu'elle loi par &quot;triche&quot;. Comment se fait-il qu'une loi puisse être votée avec 16 personnes présentes sur plus de 600&amp;nbsp;? Les vrais pirates ne seraient-ils pas les 12 députés à être restés si tard le soir&amp;nbsp;? Je vous invite donc à utiliser tous vos protocoles de communication habituels dans leur variante sécurisée HTTPS, SMTP(S), IMAP(S), BitTorrent(S)... Seule le chiffrement pourra nous sauver de cet état en carton. =)&lt;/p&gt;


&lt;p&gt;Bon week end à tous.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Orange, fournisseur de non-accès à Internet</title>
    <link>http://sandrock.fr/blog/post/2009/02/14/Orange%2C-fournisseur-de-non-acc%C3%A8s-%C3%A0-Internet</link>
    <guid isPermaLink="false">urn:md5:8ad9e86412819a90a82da1ac689db4df</guid>
    <pubDate>Sat, 14 Feb 2009 17:28:00 +0100</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Web</category>
        <category>google</category><category>orange</category>    
    <description>    &lt;p&gt;Mais que nous fait donc notre FAI Orange adoré&amp;nbsp;? Bah oui, après l'après midi et la nuit de vendredi sans Internet (je vous explique pas l'épreuve de survie), voilà qu'une nouvelle curiosité apparait sur le réseau&amp;nbsp;: l'accès à google et ses services sont bloqués...&lt;/p&gt;


&lt;p&gt;Des bugs vraiment bizarres chez Orange...&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/orange-dislike-google.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/.orange-dislike-google_m.jpg&quot; alt=&quot;Oranges dilikes Google&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Oranges dilikes Google, Feb 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Mettez votre flux RSS à jour !.</title>
    <link>http://sandrock.fr/blog/post/2009/02/08/Mettez-votre-flux-RSS-a-jour</link>
    <guid isPermaLink="false">urn:md5:22c217e2c2d44a115fcea16d5b0cd812</guid>
    <pubDate>Sun, 08 Feb 2009 10:20:00 +0100</pubDate>
    <dc:creator>SandRock</dc:creator>
            
    <description>    &lt;p&gt;J'aurai du faire cela avant l'ouverture du blog... Le flux RSS pour mes billets passe désormais par Feedburner. Merci de mettre à jour vos agrégateurs/readers et co.&lt;/p&gt;


&lt;p&gt;Nouveau feed&amp;nbsp;: &lt;a href=&quot;http://feeds2.feedburner.com/Sandrock&quot; title=&quot;http://feeds2.feedburner.com/Sandrock&quot;&gt;http://feeds2.feedburner.com/Sandro...&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Bonne journée à tous &lt;img src=&quot;/dotclear/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Nouvel Helper qui change la vie</title>
    <link>http://sandrock.fr/blog/post/2009/02/08/Nouvel-Helper-qui-change-la-vie</link>
    <guid isPermaLink="false">urn:md5:c501b4ba6c5f3630adde799e6d19833d</guid>
    <pubDate>Sun, 08 Feb 2009 10:11:00 +0100</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Dev</category>
        <category>php</category><category>zend framework</category>    
    <description>    &lt;p&gt;Vous connaissez tous Zend_View_Helper_Url qui permet de créer une url rapidement dans une view. La syntaxe est la suivante&amp;nbsp;: $this-&amp;gt;url(array('controller' =&amp;gt; 'index', 'action' =&amp;gt; 'about', 'arg0' =&amp;gt; 'value'));. Il faut avouer que c'est assez sympatique. Mais il est laborieux d'écrire systématiquement la balise &amp;lt;a /&amp;gt;. Voici donc un helper très basique reprennant les arguments de url(). La seule modification est l'ajout du premier argument. Celui-ci contiendra la texte à mettre dans la balise &amp;lt;a /&amp;gt;&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* An helper to create xhtml links quickly&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* This program is free software: you can redistribute it and/or modify&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* it under the terms of the GNU Lesser General Public License as published by&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* the Free Software Foundation, either version 3 of the License, or&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* (at your option) any later version.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* This program is distributed in the hope that it will be useful,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* GNU Lesser General Public License for more details.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* You should have received a copy of the GNU Lesser General Public License&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* along with Foobar.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* @author SandRock &amp;lt;antoine.sottiau@gmail.com&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* @see Zend_View_Helper_Url&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; App_View_Helper_Link &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;extends&lt;/span&gt; Zend_View_Helper_Abstract &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 *&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @param  string  $text       the contents of the link&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @param  array   $urlOptions Options passed to the assemble method of the Route object.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @param  mixed   $name The name of a Route to use. If null it will use the current Route&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @param  bool    $reset Whether or not to reset the route defaults with those provided&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @param  boolean $encode&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @return string  a xhtml link like '&amp;lt;a href=&amp;quot;url&amp;quot;&amp;gt;text&amp;lt;/a&amp;gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$urlOptions&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$name&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$reset&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$encode&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #ff0000&quot;&gt;$router&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; Zend_Controller_Front&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;getInstance&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;getRouter&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #ff0000&quot;&gt;$url&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$router&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;assemble&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$urlOptions&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$name&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$reset&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$encode&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;lt;a href=&amp;quot;'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$url&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;quot;&amp;gt;'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;lt;/a&amp;gt;'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Exemple&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'A propos de...'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'controller'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'index'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'action'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'about'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'arg0'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'value'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;?&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;a href&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/index/about/arg0/value&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;A propos de&lt;span style=&quot;color: #66cc66;&quot;&gt;...&amp;lt;/&lt;/span&gt;a&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Comparaison IDE PHP</title>
    <link>http://sandrock.fr/blog/post/2009/01/17/Comparaison-IDE-PHP</link>
    <guid isPermaLink="false">urn:md5:6fecfabc01d0827534ce8a2c72c34be3</guid>
    <pubDate>Sat, 17 Jan 2009 15:14:00 +0100</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Dev</category>
        <category>ide</category><category>netbeans</category><category>php</category><category>zend</category><category>zend studio</category>    
    <description>    &lt;p&gt;Bienvenue sur ce nouvel épisode de la Grotte de SandRock. Aujourd'hui, nous allons tenter de comparer différents IDE (Environnement de Développement Intégré) pour coder en PHP. Pour chacun des éditeurs, on tentera de lister les fonctionnalités indispensables (auto-complétion objet, colorisation...), et les accessoires sympa comme l'intégration d'outils de versionning. Les logiciels seront présentés dans l'ordre dans lequel je les ai découvert.&lt;/p&gt;


&lt;p&gt;Pour raison de sécurité, les screenshots seront légèrement censurés pour protéger certains projets top secrets &lt;img src=&quot;/dotclear/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;h2&gt;Zend Studio 5 (payant, non maintenu)&lt;/h2&gt;


&lt;p&gt;Le premier éditeur sympa que j'ai testé était Zend Studio 5, qui ne semble plus être disponible sur le site de l'éditeur.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.filetransit.com/images/screen/6c01ca18defb7bd965b7e7c1926a642f_Zend_Studio.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Une auto complétion puissante (malgrès quelques bugs), des fonctionnaltiés bizzares liées aux produits Zend. C'était sympa mais c'est mort, merci, à bientôt.&lt;/p&gt;


&lt;h2&gt;Zend Studio for Eclipse 6 (payant)&lt;/h2&gt;


&lt;p&gt;Voilà un logiciel plus sérieux, développé par &lt;a href=&quot;http://www.zend.com/fr/store/software/studio/&quot; hreflang=&quot;en&quot;&gt;Zend&lt;/a&gt;. Il existe en 2 version (99€ ou 400€), j'utilisais encore récemment la pro en démo. On y trouve la surpuissance de l'IDE bien connu Eclipse, couplé à un moteur PHP très avancé. La précomplétion est très efficace, autant pour le php, les fonctions, les objets mais aussi pour l'xml et l'xhtml.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/zse6.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/.zse6_m.jpg&quot; alt=&quot;Zend Studio for Eclipse 6 - précomplétion&quot; title=&quot;Zend Studio for Eclipse 6 - précomplétion, Jan 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Cet IDE comprend un outil très sympa qui permet d'ouvrir n'importe quel fichier en cherchant une class ou une function par son nom. C'est vraiment génial pour ne pas se tapper des recherches dans le filesystem local (vous remarquerez que j'utilise du vocabulaire technique anglais dans mes articles en français, mais c'est normal, je le trouve plus précis).&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/zse6classexplorer.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/zse6classexplorer.png&quot; alt=&quot;Zend Studio for Eclipse 6 - class search&quot; title=&quot;Zend Studio for Eclipse 6 - class search, Jan 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Comme c'est basé sur eclipse, il y a des &lt;em&gt;perspectives&lt;/em&gt; disponibles&amp;nbsp;; entendre par là des sorte d'outils. La perspective &lt;em&gt;MVC Outline&lt;/em&gt; semble sympa dans le cas d'un développement ZF mais je n'ai jamais réussit à l'utiliser. De même que la perspective &lt;em&gt;SVN Repository Exploring&lt;/em&gt; qui ne propose pas d'intégration concrète à un projet.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/zse6svn.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/.zse6svn_m.jpg&quot; alt=&quot;Zend Studio for Eclipse 6 - svn explorer&quot; title=&quot;Zend Studio for Eclipse 6 - svn explorer, Jan 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Un très bon IDE donc mais qui ne semble pas intégrer correctement le versionning. Je pense cependant que des plugin peuvent être trouvés sur internet.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.zend.com/fr/store/software/studio/standard&quot; hreflang=&quot;en&quot;&gt;Zend Studio Standard&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.zend.com/fr/store/software/studio/&quot; hreflang=&quot;en&quot;&gt;Zend Studio Pro&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;Netbeans 6.5 (libre)&lt;/h2&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/netbeans65projects.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/netbeans65projects.png&quot; alt=&quot;Netbeans 6.5 - Types de projets&quot; title=&quot;Netbeans 6.5 - Types de projets, Jan 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;J'ai remarqué cet IDE pour la première fois lors de mes cours Java à SUPINFO. Voyant qu'ils avaient intégré des projets de type PHP, RoR (Ruby on Rails), et C++, cela a attiré ma curiosité mais pas assez. C'est mon ami &lt;a href=&quot;http://ajite.net/&quot; hreflang=&quot;fr&quot;&gt;Ajite&lt;/a&gt; qui m'a dit de tester car ça en vallait le coup. J'ai donc tenté et découvert cet éditeur suprême. Tentons un petit coup de précomplétion&amp;nbsp;:&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/netbeans65source.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/.netbeans65source_m.jpg&quot; alt=&quot;Netbeans 6.5 - Source&quot; title=&quot;Netbeans 6.5 - Source, Jan 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;On trouve une précomplétion bien au dessus de celle de ZSE avec plus d'infos/docs. La touche tab permet même de passer d'un argument à un autre d'une fonction.&lt;/p&gt;


&lt;p&gt;Du coté versionning, j'ai été très impressionné par toutes les fonctionnalités. Pour commencer, Netbeans supporte 4 moteurs de versionning, à savoir&amp;nbsp;: Local, CVS, Subversion et Mercurial. Mais le plus intéressant reste l'intégration du versionning qui est très aboutie&amp;nbsp;; en effet, on la retrouve partout. Dans l'explorateur de fichiers, une colorisation est appliquée aux noms de fichiers (vert = nouveau fichier, bleu = fichier modifié, rouge = conflit). Mais voici le meilleur&amp;nbsp;: dans l'éditeur de code, des petits rectangles colorés affichent les modifications apportées localement aux fichiers. Un outil de diff est même intégré.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/netbeans65livediff.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/.netbeans65livediff_m.jpg&quot; alt=&quot;Netbeans 6.5 - Live Diff&quot; title=&quot;Netbeans 6.5 - Live Diff, Jan 2009&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/netbeans65diff.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/.netbeans65diff_m.jpg&quot; alt=&quot;Netbeans 6.5 - Diff&quot; title=&quot;Netbeans 6.5 - Diff, Jan 2009&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/netbeans65menu-versionning.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/.netbeans65menu-versionning_m.jpg&quot; alt=&quot;Netbeans 6.5 - Menu Versionning&quot; title=&quot;Netbeans 6.5 - Menu Versionning, Jan 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Un outil de recherche est disponible comme dans ZSE, peut être bien qu'il est plus complet, je viens seulement de le trouver.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/netbeans65search.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/netbeans65search.png&quot; alt=&quot;Netbeans 6.5 - Recherche&quot; title=&quot;Netbeans 6.5 - Recherche, Jan 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Si vous cherchez plus d'outils, un système de plugin existe tout comme dans eclipse (mais c'est beaucoup plus user-friendly).&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/netbeans65plugins.png&quot;&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/articles-2009/ide-php/netbeans65plugins.png&quot; alt=&quot;Netbeans 6.5 - Plugins&quot; title=&quot;Netbeans 6.5 - Plugins, Jan 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Bref, un IDE très prometteur, et libre&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.netbeans.org/&quot; hreflang=&quot;en&quot;&gt;Site officiel de Netbeans&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;MS Visual Studio / PHP (cher)&lt;/h2&gt;


&lt;p&gt;Non, j'installerai pas ça sur mon pc. Peut être d'ici quelques mois je lui reserverai un article.&lt;/p&gt;


&lt;p&gt;Aurais-je oublié un IDE&amp;nbsp;? Vous utilisez lequel&amp;nbsp;?&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Utilisation de SSH avec clés RSA</title>
    <link>http://sandrock.fr/blog/post/2008/10/25/Utilisation-de-SSH-avec-cles-RSA</link>
    <guid isPermaLink="false">urn:md5:d7611c3a023ac0eb2683c4ad11e1e541</guid>
    <pubDate>Sat, 25 Oct 2008 14:34:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Software</category>
        <category>ssh</category><category>unix</category>    
    <description>    &lt;p&gt;De nos jours, je vois beaucoup de jeunes geeks (et des vieux aussi) se connecter en ssh à leur server unix avec un mot de passe faible... Avec les polonais, les marocains, les roumains qui prolifèrent sur le net à la recherche de serveurs vulnérables, il faut se protéger d'une façon plus importante. Voilà de quoi mettre en place un login via une paire de clés &lt;a href=&quot;http://en.wikipedia.org/wiki/Rsa&quot; hreflang=&quot;en&quot;&gt;RSA&lt;/a&gt;. Et en bonus&amp;nbsp;: comment configurer sshd pour refuser le login par mot de passe&amp;nbsp;!&lt;/p&gt;


&lt;h2&gt;Créez vos clés RSA&lt;/h2&gt;


&lt;p&gt;Pour commencer, il faut générer une paire de clés RSA. En ligne de commande, c'est très simple&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/home/SandRock/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): xxxxxxxxxx
Enter same passphrase again: xxxxxxxxxx
Your identification has been saved in /home/SandRock/.ssh/id_rsa.
Your public key has been saved in /home/SandRock/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:x:xx:x:x:x:x:x:x:x SandRock@Titan

$ ls ~/.ssh
id_rsa
id_rsa.pub
&lt;/pre&gt;


&lt;p&gt;Le fichier nommé id_rsa est la clé privée et le id_rsa.pub est la clé publique. Il est indispensable de garder la clé privée en sécurité (sur une partition chiffrée par exemple).&lt;/p&gt;


&lt;p&gt;Sous Windows, un utilitaire est disponible avec &lt;a href=&quot;http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html&quot; hreflang=&quot;en&quot;&gt;PuTTY&lt;/a&gt;, nommé PuTTYGen. Il permet de générer les même clés (mais le format des fichiers est différent du format obtenu avec ssh_keygen). Ne pas oublier de bien choisir une clé de type RSA avec 2048 bits.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://sandrock.fr/dotclear/public/var/puttygen.png&quot; alt=&quot;PuTTYGen&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;PuTTYGen, Oct 2008&quot; /&gt;&lt;/p&gt;


&lt;h2&gt;Utilisation&lt;/h2&gt;


&lt;p&gt;Maintenant que votre paire de clés est prête, il faut déclarer sur les machines distantes quelles clés sont autorisées à se connecter. Pour cela, un fichier nommé ~/.ssh/authorized_keys contiendra les clés publiques (1 par ligne) au format du fichier id_rsa.pub (ça commence par 'ssh-rsa AAAA...'). Quelques commandes pour faire ça facilement&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
$ echo &amp;quot;ssh-rsa AAAxxxxxxx&amp;quot; &amp;gt;&amp;gt; ~username/.ssh/authorized_keys // ajoute une clé au fichier par copié/collé dans une console
$ cat ~/.ssh/id_rsa.pub | ssh you@example.com &amp;quot;cat - &amp;gt;&amp;gt; ~/.ssh/authorized_keys&amp;quot;  // ajoute une clé via ssh (mot de passe distant requis)
&lt;/pre&gt;


&lt;p&gt;Désormais, la simple commande &lt;code&gt;ssh me@exemple.com&lt;/code&gt; vous authentifiera automatiquement (la passphrase de votre clé privée sera demandée) sans mot de passe. Sous Windows avec PuTTY, il faut spécifier dans les options l'emplacement de votre clé privée dans la page Connection/SSH/Auth (il faut un fichier .pkk généré par PuTTYGen).&lt;/p&gt;


&lt;h2&gt;Interdire le login par mot de passe sur vos serveurs&lt;/h2&gt;


&lt;p&gt;Attention, procéder à une telle configuration empèchera le login par mot de passe&amp;nbsp;! Si vous perdez vos clés privées, il faudra intervenir de façon physique sur le serveur pour configurer une nouvelle clé&amp;nbsp;! Prennez donc la précaution de posséder une double paire de clés stockées dans des emplacements différents. Testez aussi le bon fonctionnement du login par clé avant de faire cette manipulation.&lt;/p&gt;


&lt;p&gt;Ouvrez simplement le fichier /etc/ssh/sshd_config avec votre éditeur favori. Cherchez la ligne commençant par &lt;code&gt;PasswordAuthentication&lt;/code&gt; (cette ligne peut ne pas exister ou peut être commentée).&lt;/p&gt;

&lt;pre&gt;
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no
&lt;/pre&gt;


&lt;p&gt;Voilà qui est fait. Tout brute-force de mot de passe sera impossible.&lt;/p&gt;

&lt;pre&gt;
$ ssh root@exemple.com
Permission denied (publickey).
Disconnected: No supported authentication methods available.
&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Zend_View_Helper_HeadStyle amélioré</title>
    <link>http://sandrock.fr/blog/post/2008/09/25/Zend_View_Helper_HeadStyle-ameliore</link>
    <guid isPermaLink="false">urn:md5:83e06ae7e8ed288dd5220c4b89064d35</guid>
    <pubDate>Thu, 25 Sep 2008 17:21:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Dev</category>
        <category>php</category><category>zend framework</category>    
    <description>    &lt;p&gt;Le Zend_View_Helper_HeadStyle de Zend Framework a un bug non corrigé depuis très longtemps, à savoir &lt;a href=&quot;http://framework.zend.com/issues/browse/ZF-3406&quot; hreflang=&quot;en&quot;&gt;ZF-3406&lt;/a&gt;. Le bug en question empèche la création d'une balise &amp;lt;style&amp;gt; avec un attribut &lt;code&gt;media&lt;/code&gt; contenant une liste de différents médias.&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;headStyle&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;captureStart&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Zend_View_Helper_Placeholder_Container_Abstract&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;APPEND&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'media'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'screen'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Displays &amp;lt;style type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;headStyle&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;captureStart&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Zend_View_Helper_Placeholder_Container_Abstract&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;APPEND&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'media'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'screen'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'projection'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'tv'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Should display &amp;lt;style type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen projection tv&amp;quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// But displays &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Donc, voici un nouvel helper modifié qui fait son job&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;require_once&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'Zend/View/Helper/HeadStyle.php'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* HeadStyle helper&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* @uses helper Zend_View_Helper&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; App_View_Helper_HeadStyle &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;extends&lt;/span&gt; Zend_View_Helper_HeadStyle &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * Convert content and attributes into valid style tag&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @param  stdClass $item Item to render&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @param  string $indent Indentation to use &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @return string&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; itemToString&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;stdClass &lt;span style=&quot;color: #ff0000&quot;&gt;$item&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$indent&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #ff0000&quot;&gt;$attrString&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;empty&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$item&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;attributes&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;			&lt;span style=&quot;color: #b1b100;&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$item&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;attributes&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$key&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;				&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;in_array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$key&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_optionalAttributes&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;					&lt;span style=&quot;color: #b1b100;&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;				&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;				&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'media'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$key&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;					&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;is_string&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;preg_match&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/^[&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\w&lt;/span&gt; ]+$/'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;						&lt;span style=&quot;color: #ff0000&quot;&gt;$value&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;explode&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;' '&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;					&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;					&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;is_array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;						&lt;span style=&quot;color: #ff0000&quot;&gt;$stringValue&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;						&lt;span style=&quot;color: #ff0000&quot;&gt;$separator&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;						&lt;span style=&quot;color: #b1b100;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$value&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$mediaType&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;							&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;in_array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$mediaType&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_mediaTypes&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;								&lt;span style=&quot;color: #b1b100;&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;							&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;							&lt;span style=&quot;color: #ff0000&quot;&gt;$stringValue&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.=&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$separator&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$mediaType&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;							&lt;span style=&quot;color: #ff0000&quot;&gt;$separator&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;' '&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;						&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;						&lt;span style=&quot;color: #ff0000&quot;&gt;$value&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$stringValue&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;					&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;						&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;in_array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_mediaTypes&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;							&lt;span style=&quot;color: #b1b100;&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;						&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;					&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;				&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;				&lt;span style=&quot;color: #ff0000&quot;&gt;$attrString&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.=&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;sprintf&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;' %s=&amp;quot;%s&amp;quot;'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$key&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;htmlspecialchars&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;			&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #ff0000&quot;&gt;$html&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;lt;style type=&amp;quot;text/css&amp;quot;'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$attrString&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;gt;'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; PHP_EOL &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;			&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$indent&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;lt;!--'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; PHP_EOL &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$indent&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$item&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;content&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; PHP_EOL &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$indent&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'--&amp;gt;'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; PHP_EOL &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;			&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;lt;/style&amp;gt;'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$html&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;On spécifier au Broker de le charger de préférence à celui de zf&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;view&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;setHelperPath&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Zend_Registry&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'conf'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;paths&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;views&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'helpers/'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'App_View_Helper'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Et ça s'utilise de cette façon&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;headStyle&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;captureStart&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Zend_View_Helper_Placeholder_Container_Abstract&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;APPEND&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'media'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'screen'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'print'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'projection'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'tv'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;headStyle&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;captureStart&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Zend_View_Helper_Placeholder_Container_Abstract&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;APPEND&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'media'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'screen print projection tv'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>MusicTracker pour Pidgin</title>
    <link>http://sandrock.fr/blog/post/2008/09/24/MusicTracker-pour-Pidgin</link>
    <guid isPermaLink="false">urn:md5:8b8aadbdd684ea59c3b424383dbcf195</guid>
    <pubDate>Wed, 24 Sep 2008 15:39:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Software</category>
        <category>msn</category><category>pidgin</category><category>xmpp</category>    
    <description>    &lt;p&gt;Utilisant pidgin quel que soit mon OS, j'ai cherché et comparé divers plugins pour afficher la musique courrament écoutée (sous Winamp ou Amarok). Mon préféré est &lt;a href=&quot;http://code.google.com/p/musictracker/&quot; hreflang=&quot;en&quot;&gt;MusicTracker&lt;/a&gt;. Statut personnalisable, fonctionne avec MSN est XMPP. Parfait&amp;nbsp;! :D&lt;/p&gt;


&lt;p&gt;Sinon voici &lt;a href=&quot;http://shreevatsa.wordpress.com/2007/05/20/pidgin-now-playing-updating-status-messages-to-song-being-played/&quot; hreflang=&quot;en&quot;&gt;un lien sympatique (mais c'est un vieux wordpress, beurk)&lt;/a&gt; référençant la plupart des plugins du genre.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>CSS, medias, IE...</title>
    <link>http://sandrock.fr/blog/post/2008/08/26/CSS-medias-IE</link>
    <guid isPermaLink="false">urn:md5:55f7ca37fc36adb7dff818f62f25c676</guid>
    <pubDate>Tue, 26 Aug 2008 12:09:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Dev</category>
        <category>css</category>    
    <description>    &lt;p&gt;Un petit article pour résumer les bonnes pratiques rapides à mettre en place sur un site web au niveau des CSS adaptés aux différents médias existants.&lt;/p&gt;


&lt;p&gt;Pour rappel, il est possible (et même fortement recommandé) de créer des feuilles de styles CSS pour différentes médias tels que les ordinateurs (screen), les appareils mobiles (handheld), les vidéoprojecteurs (projection) et les imprimantes (print). Pour cela, 2 méthodes sont possibles.&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;style type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;all&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;@&lt;/span&gt;import &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/css/global.css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;style type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;print&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;@&lt;/span&gt;import &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/css/print.css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;style type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;handheld&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;@&lt;/span&gt;import &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/css/handheld.css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Dans cet exemple, on définit un css général (mise en page, couleurs) pour tous les médias et on surcharge ensuite 2 fichiers pour l'impression et les appareils mobiles. Dans certains cas, il est aussi intéressant de ne pas utiliser de fichier global pour certains médias&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;style type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;screen print projection tv&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;@&lt;/span&gt;import &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/css/global.css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;style type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;print&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;@&lt;/span&gt;import &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/css/print.css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;style type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;handheld&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;@&lt;/span&gt;import &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/css/handheld.css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Dans ce cas, le CSS pour appareils mobiles peut être indépendant des autres fichiers pour un controlle plus important. A noter que dans cette configuration, le media &lt;em&gt;all&lt;/em&gt; n'apparait pas&amp;nbsp;; d'après les normes, cela n'est pas grave mais MS Internet Explorer 6 et 7 ne reconnaitront pas le media &lt;em&gt;screen&lt;/em&gt;. Il faudra donc recourrir à des commentaires conditionnels (merci Microsoft :D).&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;style type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;screen print projection tv&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;@&lt;/span&gt;import &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/css/global.css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;style type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;print&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;@&lt;/span&gt;import &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/css/print.css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;style type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;handheld&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;@&lt;/span&gt;import &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/css/handheld.css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;!--&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; IE&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;style type&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;all&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;@&lt;/span&gt;import &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/css/global.css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;!&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;endif&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Il est aussi possible d'utiliser des selecteurs à l'intérieur d'un fichier css&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;css&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;@media print {&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	body&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;font-size&lt;span style=&quot;color: #3333ff;&quot;&gt;:&lt;span style=&quot;color: #933;&quot;&gt;10pt&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;@media screen {&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	body&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;font-size&lt;span style=&quot;color: #3333ff;&quot;&gt;:&lt;span style=&quot;color: #933;&quot;&gt;12pt&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;@media screen, print {&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	body&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;line-height&lt;span style=&quot;color: #3333ff;&quot;&gt;:&lt;span style=&quot;color: #933;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #6666ff;&quot;&gt;.&lt;span style=&quot;color: #933;&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Référence&amp;nbsp;: &lt;a href=&quot;http://www.yoyodesign.org/doc/w3c/css2/media.html&quot; hreflang=&quot;fr&quot;&gt;http://www.yoyodesign.org/doc/w3c/css2/media.html&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Codes PHP en vrac...</title>
    <link>http://sandrock.fr/blog/post/2008/08/06/Codes-PHP-en-vrac</link>
    <guid isPermaLink="false">urn:md5:33efd3479573f265f8fb55c6ec548c84</guid>
    <pubDate>Wed, 06 Aug 2008 18:58:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Dev</category>
        <category>css</category><category>jquery</category><category>php</category><category>zend framework</category>    
    <description>    &lt;h2&gt;App_Form_Element_DateWithJdatepicker&lt;/h2&gt;


&lt;p&gt;Un &lt;a href=&quot;http://framework.zend.com/manual/en/zend.form.elements.html&quot; hreflang=&quot;en&quot;&gt;Zend_Form_Element&lt;/a&gt; utilisant le &lt;a href=&quot;http://docs.jquery.com/UI/Datepicker&quot; hreflang=&quot;en&quot;&gt;datepicker de jQuery&lt;/a&gt; françisé :&lt;/p&gt;


&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; App_Form_Element_DateWithJdatepicker &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;extends&lt;/span&gt; Zend_Form_Element_Xhtml &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; init&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;addValidator&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'Date'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;			&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;setAttrib&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'class'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'datepicker'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;

&lt;pre class=&quot;javascript&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;$&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;.datepicker&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;datepicker&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		clearText: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Effacer'&lt;/span&gt;, clearStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;''&lt;/span&gt;, closeText: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Fermer'&lt;/span&gt;, closeStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Fermer sans modifier'&lt;/span&gt;, prevText: &lt;span style=&quot;color: #3366CC;&quot;&gt;'&amp;amp;lt;Préc'&lt;/span&gt;, prevStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Voir le mois précédent'&lt;/span&gt;, nextText: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Suiv&amp;amp;gt;'&lt;/span&gt;, nextStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Voir le mois suivant'&lt;/span&gt;, currentText: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Courant'&lt;/span&gt;, currentStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Voir le mois courant'&lt;/span&gt;, monthNames: &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'Janvier'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Février'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Mars'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Avril'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Mai'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Juin'&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;'Juillet'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Août'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Septembre'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Octobre'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Novembre'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Décembre'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;, monthNamesShort: &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'Jan'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Fév'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Mar'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Avr'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Mai'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Jun'&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;'Jul'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Aoû'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Sep'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Oct'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Nov'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Déc'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;, monthStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Voir un autre mois'&lt;/span&gt;, yearStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Voir un autre année'&lt;/span&gt;, weekHeader: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Sm'&lt;/span&gt;, weekStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;''&lt;/span&gt;, dayNames: &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'Dimanche'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Lundi'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Mardi'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Mercredi'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Jeudi'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Vendredi'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Samedi'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;, dayNamesShort: &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'Dim'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Lun'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Mar'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Mer'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Jeu'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Ven'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Sam'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;, dayNamesMin: &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'Di'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Lu'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Ma'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Me'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Je'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Ve'&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;'Sa'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;, dayStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Utiliser DD comme premier jour de la semaine'&lt;/span&gt;, dateStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Choisir le DD d MM'&lt;/span&gt;, dateFormat: &lt;span style=&quot;color: #3366CC;&quot;&gt;'dd/mm/yy'&lt;/span&gt;, firstDay: &lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;, initStatus: &lt;span style=&quot;color: #3366CC;&quot;&gt;'Choisir la date'&lt;/span&gt;, isRTL: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;false&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		dateFormat: &lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;yy-mm-dd&amp;quot;&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		firstDay: &lt;span style=&quot;color: #CC0000;&quot;&gt;1&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		showStatus: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;true&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		showOn: &lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;both&amp;quot;&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		buttonImage: &lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;&amp;lt;?php echo $front-&amp;gt;getBaseUrl() ?&amp;gt;/js/lib/jquery-ui-1.5.2/images/calendar.gif&amp;quot;&lt;/span&gt;,&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		buttonImageOnly: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;h2&gt;Un FlashMessenger personnalisé&lt;/h2&gt;


&lt;p&gt;...Pour inclure un type aux messages (typiquement une class css pour un affichage personnalisé pour les erreurs, les confirmations, les alertes...).&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; App_Controller_Action_Helper_FlashMessenger &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;extends&lt;/span&gt; Zend_Controller_Action_Helper_FlashMessenger implements IteratorAggregate&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; Countable &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;    * addMessage() - Add a message to flash message&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;    *&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;    * @param  string $message&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;    * @return Zend_Controller_Action_Helper_FlashMessenger Provides a fluent interface&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;    */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; addMessage&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$message&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$class&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    	&lt;span style=&quot;color: #ff0000&quot;&gt;$message&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    		&lt;span style=&quot;color: #ff0000;&quot;&gt;'message'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$message&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    		&lt;span style=&quot;color: #ff0000;&quot;&gt;'class'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$class&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;self&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$_messageAdded&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;===&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            self&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$_session&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;setExpirationHops&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;is_array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;self&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$_session&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_namespace&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;            self&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$_session&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_namespace&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        self&lt;span style=&quot;color: #66cc66;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$_session&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_namespace&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$message&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;        &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Un Zend_Controller_Action personnalisé&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; App_Controller_Action &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;extends&lt;/span&gt; Zend_Controller_Action &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * FlashMessenger&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 *&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @var Zend_Controller_Action_Helper_FlashMessenger&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	protected &lt;span style=&quot;color: #ff0000&quot;&gt;$_flashMessenger&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * Class constructor&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 *&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @param Zend_Controller_Request_Abstract $request&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @param Zend_Controller_Response_Abstract $response&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @param array $invokeArgs Any additional invocation arguments&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 * @return void&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;	 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; __construct&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;Zend_Controller_Request_Abstract &lt;span style=&quot;color: #ff0000&quot;&gt;$request&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; Zend_Controller_Response_Abstract &lt;span style=&quot;color: #ff0000&quot;&gt;$response&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$invokeArgs&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;setRequest&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$request&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;			 &lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;setResponse&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$response&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;			 &lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_setInvokeArgs&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$invokeArgs&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_helper &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; Zend_Controller_Action_HelperBroker&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//$this-&amp;gt;_flashMessenger = $this-&amp;gt;_helper-&amp;gt;getHelper('FlashMessenger');&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_flashMessenger &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; App_Controller_Action_Helper_FlashMessenger&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;view&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;flashMessenger&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_flashMessenger&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;init&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;


&lt;p&gt;Exemple d'utilisation :&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_flashMessenger&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;addMessage&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'Les calculs ont été mis à jour.'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'notice'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;_flashMessenger&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;addMessage&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'Impossible d&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\'&lt;/span&gt;effectuer l'&lt;/span&gt;opération demandée&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;', '&lt;/span&gt;error&lt;span style=&quot;color: #ff0000;&quot;&gt;');&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;!--&lt;/span&gt; layout&lt;span style=&quot;color: #66cc66;&quot;&gt;.&lt;/span&gt;phtml &lt;span style=&quot;color: #66cc66;&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;div id&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;messenger&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;is_object&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;flashMessenger&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #ff0000&quot;&gt;$messages&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;flashMessenger&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;getMessages&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #b1b100;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$messages&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;$m&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;is_array&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$m&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;			&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\t&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;lt;p class=&amp;quot;'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$m&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'class'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;quot;&amp;gt;'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$m&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'message'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;lt;/p&amp;gt;'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;			&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\t&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;$m&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;endif&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: 'Courier New', Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Les fourberies liées à l'abandon d'un nom de domaine</title>
    <link>http://sandrock.fr/blog/post/2008/08/06/Les-fourberies-liees-a-l-abandon-d-un-nom-de-domaine</link>
    <guid isPermaLink="false">urn:md5:8b4668c84b011f7bc60a1cbad71a2e45</guid>
    <pubDate>Wed, 06 Aug 2008 17:20:00 +0200</pubDate>
    <dc:creator>SandRock</dc:creator>
        <category>Web</category>
        <category>web</category>    
    <description>    &lt;p&gt;Voilà quelques semaines que j'ai abandonné le domaine sandrockmp4.com et divers mails me sont parvenus. Le plus intéressant est celui que j'ai reçu de trvdomaindiscovery.com&amp;nbsp;:&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;Recently,  SANDROCKMP4.COM   expired and went into a
domain name auction. We acquired it and, since you
own the .net version of this domain name, we
wanted to provide you with the opportunity to own the
preferred .com version.&lt;/p&gt;
&lt;p&gt;
Our company specializes in recovering preferred expiring
domains and either selling them to individuals such as
yourself or building out our own web presence on those
valuable domains.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Une introduction similaire aux précédents mails déjà reçu. Mais la suite contient une argumentation que j'ai trouvé assez &lt;del&gt;marrante&lt;/del&gt; fourbe&amp;nbsp;:&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;SANDROCKMP4.COM is a pretty darn good domain name and,
the truth is, the .COM is a far stronger version of the
name than the .NET is.&lt;/p&gt;
&lt;p&gt;
* .Com is the strongest brand on the internet.
When people think of a website, they intuitively
think '.com'. Odds are people trying to get to
your website are inadvertently going to SANDROCKMP4.COM
because they assume that's where they can find you.&lt;/p&gt;
&lt;p&gt;
* .Com conveys Professionalism that .net &amp;amp; .org
cannot match.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Globalement, la société explique qu'un domaine en .com inspire plus confiance, est plus fort, est plus professionnel qu'un domaine en .net ou .org. Il est vrai que pour des sites commerciaux ou professionnels (e-commerces, technologies propriétaires, entreprises), les .com est le plus populaire. En revanche, je préfère prévilégier le .org pour des projets libres, le .net pour un site web lié à un réseau et les extensions nationales (.fr, .co.uk, ...) lorsqu'un site web n'est pas dédié à une audience mondiale.&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;If you'd like to own SANDROCKMP4.COM, you can buy it
now by covering our acquisition costs and a modest profit.&lt;/p&gt;
&lt;p&gt;
If you have any interest I encourage you to act quickly
because this domain name will only be offered for sale
for a limited time.&lt;/p&gt;
&lt;p&gt;
http://trvdomaindiscovery.com/buy.php?domain=SANDROCKMP4.COM&amp;amp;template=first&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Finalement, me revendre mon domaine pour 557 USD me semble quelque peu abusif. Ne perdez pas vos domaines&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>