<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1786865013882160699</id><updated>2012-01-29T09:31:30.519Z</updated><title type='text'>.Fay Labs</title><subtitle type='html'>some pages from my diary as a computer science newbie...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-618216626126296904</id><published>2011-09-14T17:10:00.000Z</published><updated>2011-11-22T11:05:19.046Z</updated><title type='text'>Fayçal's Projects Web Page</title><content type='html'>&lt;h2 style="text-align: left;"&gt;&lt;a href="http://wordpress.org/extend/plugins/profile/fay-1" target="_blank"&gt;WordPress Profile&lt;/a&gt;&lt;/h2&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://wordpress.org/extend/plugins/profile/fay-1" target="_blank"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/the_new_logo_carre.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2 style="text-align: left;"&gt;&lt;a href="http://codecanyon.net/item/wp-theme-switcher/558740?ref=fayway" target="_blank"&gt;CodeCanyon Featured Item&lt;/a&gt;&lt;/h2&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/item/wp-theme-switcher/558740?ref=fayway" target="_blank"&gt;&lt;img src="http://1.s3.envato.com/files/9724419/TS-Preview.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2 style="text-align: left;"&gt;&lt;a href="http://agafix.org/" target="_blank"&gt;Blog&lt;/a&gt;&lt;/h2&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://agafix.org/" target="_blank"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/agafix_blog.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-618216626126296904?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/618216626126296904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/fayals-projects-web-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/618216626126296904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/618216626126296904'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/fayals-projects-web-page.html' title='Fayçal&apos;s Projects Web Page'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-334219103236197585</id><published>2011-09-01T20:05:00.000Z</published><updated>2012-01-17T10:23:50.071Z</updated><title type='text'>WordPress CSS Sprites Generator For Posts Content</title><content type='html'>&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Are you after reducing your server load and speeding up your web pages? You've heard of CSS sprites before but you don't konw how they can bring improvements in your situation?&lt;br /&gt;&lt;br /&gt;Well, simply put, each image on a web page is a separate HTTP request to the server, and experience shows that you can dramatically increase the performance of a page by combining multiple&amp;nbsp; images or icons into a larger image sprite sheet. CSS is finally used to select the parts of the composite image to display at different places in the page.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-e2FPRC4fk9w/TxPtwgdw1XI/AAAAAAAAFFg/iM6smnrISQo/s1600/01.page_requests_01_u.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-e2FPRC4fk9w/TxPtwgdw1XI/AAAAAAAAFFg/iM6smnrISQo/s1600/01.page_requests_01_u.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="514" src="http://2.bp.blogspot.com/-e2FPRC4fk9w/TxPtwgdw1XI/AAAAAAAAFFg/iM6smnrISQo/s640/01.page_requests_01_u.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;WordPress CSS Sprites Generator for posts content try to offer your pages this performance improvement by automatically creating for you corresponding CSS sprites for images in posts, pages and custom type posts which reduce by the way the amount of image files and then the amount of HTTP requests.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=1786865013882160699" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/-aZPOWxjc60A/TxPt3rTc5lI/AAAAAAAAFFo/QzhR16QvbN8/s1600/01.page_requests_02_u.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="514" src="http://1.bp.blogspot.com/-aZPOWxjc60A/TxPt3rTc5lI/AAAAAAAAFFo/QzhR16QvbN8/s640/01.page_requests_02_u.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/user/fayway/portfolio?ref=fayway" target="_blank"&gt;&lt;b&gt;Download from codecanyon&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/user/fayway/portfolio?ref=fayway" target="_blank"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-v-8v6BsdqtY/To7VELzChgI/AAAAAAAAE_M/lSyCfp48KR0/s1600/codecanyon.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Family galleries, portfolios, news reports with a lot of photos, manual making of sprites for every post content can be a really tedious task. WordPress CSS Sprites Generator for posts content saves your bandwidth and provides an automated solution to replace all standard  IMG tag by the corresponding CSS sprites.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://codecanyon.net/user/fayway/portfolio?ref=fayway" target="_blank"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-Rs2AJydKHDc/TxPuDkeil3I/AAAAAAAAFFw/UuAPDZe3g6w/s1600/00.CS-Preview.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Main Features:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ready to use, global options are applied on existing and future posts/pages images&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Customizing the number of images per sprite for every single post/page&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Automation of the generated sprites quality compression for better optimization&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/user/fayway/portfolio?ref=fayway" target="_blank"&gt;&lt;b&gt;Download from codecanyon&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/user/fayway/portfolio?ref=fayway" target="_blank"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-v-8v6BsdqtY/To7VELzChgI/AAAAAAAAE_M/lSyCfp48KR0/s1600/codecanyon.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;WP CSS Sprites Generator for posts content is available in the following languages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; English&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; French&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Requirements:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;PHP5 and GD support turned on (which is already the case for 99,99% if you are dealing with images)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Limitation:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CSS Sprites generation WILL NOT WORK with &lt;b&gt;PAGED &lt;/b&gt;galleries plugin, it's not possible to automate this generation since every plugin handles the pagination on its own way&lt;/li&gt;&lt;li&gt;Just in case when your images have CSS &lt;b&gt;PADDING &lt;/b&gt;rules, this style rule or class must be moved to a wrapped div.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=1786865013882160699" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Screenshots&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www.blogger.com/goog_840047425" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="443" src="http://1.bp.blogspot.com/-B8UTVo5vUjI/TxPucX3dSpI/AAAAAAAAFF4/hun3D1Zma6w/s640/04.settings.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Plugin Settings &lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=1786865013882160699" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/-SHcKGZDJgOg/TxPu0zEHMoI/AAAAAAAAFGA/c4g53hXQ_3Y/s1600/05.post_settings_u.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="486" src="http://3.bp.blogspot.com/-SHcKGZDJgOg/TxPu0zEHMoI/AAAAAAAAFGA/c4g53hXQ_3Y/s640/05.post_settings_u.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Post's settings&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-DO7N1Mp1wdg/TxPu_EQBJPI/AAAAAAAAFGI/YonZZkjwEok/s1600/07.attached_sprites_css_u.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="486" src="http://2.bp.blogspot.com/-DO7N1Mp1wdg/TxPu_EQBJPI/AAAAAAAAFGI/YonZZkjwEok/s640/07.attached_sprites_css_u.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Description containes the corresponding CSS rules&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/user/fayway/portfolio?ref=fayway" target="_blank"&gt;&lt;b&gt;Download from codecanyon&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/user/fayway/portfolio?ref=fayway" target="_blank"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-v-8v6BsdqtY/To7VELzChgI/AAAAAAAAE_M/lSyCfp48KR0/s1600/codecanyon.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-334219103236197585?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/334219103236197585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2011/09/wordpress-css-sprites-generator-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/334219103236197585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/334219103236197585'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2011/09/wordpress-css-sprites-generator-for.html' title='WordPress CSS Sprites Generator For Posts Content'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-e2FPRC4fk9w/TxPtwgdw1XI/AAAAAAAAFFg/iM6smnrISQo/s72-c/01.page_requests_01_u.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-6283715512920049993</id><published>2011-08-01T17:42:00.000Z</published><updated>2011-11-30T11:23:18.316Z</updated><title type='text'>WordPress Advanced Image Lazy Load</title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Your website has many image intensive content and take up a lot of resources when loading up? Your boss and your clients consider the pages fluidity a serous matter?&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-cXZK0qIP9T4/TqRM6UnnSWI/AAAAAAAAFAA/E24jUtxGhtk/s1600/01.page_speed.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Remember that time is money!&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Plugin Description&lt;/span&gt; &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;With WP Image Lazy Load plugin, no more need to sacrifice your beautiful images quality!&lt;br /&gt;&lt;br /&gt;Family galleries, portfolios, news&amp;nbsp;reports&amp;nbsp;with a lot of photos. This plugin is providing a better user experience by delaying loading of images in (especially in long) web pages. Images outside of visible part of the page that the user is viewing wont be loaded before user scrolls down to them.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/item/wordpress-advanced-image-lazy-load/704574?ref=fayway"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-BDjKbQLILFM/TqRRzCSDfSI/AAAAAAAAFBo/G1JMPDHYqr4/s1600/codecanyon.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/item/wordpress-advanced-image-lazy-load/704574?ref=fayway"&gt;Get from codecanyon&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Main Features :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ready to use, no action is needed for existing or future images on posts/pages &lt;/li&gt;&lt;li&gt;Improving images selection performance by customizing default selectors for several site sections&lt;/li&gt;&lt;li&gt;Cascading enabling/disabling levels :&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Level 1 : Enable or disable for the whole website&lt;/li&gt;&lt;li&gt;Level 2 : Enable or disable for all posts and pages&lt;/li&gt;&lt;li&gt;Level 3 : Enable or disable for all images within a specific post or page&lt;/li&gt;&lt;li&gt;Level 4 : Enable or disable for a specific post's or page's image&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Customizing the loading of images &lt;/li&gt;&lt;li&gt;Possibility to also lazy load theme images which are not part of posts/pages.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://codecanyon.net/item/wordpress-advanced-image-lazy-load/704574?ref=fayway"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-DOOcbwGPhFo/Tq8mEijtjDI/AAAAAAAAFCI/fnq2b0A87IU/s1600/preview3.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;WP Advanced Image Lazy Load is available in the following languages :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;English&lt;/li&gt;&lt;li&gt;French&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-RPMvISX_thQ/TqR2jI15kqI/AAAAAAAAFBw/0rw82ooHGDU/s1600/00.screenshot.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Speed up your website by lazy loading images JUST on demand!&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Installation guide&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-2rwmxTqe5Kw/TqRM7nRU0sI/AAAAAAAAFAI/6DDNpa_aq1E/s1600/02.upload.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Plugin upload&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-4Q8vWoAX3Pc/TqRM8wUlZaI/AAAAAAAAFAQ/gSjcFwYh5ZM/s1600/03.activation.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Plugin activation&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;  &lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-R10nlewShek/TqRM-H7cwjI/AAAAAAAAFAY/Q2xl-Z2CxuM/s1600/04.settings.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Plugin Settings &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Getting started&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;The simple activation of the plugin is enough to have the desired behavior for all the posts and pages images. &lt;br /&gt;By default the lazy load is activated via severals global levels&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-FlU9-WZVq9E/TqRNAbXE4aI/AAAAAAAAFAo/HsqMxUQbhFw/s1600/05.global_enabling_level1and2.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Global Enabling Levels&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-4IM1_5iUH1c/TqRNDOpWotI/AAAAAAAAFA4/Gn4fdg2JI7M/s1600/06.posts_enabling_level3.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Posts/Pages Enabling Level&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-4QjZCdwBlbU/TqRNF31DdRI/AAAAAAAAFBI/G3utcKP3EN0/s1600/07.image_enabling_level4.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Images Enabling Level&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-z9cYcVXQ8tY/TqRNI3ffoAI/AAAAAAAAFBY/CzwM2yIbolE/s1600/08.image_enabling_level4.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Images Enabling/Disabling by css class&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-HWOEGlrnVT4/TqRNJ0CBtKI/AAAAAAAAFBg/WcEqxODRFFE/s1600/09.customizing_loading.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Customizing Loading Image&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-cqCGRV6c0RU/TrJpYcQQXKI/AAAAAAAAFCQ/jjlGiSL0_3w/s1600/09.customizing_loading2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-cqCGRV6c0RU/TrJpYcQQXKI/AAAAAAAAFCQ/jjlGiSL0_3w/s1600/09.customizing_loading2.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Enabling or disabling loading effect for better speed result&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span id="hacks" style="font-size: large;"&gt;Advanced Features - Themes Hacks&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;The plugin does its magic for you when it comes to images within posts or pages. If you want to reuse the same mechanism for your own theme's images that are not part of posts body:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make sure your image belongs to the selector scope&lt;/li&gt;&lt;li&gt;Set the src attribute of the img tag  with this function helper as value &lt;b&gt;get_wp_lazy_loading_blank_image()&lt;/b&gt; &lt;/li&gt;&lt;li&gt;Add a  "lazy" class to the img &lt;/li&gt;&lt;li&gt;Add a "data-original" attribute to the img tag with the  original image URI&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;For example instead of having:&lt;br /&gt;        &amp;lt;img &lt;b style="color: #38761d;"&gt;&lt;span id="new"&gt;src="&amp;lt;?php echo $image[0]; ?&amp;gt;"&lt;/span&gt;&lt;/b&gt; alt="&amp;lt;?php the_title(); ?&amp;gt;"&amp;nbsp; width='290' height='160' /&amp;gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Rather write:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;   &amp;lt;?php if(function_exists('&lt;b class="red" style="color: #cc0000;"&gt;get_wp_lazy_loading_blank_image&lt;/b&gt;')){ ?&amp;gt;&lt;br /&gt;   &amp;lt;img &lt;b class="red" style="color: #cc0000;"&gt;class="lazy"&lt;/b&gt; &lt;b style="color: #38761d;"&gt;&lt;span id="new"&gt;data-original="&amp;lt;?php echo $image[0]; ?&amp;gt;"&lt;/span&gt;&lt;/b&gt; &lt;span class="red" style="color: #cc0000;"&gt;&lt;b&gt;src="&amp;lt;?php echo get_wp_lazy_loading_blank_image(); ?&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="color: #cc0000;"&gt;"&lt;/b&gt; alt="&amp;lt;?php the_title(); ?&amp;gt;"&amp;nbsp; width='290' height='160' /&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;         &amp;lt;?php } else { ?&amp;gt;&lt;br /&gt;  &amp;lt;img src="&amp;lt;?php echo $image[0]; ?&amp;gt;" alt="&amp;lt;?php the_title(); ?&amp;gt;"&amp;nbsp; width='290' height='160' /&amp;gt;&lt;br /&gt;         &amp;lt;?php } ?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-6283715512920049993?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/6283715512920049993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2011/08/wp-advanced-image-lazy-load.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/6283715512920049993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/6283715512920049993'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2011/08/wp-advanced-image-lazy-load.html' title='WordPress Advanced Image Lazy Load'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-cXZK0qIP9T4/TqRM6UnnSWI/AAAAAAAAFAA/E24jUtxGhtk/s72-c/01.page_speed.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-5212000333260701308</id><published>2011-07-01T13:04:00.000+01:00</published><updated>2011-11-30T16:19:46.697Z</updated><title type='text'>WordPress Theme Switcher+</title><content type='html'>&lt;span style="font-size: large;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Are your visitors fed up with the current theme in your WordPress based website ?&lt;br /&gt;Have you ever thought of having multiple themes?&lt;br /&gt;&lt;br /&gt;Because WordPress allows to set one -and only one- theme in a website... apparently, no matter where you browse within your website, you end up with the same theme again... and over again!&lt;br /&gt;&lt;br /&gt;Only one theme at a time is not enough, It's really a sorely lack, right? even though WordPress community offers thousands and thousands of high quality themes, WordPress core system lacks the multiplicity of them, Do you agree?! &lt;br /&gt;&lt;br /&gt;Hence, the idea of this plugin comes out!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://1.s3.envato.com/files/9724419/TS-Preview.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Plugin Description&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/item/wp-theme-switcher/558740?ref=fayway" target="_blank"&gt;Get from codecanyon&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/item/wp-theme-switcher/558740?ref=fayway" target="_blank"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-v-8v6BsdqtY/To7VELzChgI/AAAAAAAAE_M/lSyCfp48KR0/s1600/codecanyon.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;So if you are here, it’s because you want to automatically switch between different themes on the fly according to a specific criteria... Luckily, that's why WP Theme Switcher+ is made. &lt;br /&gt;&lt;br /&gt;We are not talking about changing the background image or loading an additional CSS, but rather changing the whole theme; You can for example set a theme A for a specific category X, a theme B for an author Y or Z, a theme C when a post has a tag T1 and T2... &lt;br /&gt;&lt;br /&gt;You can make unlimited combinations on different test types and different WordPress objects.&lt;br /&gt;&lt;br /&gt;You can try theme switching conditions your self before you decide whether to buy it.&lt;br /&gt;&lt;br /&gt;Username: demo&lt;br /&gt;Password: demo&lt;br /&gt; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://agafix.org/faytest/wordpress.demo/wp-admin/admin.php?page=wp-theme-switcher-plus/wp-theme-switcher-plus.php" target="_blank" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-pRwHeh4NMGo/TtZW6CfKs4I/AAAAAAAAFEg/FKzXH0WToTE/s1600/try_before_you_buy.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;In this release, theme switching can be based on the following conditions:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;table align="left" cellpadding="0" cellspacing="0" class="tr-caption-container"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: left; v-align: middle;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-ZjELzaVzy3A/Tro5_IlzCBI/AAAAAAAAFC8/k-9xeoMOpi4/s1600/splash_new.png" /&gt;&lt;/td&gt;&lt;td style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Custom posts&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Custom taxonomies terms&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Mobile devices&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Logged user&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Logged user profile&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;Other supported tests:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Single posts&lt;/li&gt;&lt;li&gt;Pages &lt;/li&gt;&lt;li&gt;Authors&lt;/li&gt;&lt;li&gt;Categories&lt;/li&gt;&lt;li&gt;Tags&lt;/li&gt;&lt;li&gt;Custom fields&lt;/li&gt;&lt;li&gt;Location within the site (Post, Archive, Search...)&lt;/li&gt;&lt;li&gt;Any string from the current URI&lt;/li&gt;&lt;li&gt;Week days&lt;/li&gt;&lt;li&gt;Months &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The plugin works with and without activating Permalinks feature.&lt;br /&gt;&lt;br /&gt;WP Theme Switcher+ is available in the following languages :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;English&lt;/li&gt;&lt;li&gt;French&lt;/li&gt;&lt;/ul&gt;Please do not hesitate to contact me if you have any further questions&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=2DcML_ngCz4" target="_blank"&gt;Watch the video presentation on Youtube&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object height="360" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2DcML_ngCz4?version=3&amp;amp;hl=fr_FR&amp;amp;rel=0&amp;amp;hd=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/2DcML_ngCz4?version=3&amp;amp;hl=fr_FR&amp;amp;rel=0&amp;amp;hd=1" type="application/x-shockwave-flash" width="640" height="360" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Installation guide&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/item/wp-theme-switcher/558740?ref=fayway"&gt;Get from codecanyon&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/item/wp-theme-switcher/558740?ref=fayway" imageanchor="1" style="margin-left: auto; margin-right: auto;" target="_blank"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-v-8v6BsdqtY/To7VELzChgI/AAAAAAAAE_M/lSyCfp48KR0/s1600/codecanyon.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-Kqrp2zrBiv4/To7O6c4PmII/AAAAAAAAE-I/mz9ONhpCk5A/s1600/01_plugin_upload.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Plugin upload&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: both;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-9GOOclZcumw/To7O58HDT4I/AAAAAAAAE-E/k2Z7pzqkzHI/s1600/01_plugin_activation.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Plugin activation&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="clear: both;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;Getting started&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The plugin settings page is very simple, the goal is to translate conditions within your website into scenarios&lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-f6ebgRyM-CE/To7O6t_kScI/AAAAAAAAE-M/p3d7UK4jJug/s1600/02_welcome_page.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Plugin main page&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear: both;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;As a test case, here's how to automatically change the default theme by a different one when the author login equals “fahdos”&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-0N2k0R9XeD4/To7O7A3IzAI/AAAAAAAAE-Q/9Ln9ZQ2Pvw0/s1600/03_simple_test.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Author theme switching test case&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="clear: both;"&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-4anTav9-7AE/To7O7jtImvI/AAAAAAAAE-U/UZLx3M4cTv0/s1600/04_simple_test_verified.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;When the test is successful&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="clear: both;"&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-YAnRxZ9f5AU/To7O7weqALI/AAAAAAAAE-Y/7LBzzrkvl4w/s1600/05_simple_test_not_verified.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Other cases&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: both;"&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Test Types&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;WP Theme Switcher+ can make many types tests according to WordPress objects :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Equality test&lt;/li&gt;&lt;li&gt;Non-equality test&lt;/li&gt;&lt;li&gt;Inclusion Test, at least one selected item or all selected items&lt;/li&gt;&lt;li&gt;Exclusion Test, at least one selected item or all selected items&lt;/li&gt;&lt;li&gt;URI pattern matching&lt;/li&gt;&lt;/ul&gt;For example the following test check if the author login equals the "admin" value:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-IRikN-lDrBk/To7O8_LqF5I/AAAAAAAAE-k/dLKxU3VM42g/s1600/07_test_types_equality.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Simple equality test&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;This test will check if the post ID equals 54 &lt;b&gt;OR &lt;/b&gt;58 &lt;b&gt;OR &lt;/b&gt;59:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-5iPhGcPwp-M/To7O9d_u21I/AAAAAAAAE-o/pE3tD-ljVps/s1600/07_test_types_liste.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span id="internal-source-marker_0.5"&gt;Inclusion Test, at least one selected item&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;And this special test checks if the current post tags contains "android" &lt;b&gt;AND &lt;/b&gt;"google":&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-p1HoSttVt2Y/To7O9vA2q-I/AAAAAAAAE-s/J4GCuMAuZs4/s1600/07_test_types_match.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span id="internal-source-marker_0.6"&gt;Inclusion Test, all selected items&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;You may prefer to manually insert the list instead:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-fIWfKOFxpWI/To7O8ubCCCI/AAAAAAAAE-g/x4ZJJZaCVuk/s1600/07_test_types_comma_liste_.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Comma separated manual list&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;As a last solution if other conditions were not enough, you can check the current URI with a given pattern:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-bt9hfCDEUTw/To7O-bnSx-I/AAAAAAAAE-0/7QDvdsqmAWA/s1600/08_test_types_uri.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;URL pattern checking&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Like in this example where an “Android theme” will be applied every time the string “android” will be found in the website URL&lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-WoW6ENdVzTI/To7O-56JpPI/AAAAAAAAE-4/2-JiTXCjenM/s1600/09_test_types_uri_verified.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;When the pattern match test is successful&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Advanced Features&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A scenario can contains multiple tests to verify before considering a test suite as successful&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-Frat6Nk2sv4/To7O_bHG0iI/AAAAAAAAE-8/r9UE-xibkpA/s1600/10_two_tests.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Multiple tests per scenario&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You can also add an unlimited number of scenarios, just keep in mind that the order of scenarios is important, the chosen theme corresponds to the first verified scenario.&lt;br /&gt;So don't forget to sort themes -using drag and drop- according to your priorities&lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-W-BaxRk9PFA/To7O_z-K48I/AAAAAAAAE_A/EMMOn_QssSg/s1600/11_unlimited_scenarios.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Multiple scenarios per website&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Once again, thank you so much for purchasing this plugin. As I said at the beginning, I'd be glad to help you if you have any questions relating to this plugin. No guarantees, but I'll do my best to assist. If you have a more general question relating to WordPress plugins on CodeCanyon, you might consider visiting the forums and asking your question in the "&lt;a href="http://codecanyon.net/forums/topic/codecanyon/65?ref=fayway" target="_blank"&gt;CodeCanyon&lt;/a&gt;" section.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/item/wp-theme-switcher/558740?ref=fayway" imageanchor="1" style="margin-left: auto; margin-right: auto;" target="_blank"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-v-8v6BsdqtY/To7VELzChgI/AAAAAAAAE_M/lSyCfp48KR0/s1600/codecanyon.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;a href="http://codecanyon.net/item/wp-theme-switcher/558740?ref=fayway"&gt;Get from codecanyon&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Testemonials&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-jD6IieKyRuU/TpYWLfgTYAI/AAAAAAAAE_U/6TYExTquOxo/s1600/test4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-jD6IieKyRuU/TpYWLfgTYAI/AAAAAAAAE_U/6TYExTquOxo/s1600/test4.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-GnmBxSAAZqI/TpYWL_Dqm7I/AAAAAAAAE_c/VcRuRAdhxE4/s1600/test1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-GnmBxSAAZqI/TpYWL_Dqm7I/AAAAAAAAE_c/VcRuRAdhxE4/s1600/test1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-MRHeZfcIszQ/TpYWMepJyzI/AAAAAAAAE_k/913skg2KVXk/s1600/test2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-MRHeZfcIszQ/TpYWMepJyzI/AAAAAAAAE_k/913skg2KVXk/s1600/test2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-H5onxtCs3j0/TpYWMiaOtuI/AAAAAAAAE_s/ZfIbzHeUmpQ/s1600/test3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-H5onxtCs3j0/TpYWMiaOtuI/AAAAAAAAE_s/ZfIbzHeUmpQ/s1600/test3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-5212000333260701308?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/5212000333260701308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2011/09/wp-theme-switcher.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5212000333260701308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5212000333260701308'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2011/09/wp-theme-switcher.html' title='WordPress Theme Switcher+'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-v-8v6BsdqtY/To7VELzChgI/AAAAAAAAE_M/lSyCfp48KR0/s72-c/codecanyon.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-4632159577250577178</id><published>2010-11-01T06:54:00.000Z</published><updated>2011-11-18T06:55:01.855Z</updated><title type='text'>Indépendance du Maroc</title><content type='html'>Independence day in Morocco&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-4632159577250577178?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/4632159577250577178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2011/11/independance-du-maroc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4632159577250577178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4632159577250577178'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2011/11/independance-du-maroc.html' title='Indépendance du Maroc'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-7938904079212841394</id><published>2006-09-23T08:55:00.000Z</published><updated>2010-01-26T10:01:03.320Z</updated><title type='text'>Moi, PHP et AJAX</title><content type='html'>&lt;p&gt;&lt;br /&gt; &lt;span&gt;Primo, je tiens &amp;agrave; pr&amp;eacute;ciser que ce post est destin&amp;eacute; sp&amp;eacute;cialement &amp;agrave; un public newbie avec l&amp;rsquo;univers PHP&amp;hellip; je fais l&amp;agrave; que fournir une petite synth&amp;egrave;se de ma modeste exp&amp;eacute;rience&amp;hellip;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Enfin bref, &lt;strong&gt;je vais juste essayer d&amp;rsquo;expliquer une approche du PHP un peu comme j&amp;rsquo;aurais aim&amp;eacute; qu&amp;rsquo;on me l&amp;rsquo;explique quand j&amp;rsquo;&amp;eacute;tait encore un analphab&amp;egrave;te&lt;/strong&gt;&amp;hellip; c&amp;rsquo;est juste une question d&amp;rsquo;organisation et je sais que chacun a &amp;ccedil;a m&amp;eacute;thode dans laquelle il se sent &amp;agrave; l&amp;rsquo;aise&amp;hellip;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Le verdict final revient donc &amp;agrave; vous (si vous avez bien entendu vos 18 ans &amp;hellip; si non, je m&amp;rsquo;en fous de ce que vous pensez, je vous impose ma m&amp;eacute;thode&amp;nbsp;! &lt;img border="0" src="/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-wink.gif" /&gt;)&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Ok ok&amp;nbsp;!&lt;span&gt;&amp;nbsp; &lt;/span&gt;3ala machiat allah on commence&amp;nbsp;!&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Et je pense qu&amp;rsquo;avant de vous dire quoi faire, je vais d&amp;rsquo;abord commencer par vous dire quoi &amp;eacute;viter&amp;hellip; prenons ce bout de code PHP&amp;nbsp;:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&lt;span style="font-family: verdana; color: red; font-size: 9pt"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;require&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt; (&amp;quot;sys/connect.php&amp;quot;);&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;mysql_connect&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;($server,$user,$pass);&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;mysql_select_db&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;($base);&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;$query =&lt;span style="color: blue"&gt;mysql_query&lt;/span&gt;(&amp;quot;select * from table&amp;quot;)&amp;nbsp; or die (&amp;quot;error: &amp;quot;.&lt;span style="color: blue"&gt;mysql_error&lt;/span&gt;());&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;echo&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt; &amp;quot;&amp;lt;h2&amp;gt;Liste&amp;lt;/h2&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;if&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt; (&lt;span style="color: blue"&gt;mysql_num_rows&lt;/span&gt;($query))&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;{&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;echo&lt;/span&gt; &amp;quot;&amp;lt;center class=&amp;#39;Intro&amp;#39;&amp;gt;Intro quoi !&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;echo&lt;/span&gt; &amp;quot;&amp;lt;table&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;while&lt;/span&gt;($row = &lt;span style="color: blue"&gt;mysql_fetch_assoc&lt;/span&gt;($query)) {&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $id = $row[&amp;#39;id&amp;#39;];&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $from = $row[&amp;#39;from&amp;#39;];&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $date = $row[&amp;#39;date&amp;#39;];&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $comment = $row[&amp;#39;comment&amp;#39;];&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;echo&lt;/span&gt; &amp;quot;&amp;lt;tr&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;td &amp;gt;from: $from &amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;a href=&amp;#39;profil.php?id=$id&amp;#39;&amp;gt;Profil&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;td&amp;gt;$date&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;td&amp;gt;$comment&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;echo&lt;/span&gt; &amp;quot;&amp;lt;/table&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;}&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;mysql_close&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;();&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: red; font-size: 9pt"&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;J&amp;rsquo;avoue que ce code est tir&amp;eacute; d&amp;rsquo;un de mes propres vieux projets&amp;hellip; &amp;agrave; cette &amp;eacute;poque, il faut le dire, j&amp;rsquo;en &amp;eacute;tais super fi&amp;egrave;re. A pr&amp;eacute;sent, je me dis plut&amp;ocirc;t&amp;nbsp;: &amp;laquo;&amp;nbsp;Mais c&amp;rsquo;est qui le con qu&amp;rsquo;a &amp;eacute;crit cette camelote&amp;nbsp;? C&amp;rsquo;est de n&amp;rsquo;importe quoi comme code quoi&amp;nbsp;!!!&amp;nbsp;&amp;raquo;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Pourquoi&amp;nbsp;?&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Certes, &amp;ccedil;&amp;rsquo;a affiche bel et bien le r&amp;eacute;sultat voulu&amp;hellip; mais c&amp;rsquo;est pas vraiment la bonne fa&amp;ccedil;on de faire&amp;hellip; la raison&amp;nbsp;? Y en a beaucoup&amp;nbsp;:&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&amp;middot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Tout est m&amp;eacute;lang&amp;eacute; ici, du PHP &amp;agrave; l&amp;rsquo;int&amp;eacute;rieur du html et du html &amp;agrave; l&amp;rsquo;int&amp;eacute;rieur du php&amp;hellip;&amp;ccedil;a flippe &amp;ccedil;a&amp;nbsp;!&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&amp;middot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Si vous &amp;ecirc;tes des fain&amp;eacute;ants comme moi et que vous faites souvent recours &amp;agrave; un &amp;eacute;diteur WYSIWYG tel Dreamweaver pour les petites/grandes modifications rapides, soyez s&amp;ucirc;r qu&amp;rsquo;avec une telle organisation, vous serez dans tous les cas oblig&amp;eacute;s de tout taper &amp;agrave; la main&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&amp;middot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;A part la traditionnelle technique du copier-coller, ce code n&amp;rsquo;est pas vraiment r&amp;eacute;utilisable&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&amp;middot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Cette m&amp;eacute;thode ne permet pas une &amp;eacute;ventuelle prise en charge de AJAX&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&lt;strong&gt;Ce qu&amp;rsquo;il faut faire&amp;nbsp;:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Tout d&amp;rsquo;abord, s&amp;eacute;parer les traitements de l&amp;rsquo;affichage&amp;hellip; je parle pas d&amp;rsquo;utiliser un moteur de template, mais seulement commencer par faire un petit m&amp;eacute;nage d&amp;eacute;j&amp;agrave; cot&amp;eacute; code PHP (si vous tenez tout de m&amp;ecirc;me aux templates, je pense qu&amp;rsquo;il y a pas mieux pour un newbie que le lien suivant [&lt;a href="http://www.tinybutstrong.com/examples.php" target="_blank"&gt;http://www.tinybutstrong.com/examples.php&lt;/a&gt;])&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Il faut donc organiser notre code en fonctions et surtout mettre du PHP &amp;agrave; l&amp;rsquo;int&amp;eacute;rieur du html plut&amp;ocirc;t que l&amp;rsquo;inverse&amp;nbsp;;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;lt;h2&amp;gt;List&amp;lt;/h2&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: red; font-size: 9pt"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: rgb(255,102,0); font-size: 9pt"&gt;//Une fonction qui ne contient pas la moindre balise html.&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: rgb(255,102,0); font-size: 9pt"&gt;//Elle se charge de r&amp;eacute;cup&amp;eacute;rer les donn&amp;eacute;es et les renvoyer dans un tableau&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;function&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt; LoadData() {&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;Connect();&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;$SQL&amp;nbsp; = &amp;quot;select * from table&amp;quot;;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;$query&amp;nbsp; = &lt;span style="color: blue"&gt;mysql_query&lt;/span&gt;($sql);&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;if&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt; ( !&lt;span style="color: blue"&gt;mysql_num_rows&lt;/span&gt;($query) ) {&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue"&gt; return&lt;/span&gt; false;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;} &lt;span style="color: blue"&gt;else&lt;/span&gt; {&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;while&lt;/span&gt; ( $row =&lt;span style="color: blue"&gt; mysql_fetch_assoc&lt;/span&gt;($query) ) {&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $return[] = &lt;span style="color: blue"&gt;array&lt;/span&gt;(&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;id&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $row[&amp;#39;id&amp;#39;],&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;from&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $row[&amp;#39;from&amp;#39;],&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;date&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $row[&amp;#39;date&amp;#39;],&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;comment&amp;#39;&amp;nbsp; =&amp;gt; $row[&amp;#39;comment&amp;#39;]&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;mysql_close&lt;/span&gt;();&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;return&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt; $return;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;}&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: rgb(255,102,0); font-size: 9pt"&gt;//Une fonction qui ne contient pas la moindre requ&amp;ecirc;te SQL ou commande MYSQL&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: rgb(255,102,0); font-size: 9pt"&gt;//Elle se charge seulement d&amp;#39;afficher le tableau r&amp;eacute;cup&amp;eacute;r&amp;eacute; par LoadData()&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;function&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt; DisplayData() {&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;$rows = LoadData();&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: red; font-size: 9pt"&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: red; font-size: 9pt"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: blue; font-size: 9pt"&gt;foreach&lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt; ($row &lt;span style="color: blue"&gt;as&lt;/span&gt; $rows){&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: red; font-size: 9pt"&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;lt;td &amp;gt;from: &lt;span style="color: red"&gt;&amp;lt;?php&lt;/span&gt; &lt;span style="color: blue"&gt;echo&lt;/span&gt; $row[&amp;#39;from&amp;#39;]; &lt;span style="color: red"&gt;?&amp;gt;&lt;/span&gt; &amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#39;profil.php?id=&lt;span style="color: red"&gt;&amp;lt;?php&lt;/span&gt; &lt;span style="color: blue"&gt;echo&lt;/span&gt; $row[&amp;#39;id&amp;#39;];&lt;span style="color: red"&gt; ?&amp;gt;&lt;/span&gt;&amp;#39;&amp;gt;Profil&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;lt;td&amp;gt;&lt;span style="color: red"&gt;&amp;lt;?php&lt;/span&gt; &lt;span style="color: blue"&gt;echo&lt;/span&gt; $row[&amp;#39;date&amp;#39;]; &lt;span style="color: red"&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;lt;td&amp;gt;&lt;span style="color: red"&gt;&amp;lt;?php&lt;/span&gt; &lt;span style="color: blue"&gt;echo&lt;/span&gt; $row[&amp;#39;comment&amp;#39;]; &lt;span style="color: red"&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: red; font-size: 9pt"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;}&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: red; font-size: 9pt"&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: red; font-size: 9pt"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; font-size: 9pt"&gt;}&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: verdana; color: red; font-size: 9pt"&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;En plus, le fait de mettre du PHP &amp;agrave; l&amp;rsquo;int&amp;eacute;rieur du HTML( &lt;em&gt;&amp;lt;td &amp;gt;from: &amp;lt;?php echo $row[&amp;#39;from&amp;#39;]; ?&amp;gt; &amp;lt;/td&amp;gt;&lt;/em&gt; Plut&amp;ocirc;t que &lt;em&gt;echo &amp;ldquo;&amp;lt;td &amp;gt;from: $row[&amp;#39;from&amp;#39;] &amp;lt;/td&amp;gt;&amp;rdquo;;&lt;/em&gt;), vous permettra de profiter &amp;agrave; max de l&amp;rsquo;&amp;eacute;dition avec la souris de votre &amp;eacute;diteur WYSIWYG&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt; Le b&amp;eacute;n&amp;eacute;fice majeur&lt;span&gt;&amp;nbsp; &lt;/span&gt;de la deuxi&amp;egrave;me fonction qui retourne que le HTML reste pour moi la possibilit&amp;eacute; de passer au Web 2.0 avec le fameux AJAX.&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Juste pour rappelle&amp;nbsp;; AJAX est une technique qui permet de modifier que des parties cibl&amp;eacute;es de vos pages et donc &amp;eacute;viter de recharger toute la page pour des petits changements&amp;hellip;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Votre site peut donc avoir l&amp;rsquo;air plus fluide, plus rapide et plus cool dans sa navigation.&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Vous pouvez en voir une petite d&amp;eacute;monstration&lt;span&gt;&amp;nbsp; &lt;/span&gt;dans le tout dernier site tout frais que j&amp;rsquo;ai r&amp;eacute;alis&amp;eacute; pour un oncle &amp;agrave; moi [&lt;a href="http://profay.com/ggsa/" target="_blank"&gt;http://profay.com/ggsa/&lt;/a&gt; ]&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Dans ce cas, toujours pour &amp;eacute;viter les usines &amp;agrave; gaz,&lt;span&gt;&amp;nbsp; &lt;/span&gt;j&amp;rsquo;ai utilis&amp;eacute; une des plus simples librairies existantes pour le langage PHP&amp;nbsp;: AJAX Agent [&lt;a href="http://www.hemmady.com/ajaxagent" target="_blank"&gt;http://www.hemmady.com/ajaxagent&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt; Philosophie de AA&amp;nbsp;:&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;au lieu d&amp;rsquo;avoir des liens qui vont appeler des pages PHP (ce qui donc va obliger un rechargement totale de la page), nos liens vont plut&amp;ocirc;t appeler des fonctions Javascripts qui se chargeront de faire l&amp;rsquo;aller-retour avec le serveur et affecter le changement &amp;agrave; la zone voulue&amp;hellip; voila un exemple&amp;nbsp;:&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Imaginons qu&amp;rsquo;on a une page avec deux zones A et B (2 div), en cliquant sur un lien, on veut afficher le r&amp;eacute;sultat dans la zone A et uniquement dans la zone A sans que la page se recharge. Voil&amp;agrave; une solution&amp;nbsp;:&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="font-family: verdana; font-size: 9pt"&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="color: red"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &amp;nbsp;require_once(&amp;#39;library/agent.php&amp;#39;);&lt;br /&gt;&lt;br /&gt; &amp;nbsp;$agent-&amp;gt;init();&lt;br /&gt;&lt;br /&gt; &lt;span style="color: red"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="color: maroon"&gt;&amp;lt;SCRIPT language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="color: blue"&gt;function&lt;/span&gt; call_ShowDetails() {&lt;br /&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; document.getElementById(&amp;quot;Zone_A&amp;quot;).innerHTML&amp;nbsp; = &amp;#39;&amp;#39;;&lt;br /&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;agent.call(&amp;#39;&amp;#39;,&amp;#39;DisplayData&amp;#39;,&amp;#39;callback_ShowDetails&amp;#39;);&lt;br /&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span style="color: blue"&gt;function&lt;/span&gt; callback_ShowDetails(html) {&lt;br /&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; document.getElementById(&amp;quot;Zone_A&amp;quot;).innerHTML&amp;nbsp; = html;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span style="color: maroon"&gt;&amp;lt;/SCRIPT&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; La premi&amp;egrave;re fonction call_ShowDetails() va d&amp;rsquo;abord chercher une balise &amp;lt;div&amp;gt; qu&amp;rsquo;a l&amp;rsquo;Id &amp;ldquo;Zone_A&amp;rdquo; afin de la vider. Elle appelle apr&amp;egrave;s l&amp;rsquo;agent AJAX avec sa m&amp;eacute;thode call&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;agent.call(&amp;#39;url&amp;#39;,&amp;#39;php_function&amp;#39;, &amp;#39;client_handle&amp;#39;, param1, param2, ...);&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&amp;middot;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lsquo;url&amp;rsquo; est le chemin du fichier ou se trouve notre fonction PHP(Laisser vide si la fonction se trouve dans le m&amp;ecirc;me fichier).&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&amp;middot; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lsquo;php_function&amp;rsquo; est notre fonction PHP qui va s&amp;rsquo;ex&amp;eacute;cuter cot&amp;eacute; serveur en retournant que du HTML&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&amp;middot;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lsquo;client_handle&amp;rsquo; est la fonction Javascript qui va r&amp;eacute;cup&amp;eacute;rer le HTML renvoy&amp;eacute; par la fonction PHP afin de l&amp;rsquo;afficher dans la zone voulue.&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&amp;middot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Param1, param2&amp;hellip; sont les param&amp;egrave;tres &amp;eacute;ventuels de la fonction PHP&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt; Dans notre cas, apr&amp;egrave;s avoir vid&amp;eacute; la zone A, agent_call va ex&amp;eacute;cuter la fonction PHP DisplayData puis va passer le tableau HTML retourn&amp;eacute; &amp;agrave; la fonction Javascript callback_ShowDetails() qui va &amp;agrave; son tour l&amp;rsquo;afficher dans notre zone A.&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Pour le navigateur client, toutes ses op&amp;eacute;rations s&amp;rsquo;ex&amp;eacute;cutent via du Javascript ce qui fait que notre application prend l&amp;rsquo;air d&amp;rsquo;une application lourde plut&amp;ocirc;t que d&amp;rsquo;une application Web qui n&amp;rsquo;arr&amp;ecirc;te pas de se recharger&amp;hellip;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;Je vous re-invite &amp;agrave; revisiter [&lt;a href="http://profay.com/ggsa/" target="_blank"&gt;http://profay.com/ggsa/&lt;/a&gt; ] et essayer re-imaginer ce concept&amp;hellip;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt; Comme j&amp;rsquo;ai d&amp;eacute;j&amp;agrave; annonc&amp;eacute;, ce post est destin&amp;eacute; &amp;agrave; des n&amp;eacute;ophytes&amp;hellip; Une fois vous avez pris l&amp;rsquo;habitude de cette premi&amp;egrave;re partie, vous pouvez alors passer &amp;agrave; des technos plus g&amp;eacute;n&amp;eacute;riques et plus complexes du PHP que j&amp;rsquo;ai d&amp;eacute;j&amp;agrave; cit&amp;eacute; dans le post &lt;a href="http://profay.com/index.php?rub=chronique&amp;amp;id=18&amp;amp;com=1" target="_blank"&gt;[Pourquoi ce m&amp;eacute;pris envers PHP]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; Pour conclure, je doute fort que j&amp;rsquo;&amp;eacute;tais assez explicite dans mes explications&amp;hellip; Je reste n&amp;eacute;anmoins disponible pour r&amp;eacute;pondre a vos questions et vos remarques&amp;hellip; et&amp;hellip; &lt;strong&gt;VIVE LE PHP&amp;nbsp;!!!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-7938904079212841394?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/7938904079212841394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2006/09/moi-php-et-ajax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/7938904079212841394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/7938904079212841394'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2006/09/moi-php-et-ajax.html' title='Moi, PHP et AJAX'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-5501231728518145430</id><published>2005-12-10T09:53:00.000Z</published><updated>2010-01-26T09:55:33.103Z</updated><title type='text'>Pourquoi ce mépris envers PHP</title><content type='html'>&lt;p&gt;&lt;br /&gt; &amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt; Les gens ont tendance &amp;agrave; m&amp;eacute;priser PHP, peut &amp;ecirc;tre par ce que pour eux c&amp;rsquo;est le plus populaire, le plus simple et le plus attaqu&amp;eacute;&amp;hellip; cette r&amp;eacute;putation est due aux programmeurs d&amp;eacute;butants qui d&amp;eacute;veloppent en PHP des applications professionnelles et complexes comme s&amp;rsquo;il s&amp;rsquo;agissait de leurs sites perso&amp;nbsp;! &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; C&amp;rsquo;est pas &amp;ccedil;a le PHP&amp;nbsp;! Certes vous pouvez afficher un &amp;lsquo;Hello World&amp;rsquo; en une seule ligne de code&amp;hellip; mais comme JAVA, le PHP pro destin&amp;eacute; &amp;agrave; la production l&amp;rsquo;affiche aussi en un minimum de six lignes&amp;hellip;&lt;br /&gt;&lt;br /&gt; Vous voulez que de la complexit&amp;eacute;, en voil&amp;agrave; de la complexit&amp;eacute;&amp;nbsp;:&lt;br /&gt;&lt;br /&gt; Comme le framework .NET et J2EE, il existe plein de &amp;lsquo;Cadre d&amp;rsquo;application&amp;rsquo; pour PHP. Ce sont des environnements de d&amp;eacute;veloppement modulaire soit orient&amp;eacute; objet tout court, soit en plus orient&amp;eacute; composant &amp;eacute;v&amp;eacute;nementiel. G&amp;eacute;n&amp;eacute;ralement ses framework sont faciles &amp;agrave; installer et font recours a une d&amp;eacute;marche qui a fait ses preuves dans la pratique&amp;hellip; cette d&amp;eacute;marche se base sur le mod&amp;egrave;le de conception, la pr&amp;eacute;sentation et la s&amp;eacute;paration des contenus et l&amp;rsquo;abstraction des basses de donn&amp;eacute;es.&lt;br /&gt;&lt;br /&gt; Ils offrent au passage un ensemble de composants pr&amp;ecirc;ts &amp;agrave; l&amp;rsquo;emploi permettant de cr&amp;eacute;er des logiciels de mani&amp;egrave;re efficace et rapide.&lt;br /&gt;&lt;br /&gt; Les plus populaires frameworks sont&amp;nbsp;:&lt;br /&gt;&lt;br /&gt; &lt;a href="http://seagull.phpkitchen.com/" target="_blank"&gt;[ Seagull ]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;a href="http://www.xisc.com/" target="_blank"&gt;[ Prado ]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;a href="http://cakephp.org/" target="_blank"&gt;[ CakePHP ]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;a href="http://www.mojavi.org/" target="_blank"&gt;[ Mojavi ]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; Il existe aussi des couches de mapping objet/relationnel (ORM) pour une gestion simple et intelligente des base de donn&amp;eacute;e. Avec &lt;a href="http://propel.phpdb.org/trac/" target="_blank"&gt;[ Propel ]&lt;/a&gt; par exemple, vous pouvez &amp;eacute;viter les op&amp;eacute;rations p&amp;eacute;nibles se servant de requ&amp;ecirc;tes SQL complexes dans des scripts PHP pas vraiment joli-joli et donc fournir une application ind&amp;eacute;pendante d&amp;rsquo;une base de donn&amp;eacute;e sp&amp;eacute;cifique et surtout facile en mise &amp;agrave; jour&amp;hellip;&lt;br /&gt;&lt;br /&gt; Pour ceux qui bossent en groupe en se s&amp;eacute;parant la t&amp;acirc;che du design et celle de la programmation, &lt;a href="http://smarty.php.net/" target="_blank"&gt;[ Smarty ]&lt;/a&gt; qu&amp;rsquo;est le meilleur moteur de template pour PHP vous rend la vie moins complexe et surtout vous acc&amp;eacute;l&amp;egrave;re le processus de la r&amp;eacute;alisation&amp;hellip;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; Sa philo facilite la s&amp;eacute;paration entre la logique applicative et la pr&amp;eacute;sentation et donc tous les membres de l&amp;rsquo;&amp;eacute;quipe peuvent bosser en parall&amp;egrave;le&amp;hellip;&lt;br /&gt;&lt;br /&gt; Enfin, et pour vos op&amp;eacute;rations habituelles, au lieu de programmer avec les fonctions standards de PHP, opter plut&amp;ocirc;t pour une programmation orient&amp;eacute;e objet avec &lt;a href="http://pear.php.net/packages.php" target="_blank"&gt;[ PEAR ]&lt;/a&gt;, &amp;ccedil;a vous permettra de minimiser votre code et b&amp;eacute;n&amp;eacute;ficier d&amp;rsquo;une gestion d&amp;rsquo;erreur efficace se basant sur les exceptions&amp;hellip;&lt;br /&gt;&lt;br /&gt; En fait, ces extensions sont toutes gratuites et dans la majorit&amp;eacute; des cas Open Source&amp;hellip; alors, il est o&amp;ugrave; le probl&amp;egrave;me&amp;nbsp;?&lt;br /&gt;&lt;br /&gt; Il est pas bon ce PHP&amp;nbsp;?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-5501231728518145430?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/5501231728518145430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2005/12/pourquoi-ce-mepris-envers-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5501231728518145430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5501231728518145430'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2005/12/pourquoi-ce-mepris-envers-php.html' title='Pourquoi ce mépris envers PHP'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-4618960208061093630</id><published>1980-01-09T12:07:00.000Z</published><updated>2011-05-19T12:50:52.715+01:00</updated><title type='text'>A propos de moi</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:officedocumentsettings&gt;   &lt;o:relyonvml/&gt;   &lt;o:allowpng/&gt;  &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;FR&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Tableau Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;div style="mso-element:para-border-div;border:none;border-bottom:solid silver 1.0pt; mso-border-bottom-alt:solid silver .5pt;padding:0cm 0cm 1.0pt 0cm"&gt;  &lt;p class="TitreCV"&gt;Études et Certifications&lt;/p&gt;  &lt;/div&gt;  &lt;p class="location" style="tab-stops:70.9pt right 333.15pt"&gt;2011&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;Java 6&lt;/b&gt; SUN Certified Programmer&lt;/p&gt;  &lt;p class="location" style="tab-stops:70.9pt right 333.15pt"&gt;2010&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;PHP 5&lt;/b&gt; Zend Certified Engineer&lt;/p&gt;  &lt;p class="location" style="tab-stops:70.9pt right 333.15pt"&gt;2006&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;Diplôme d’Ingénieur d'État&lt;/b&gt; en Informatique de l’Ecole Nationale des Sciences Appliquées Agadir&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-4618960208061093630?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/4618960208061093630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/02/propos-de-moi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4618960208061093630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4618960208061093630'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/02/propos-de-moi.html' title='A propos de moi'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-8312112586629446843</id><published>1980-01-08T11:05:00.000Z</published><updated>2009-08-13T15:21:58.276+01:00</updated><title type='text'>IAV Part 1</title><content type='html'>&lt;iframe style="text-align: center;" src="http://docs.google.com/EmbedSlideshow?docid=dfq3dxpr_55f2rpwzdr&amp;amp;size=l" width="700" frameborder="0" height="559"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Presentation Transcript&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Slide 1: Environnement de travail 11/2006 – 10/2007 Fayçal TIRICH&lt;br /&gt;2. Slide 2: Serveur de déploiement 2&lt;br /&gt;3. Slide 3: Serveur de déploiement OS: Debian Server * Serveur Web: Apache 2 * Principaux modules: mod_alias, mod_ssl, mod_php5, mod_rewrite... * Base de données: MySQL 5 * Moteur de table: InnoDB, MyISAM * Utilitaires: Shell, Shorewall, OpenSSH, SSMTP, phpMyAdmin... * 3&lt;br /&gt;4. Slide 4: Poste de développement 4&lt;br /&gt;5. Slide 5: Poste de développement OS: Debian + bureau Gnome * Editeur: Eclipse * Principal plugin: * PHP Development * Tools 5&lt;br /&gt;6. Slide 6: Poste de développement Plugin * complémentaire Aptana * Development Tools 6&lt;br /&gt;7. Slide 7: Poste de développement Principaux avantages du * plugin Aptana: Editeur HTML,CSS, * JavaScript... Synchronisation * FTP/SFTP 7&lt;br /&gt;8. Slide 8: Poste de développement Administration de la * base de données : MySQL Admin * 8&lt;br /&gt;9. Slide 9: PHP 9&lt;br /&gt;10. Slide 10: PHP Programmation Orientée Objet * 10&lt;br /&gt;11. Slide 11: PHP Gestion d'erreurs par Exception * 11&lt;br /&gt;12. Slide 12: Outils de débugage 12&lt;br /&gt;13. Slide 13: Outils de débugage PHP Debug: Classe pratique pour analyser les variables échangées * Alternatif : Xdebug * 13&lt;br /&gt;14. Slide 14: Outils de débugage Pour Javascript/CSS/HTML : Console d'erreurs du navigateur Firefox * 14&lt;br /&gt;15. Slide 15: Outils de débugage L'extension Firebug de * Firefox 15&lt;br /&gt;16. Slide 16: Outils de débugage Exemple de debugage Pas-à- * pas d'un code Javascript via l'extension Firebug 16&lt;br /&gt;17. Slide 17: PHP – Accès aux bases de données 17&lt;br /&gt;18. Slide 18: PHP – Accès aux bases de données Librairie: PHP ADOdb * Avantages : * Abstraction des bases de données : Changer la base sans changer le code * Codage en POO et support du PHP5 * Support des Exceptions * Rapidité * Gratuité * ... * 18&lt;br /&gt;19. Slide 19: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * Méthodes pratiques de manipulation d'ordres SQL * 19&lt;br /&gt;20. Slide 20: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * Méthodes pratiques de génération d'ordres SQL * 20&lt;br /&gt;21. Slide 21: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * Mise en cache des requêtes SQL: Soulager le serveur de la base de données en * « cachant » les requêtes dans des fichiers avec une date d'expiration personnalisée selon le cas 21&lt;br /&gt;22. Slide 22: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * ADOdb Active Record : * Librairie Object-Relational Mapping * implémentant les bases de données relationnelles Comporte un grand nombre de fonctions * pratiques : save(), replace(), delete(), load(), find()... Supporte les transactions et le caching * Supporte la connexion multiples aux bases de * données Modèle objet flexible offrant la possibilité de * surcharger les méthodes de base .... * 22&lt;br /&gt;23. Slide 23: PHP – Couche présentation 23&lt;br /&gt;24. Slide 24: PHP – Couche présentation Moteur de template Smarty : * Séparation entre la logique applicative et la présentation: * Par exemple pour générer la * page à gauche, on mélange jamais le code PHP avec le code HTML. Cela permet de : Gagner du temps vu que le * codeur PHP et le designer HTML peuvent travailler en parallèle. faciliter la maintenance * mieux s'organiser dans les * grands projets 24&lt;br /&gt;25. Slide 25: PHP – Couche présentation Ainsi la page précédente est organisée comment suivant: * Un premier fichier template ne contenant que du HTML et du code Smarty mais jamais du code PHP * ou de requêtes SQL... 25&lt;br /&gt;26. Slide 26: PHP – Couche présentation Un deuxième fichier PHP contenant la * classe implémentant les différentes méthodes définissant la logique applicative 26&lt;br /&gt;27. Slide 27: PHP – Couche présentation Un troisième fichier PHP faisant la * relation entre le premier fichier template et le deuxième fichier PHP contenant la bonne classe avec les bonnes méthodes à appeler 27&lt;br /&gt;28. Slide 28: PHP – Couche présentation Autre point fort de Smarty : * Gestion du cache : Permet de mettre en cache des pages entières ou seulement des parties ayant * des données qui ne changent pas fréquemment afin d'éviter une re-compilation inutile pouvant ralentir le serveur web. 28&lt;br /&gt;29. Slide 29: Applications Web... lourdes 29&lt;br /&gt;30. Slide 30: Applications Web... lourdes Toute en gardant la même logique applicative concernant la couche métier et la couche d'accès aux * données, la tendance pour la couche présentation va de plus en plus vers de nouvelles plateformes basées sur la technique Ajax (Asynchronous JavaScript and XML) qui offrent des composants aussi performant que les composants des bibliothèques telles que Qt , wxWidget, Swing ou celles de la plateforme .Net 30&lt;br /&gt;31. Slide 31: Applications Web... lourdes Plateforme Ajax adoptée : ExtJS * Avantages : * Compatibilité avec la majorité des navigateurs * Peut être adaptée avec plusieurs librairies surtout Yahoo! User Interface, l'une des plus mûres * librairies Ajax La partie présentation est totalement indépendante du langage utilisé dans la partie backend: On * peut donc migrer de PHP à Pyton, JSP ou RubyOnRails par exemple sans changer le code Javascript des interfaces Une sélection de composants complète : DataGrid, TreeView, TabPanel, ToolBar, Calendar, Menu, * Layout, ModalBox, WYSIWYG.... Gratuite * Support de la communauté * ... * 31&lt;br /&gt;32. Slide 32: Applications Web... lourdes ExtJS en action * 32&lt;br /&gt;33. Slide 33: Exemples d'application 33&lt;br /&gt;34. Slide 34: Installation et configuration du serveur 34&lt;br /&gt;35. Slide 35: réparation du serveur de déploiement Partie installation et configuration : * Mise en place de la version Server du dernier Debian (Version 4.0 Etch au moment du déploiement) * Y installer et configurer OpenSSH Server (changer le port et interdire au root de se connecter à * distant) Installer MySQL et sécuriser le compte root * Installer PHP5 ainsi que ses principaux modules : php5-mysql, php5-gd... * Installer Apache2 et et ses principaux modules et surtout activer le mode rewrite et le https en * utilisant une clé auto-générée (pour le moment) Installer et configurer PhpMyAdmin * Installer le firewall Shorewall et fermer tous les ports à l'exception des ports, 80, 443 et le port de * l'OpenSSH server Installer le package SSMTP pour pouvoir envoyer des mails depuis des commandes Shell à l'extérieur * Réaliser des petits scripts Shell faisant une sauvegarde compressée journalière de la base données * MySQL et une autre hebdomadaire des codes sources des sites. Ces points de sauvegarde sont envoyés après à un compte GMAIL créé spécialement pour cette tâche de sauvegarde. 35&lt;br /&gt;36. Slide 36: Partie développement 36&lt;br /&gt;37. Slide 37: www.iavcha.ac.ma 37&lt;br /&gt;38. Slide 38: www.iavcha.ac.ma Partie développement : * Le cas PHP/Smarty: * www.iavcha.ac.ma 38&lt;br /&gt;39. Slide 39: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Moteur de recherche * interne 39&lt;br /&gt;40. Slide 40: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Compte sécurisé pour * chaque membre du personnel: Les variables échangées sont protégées contre les attaques du type Injection SQL et les attaques XSS (Cross- site scripting) 40&lt;br /&gt;41. Slide 41: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Modification * dynamique et instantanée des profils par les membres concernés 41&lt;br /&gt;42. Slide 42: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Module de publication * de CV Online 42&lt;br /&gt;43. Slide 43: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Exemple de formulaire * d'ajout/modificationd'un e section de CV 43&lt;br /&gt;44. Slide 44: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Résultat obtenu d'une * page personnelle d'un membre 44&lt;br /&gt;45. Slide 45: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Partie administration: * Gestion des * utilisateurs 45&lt;br /&gt;46. Slide 46: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Partie administration: * Gestion du contenu * 46&lt;br /&gt;47. Slide 47: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Partie administration: * Gestion des galeries * de la média-thèque 47&lt;br /&gt;48. Slide 48: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Exemple du résultat * d'une galerie Ajax 48&lt;br /&gt;49. Slide 49: Gestion du Stock 49&lt;br /&gt;50. Slide 50: Gestion du Stock Exemple 2 : Le cas PHP/ExtJs via une application de gestion de stock * 50&lt;br /&gt;51. Slide 51: Gestion du Stock Cette application est * installée dans un serveur sécurisé (https) pour assurer une confidentialité extrême des données échangées contre les logiciels espions de capture des paquets 51&lt;br /&gt;52. Slide 52: Gestion du Stock Exemples de composants * utilisés dans cette application: ModalBox * TreeView * personnalisable Layout dimensionable * DatePicker * ComboBox avec auto * suggestion Data Grid (Triable, * dimensionable, colonnes cachées, pagination...) .... * 52&lt;br /&gt;53. Slide 53: Gestion du Stock Exemple de * personnalisation du rendu des composants: coloration des cellules d'une DataGrid selon une règle spécifique de gestion 53&lt;br /&gt;54. Slide 54: Gestion du Stock Génération de rapport PDF avec la librairie FPDF * 54&lt;br /&gt;55. Slide 55: Gestion du Stock Exemple de graphe synthétique de type « Ligne » créé avec la librairie PlotKit * 55&lt;br /&gt;56. Slide 56: Gestion du Stock Un autre exemple de graphe camembert en utilisant la même librairie PlotKit * 56&lt;br /&gt;57. Slide 57: Conclusion 57&lt;br /&gt;58. Slide 58: Conclusion Ces exemples d'applications Web permettent entre autres de: * Centraliser les applications dans des serveurs et donc éviter toute installation ou mise à jour * dans les postes clients Faciliter la maintenance et la sauvegarde des données * Pratique pour les personnes mobiles qui peuvent consulter, opérer et générer des rapports * depuis n'importe quel ordinateur connecté à internet Renaître des vieux ordinateurs clients vu que la majorités des traitements se font du coté * serveur Annuler le coût software en utilisant des librairies gratuites * Minimiser le coût hardware en optant pour Debian/Apache/PHP/MySQL aptes à assurer une * performance extrême même dans des serveurs plutôt modestes Dans le coté fonctionnel; offrir des solution informatiques limitant les erreurs et augmentant * l'efficacité dans le travaille quotidien tout en donnant des outils fiables d'aides à la décision aux responsables ... * 58&lt;br /&gt;59. Slide 59: Exemples d'applications en cours de réalisation Application de gestion de budgets * Application de gestion d'ordre de missions * Site Web référentielle de la collection du jardin botanique du Complexe Horticole d'Agadir * Application de gestion des notes * Application de gestion de bibliothèque avec interface Web pour consultation en ligne depuis * internet ... * 59&lt;br /&gt;60. Slide 60: Merci pour votre attention 60&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-8312112586629446843?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/8312112586629446843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/iav-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/8312112586629446843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/8312112586629446843'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/iav-part-1.html' title='IAV Part 1'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-4045553288834177131</id><published>1980-01-07T16:52:00.000Z</published><updated>2009-08-13T15:22:14.701+01:00</updated><title type='text'>IAV Part 2</title><content type='html'>&lt;iframe src="http://docs.google.com/EmbedSlideshow?docid=dfq3dxpr_117fkk4dsz2&amp;amp;size=l" width="700" frameborder="0" height="559"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Presentation Transcript&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Slide 1: Environnement de travail 11/2006 – 10/2007 Fayçal TIRICH&lt;br /&gt;2. Slide 2: Serveur de déploiement 2&lt;br /&gt;3. Slide 3: Serveur de déploiement OS: Debian Server * Serveur Web: Apache 2 * Principaux modules: mod_alias, mod_ssl, mod_php5, mod_rewrite... * Base de données: MySQL 5 * Moteur de table: InnoDB, MyISAM * Utilitaires: Shell, Shorewall, OpenSSH, SSMTP, phpMyAdmin... * 3&lt;br /&gt;4. Slide 4: Poste de développement 4&lt;br /&gt;5. Slide 5: Poste de développement OS: Debian + bureau Gnome * Editeur: Eclipse * Principal plugin: * PHP Development * Tools 5&lt;br /&gt;6. Slide 6: Poste de développement Plugin * complémentaire Aptana * Development Tools 6&lt;br /&gt;7. Slide 7: Poste de développement Principaux avantages du * plugin Aptana: Editeur HTML,CSS, * JavaScript... Synchronisation * FTP/SFTP 7&lt;br /&gt;8. Slide 8: Poste de développement Administration de la * base de données : MySQL Admin * 8&lt;br /&gt;9. Slide 9: PHP 9&lt;br /&gt;10. Slide 10: PHP Programmation Orientée Objet * 10&lt;br /&gt;11. Slide 11: PHP Gestion d'erreurs par Exception * 11&lt;br /&gt;12. Slide 12: Outils de débugage 12&lt;br /&gt;13. Slide 13: Outils de débugage PHP Debug: Classe pratique pour analyser les variables échangées * Alternatif : Xdebug * 13&lt;br /&gt;14. Slide 14: Outils de débugage Pour Javascript/CSS/HTML : Console d'erreurs du navigateur Firefox * 14&lt;br /&gt;15. Slide 15: Outils de débugage L'extension Firebug de * Firefox 15&lt;br /&gt;16. Slide 16: Outils de débugage Exemple de debugage Pas-à- * pas d'un code Javascript via l'extension Firebug 16&lt;br /&gt;17. Slide 17: PHP – Accès aux bases de données 17&lt;br /&gt;18. Slide 18: PHP – Accès aux bases de données Librairie: PHP ADOdb * Avantages : * Abstraction des bases de données : Changer la base sans changer le code * Codage en POO et support du PHP5 * Support des Exceptions * Rapidité * Gratuité * ... * 18&lt;br /&gt;19. Slide 19: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * Méthodes pratiques de manipulation d'ordres SQL * 19&lt;br /&gt;20. Slide 20: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * Méthodes pratiques de génération d'ordres SQL * 20&lt;br /&gt;21. Slide 21: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * Mise en cache des requêtes SQL: Soulager le serveur de la base de données en * « cachant » les requêtes dans des fichiers avec une date d'expiration personnalisée selon le cas 21&lt;br /&gt;22. Slide 22: PHP – Accès aux bases de données Autres avantages de PHP ADOdb * ADOdb Active Record : * Librairie Object-Relational Mapping * implémentant les bases de données relationnelles Comporte un grand nombre de fonctions * pratiques : save(), replace(), delete(), load(), find()... Supporte les transactions et le caching * Supporte la connexion multiples aux bases de * données Modèle objet flexible offrant la possibilité de * surcharger les méthodes de base .... * 22&lt;br /&gt;23. Slide 23: PHP – Couche présentation 23&lt;br /&gt;24. Slide 24: PHP – Couche présentation Moteur de template Smarty : * Séparation entre la logique applicative et la présentation: * Par exemple pour générer la * page à gauche, on mélange jamais le code PHP avec le code HTML. Cela permet de : Gagner du temps vu que le * codeur PHP et le designer HTML peuvent travailler en parallèle. faciliter la maintenance * mieux s'organiser dans les * grands projets 24&lt;br /&gt;25. Slide 25: PHP – Couche présentation Ainsi la page précédente est organisée comment suivant: * Un premier fichier template ne contenant que du HTML et du code Smarty mais jamais du code PHP * ou de requêtes SQL... 25&lt;br /&gt;26. Slide 26: PHP – Couche présentation Un deuxième fichier PHP contenant la * classe implémentant les différentes méthodes définissant la logique applicative 26&lt;br /&gt;27. Slide 27: PHP – Couche présentation Un troisième fichier PHP faisant la * relation entre le premier fichier template et le deuxième fichier PHP contenant la bonne classe avec les bonnes méthodes à appeler 27&lt;br /&gt;28. Slide 28: PHP – Couche présentation Autre point fort de Smarty : * Gestion du cache : Permet de mettre en cache des pages entières ou seulement des parties ayant * des données qui ne changent pas fréquemment afin d'éviter une re-compilation inutile pouvant ralentir le serveur web. 28&lt;br /&gt;29. Slide 29: Applications Web... lourdes 29&lt;br /&gt;30. Slide 30: Applications Web... lourdes Toute en gardant la même logique applicative concernant la couche métier et la couche d'accès aux * données, la tendance pour la couche présentation va de plus en plus vers de nouvelles plateformes basées sur la technique Ajax (Asynchronous JavaScript and XML) qui offrent des composants aussi performant que les composants des bibliothèques telles que Qt , wxWidget, Swing ou celles de la plateforme .Net 30&lt;br /&gt;31. Slide 31: Applications Web... lourdes Plateforme Ajax adoptée : ExtJS * Avantages : * Compatibilité avec la majorité des navigateurs * Peut être adaptée avec plusieurs librairies surtout Yahoo! User Interface, l'une des plus mûres * librairies Ajax La partie présentation est totalement indépendante du langage utilisé dans la partie backend: On * peut donc migrer de PHP à Pyton, JSP ou RubyOnRails par exemple sans changer le code Javascript des interfaces Une sélection de composants complète : DataGrid, TreeView, TabPanel, ToolBar, Calendar, Menu, * Layout, ModalBox, WYSIWYG.... Gratuite * Support de la communauté * ... * 31&lt;br /&gt;32. Slide 32: Applications Web... lourdes ExtJS en action * 32&lt;br /&gt;33. Slide 33: Exemples d'application 33&lt;br /&gt;34. Slide 34: Installation et configuration du serveur 34&lt;br /&gt;35. Slide 35: réparation du serveur de déploiement Partie installation et configuration : * Mise en place de la version Server du dernier Debian (Version 4.0 Etch au moment du déploiement) * Y installer et configurer OpenSSH Server (changer le port et interdire au root de se connecter à * distant) Installer MySQL et sécuriser le compte root * Installer PHP5 ainsi que ses principaux modules : php5-mysql, php5-gd... * Installer Apache2 et et ses principaux modules et surtout activer le mode rewrite et le https en * utilisant une clé auto-générée (pour le moment) Installer et configurer PhpMyAdmin * Installer le firewall Shorewall et fermer tous les ports à l'exception des ports, 80, 443 et le port de * l'OpenSSH server Installer le package SSMTP pour pouvoir envoyer des mails depuis des commandes Shell à l'extérieur * Réaliser des petits scripts Shell faisant une sauvegarde compressée journalière de la base données * MySQL et une autre hebdomadaire des codes sources des sites. Ces points de sauvegarde sont envoyés après à un compte GMAIL créé spécialement pour cette tâche de sauvegarde. 35&lt;br /&gt;36. Slide 36: Partie développement 36&lt;br /&gt;37. Slide 37: www.iavcha.ac.ma 37&lt;br /&gt;38. Slide 38: www.iavcha.ac.ma Partie développement : * Le cas PHP/Smarty: * www.iavcha.ac.ma 38&lt;br /&gt;39. Slide 39: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Moteur de recherche * interne 39&lt;br /&gt;40. Slide 40: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Compte sécurisé pour * chaque membre du personnel: Les variables échangées sont protégées contre les attaques du type Injection SQL et les attaques XSS (Cross- site scripting) 40&lt;br /&gt;41. Slide 41: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Modification * dynamique et instantanée des profils par les membres concernés 41&lt;br /&gt;42. Slide 42: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Module de publication * de CV Online 42&lt;br /&gt;43. Slide 43: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Exemple de formulaire * d'ajout/modificationd'un e section de CV 43&lt;br /&gt;44. Slide 44: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Résultat obtenu d'une * page personnelle d'un membre 44&lt;br /&gt;45. Slide 45: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Partie administration: * Gestion des * utilisateurs 45&lt;br /&gt;46. Slide 46: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Partie administration: * Gestion du contenu * 46&lt;br /&gt;47. Slide 47: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Partie administration: * Gestion des galeries * de la média-thèque 47&lt;br /&gt;48. Slide 48: www.iavcha.ac.ma Principales fonctions du cas PHP/Smarty: www.iavcha.ac.ma * Exemple du résultat * d'une galerie Ajax 48&lt;br /&gt;49. Slide 49: Gestion du Stock 49&lt;br /&gt;50. Slide 50: Gestion du Stock Exemple 2 : Le cas PHP/ExtJs via une application de gestion de stock * 50&lt;br /&gt;51. Slide 51: Gestion du Stock Cette application est * installée dans un serveur sécurisé (https) pour assurer une confidentialité extrême des données échangées contre les logiciels espions de capture des paquets 51&lt;br /&gt;52. Slide 52: Gestion du Stock Exemples de composants * utilisés dans cette application: ModalBox * TreeView * personnalisable Layout dimensionable * DatePicker * ComboBox avec auto * suggestion Data Grid (Triable, * dimensionable, colonnes cachées, pagination...) .... * 52&lt;br /&gt;53. Slide 53: Gestion du Stock Exemple de * personnalisation du rendu des composants: coloration des cellules d'une DataGrid selon une règle spécifique de gestion 53&lt;br /&gt;54. Slide 54: Gestion du Stock Génération de rapport PDF avec la librairie FPDF * 54&lt;br /&gt;55. Slide 55: Gestion du Stock Exemple de graphe synthétique de type « Ligne » créé avec la librairie PlotKit * 55&lt;br /&gt;56. Slide 56: Gestion du Stock Un autre exemple de graphe camembert en utilisant la même librairie PlotKit * 56&lt;br /&gt;57. Slide 57: Conclusion 57&lt;br /&gt;58. Slide 58: Conclusion Ces exemples d'applications Web permettent entre autres de: * Centraliser les applications dans des serveurs et donc éviter toute installation ou mise à jour * dans les postes clients Faciliter la maintenance et la sauvegarde des données * Pratique pour les personnes mobiles qui peuvent consulter, opérer et générer des rapports * depuis n'importe quel ordinateur connecté à internet Renaître des vieux ordinateurs clients vu que la majorités des traitements se font du coté * serveur Annuler le coût software en utilisant des librairies gratuites * Minimiser le coût hardware en optant pour Debian/Apache/PHP/MySQL aptes à assurer une * performance extrême même dans des serveurs plutôt modestes Dans le coté fonctionnel; offrir des solution informatiques limitant les erreurs et augmentant * l'efficacité dans le travaille quotidien tout en donnant des outils fiables d'aides à la décision aux responsables ... * 58&lt;br /&gt;59. Slide 59: Exemples d'applications en cours de réalisation Application de gestion de budgets * Application de gestion d'ordre de missions * Site Web référentielle de la collection du jardin botanique du Complexe Horticole d'Agadir * Application de gestion des notes * Application de gestion de bibliothèque avec interface Web pour consultation en ligne depuis * internet ... * 59&lt;br /&gt;60. Slide 60: Merci pour votre attention 60&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-4045553288834177131?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/4045553288834177131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/iav-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4045553288834177131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4045553288834177131'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/iav-part-2.html' title='IAV Part 2'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-5269527581804475547</id><published>1980-01-06T17:26:00.000Z</published><updated>2009-08-13T15:22:28.767+01:00</updated><title type='text'>eQ Services</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" flashvars="host=picasaweb.google.com&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Ffaycal.tirich%2Falbumid%2F5269563221363324561%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer" height="267" width="400"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Le rapport complet peut être téléchargé via ce &lt;a href="http://docs.google.com/fileview?id=F.956876cf-9dda-47e4-9648-811fc1f87144&amp;amp;hl=fr" target="_blank"&gt;lien&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;object style="margin: 0px;" height="680" width="720"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayerd.swf?doc=eq-services-rapport-1232041034849463-2&amp;amp;rel=0&amp;amp;stripped_title=eq-services-pfe-presentation"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayerd.swf?doc=eq-services-rapport-1232041034849463-2&amp;amp;rel=0&amp;amp;stripped_title=eq-services-pfe-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="680" width="720"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-5269527581804475547?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/5269527581804475547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/eq-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5269527581804475547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5269527581804475547'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/eq-services.html' title='eQ Services'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-5874944249368668792</id><published>1980-01-05T17:00:00.000Z</published><updated>2009-08-13T15:22:42.055+01:00</updated><title type='text'>BiblioWatcher</title><content type='html'>&lt;span style="font-size:180%;"&gt;Problématique&lt;/span&gt;&lt;br /&gt;Faire communiquer deux programmes ecrits en 2 langages differents et hebergés sur differentes machines.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Cas d'application&lt;/span&gt;&lt;br /&gt;Elaboration d'une solution de &lt;strong style="font-weight: normal;"&gt;consultation en ligne&lt;/strong&gt; de l'etat de la bibliothèque de L'ENSA via n'importe quel PC connecté.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Difficulté&lt;/span&gt;&lt;br /&gt;Faire &lt;strong style="font-weight: normal;"&gt;communiquer&lt;/strong&gt; des pages &lt;strong style="font-weight: normal;"&gt;PHP&lt;/strong&gt; sous &lt;strong style="font-weight: normal;"&gt;linux&lt;/strong&gt; avec un produit Microsoft &lt;strong style="font-weight: normal;"&gt;ACCESS&lt;/strong&gt; installé sur un &lt;strong style="font-weight: normal;"&gt;Windows&lt;/strong&gt; XP tout en garantissant une sécurité totale des données.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;La Solution: Les services web via XML-RPC et SOAP &lt;/span&gt;&lt;br /&gt;&lt;strong&gt;XML-RPC ?!? Kesako ?&lt;/strong&gt;&lt;br /&gt;Réponse: "C'est une spécification et un jeu d'implémentations qui permet l'exécution de programmes sur un ensemble de systèmes d'exploitation hétérogènes, et qui s'exécute dans des environnement différents permettant de d'effectuer des appels de procédure au travers de l'Internet. C'est de l'appel de procédure distant (RPC alias Remote Procedure Call ) utilisant HTTP comme couche de transport et XML pour l'encodage. Il est conçu pour être aussi simple que possible, tout en permettant la transmission, le traitement et le renvoi de structures de données complexes."&lt;br /&gt;&lt;strong&gt;Et SOAP ? &lt;/strong&gt;&lt;br /&gt;SOAP est un protocole homologué par le W3C. Il est hautement plus développé que XML-RPC. Il est extensible et génère des requêtes plus complètes et plus précises que XML-RPC mais également plus complexes.&lt;br /&gt;&lt;br /&gt;Nos services web de la bibliothèque seront implémentés suivant XML-RPC, quand a SOAP, il sera utilisé dans le partie cliente de Amazon Web Services alias AWS. En fait, amazon.com qu'est le plus grande site de commerce électronique offre via son web service la possibilité d'avoir beaucoup d'informations sur n'importe quel produit(images, critiques...).&lt;br /&gt;&lt;br /&gt;&lt;span class="Style1"&gt;&lt;span style="font-size:180%;"&gt;Pourquoi pas SOAP à la place du XML-RPC ?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;SOAP ne peut pas être concurrent de XML-RPC et réciproquement.&lt;br /&gt;    Certes,   SOAP est complet, normalisé, puissant, extensible mais dans notre cas, &lt;strong&gt;XML-RPC&lt;/strong&gt; s'avere plus &lt;strong&gt;léger&lt;/strong&gt;,plus &lt;strong&gt;rapide&lt;/strong&gt; et couvre la plupart des problèmes du type webservice.&lt;br /&gt;En plus, le fait que SOAP est très récent par rapport a XML-RPC, on trouve des vieux langages comme     REBOL qui ne peuvent pas supporter SOAP et donc &lt;strong&gt;XML-RPC&lt;/strong&gt; se confirme comme étant le &lt;strong&gt;plus standard&lt;/strong&gt; et le &lt;strong&gt;plus portable&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Schéma de la solution&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/1_biblio.gif" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;La coté serveur&lt;/span&gt;&lt;br /&gt;J'ai d'abord commencer à élaborer les services web du coté serveur en ASP. C'est une seule page qui offre les fonctions nécessaires à la consultation de la base ACCESS&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;La partie serveur hébergé dans le PC 81.192.181.46 &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/2_sever1.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;La partie cliente&lt;/span&gt;&lt;br /&gt;Pour tester mes services web, j'ai programmé deux exemples de client en ASP et en PHP.&lt;br /&gt;La partie Cliente consomme et les web services de la base ACCESS via XML-RPC et les web services de AMAZON via SOAP&lt;br /&gt;Exemple du client en ASP&lt;br /&gt;Dans le client, pour travailler avec les méthodes de la partie serveur comme s'elles étaient locales, il suffit d'indiquer l'URL du web service&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Spécification de l'URL du serveur XML-RPC&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/3_client1.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Appel de la méthode ListerFamille() &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/4_client2.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Appel de la méthode ListerLivreParFamille(id_famille)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/5_client3.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Si le livre existe&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/6_client4.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Si le livre n'est pas disponible, les info sur l'adhérent concerné&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/7_client5.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Consommation de service web d'AMAZON pour avoir plus d'informations sur un livre donné&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/8_client6.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Exemple de client en PHP&lt;/span&gt;&lt;br /&gt;C'est pratiquement la même chose en ASP mais codée en PHP avec en plus de la consommation des services web d'amazon, la consultation de la base de Google via son API offerte aussi en SOAP.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Appel en PHP de la methode distante LivreParFamille(id_famille) codée en ASP &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/9_clientphp1.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Consultation de la base de Google au sein de la même page &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/10_clientphp2.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Et de même, plus d'informations via Amazon... &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/bibliowatcher/11_clientphp3.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-5874944249368668792?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/5874944249368668792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/bibliowatcher.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5874944249368668792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5874944249368668792'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/bibliowatcher.html' title='BiblioWatcher'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-4775047133809700346</id><published>1980-01-04T12:56:00.000Z</published><updated>2009-08-13T15:22:54.752+01:00</updated><title type='text'>NetFolder</title><content type='html'>NetFolder est une application web de monitoring d'un parc informatique. Pour l'installation, vous devez avoir un serveur web muni du PHP5. Le protocole SNMP (via la package NET-SNMP) doit être installé dans les equipements ciblés. Quant à l'utilisation, un navigateur vous suffit pour acceder au paneau d'administration web via n'importe quelle pc connecté.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: normal;"&gt;NetFolder accueil &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/1_acceuil.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Juste en option, vous pouvez commencer par scanner le reseau avec NMAP&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Spécification du réseau a scanner &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/2_nmap_consult.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;L'echange de données entre NMAP et mon application se fait via XML. un fichier xml est généré apres l'execution de nmap avec un certain nombre de paramètres, ce fichier est présenté par NetFolder avec un fichier XSL&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Résultat du scan&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/3_nmap_result.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Aperçu du fichier XSL pour la présentation du résultat du scan&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/4_xsl.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Pour garder trace des equipements favoris, vous pouvez les ajouter à la base de l'application&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Paneau d'ajout&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/5_ajouter.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Pour plus de fiabilité et de rapidité, l'application ne dispose pas de serveur de base de données. les informations sont stockées seulement dans un fichier XML validé par un fichier schéma XSD&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Aperçu de la base XML&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/6_fichier_xml.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Aperçu du schéma de validation &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/7_schema.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Pour pouvoir travailer sur le fichier xml comme si on travaille avec une base de données ordinaire, j'ai developpé des classes qui offrent des methodes alternatives à celles de MYSQL ou ORACLE par exemple.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;BaseXml est une classe générale qui fournie des methodes à d'autres classes filles&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/8_basexml.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;La classe Machine hérite de BaseXml mais elle est adaptée à notre cas. Elle s'occupe de toutes les opérations sur la gestion des machine&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/9_machinexml.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Les équipements ajoutés au fichier XML sont disponibles en consultation comme en modification&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Paneau de consulation/modification des équipements&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/10_consulter.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;J'ai developpé d'autres classes pour la consulation SNMP en prenant en compte la prise en charge de toutes les versions existantes de SNMP&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Prise en charge de toutes les versions de SNMP&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/11_consultation_snmp.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Une consulataion rapide de la MIB ( Management Information Base) du host cible nous donne par exemple&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Aperçu de la consultation de la MIB d'un host &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/12_consultation_snmp_resultat.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;On peut consulter chaque objet à part pour en connaitre plus d'informations&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Récupération des information sur les objets de la MIB &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/13_consultation_objet.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Les objets qu'ont un accés en écriture peuvent être modifiés directement depuis l'application&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Exemple de la modification à distance d'un objet de la MIB &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/14_snmpset.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Les objets intéressants pour les administrateurs réseau peuvent être mis en surveillance avec une fréquence selon le choix en fonction de la nature de l'objet&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Exemple de la surveillance des paquets entrants sur la 1ere interface du host avec une fréquence de 5 s &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/15_surveillance.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;La surveillance est couronnée en fin par un graphe facilitant l'analyse et la prise de décision&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Le graphe résultant de la surveillance&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/16_surveillance_resultat.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;NetFolder est développé et fonctionne grâceà: APACHE, PHP5, Libxslt, NMAP, Trustudion (IDE Eclipse adapté à PHP)&lt;br /&gt;Tous ses outils sont gratuits et existent aussi bien sous Linux que sur Windows.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/netfolder/17_about.png" /&gt;&lt;br /&gt;&lt;br /&gt;:)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-4775047133809700346?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/4775047133809700346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/netfolder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4775047133809700346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4775047133809700346'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/netfolder.html' title='NetFolder'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-3287150076457685933</id><published>1980-01-03T14:58:00.000Z</published><updated>2009-08-13T15:23:23.446+01:00</updated><title type='text'>LPEE</title><content type='html'>Il s'agit de la modélisation et la conception d'un logiciel de gestion pour le Laboratoire Public d'Essais et d'Etudes&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image014.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Le cas de la LPEE est un cas complexe qu'a nécessité une base de 80 tables et de 35 vues.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Aperçu sur le modèle physique &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/base.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;La solution est fondée sur une politique de répartition de la charge entre l'application VB.NET et le noyau de la base ORACLE. J'ai ainsi procédé à l'élaboration de plusieurs triggers et procédures stockées coté base de données afin de minimiser les données échangées et donc d'optimiser la connexion et la performance total du logiciel.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Exemple d'un trigger stocké dans ORACLE qui vérifie la validité d'un avancement &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image004.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Coté .NET, l'accès a la base de données se fait via une classe Persistance conçue et adaptée spécialement pour ORACLE en se basant sur les objets du ADO.NET et ceux du fournisseur de données ‘.NET Framework pour Oracle Web Release'.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Aperçu sur la classe Persistance &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image006.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Pour bien tirer profit des outils de ORACLE, l'accès à l'application se fait via les utilisateurs déjà créés et gérés (rôles, privilèges…) par ORACLE SECURITY MANAGER.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Connexion &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image008.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Vu l'importance des informations gérées, j'ai réalisé un mécanisme de ‘Points de Sauvegarde/Restauration' de la base. On peut alors effectuer des points de sauvegarde chaque fin de journée et les stocker dans un disque amovible ou un CD ROM par exemple. Ces points représentent l'états de la base (structure et données) à une date donnée et chaque point est englobé dans un seul fichier.&lt;br /&gt;&lt;br /&gt;En cas de problème (crache du disque dur ou tout simplement suppression des données accidentellement), on peut alors restaurer la base de données via le point de sauvegarde le plus récent…&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Création de fichiers de sauvegarde &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image010.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Restauration de la base (avec les données) à partir des fichiers déjà créés &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image012.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Aperçu sur quelques interfaces &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Gestion du personnel &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image014.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Gestion des contrats et des affectations &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image016.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Gestion des avancements &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image018.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Gestion des commandes &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image020.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Gestion des paiements &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image022.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Exemple d'état d'impression &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image024.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image026.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Vu quand peut pas faire des ‘Copier-Coller' à partir de ces états, et dans les cas où l'utilisateur a besoin de rapporter les données de l'application vers un tableur Excel ou un document Word, j'ai développé une méthode permettant d'exporter n'importe quelle grille de données (avec ou sans filtrage) en un fichier XML re-stylisé avec un fichier XSL en un autre HTML se lançant automatiquement après l'appelle de la fonction.&lt;br /&gt;&lt;br /&gt;Exemple:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;La grille initiale &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image028.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;L'export en fichier XML puis HTML&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image030.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Enfin la possibilité de ‘copier-coller' dans un document Word par exemple&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/lpee/index_clip_image032.jpg" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-3287150076457685933?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/3287150076457685933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/lpee.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/3287150076457685933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/3287150076457685933'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/lpee.html' title='LPEE'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-558602879404289168</id><published>1980-01-02T18:37:00.000Z</published><updated>2009-08-13T15:23:36.550+01:00</updated><title type='text'>ZhorBlog</title><content type='html'>Un Web Blog ... c'est une nouvelle génération de sites internet interactifs et vivants : un véritable phénomène de société.&lt;br /&gt;C'est un espace de libre expression qui vous permet, sans aucune connaissance technique de publier vos idées, votre actualité, sur internet et de recevoir presque instantanément l'avis de vos lecteurs.&lt;br /&gt;&lt;br /&gt;Mon rôle était donc d'offrir un site semblable aux autres sites commerciaux, mais adapté et personnalisé à un particulier. Ce dernier n'ayant pas de connaissances sur le développement Web (conception, programmation, hébergement..), je devais donc réaliser une interface simplifié lui permettant d'avoir le contrôle total sur son espace sur internet .&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;La page d' accueil&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/zhorblog/image1.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;La consultations des articles pour le public&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/zhorblog/image2.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;La possibilité interactivité des visiteurs via le post des commentaires&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/zhorblog/image3.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Partie administration &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/zhorblog/image4.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Le formulaire d'ajout de nouveaux article avec un éditeur WYSIWYG&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/zhorblog/image5.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Upload des images pour alimenter les articles&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/zhorblog/image6.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Consultation et modification de l'archive des articles&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/zhorblog/image7.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;Exemple d'édition des commentaires des visiteurs &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/zhorblog/image8.png" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-558602879404289168?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/558602879404289168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/zhorblog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/558602879404289168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/558602879404289168'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/zhorblog.html' title='ZhorBlog'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-6249988154442608120</id><published>1980-01-02T11:11:00.000Z</published><updated>2009-08-13T15:23:49.648+01:00</updated><title type='text'>Elvator Simulation</title><content type='html'>Mon premier contact avec JAVA était cette petite petite application "Temps Réel" via la quelle j'ai aussi découvert la gestion du multithreading...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EPYbEHLwcuM/ScoFNZ3drfI/AAAAAAAADJw/yemZp13looo/s1600-h/ascenseur_simulation1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 291px; height: 400px;" src="http://3.bp.blogspot.com/_EPYbEHLwcuM/ScoFNZ3drfI/AAAAAAAADJw/yemZp13looo/s400/ascenseur_simulation1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5317068037904248306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EPYbEHLwcuM/ScoFXAzsRwI/AAAAAAAADJ4/ZA-Y9_Vey6A/s1600-h/ascenseur_simulation2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 291px; height: 400px;" src="http://1.bp.blogspot.com/_EPYbEHLwcuM/ScoFXAzsRwI/AAAAAAAADJ4/ZA-Y9_Vey6A/s400/ascenseur_simulation2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5317068202976233218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;L'exécutable (ou le jar-able :) est téléchargeable via ce &lt;a target="_blank" href="http://agafix.org/?dl_id=5"&gt;lien&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-6249988154442608120?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/6249988154442608120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/03/elvator-simulation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/6249988154442608120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/6249988154442608120'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/03/elvator-simulation.html' title='Elvator Simulation'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EPYbEHLwcuM/ScoFNZ3drfI/AAAAAAAADJw/yemZp13looo/s72-c/ascenseur_simulation1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-4971532210968071743</id><published>1980-01-01T18:10:00.000Z</published><updated>2009-08-13T15:24:01.432+01:00</updated><title type='text'>DesignPortfolio</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="800" height="533" flashvars="host=picasaweb.google.com&amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fthefaycal%2Falbumid%2F4968449189551144977%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-4971532210968071743?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/4971532210968071743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/designportfolio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4971532210968071743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4971532210968071743'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/2009/01/designportfolio.html' title='DesignPortfolio'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-5854603623783889267</id><published>1979-01-02T18:16:00.000Z</published><updated>2011-09-12T11:36:18.248Z</updated><title type='text'>WP Sliding Login/Dashboard Panel</title><content type='html'>Add a sliding login/dashboard panel to Wordpress Theme. This awesome panel is based on http://web-kreation.com/index.php/tutorials/nice-clean-sliding-login-panel-built-with-jquery/&lt;br /&gt;&lt;br /&gt;Instead of modifying directly theme files, just install this plugin so you can preserve you panel when switching between themes and during themes updates.&lt;br /&gt;&lt;br /&gt;Version: 1.0&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wordpress.org/extend/plugins/wp-sliding-logindashboard-panel/" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #e0effd; margin: 0 auto; padding: 5px; width: 50%;"&gt;&lt;br /&gt;&lt;h4&gt;The developer of this plugin asks that you help support its continued development by making a small contribution.&lt;/h4&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank"&gt;&lt;input name="cmd" type="hidden" value="_s-xclick" /&gt;&lt;input name="encrypted" type="hidden" value="-----BEGIN PKCS7-----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-----END PKCS7-----" /&gt;&lt;input alt="PayPal - The safer, easier way to pay online!" border="0" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" type="image" /&gt;&lt;img alt="" border="0" height="1" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sliding Panel&lt;/b&gt;&lt;br /&gt;&lt;img alt="fay-comments-moderators" border="0" src="http://agafix.org/wp-content/uploads/fay/wordpress/wp-sliding-panel/sliding-logindashboard-1.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Login Panel&lt;/b&gt;&lt;br /&gt;&lt;img alt="fay-comments-moderators" border="0" src="http://agafix.org/wp-content/uploads/fay/wordpress/wp-sliding-panel/sliding-logindashboard-2.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dashboard Panel&lt;/b&gt;&lt;br /&gt;&lt;img alt="fay-comments-moderators" border="0" src="http://agafix.org/wp-content/uploads/fay/wordpress/wp-sliding-panel/sliding-logindashboard-3.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-5854603623783889267?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/5854603623783889267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/wp-sliding-logindashboard-panel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5854603623783889267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5854603623783889267'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/wp-sliding-logindashboard-panel.html' title='WP Sliding Login/Dashboard Panel'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-7280103896612987248</id><published>1979-01-01T21:04:00.000Z</published><updated>2011-10-13T20:15:43.075Z</updated><title type='text'>WP Post Notifier For All</title><content type='html'>Description : Notify all WordPress users (and not only the admin) on post publishing. The notification is sent only one time after the first post publishing(not on every update).&lt;br /&gt;&lt;br /&gt;Version: 2.2&lt;br /&gt;&lt;a href="http://wordpress.org/extend/plugins/wp-post-notifier-for-all/" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #e0effd; margin: 0 auto; padding: 5px; width: 50%;"&gt;&lt;br /&gt;&lt;h4&gt;The developer of this plugin asks that you help support its continued development by making a small contribution.&lt;/h4&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank"&gt;&lt;input name="cmd" type="hidden" value="_s-xclick" /&gt;&lt;input name="encrypted" type="hidden" value="-----BEGIN PKCS7-----MIIHLwYJKoZIhvcNAQcEoIIHIDCCBxwCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYAowiaNFGsU6ERy5qLdqY6rc5C4fZqAb8r1+14+HsoBxWH2W2VfZcNZa3PrbsyeWPrLejZ7UCVn6eYC9vcbjLEw+vA7ascMBugbgKSspUniyuuIcGc+lekjCE9g4heQf6wXt9JwuhpBv4g8LhSNbv88qakoIDMUclg1byvI9KeU4DELMAkGBSsOAwIaBQAwgawGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIIF5ijTDz6WmAgYj3oZf8SBofDibw39Ne0T01CoXozer7kMc/YVsXdCqTCl591yNKnuuQ7j/QjAlY8SOXAQKResDWJ3EtvSGozRwdNISbYndF0haIkjuskxo+9W++b7XI3JkfBekrHhgIlVQ0duSi1nXlezy/x0pisPNREggChsE/aRoM8Y31Y1gUSqaEm+SLHGPNoIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTEwNzI2MTA1MTM4WjAjBgkqhkiG9w0BCQQxFgQUXOuQTtbtH6G+sQ/HMWnX5sXQ9D8wDQYJKoZIhvcNAQEBBQAEgYB6NOX3qPhitY1ehKJZJTt6sOnoP/n6AqgbUzST4R4LxoJqywydEGNLbMfYQlKTlhuXFvgOeDPpkwRzbyAjBfk0E56xoB1PjIZ8XF/zZAmKTJiiAx7rJ+PtAR5+OQsubDxLD2d7+GsphzyJVRJUvRiovBemBH8DRSywH0fcenhmsA==-----END PKCS7-----" /&gt;&lt;input alt="PayPal - The safer, easier way to pay online!" border="0" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" type="image" /&gt;&lt;img alt="" border="0" height="1" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Admin settings&lt;/span&gt;&lt;br /&gt;&lt;img alt="" src="http://agafix.org/wp-content/uploads/fay/wordpress/wp-post-notifier-for-all/screenshot-1.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Enable/Disable for users&lt;/span&gt;&lt;br /&gt;&lt;img alt="" src="http://agafix.org/wp-content/uploads/fay/wordpress/wp-post-notifier-for-all/screenshot-2.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-7280103896612987248?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/7280103896612987248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/wp-post-notifier-for-all.html#comment-form' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/7280103896612987248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/7280103896612987248'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/wp-post-notifier-for-all.html' title='WP Post Notifier For All'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-2641196603623553073</id><published>1979-01-01T19:38:00.000Z</published><updated>2011-08-23T09:49:32.777Z</updated><title type='text'>WP Comment Notifier For All</title><content type='html'>Description : Notify all Wordpress users (and not only the admin) on comment approval. The notification is sent only one time after the comment post approval(not on status update).&lt;br /&gt;&lt;br /&gt;Version: 2.2 beta&lt;br /&gt;&lt;a href="http://wordpress.org/extend/plugins/wp-comment-notifier-for-all/" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width:50%; background-color: #E0EFFD; padding: 5px; margin: 0 auto"&gt;&lt;br /&gt;&lt;h4&gt;The developer of this plugin asks that you help support its continued development by making a small contribution.&lt;/h4&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank"&gt;&lt;input type="hidden" name="cmd" value="_s-xclick"&gt;&lt;input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----"&gt;&lt;input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"&gt;&lt;img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"&gt;&lt;/form&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Admin settings&lt;/span&gt;&lt;br /&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/wordpress/wp-comment-notifier-for-all/screenshot-1.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Enable/Disable for users&lt;/span&gt;&lt;br /&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/wordpress/wp-comment-notifier-for-all/screenshot-2.png" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-2641196603623553073?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/2641196603623553073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/wp-comment-notifier-for-all.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/2641196603623553073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/2641196603623553073'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/wp-comment-notifier-for-all.html' title='WP Comment Notifier For All'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-5473096664101322660</id><published>1979-01-01T19:28:00.000Z</published><updated>2011-08-01T17:05:25.728Z</updated><title type='text'>WP jqtransform archive</title><content type='html'>Description: Replace the basic Wordpress select archive with the jQuery/jqtransform plugin select.&lt;br /&gt;&lt;br /&gt;Version: 1.0 beta&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wordpress.org/extend/plugins/wp-archive-jqmenu/" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/wordpress/wp-archive-jqmenu/screenshot-1.png" border="0" alt="wp-archive-jqmenu" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-5473096664101322660?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/5473096664101322660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/wp-jqtransform-archive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5473096664101322660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/5473096664101322660'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/wp-jqtransform-archive.html' title='WP jqtransform archive'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-2269226677890801312</id><published>1979-01-01T18:34:00.000Z</published><updated>2011-08-23T09:49:45.106Z</updated><title type='text'>WP Emails Encoder</title><content type='html'>Description: Linkinize (make clickable) &amp; Encode emails to avoid spams.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wordpress.org/extend/plugins/fay-emails-encoder/" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width:50%; background-color: #E0EFFD; padding: 5px; margin: 0 auto"&gt;&lt;br /&gt;&lt;h4&gt;The developer of this plugin asks that you help support its continued development by making a small contribution.&lt;/h4&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank"&gt;&lt;input type="hidden" name="cmd" value="_s-xclick"&gt;&lt;input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----"&gt;&lt;input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"&gt;&lt;img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"&gt;&lt;/form&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Using the helper form the editor&lt;/h3&gt;&lt;br /&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/wordpress/emails-encoder/screenshot-1.png" border="0" alt="fay-emails-encoder" /&gt;&lt;br /&gt;&lt;h3&gt;Test case&lt;/h3&gt;&lt;br /&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/wordpress/emails-encoder/screenshot-2.png" border="0" alt="fay-emails-encoder" /&gt;&lt;br /&gt;&lt;h3&gt;Result&lt;/h3&gt;&lt;br /&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/wordpress/emails-encoder/screenshot-3.png" border="0" alt="fay-emails-encoder" /&gt;&lt;br /&gt;&lt;h3&gt;HTML source code&lt;/h3&gt;&lt;br /&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/wordpress/emails-encoder/screenshot-4.png" border="0" alt="fay-emails-encoder" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-2269226677890801312?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/2269226677890801312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/fay-emails-encoder-plugin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/2269226677890801312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/2269226677890801312'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/fay-emails-encoder-plugin.html' title='WP Emails Encoder'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-7955000711167429256</id><published>1979-01-01T18:33:00.000Z</published><updated>2011-08-23T09:50:00.021Z</updated><title type='text'>WP Comments Moderators</title><content type='html'>Description: WP Comments Moderators plugin allows any user (whatever their Role) to moderate any blog comment.&lt;br /&gt;&lt;br /&gt;Version: 4.0.1&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wordpress.org/extend/plugins/fay-comments-moderators/" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width:50%; background-color: #E0EFFD; padding: 5px; margin: 0 auto"&gt;&lt;br /&gt;&lt;h4&gt;The developer of this plugin asks that you help support its continued development by making a small contribution.&lt;/h4&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank"&gt;&lt;input type="hidden" name="cmd" value="_s-xclick"&gt;&lt;input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHLwYJKoZIhvcNAQcEoIIHIDCCBxwCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYAowiaNFGsU6ERy5qLdqY6rc5C4fZqAb8r1+14+HsoBxWH2W2VfZcNZa3PrbsyeWPrLejZ7UCVn6eYC9vcbjLEw+vA7ascMBugbgKSspUniyuuIcGc+lekjCE9g4heQf6wXt9JwuhpBv4g8LhSNbv88qakoIDMUclg1byvI9KeU4DELMAkGBSsOAwIaBQAwgawGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIIF5ijTDz6WmAgYj3oZf8SBofDibw39Ne0T01CoXozer7kMc/YVsXdCqTCl591yNKnuuQ7j/QjAlY8SOXAQKResDWJ3EtvSGozRwdNISbYndF0haIkjuskxo+9W++b7XI3JkfBekrHhgIlVQ0duSi1nXlezy/x0pisPNREggChsE/aRoM8Y31Y1gUSqaEm+SLHGPNoIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTEwNzI2MTA1MTM4WjAjBgkqhkiG9w0BCQQxFgQUXOuQTtbtH6G+sQ/HMWnX5sXQ9D8wDQYJKoZIhvcNAQEBBQAEgYB6NOX3qPhitY1ehKJZJTt6sOnoP/n6AqgbUzST4R4LxoJqywydEGNLbMfYQlKTlhuXFvgOeDPpkwRzbyAjBfk0E56xoB1PjIZ8XF/zZAmKTJiiAx7rJ+PtAR5+OQsubDxLD2d7+GsphzyJVRJUvRiovBemBH8DRSywH0fcenhmsA==-----END PKCS7-----"&gt;&lt;input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"&gt;&lt;img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"&gt;&lt;/form&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/wordpress/fay-comments-moderators/screenshot-1.png" alt="fay-comments-moderators" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-7955000711167429256?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/7955000711167429256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/fay-comments-moderators-plugin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/7955000711167429256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/7955000711167429256'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/fay-comments-moderators-plugin.html' title='WP Comments Moderators'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-4375812433607190407</id><published>1979-01-01T15:53:00.000Z</published><updated>2011-02-09T11:16:56.813Z</updated><title type='text'>Scrum Meeting Reply</title><content type='html'>Tao's :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EPYbEHLwcuM/TVFsydZAI0I/AAAAAAAAECE/ssUBaCGB7dQ/s1600/Scrum%2BMeeting.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 382px; height: 400px;" src="http://1.bp.blogspot.com/_EPYbEHLwcuM/TVFsydZAI0I/AAAAAAAAECE/ssUBaCGB7dQ/s400/Scrum%2BMeeting.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5571353828172768066" /&gt;&lt;/a&gt;&lt;br /&gt;Original post: &lt;a target="_blank" href="http://meetingdrawings.blogspot.com/2011/02/scrum-meeting.html"&gt;Scrum Meeting&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Reply :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EPYbEHLwcuM/TVFtFoEbP3I/AAAAAAAAECM/tO8woO2Iu_E/s1600/Scrum-Meeting-Reply.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 382px; height: 400px;" src="http://1.bp.blogspot.com/_EPYbEHLwcuM/TVFtFoEbP3I/AAAAAAAAECM/tO8woO2Iu_E/s400/Scrum-Meeting-Reply.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5571354157456768882" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-4375812433607190407?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/4375812433607190407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/scrum-meeting-reply.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4375812433607190407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/4375812433607190407'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/scrum-meeting-reply.html' title='Scrum Meeting Reply'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EPYbEHLwcuM/TVFsydZAI0I/AAAAAAAAECE/ssUBaCGB7dQ/s72-c/Scrum%2BMeeting.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-3517377552799382554</id><published>1979-01-01T11:17:00.000Z</published><updated>2011-02-09T11:57:46.272Z</updated><title type='text'>Treadmill Reply</title><content type='html'>Tao's :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EPYbEHLwcuM/TVJ4IpE7fNI/AAAAAAAAECY/Y3m_c75_KIY/s1600/Treadmill.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 352px; height: 400px;" src="http://2.bp.blogspot.com/_EPYbEHLwcuM/TVJ4IpE7fNI/AAAAAAAAECY/Y3m_c75_KIY/s400/Treadmill.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5571647778871540946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Original post: &lt;a target="_blank" href="http://meetingdrawings.blogspot.com/2011/02/treadmill.html"&gt;Treadmill&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Reply :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EPYbEHLwcuM/TVKA8WGrzGI/AAAAAAAAECg/rYO6PRtWA74/s1600/Treadmill-Reply.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 352px; height: 400px;" src="http://1.bp.blogspot.com/_EPYbEHLwcuM/TVKA8WGrzGI/AAAAAAAAECg/rYO6PRtWA74/s400/Treadmill-Reply.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5571657463224847458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EPYbEHLwcuM/TVKBEsGHSYI/AAAAAAAAECo/jMVIwHmcrrk/s1600/Treadmill-Reply-2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 352px; height: 400px;" src="http://2.bp.blogspot.com/_EPYbEHLwcuM/TVKBEsGHSYI/AAAAAAAAECo/jMVIwHmcrrk/s400/Treadmill-Reply-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5571657606566988162" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-3517377552799382554?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/3517377552799382554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/treadmill-reply.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/3517377552799382554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/3517377552799382554'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/treadmill-reply.html' title='Treadmill Reply'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EPYbEHLwcuM/TVJ4IpE7fNI/AAAAAAAAECY/Y3m_c75_KIY/s72-c/Treadmill.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1786865013882160699.post-7856560136071113844</id><published>1979-01-01T09:31:00.000Z</published><updated>2010-01-09T20:39:34.265Z</updated><title type='text'>WP Direction Detector</title><content type='html'>Description: This plugin auto dectects and apply the right direction (RTL or LTR) on post's titles, bodies and comments.&lt;br /&gt;&lt;br /&gt;According to WordPress, adding support for language written in a Right To Left (RTL) direction is just a matter of overwriting all the horizontal positioning attributes of your CSS stylesheet in a separate stylesheet file named rtl.css. But this solution is working only when you have just an RTL blog (or just an LTR blog using the classical style.css). One of solutions: We will let WordPress applying the same style.css to both of RTL/LTR posts and this plugin will automatically detect the post language to correct its direction.&lt;br /&gt;&lt;br /&gt;It's just a beta version that I tested with the WordPress default theme, please let me know your feedback with your own complexed css.&lt;br /&gt;&lt;br /&gt;Version: 1.0 beta&lt;br /&gt;&lt;a href="http://wordpress.org/extend/plugins/wp-direction-detector/" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post"&gt;&lt;br /&gt;&lt;input type="hidden" name="cmd" value="_s-xclick"&gt;&lt;br /&gt;&lt;input type="hidden" name="hosted_button_id" value="7466978"&gt;&lt;br /&gt;&lt;input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"&gt;&lt;br /&gt;(&lt;strong&gt;All donations are earmarked for charities.&lt;/strong&gt;)&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;--&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://agafix.org/wp-content/uploads/fay/wordpress/wp-direction-detector/wp-direction-detector.png" border="0" alt="wp-direction-detector" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1786865013882160699-7856560136071113844?l=faycaltirich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://faycaltirich.blogspot.com/feeds/7856560136071113844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/wp-direction-detector.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/7856560136071113844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1786865013882160699/posts/default/7856560136071113844'/><link rel='alternate' type='text/html' href='http://faycaltirich.blogspot.com/1979/01/wp-direction-detector.html' title='WP Direction Detector'/><author><name>.Fay</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_EPYbEHLwcuM/TSrl44cOfDI/AAAAAAAAEAQ/fLvYnGMw6YU/s1600-R/621254810259268f7a1593d596223d4c.png'/></author><thr:total>1</thr:total></entry></feed>
