<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zen-Dreams [dot] com &#187; Development</title>
	<atom:link href="http://blog.zen-dreams.com/blog-en/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zen-dreams.com/blog-en</link>
	<description>Blog&#039;s Archives</description>
	<lastBuildDate>Fri, 20 Aug 2010 07:25:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Updates, this blog is not dead (yet)</title>
		<link>http://blog.zen-dreams.com/blog-en/2010/04/29/updates-this-blog-is-not-dead-yet/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2010/04/29/updates-this-blog-is-not-dead-yet/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 18:22:21 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Me, Myself and I]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[Job]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[ZdMultilang]]></category>

		<guid isPermaLink="false">http://blog.zen-dreams.com/en/?p=627</guid>
		<description><![CDATA[Ok, I must admin it, I didn&#8217;t update my blog for the past few months (november). There are lots of reasons to that, the first one being, time is missing. I&#8217;ve been very busy with projects I built for clients around WordPress. I started working on some Android applications and I must say I love [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I must admin it, I didn&#8217;t update my blog for the past few months (november).</p>
<p>There are lots of reasons to that, the first one being, time is missing. I&#8217;ve been very busy with projects I built for clients around <strong>WordPress</strong>. I started working on some <strong>Android </strong>applications and I must say I love making those.</p>
<p>I will probably release my first app within a few weeks (well, when I find time).</p>
<p>In the meantime, I&#8217;ve been trying to work on <strong>ZdMultilang </strong>and fix all these issues you gave back to me but time is a big issue for me, wife, kids and a new job.</p>
<p>Yes, I recently got hired by one of the biggest <a href="http://www.easports.com">Video Game</a> company in the World as a Sys Engineer.</p>
<p>I&#8217;m also moving houses this month so don&#8217;t expect too much updates on the plugins.</p>
<p>By the way, if someone is willing to help on the development of ZdMultilang, you can contact me here and I will facilitate that.</p>
<p>I&#8217;m going to drop WordPress slowly as I don&#8217;t have much more time to work on that. But I will start making more apps for the Android pretty soon <img src='http://blog.zen-dreams.com/blog-en/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2010/04/29/updates-this-blog-is-not-dead-yet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrate tinyMCE into your wordpress plugins</title>
		<link>http://blog.zen-dreams.com/blog-en/2009/06/30/integrate-tinymce-into-your-wordpress-plugins/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2009/06/30/integrate-tinymce-into-your-wordpress-plugins/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 01:11:59 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.zen-dreams.com/en/?p=609</guid>
		<description><![CDATA[You might remember that I wrote a previous article about the integration of tinyMCE into your wordpress plugins for version 2.5 to 2.7.1. Following some of your requests and due to the fact that I had to look in order to make ZdMultilang work with the latest WordPress, Here is the updated article with explanation [...]]]></description>
			<content:encoded><![CDATA[<p>You might remember that I wrote a previous article about the <a href="http://blog.zen-dreams.com/en/2008/11/06/how-to-include-tinymce-in-your-wp-plugin/" target="_blank">integration of tinyMCE</a> into your <strong>wordpress plugins</strong> for version 2.5 to 2.7.1.</p>
<p>Following some of your requests and due to the fact that I had to look in order to make <a href="http://blog.zen-dreams.com/en/wordpress/zdmultilang/" target="_blank"><strong>ZdMultilang</strong></a> work with the latest <strong>WordPress</strong>, Here is the updated article with explanation of how to integrate <strong>tinyMCE into your wordpress plugins</strong>.<span id="more-609"></span></p>
<p>So here is the code you need to include.</p>
<pre>add_filter('admin_head','ShowTinyMCE');
function ShowTinyMCE() {
	// conditions here
	wp_enqueue_script( 'common' );
	wp_enqueue_script( 'jquery-color' );
	wp_print_scripts('editor');
	if (function_exists('add_thickbox')) add_thickbox();
	wp_print_scripts('media-upload');
	if (function_exists('wp_tiny_mce')) wp_tiny_mce();
	wp_admin_css();
	wp_enqueue_script('utils');
	do_action("admin_print_styles-post-php");
	do_action('admin_print_styles');
}</pre>
<p>Don&#8217;t ask me to explain everything, I just found all these details while browsing the admin pages related to posts.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2009/06/30/integrate-tinymce-into-your-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>ZdMultilang, Call for bug request and feature requests</title>
		<link>http://blog.zen-dreams.com/blog-en/2009/06/12/zdmultilang-call-for-bug-request-and-feature-requests/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2009/06/12/zdmultilang-call-for-bug-request-and-feature-requests/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 18:41:56 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[ZdMultilang]]></category>
		<category><![CDATA[Zen-Dreams]]></category>

		<guid isPermaLink="false">http://blog.zen-dreams.com/en/?p=605</guid>
		<description><![CDATA[It&#8217;s been quite a while without any update on ZdMultilang and today I decided to plunge back into the development of the plugin in order to fix bugs, improve functionality. In order to do so, I need YOU. I will make all the improvements and bug fixes based on a priority list that I want [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been quite a while without any update on <a href="http://blog.zen-dreams.com/en/zdmultilang">ZdMultilang</a> and today I decided to plunge back into the development of the plugin in order to fix bugs, improve functionality.</p>
<p>In order to do so, I need <strong>YOU</strong>. I will make all the improvements and bug fixes based on a priority list that I want you to help me build.<br />
Below is a list of bugfixes and features that will be included in the next release (or two if I release first a version with full 2.8 compatibility)<span id="more-605"></span></p>
<h2>1. Bug fixes</h2>
<ul>
<li>Fix home page as a static page handling !</li>
<li><span style="text-decoration: line-through">Fix the save button in WordPress 2.8</span><strong> Fixed since 1.2.3</strong></li>
<li><span style="text-decoration: line-through">Issue with the Media Upload icon</span> <strong>Fixed in the upcoming 1.2.4</strong></li>
<li>Better handling of permalinks detection (permalink with more than 2 char)</li>
</ul>
<h2>2. Features</h2>
<ul>
<li>Allow to create different permalinks depending on the language</li>
<li>Update the zd_multilang_menu function to add parameters (like displaying only some elements)</li>
<li>Add an option to allow displaying all the languages including the current one in the widget.</li>
<li>Make a better, up to date F.A.Q / Help page.</li>
<li>Create a function to get the current language used.</li>
<li>Handling of Widget title translation.</li>
<li>Uninstall function with Database cleaning</li>
<li>Write post in non default language only (find a way to do this&#8230;)</li>
<li>Add a theme switching function according to current language (requested by AMN)</li>
<li>Translation could have a different date than the original post.</li>
<li>See if it can work with WP-Print</li>
</ul>
<p>Now it&#8217;s up to you to <strong>help me add items to the list</strong>. Please read the comments before asking for a feature/bugfix as I will try to update the list as much as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2009/06/12/zdmultilang-call-for-bug-request-and-feature-requests/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>How-To include tinyMCE in your WP plugin</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/11/06/how-to-include-tinymce-in-your-wp-plugin/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/11/06/how-to-include-tinymce-in-your-wp-plugin/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 08:49:53 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/en/?p=543</guid>
		<description><![CDATA[While developping ZdMultilang&#8217;s new version, I came accross a compatibilty problem with WordPress 2.7. In fact, to include the tinyMCE editor you won&#8217;t use the same functions between 2.6.3 and 2.7 releases. More interesting is WP2.7 will need one more function to be able to display the editor. Most of the time you will want [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-544" src="http://blog.zen-dreams.com/wp-content/uploads/2008/11/wordpress.jpg" alt="" width="96" height="96" />While developping <strong>ZdMultilang&#8217;s new version</strong>, I came accross a compatibilty problem with <strong>WordPress 2.7</strong>.</p>
<p>In fact, to include the <strong>tinyMCE editor</strong> you won&#8217;t use the same functions between 2.6.3 and 2.7 releases. More interesting is WP2.7 will need one more function to be able to display the editor.</p>
<p>Most of the time you will want to include this editor when working with posts, or when you want to enable your plugin users to enter information with the Wysiwyg editor (newsletter, advanced widgets, etc&#8230;)</p>
<h2>WordPress 2.5.x and 2.6.x</h2>
<p>Here is how to include the editor in one of your plugin&#8217;s admin panel.</p>
<ol>
<li>Include this code in the <strong>admin_head hook</strong>
<pre>add_filter('admin_head','zd_multilang_tinymce');

function zd_multilang_tinymce() {
	wp_admin_css('thickbox');
	wp_print_scripts('post');
	wp_print_scripts('editor');
	add_thickbox();
	wp_print_scripts('media-upload');
	wp_print_scripts('jquery');
	wp_print_scripts('jquery-ui-core');
	wp_print_scripts('jquery-ui-tabs');
}</pre>
</li>
<li>Call the editor anywhere you need it to be displayed
<pre>	the_editor($content_to_load);</pre>
</li>
</ol>
<p><span id="more-543"></span></p>
<h2>WordPress 2.7</h2>
<p>Here is how to include the editor in one of your plugin&#8217;s admin panel.</p>
<ol>
<li>Include this code in the admin_head hook
<pre>add_filter('admin_head','zd_multilang_tinymce');

function zd_multilang_tinymce() {
	wp_admin_css('thickbox');
	wp_print_scripts('jquery-ui-core');
	wp_print_scripts('jquery-ui-tabs');
	wp_print_scripts('post');
	wp_print_scripts('editor');
	add_thickbox();
	wp_print_scripts('media-upload');
<span style="color: #0000ff">	if (function_exists('wp_tiny_mce')) wp_tiny_mce();</span>
<span style="color: #808080">// use the if condition because this function doesn't exist in version prior to 2.7</span>
}</pre>
</li>
<li>Call the editor anywhere you need it to be displayed
<pre>	the_editor($content_to_load);</pre>
</li>
</ol>
<h2>Differences between versions.</h2>
<p>As you can see, there is only one difference in the code between both version, but this is a major one as if you don&#8217;t call the <strong>wp_tiny_mce</strong> function, the editor will not work at all.</p>
<p>There are some other differences but mostly in the css classes as <strong>the design has been totally revamped</strong>. Therefore if you want to mimic the interface on both version you will need to add some classes and divs as you will see when I&#8217;ll publish ZdMultilang v1.1.2 <img src='http://blog.zen-dreams.com/blog-en/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>By the way, I&#8217;m proud to announce that version 1.1.2 of<strong> <a href="http://blog.zen-dreams.com/en/zdmultilang" target="_blank">ZdMultilang</a> will be fully compatible with WordPress 2.7 </strong>and the interface will look much better in 2.6.3 and 2.7 than right now.</p>
<h2>WordPress 2.8</h2>
<p>For an updated version of this tutorial using WordPress 2.8, <a href="http://blog.zen-dreams.com/en/2009/06/30/integrate-tinymce-into-your-wordpress-plugins/">check this post</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/11/06/how-to-include-tinymce-in-your-wp-plugin/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>ZdStatistics Version 2 will be out next week</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/10/07/zdstatistics-version-2-will-be-out-next-week/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/10/07/zdstatistics-version-2-will-be-out-next-week/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 09:20:53 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[ZdStatistics]]></category>
		<category><![CDATA[Zen-Dreams]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/en/?p=503</guid>
		<description><![CDATA[I&#8217;ve been off for quite a long time on Zen-Dreams and this is mainly due to the fact that I&#8217;ve been rebuilding ZdStatistics. ZdStatistics will be available next week in version 2.0. Why next week ? Simply because I need to test it before release, so it&#8217;s been installed on this blog and depending on [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-504 alignnone" src="http://blog.zen-dreams.com/wp-content/uploads/2008/10/zdstatsv2.jpg" alt="" /></p>
<p>I&#8217;ve been off for quite a long time on <strong>Zen-Dreams</strong> and this is mainly due to the fact that I&#8217;ve been rebuilding <strong>ZdStatistics</strong>.</p>
<p><strong>ZdStatistics </strong>will be available next week in version 2.0. Why next week ? Simply because I need to test it before release, so it&#8217;s been installed on this blog and depending on the results I will get until next week I will improve it as much as I can.</p>
<p>Here is a list of the new features and modifications :</p>
<ul>
<li>Changed the <strong>flash chart</strong> to <strong>Google vizualisation</strong> so that it loads faster and can be compliant with any browser with javascript support.</li>
<li><strong>Export data to CSV</strong> files so that you can process them like you want</li>
<li>Check Redirections of pages &#8211; do not log them. In fact sometimes a page was counted twice because the user specified an url without the pending / and wordpress did the redirection.</li>
<li>Display tabs in the admin section optionally</li>
<li><strong>Search feature !</strong></li>
<li><strong>Better Spam detection</strong> using an anti spam provider (default is spamhaus.org)</li>
<li>Now <strong>recording hits with timezone</strong> as specified in your wordpress configuration.</li>
<li>Geolocalisation is now using <strong>Google Maps</strong> to display visitors (needs a Google maps API key)</li>
<li>Using<strong> a calendar to choose the time period</strong> you wish to see</li>
<li>Debug option <strong>for a better support<br />
</strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/10/07/zdstatistics-version-2-will-be-out-next-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Write your own plugin for WordPress [Chapter 4]</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/09/04/write-your-own-plugin-for-wordpress-chapter-4/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/09/04/write-your-own-plugin-for-wordpress-chapter-4/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 08:38:04 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/en/?p=430</guid>
		<description><![CDATA[As a reminder, this article is the fourth of a series called Write your own plugin for WordPress Introduction to plugins Plugin’s skeletton Activation, Hooks &#38; Filters Widgets Definition 1. Widgets definition A widget is, in fact, a plugin that will allow users to display a block on their sidebar. That being said, there are [...]]]></description>
			<content:encoded><![CDATA[<p>As a reminder, this article is the fourth of a series called <strong>Write your own plugin for WordPress</strong></p>
<ol></ol>
<ol>
<li><a href="../en/2008/06/24/creer-son-plug-in-pour-wordpress-partie-1/" target="_blank">Introduction to plugins</a></li>
<li><a href="../en/2008/07/03/creer-son-plug-in-pour-wordpress-partie-2/">Plugin’s skeletton</a></li>
<li><a href="http://blog.zen-dreams.com/en/2008/07/22/creer-son-plug-in-pour-wordpress-partie-3/">Activation, Hooks &amp; Filters</a></li>
<li><a href="http://blog.zen-dreams.com/en/2008/09/04/write-your-own-plugin-for-wordpress-chapter-4/" target="_self">Widgets Definition</a></li>
</ol>
<ol></ol>
<h3><span style="text-decoration: underline"><strong>1. Widgets</strong> definition</span></h3>
<p>A widget is, in fact, a plugin that will allow users to display a block on their sidebar. That being said, there are only one action to use in order to create a Widget.</p>
<p>This action is called <em><strong>widgets_init</strong></em> &#8211; therefore you can call it like this : <em>add_action(&#8216;widgets_init&#8217;, function_name);</em></p>
<p>Once you have done this, you will have to register two other functions inside this <em>function_name</em> function only if sidebars are available with your wordpress install.</p>
<p>Here is some code that can do the trick :<br />
<span id="more-430"></span></p>
<pre>function <em>function_name</em>() {
	if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
		return;
	register_sidebar_widget(string $name,callback $function);
	// register_sidebar_widget takes the name of the widget and the function that will be used to display it.
	register_widget_control(string $name, callback $function2);
	// register_widget_control takes the name of the widget and the function that will be used to to change options (in the design panel).
}</pre>
<p>That&#8217;s pretty all you need to know for Widgets. All the rest is non widget specific (options, actions and filters, api calls)</p>
<h3><span style="text-decoration: underline">2. Sample Widget</span></h3>
<p>Here below you will find a sample widget in written in fully object oriented php &#8211; not there is no option tab. This widget will only display a Simple <strong>Hello World</strong> with widget title customisable.</p>
<pre>/*
Plugin Name: ZenDreams_Sample_Widget
Plugin URI: http://blog.zen-dreams.com/
Description: Sample Widget
Version: 1.0
Author: Anthony PETITBOIS
Author URI: http://blog.zen-dreams.com/
*/
class myWidget {

	function myWidget() {
		add_action('widgets_init', array(&amp;amp; $this, 'init_widget'));
	}

	function init_widget() {
		if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
			return;
		register_sidebar_widget(array('myWidget','widgets'),array(&amp;amp; $this, 'widget'));
		register_widget_control(array('myWidget', 'widgets'), array(&amp;amp; $this, 'widget_options'));
	}

	function widget($args) {
		global $wpdb;

		$WidgetTitle=get_option('mywidget_options');
		extract($args);

		echo $before_widget.$before_title.$WidgetTitle.$after_title;
		echo 'Hello World !';
		echo $after_widget;
	}

	function widget_options() {
		if ($_POST['mywidget_options']) {
			$option=$_POST['mywidget_options'];
			update_option('mywidget_options',$option);
		}
		$option=get_option('mywidget_options');
		echo '&lt;label for="mywidget_options"&gt;Title : &lt;input id="mywidget_options" name="mywidget_options" type="text" value="'.$option.'" /&gt;&lt;/label&gt;';
	}
}
$myWidgetVariable= new myWidget ();</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/09/04/write-your-own-plugin-for-wordpress-chapter-4/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>DNA-Framework &#8211; Database Abstraction Layer</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/08/30/dna-framework-database-abstraction-layer/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/08/30/dna-framework-database-abstraction-layer/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 17:41:25 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Zen-Dreams]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[DNA-Framework]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/en/?p=423</guid>
		<description><![CDATA[When I decided to re-write the DNA-Framework, I didn&#8217;t know where to start first. I was thinking about creating all the security structure first, but I then realised that mostly the security infrastructure will use the dabatase to store information. So I first needed to create the DAL. The DAL must stay : easy to [...]]]></description>
			<content:encoded><![CDATA[<p>When I decided to re-write the <strong>DNA-Framework</strong>, I didn&#8217;t know where to start first. I was thinking about creating all the <strong>security structure</strong> first, but I then realised that mostly the security infrastructure will <strong>use the dabatase</strong> to store information.</p>
<p>So I first needed to create the DAL.</p>
<p>The DAL must stay : easy to use, coherent (meaning no differences between different DBMS) and with no useless features.</p>
<p>So the first thing to do was to create a generic class encapsulating every aspect that will be generic enough to be DBMS not specific. This class is <strong>dna.database.class</strong>. It also allowed me to define the behavior and structure of inheriting classes.</p>
<p>Talking about inheritance, for now there are only <strong>four</strong> classes. <strong>MySQL</strong>, <strong>PostgreSQL</strong>, <strong>SQLite</strong> 2 and <strong>Oracle</strong>. Yes this means that the DNA-Framework will have support for all of these systems and probably more when I&#8217;ll create an ODBC class <img src='http://blog.zen-dreams.com/blog-en/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>So, briefly, I started the creation of the class system monday and today, the four classes exists and are able to :</p>
<ul>
<li>Execute SQL queries (anything)</li>
<li>Select and browse through results</li>
<li><strong>Export</strong> as <strong>SQL</strong> or <strong>CSV</strong> result of a query</li>
<li><strong>Import</strong> from <strong>SQL</strong> and <strong>CSV</strong></li>
<li>Fetch various states<strong> (queries / dbms)</strong></li>
</ul>
<h3>Below is an example of the same code executed on 4 different DBMS.</h3>
<p><span id="more-423"></span></p>
<pre>
<h3>MySQL</h3>

SELECT * FROM MS_User
    -&gt; anthony@mysql.com
    -&gt; toto@mysql.com
INSERT INTO MS_User (Email) VALUES ('test@MySQL.com')
SELECT * FROM MS_User
    -&gt; anthony@mysql.com
    -&gt; toto@mysql.com
    -&gt; <strong>test@MySQL.com</strong>
DELETE FROM MS_User WHERE Email='test@MySQL.com'
SELECT * FROM MS_User
    -&gt; anthony@mysql.com
    -&gt; toto@mysql.com
<h3>PostgreSQL</h3>

SELECT * FROM "MS_User"
    -&gt; Anthony@PostgresQL.com
    -&gt; toto@postgresql.com
INSERT INTO "MS_User" ("Email") VALUES ('test@PostgreSQL.com')
SELECT * FROM "MS_User"
    -&gt; Anthony@PostgresQL.com
    -&gt; toto@postgresql.com
    -&gt; <strong>test@PostgreSQL.com</strong>
DELETE FROM "MS_User" WHERE "Email"='test@PostgreSQL.com'
SELECT * FROM "MS_User"
    -&gt; Anthony@PostgresQL.com
    -&gt; toto@postgresql.com
<h3>SQLite</h3>

SELECT * FROM MS_User
    -&gt; anthony@sqlite.org
    -&gt; toto@sqlite.org
INSERT INTO MS_User (Email) VALUES ('test@SQLite.com')
SELECT * FROM MS_User
    -&gt; anthony@sqlite.org
    -&gt; toto@sqlite.org
    -&gt; <strong>test@SQLite.com</strong>
DELETE FROM MS_User WHERE Email='test@SQLite.com'
SELECT * FROM MS_User
    -&gt; anthony@sqlite.org
    -&gt; toto@sqlite.org
<h3>Oracle OCI</h3>

SELECT * FROM MS_User
    -&gt; toto@oracle.com
    -&gt; Anthony@oracle.com
INSERT INTO MS_User (EMAIL) VALUES ('test@Oracle OCI.com')
SELECT * FROM MS_User
    -&gt; toto@oracle.com
    -&gt; Anthony@oracle.com
    -&gt; <strong>test@Oracle OCI.com</strong>
DELETE FROM MS_User WHERE EMAIL='test@Oracle OCI.com'
SELECT * FROM MS_User
    -&gt; toto@oracle.com
    -&gt; Anthony@oracle.com</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/08/30/dna-framework-database-abstraction-layer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Low frequency publication</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/08/27/low-frequency-publication/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/08/27/low-frequency-publication/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 08:24:01 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Zen-Dreams]]></category>
		<category><![CDATA[DNA-Framework]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[ZdStats]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/en/?p=420</guid>
		<description><![CDATA[I&#8217;ve reduced frequency of my publications these days, for two reasons. First, I&#8217;m re-writing the DNA-Framework, I don&#8217;t know yet what will come out of it, probably something big I&#8217;m not sure yet if it will be released as OpenSource framework or not. I&#8217;ll decide that when version 1.0 will be ready. And the other [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve reduced frequency of my publications these days, for two reasons.</p>
<p>First, I&#8217;m re-writing the <strong>DNA-Framework</strong>, I don&#8217;t know yet what will come out of it, probably something big <img src='http://blog.zen-dreams.com/blog-en/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  I&#8217;m not sure yet if it will be released as OpenSource framework or not. I&#8217;ll decide that when version 1.0 will be ready.</p>
<p>And the other thing is I&#8217;m completly rewriting <strong>ZdStats</strong> with better spam detection and much more realistic filters. Even though I know that my filters are more permissive than google&#8217;s, my stats are also much more realistic. Why is that ? Simply because I don&#8217;t rely on javascript only, therefore I also count users that come to your website with javascript disabled (or google filtered)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/08/27/low-frequency-publication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New plugin and minor update of the blog</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/07/31/new-plugin-and-minor-update-of-the-blog/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/07/31/new-plugin-and-minor-update-of-the-blog/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 14:58:58 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/en/?p=352</guid>
		<description><![CDATA[After publishing my lastest plugin, I saw that some blogs are pulling posts directly from the RSS feed to publish it on their &#8220;splogs&#8221; (spam blogs). In order to avoid duplicate content, I decided to create a new plugin that will enable you to add anything you want inside your feed&#8217;s posts. This addition is [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://farm1.static.flickr.com/56/135479492_f95862901e_o.gif" alt="" />After publishing my lastest plugin, I saw that some blogs are pulling posts directly from the RSS feed to publish it on their &#8220;<strong>splogs</strong>&#8221; (spam blogs). In order to avoid duplicate content, I decided to create a new plugin that will enable you to <strong>add anything</strong> you want<strong> inside your feed&#8217;s</strong> posts.</p>
<p>This addition is only <strong>limited to the feeds</strong>. For example, you will see that at the bottom of this posts nothing special appears on the site, but a copyright will be displayed inside the RSS version of it.</p>
<p>This can also be used to add any HTML code you want, it can be added on top of the post or at the bottom of it.</p>
<p>You will also note that I removed the <strong>related content plugin</strong>, I didn&#8217;t find relevant the correlation made between posts and related content.</p>
<p>Here is a <strong>Question to the readers</strong>, would you like to see the plugin published ?</p>
<p>[Image credits : <a href="http://www.flickr.com/photos/ejk/" target="_blank">eJk</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/07/31/new-plugin-and-minor-update-of-the-blog/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ZdMultilang, version 1.1 is out</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/07/29/zdmultilang-version-11-is-out/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/07/29/zdmultilang-version-11-is-out/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 15:49:41 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[ZdMultilang]]></category>
		<category><![CDATA[Zen-Dreams]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/en/?p=335</guid>
		<description><![CDATA[Due to some requests and feedback I received on my WordPress plugin ZdMultilang, a new version has been published on wordpress.org. This version is numbered 1.1.0 because of the number of improvements I made to the plugin. But before to talk about what I&#8217;ve changed, I&#8217;d like to thank all those who gave me their [...]]]></description>
			<content:encoded><![CDATA[<p>Due to some requests and feedback I received on my <strong>WordPress plugin ZdMultilang</strong>, a new version has been published on wordpress.org.</p>
<p>This version is numbered 1.1.0 because of the number of improvements I made to the plugin. But before to talk about what I&#8217;ve changed, I&#8217;d like to thank all those who gave me their ideas and feedback on the plugin :</p>
<ul>
<li><a href="http://ifolio.idfact.net/" target="_blank">Impulse</a> for his help on solving a very annoying bug (two flags instead of one)</li>
<li><a href="http://simianuprising.com/" target="_blank">Jeremy Clarke</a> for his suggestion on displaying only translated posts</li>
<li><a href="http://taijiquan.pro.br/" target="_blank">Eduardo</a> and <a href="http://www.notiziedallinferno.com/" target="_blank">Ferlo</a> for their view of the SEO against the plugin</li>
<li><a href="http://www.ia.com.mk/" target="_blank">Teneke</a> for the bug due to UTF-8 character encoding</li>
<li><a href="http://www.emmanuelgeorjon.com" target="_blank">Emmanuel Georjon</a> for his comments on dashboard integration and other tips.</li>
</ul>
<p><span id="more-335"></span></p>
<h3>Changelog</h3>
<ul>
<li>Added the possibility to switch default languages (meaning: exchange original posts/tags/cats with translated ones)</li>
<li>Added translate links directly into the manage pages &amp; into the Media zone of page/posts edition</li>
<li>Added an option to generate permalinks for default language (ex-default behavior was always yes)</li>
<li>Changed default character set as UTF-8</li>
<li>Added an option to add &#8220;Translate with Google Translate&#8221; to untranslated posts</li>
<li>Added an option to hide untranslated posts if they exists (ex-default : show all posts)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/07/29/zdmultilang-version-11-is-out/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
	</channel>
</rss>

