<?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>Witslog Wiki &#187; PHP</title>
	<atom:link href="http://witslog.com/wiki/category/technical/php/feed" rel="self" type="application/rss+xml" />
	<link>http://witslog.com/wiki</link>
	<description>Technical Log</description>
	<lastBuildDate>Fri, 14 May 2010 06:17:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>fetch the records through ajax and jquery in json format using kohana</title>
		<link>http://witslog.com/wiki/technical/php/fetch-the-records-through-ajax-and-jquery-in-json-format-using-kohana</link>
		<comments>http://witslog.com/wiki/technical/php/fetch-the-records-through-ajax-and-jquery-in-json-format-using-kohana#comments</comments>
		<pubDate>Fri, 14 May 2010 06:17:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Kohana]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Code]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=140</guid>
		<description><![CDATA[HI All,
 After spending lot&#8217;s  of time, i got result in josn format in kohana. I want to fetch all records of last 3 minutes of comment table and it will display on my site after check is record already show on browser or not.
As...]]></description>
			<content:encoded><![CDATA[<p>HI All,</p>
<p><em><strong> After spending lot&#8217;s  of time, i got result in josn format in kohana. I want to fetch all records of last 3 minutes of comment table and it will display on my site after check is record already show on browser or not.</strong></em></p>
<p><strong>As we know kohana is MVC framework so we need to handle controller as well as model.</strong></p>
<p><strong>//Model</strong></p>
<p>In model first i write query to fetch records from database which is under a function get_last_three_minutes_comments.</p>
<p>public function get_last_three_minutes_comments($id){</p>
<p>$query = $this-&gt;db-&gt;query(&#8220;SELECT u.user_name, gs.* from comments as gs INNER JOIN users as u on gs.`user_id`=u.`user_id` WHERE DATE_SUB( now( ) , INTERVAL 3 MINUTE ) &lt; gs.speak_date and gs.group_id=$id ORDER BY id DESC&#8221;);<br />
return $query-&gt;result_array();<br />
}</p>
<p><strong>//Controller</strong></p>
<p>I call this model file from controller by write below code.</p>
<p>public function get_last_three_minutes_comments($page_id){<br />
$data =    $this-&gt;comment-&gt;get_last_three_minutes_comments($page_id); // i have already made a object in constructor for comment table.</p>
<p><strong>// As we know model return data in mixture of array and object and for json we need data only in array format. so here i manipulate data and convert into array format.</strong></p>
<p>$arr = array();<br />
$id=0;<br />
foreach($data as $id =&gt; $rec){<br />
$arr[$id] = array(&#8216;id&#8217;=&gt;$rec-&gt;id,&#8217;user_name&#8217;=&gt;$rec-&gt;user_name,&#8217;speak&#8217;=&gt;$rec-&gt;speak,&#8217;speak_time&#8217;=&gt;$rec-&gt;speak_date);<br />
$id++;<br />
}</p>
<p>//Now we change value in json format using json_encode function and return to JavaScript file by echo command.</p>
<p>echo json_encode(array(&#8216;comment_data&#8217;=&gt;$arr));<br />
}</p>
<p><strong>Javascript file</strong></p>
<p>//In jquery we use $.ajax function to get data from server by using ajax. $.ajax gets some parameter such as dataType which may be get, post, json as our requirement. I use json because i need to handle data in json format. Second parameter is url. url tell to server which page will be called. third one is success. When all server processing is completed then it return data in success which i get in mycomment variable.</p>
<p>$.ajax({<br />
dataType: &#8216;json&#8217;,<br />
url:url_main+&#8221;widgets/get_runtime_comment/&#8221;+tabid[1],<br />
success:function(mycomment){</p>
<p><strong>// In controller i make a array which name is comment_data. Now i access data of json by name of javascript variable in which holds all data then after write array name of php then after call by array index. such as call to user_name field we are below line</strong></p>
<p><strong>mycomment.comment_data[0].user_name;</strong></p>
<p><strong> mycomment is javascript variable name, comment_data is php array and user_name is index name of that array.</strong></p>
<p>len = mycomment.comment_data.length; // here i get total number of records for run a loop.<br />
i=0;<br />
while(i&lt;len){<br />
cmid = mycomment.comment_data[i].id; // here i get id of current record.<br />
comt = $(&#8216;#tabs-&#8217;+tabid[1]).children().find(&#8216;.commentbox&#8217;).find(&#8216;#&#8217;+cmid).html(); // Check whether this record is exist or not in current div.</p>
<p>//if i get blank then it will added into that particular div else ignore it.<br />
if(comt==null){<br />
dt = &#8216;&lt;div id=&#8221;&#8216;+mycomment.comment_data[i].id+&#8217;&gt;&#8217;+mycomment.comment_data[i].speak+&#8217;&lt;br&gt;By: &#8211; &#8216;+mycomment.comment_data[i].user_name+&#8217; on &#8216;+mycomment.comment_data[i].speak_time+&#8217;&lt;/div&gt;&#8217;;<br />
$(&#8216;#tabs-&#8217;+tabid[1]).children().find(&#8216;.commentbox&#8217;).find(&#8216;._group_comments&#8217;).prepend(dt);<br />
}<br />
i++;<br />
}</p>
<p>}<br />
});</p>
<p>I hope you will learn lot&#8217;s of thing from this article.</p>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/php/fetch-the-records-through-ajax-and-jquery-in-json-format-using-kohana/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>How to manage languages in kohana</title>
		<link>http://witslog.com/wiki/technical/php/kohana/how-to-manage-languages-in-kohana</link>
		<comments>http://witslog.com/wiki/technical/php/kohana/how-to-manage-languages-in-kohana#comments</comments>
		<pubDate>Sat, 20 Mar 2010 05:35:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Kohana]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=114</guid>
		<description><![CDATA[To manage language in kohana you must define variable in languages file. First of all you will make a directory i18n under application directory.  Now you will make a folder of all languages which will be run on your site such as for english you...]]></description>
			<content:encoded><![CDATA[<p>To manage language in kohana you must define variable in languages file. First of all you will make a directory i18n under application directory.  Now you will make a folder of all languages which will be run on your site such as for english you will create a folder en_US, for dainsh de_DE and so on.</p>
<p>Now you will make same name file in all folder. Here i make a file which name is translation.php.</p>
<p>Now edit translation.php or whatever you make and add some define value.</p>
<p>&lt;?php</p>
<p>$lang = array<br />
(<br />
&#8216;TEST&#8217;                 =&gt; &#8216;First Test translation&#8217;,<br />
&#8216;LOVE&#8217;                =&gt; &#8216;I Love Kohana&#8217;<br />
);</p>
<p>?&gt;</p>
<p>Now you will call this variable in anywhere under your kohana folder by below format</p>
<p>kohana::lang(filename.definevariablename);</p>
<p>eg:</p>
<p>&lt;?php</p>
<p>echo kohana::lang(&#8216;translation.LOVE&#8217;); ?&gt;</p>
<p>When you run this code you will get following output if your current language is english:</p>
<p>I Love Kohana</p>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/php/kohana/how-to-manage-languages-in-kohana/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Define variable in Kohana using Config File</title>
		<link>http://witslog.com/wiki/technical/php/kohana/define-variable-in-kohana-using-config-file</link>
		<comments>http://witslog.com/wiki/technical/php/kohana/define-variable-in-kohana-using-config-file#comments</comments>
		<pubDate>Wed, 17 Mar 2010 12:38:48 +0000</pubDate>
		<dc:creator>Pallavi</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[PHP Code]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=110</guid>
		<description><![CDATA[How to make the global variable in Kohana &#8211; 
To get the value of the variable which is used globally into the website. For it you have to set the variable in config file of Kohana.
For it, you have to open the file -
Kohana -&#62;...]]></description>
			<content:encoded><![CDATA[<p><strong>How to make the global variable in Kohana &#8211; </strong></p>
<p>To get the value of the variable which is used globally into the website. For it you have to set the variable in config file of Kohana.</p>
<p>For it, you have to open the file -</p>
<p>Kohana -&gt; application-&gt;config-&gt; config.php (Path of the config file)</p>
<p>For example -</p>
<p>I have to set the path of the image where it is stored in the folder.</p>
<p>$config['imgpath'] =&#8217;Kohana/images/picture/&#8217;;</p>
<p>To get the config value -</p>
<p>Kohana::config(&#8216;config.imgpath&#8217;);</p>
<p>If you want to print the path -</p>
<p>echo Kohana::config(&#8216;config.imgpath&#8217;);</p>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/php/kohana/define-variable-in-kohana-using-config-file/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Read RSS feed XML using CURL in PHP</title>
		<link>http://witslog.com/wiki/technical/php/code-php/read-rss-feed-xml-using-curl-in-php</link>
		<comments>http://witslog.com/wiki/technical/php/code-php/read-rss-feed-xml-using-curl-in-php#comments</comments>
		<pubDate>Wed, 17 Mar 2010 10:55:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP Code]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=106</guid>
		<description><![CDATA[// create a new cURL resource
$ch = curl_init();
$url = &#8220;http://witslog.com/wiki/?feed=rss2&#8243;;
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $url);  // you have to set the url of the website of which you want to get the rss data
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab URL and pass...]]></description>
			<content:encoded><![CDATA[<p>// create a new cURL resource</p>
<p>$ch = curl_init();<br />
$url = &#8220;http://witslog.com/wiki/?feed=rss2&#8243;;</p>
<p>// set URL and other appropriate options</p>
<p>curl_setopt($ch, CURLOPT_URL, $url);  // you have to set the url of the website of which you want to get the rss data<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br />
curl_setopt($ch, CURLOPT_HEADER, 0);</p>
<p>// grab URL and pass it to the browser<br />
$data = curl_exec($ch);</p>
<p>// close cURL resource, and free up system resources<br />
curl_close($ch);</p>
<p>//Now work with SimpleXmlElement. This is core php xml class. The SimpleXML extension provides a very simple and easily usable    toolset to convert XML to an object that can be processed with    normal property selectors and array iterators.</p>
<p>$xml = new SimpleXmlElement($data, LIBXML_NOCDATA);</p>
<p>//check either it is RSS feeder or ATOM Feeder. Rss feeder have channel node while in Atom feeder you see entry node. Generally each feeder have their defined channel.</p>
<p>if(isset($xml-&gt;channel))<br />
{<br />
parseRSS($xml);<br />
}<br />
if(isset($xml-&gt;entry))<br />
{<br />
parseAtom($xml);<br />
}</p>
<p>//This is for rss Feeder<br />
function parseRSS($xml)<br />
{<br />
echo &#8220;&lt;strong&gt;&#8221;.$xml-&gt;channel-&gt;title.&#8221;&lt;/strong&gt;&#8221;;<br />
$cnt = count($xml-&gt;channel-&gt;item);<br />
for($i=0; $i&lt;$cnt; $i++)<br />
{<br />
$url     = $xml-&gt;channel-&gt;item[$i]-&gt;link;<br />
$title     = $xml-&gt;channel-&gt;item[$i]-&gt;title;<br />
$desc = $xml-&gt;channel-&gt;item[$i]-&gt;description;</p>
<p>echo &#8216;&lt;a href=&#8221;&#8216;.$url.&#8217;&#8221;&gt;&#8217;.$title.&#8217;&lt;/a&gt;&#8217;.$desc.&#8221;;<br />
}<br />
}</p>
<p>//This is for XML Feeder<br />
function parseAtom($xml)<br />
{<br />
echo &#8220;&lt;strong&gt;&#8221;.$xml-&gt;author-&gt;name.&#8221;&lt;/strong&gt;&#8221;;<br />
$cnt = count($xml-&gt;entry);<br />
for($i=0; $i&lt;$cnt; $i++)<br />
{<br />
$urlAtt = $xml-&gt;entry-&gt;link[$i]-&gt;attributes();<br />
$url    = $urlAtt['href'];<br />
$title     = $xml-&gt;entry-&gt;title;<br />
$desc    = strip_tags($xml-&gt;entry-&gt;content);</p>
<p>echo &#8216;&lt;a href=&#8221;&#8216;.$url.&#8217;&#8221;&gt;&#8217;.$title.&#8217;&lt;/a&gt;&#8217;.$desc.&#8221;;<br />
}<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/php/code-php/read-rss-feed-xml-using-curl-in-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create a Basic Web Service Using PHP, MySQL, XML, and JSON</title>
		<link>http://witslog.com/wiki/technical/php/code-php/create-a-basic-web-service-using-php-mysql-xml-and-json</link>
		<comments>http://witslog.com/wiki/technical/php/code-php/create-a-basic-web-service-using-php-mysql-xml-and-json#comments</comments>
		<pubDate>Wed, 17 Mar 2010 07:34:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP Code]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=103</guid>
		<description><![CDATA[Web services are taking over the world.  I credit Twitter’s epic rise to  the availability of a simple but rich API.  Why not use the same model  for your own sites?  Here’s how to create a basic web service that...]]></description>
			<content:encoded><![CDATA[<p><strong>Web services are taking over the world.  I credit Twitter’s epic rise to  the availability of a simple but rich API.  Why not use the same model  for your own sites?  Here’s how to create a basic web service that  provides an XML or JSON response using some PHP and MySQL.</strong></p>
<p>/* require the user as the parameter */<br />
if(isset($_GET['user']) &amp;&amp; intval($_GET['user'])) {</p>
<p>/* soak in the passed variable or set our own */<br />
$number_of_posts = isset($_GET['num']) ? intval($_GET['num']) : 10; //10 is the default<br />
$format = strtolower($_GET['format']) == &#8216;json&#8217; ? &#8216;json&#8217; : &#8216;xml&#8217;; //xml is the default<br />
$user_id = intval($_GET['user']); //no default</p>
<p>/* connect to the db */<br />
$link = mysql_connect(&#8216;localhost&#8217;,'username&#8217;,'password&#8217;) or die(&#8216;Cannot connect to the DB&#8217;);<br />
mysql_select_db(&#8216;db_name&#8217;,$link) or die(&#8216;Cannot select the DB&#8217;);</p>
<p>/* grab the posts from the db */<br />
$query = &#8220;SELECT post_title, guid FROM wp_posts WHERE post_author = $user_id AND post_status = &#8216;publish&#8217; ORDER BY ID DESC LIMIT $number_of_posts&#8221;;<br />
$result = mysql_query($query,$link) or die(&#8216;Errant query:  &#8216;.$query);</p>
<p>/* create one master array of the records */<br />
$posts = array();<br />
if(mysql_num_rows($result)) {<br />
while($post = mysql_fetch_assoc($result)) {<br />
$posts[] = array(&#8216;post&#8217;=&gt;$post);<br />
}<br />
}</p>
<p>/* output in necessary format */<br />
if($format == &#8216;json&#8217;) {<br />
header(&#8216;Content-type: application/json&#8217;);<br />
echo json_encode(array(&#8216;posts&#8217;=&gt;$posts));<br />
}<br />
else {<br />
header(&#8216;Content-type: text/xml&#8217;);<br />
echo &#8216;&lt;posts&gt;&#8217;;<br />
foreach($posts as $index =&gt; $post) {<br />
if(is_array($post)) {<br />
foreach($post as $key =&gt; $value) {<br />
echo &#8216;&lt;&#8217;,$key,&#8217;&gt;&#8217;;<br />
if(is_array($value)) {<br />
foreach($value as $tag =&gt; $val) {<br />
echo &#8216;&lt;&#8217;,$tag,&#8217;&gt;&#8217;,htmlentities($val),&#8217;&lt;/&#8217;,$tag,&#8217;&gt;&#8217;;<br />
}<br />
}<br />
echo &#8216;&lt;/&#8217;,$key,&#8217;&gt;&#8217;;<br />
}<br />
}<br />
}<br />
echo &#8216;&lt;/posts&gt;&#8217;;<br />
}</p>
<p>/* disconnect from the db */<br />
@mysql_close($link);<br />
}?</p>
<p><strong><br />
</strong></p>
<p><strong>With the number of persons hitting your web service (hopefully),  you’ll need to do adequate validation before attempting to connect to  the database to avoid injection attacks.  Once we get the desired  results from the database, we cycle through the results to populate our  return results array.  Depending upon the response type desired, we  output the proper header and content in the desired format.</strong></p>
<p><strong>Take  the following sample URL for example:</strong></p>
<p>http://mydomain.com/web-service.php?user=2&amp;num=10</p>
<p>&lt;posts&gt;<br />
&lt;post&gt;<br />
&lt;post_title&gt;SSLmatic SSL Certificate Giveaway Winners&lt;/post_title&gt;<br />
&lt;guid&gt;http://davidwalsh.name/?p=2304&lt;/guid&gt;<br />
&lt;/post&gt;<br />
&lt;post&gt;<br />
&lt;post_title&gt;MooTools FileManager&lt;/post_title&gt;<br />
&lt;guid&gt;http://davidwalsh.name/?p=2288&lt;/guid&gt;<br />
&lt;/post&gt;<br />
&lt;post&gt;<br />
&lt;post_title&gt;PHPTVDB: Using PHP to Retrieve TV Show Information&lt;/post_title&gt;<br />
&lt;guid&gt;http://davidwalsh.name/?p=2266&lt;/guid&gt;<br />
&lt;/post&gt;<br />
&lt;post&gt;<br />
&lt;post_title&gt;David Walsh: The Lost MooTools Plugins&lt;/post_title&gt;<br />
&lt;guid&gt;http://davidwalsh.name/?p=2258&lt;/guid&gt;<br />
&lt;/post&gt;<br />
&lt;post&gt;<br />
&lt;post_title&gt;Create Short URLs Using U.Nu&lt;/post_title&gt;<br />
&lt;guid&gt;http://davidwalsh.name/?p=2218&lt;/guid&gt;<br />
&lt;/post&gt;<br />
&lt;post&gt;<br />
&lt;post_title&gt;Create Bit.ly Short URLs Using PHP&lt;/post_title&gt;<br />
&lt;guid&gt;http://davidwalsh.name/?p=2194&lt;/guid&gt;<br />
&lt;/post&gt;<br />
&lt;post&gt;<br />
&lt;post_title&gt;Represent Your Repositories Using the GitHub Badge!&lt;/post_title&gt;<br />
&lt;guid&gt;http://davidwalsh.name/?p=2178&lt;/guid&gt;<br />
&lt;/post&gt;<br />
&lt;post&gt;<br />
&lt;post_title&gt;ZebraTable&lt;/post_title&gt;<br />
&lt;guid&gt;http://davidwalsh.name/?page_id=2172&lt;/guid&gt;<br />
&lt;/post&gt;<br />
&lt;post&gt;<br />
&lt;post_title&gt;MooTools Zebra Table Plugin&lt;/post_title&gt;<br />
&lt;guid&gt;http://davidwalsh.name/?p=2168&lt;/guid&gt;<br />
&lt;/post&gt;<br />
&lt;post&gt;<br />
&lt;post_title&gt;SSLmatic: Quality, Cheap SSL Certificates and Giveaway!&lt;/post_title&gt;<br />
&lt;guid&gt;http://davidwalsh.name/?p=2158&lt;/guid&gt;<br />
&lt;/post&gt;<br />
&lt;/posts&gt;</p>
<p><strong>Take this next sample URL for example:</strong></p>
<p>http://mydomain.com/web-service.php?user=2&amp;num=10&amp;format=json</p>
<p><strong>Now, we can take a look at the possible results of the URL.</strong></p>
<p>{&#8220;posts&#8221;:[{"post":{"post_title":"SSLmatic SSL Certificate Giveaway Winners","guid":"http:\/\/davidwalsh.name\/?p=2304"}},{"post":{"post_title":"MooTools FileManager","guid":"http:\/\/davidwalsh.name\/?p=2288"}},{"post":{"post_title":"PHPTVDB: Using PHP to Retrieve TV Show Information","guid":"http:\/\/davidwalsh.name\/?p=2266"}},{"post":{"post_title":"David Walsh: The Lost MooTools Plugins","guid":"http:\/\/davidwalsh.name\/?p=2258"}},{"post":{"post_title":"Create Short URLs Using U.Nu","guid":"http:\/\/davidwalsh.name\/?p=2218"}},{"post":{"post_title":"Create Bit.ly Short URLs Using PHP","guid":"http:\/\/davidwalsh.name\/?p=2194"}},{"post":{"post_title":"Represent Your Repositories Using the GitHub Badge!","guid":"http:\/\/davidwalsh.name\/?p=2178"}},{"post":{"post_title":"ZebraTable","guid":"http:\/\/davidwalsh.name\/?page_id=2172"}},{"post":{"post_title":"MooTools Zebra Table Plugin","guid":"http:\/\/davidwalsh.name\/?p=2168"}},{"post":{"post_title":"SSLmatic: Quality, Cheap SSL Certificates and Giveaway!","guid":"http:\/\/davidwalsh.name\/?p=2158"}}]}</p>
<p><strong><br />
</strong></p>
<p><strong>Creating a basic web service is very simple and encourages your users to  spread the word about your website or service.  Want more traffic?   Want your website to grow without you putting in all the effort?  Create  a web service!</strong></p>
<p><strong>Source : </strong>http://davidwalsh.name/web-service-php-mysql-xml-json</p>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/php/code-php/create-a-basic-web-service-using-php-mysql-xml-and-json/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make a custom helpers in kohana for encrypt data</title>
		<link>http://witslog.com/wiki/technical/php/kohana/make-a-custom-helpers-in-kohana-for-encrypt-data</link>
		<comments>http://witslog.com/wiki/technical/php/kohana/make-a-custom-helpers-in-kohana-for-encrypt-data#comments</comments>
		<pubDate>Tue, 16 Mar 2010 11:57:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Kohana]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=93</guid>
		<description><![CDATA[First of all, we make a helper file in helper folder under system directory. Suppose my helper name is encryptdata.php then class name must be encryptdata_Core. _Core will be added in class name when you want to use as a helper file.
Script for Custom Helper...]]></description>
			<content:encoded><![CDATA[<p>First of all, we make a helper file in helper folder under system directory. Suppose my helper name is encryptdata.php then class name must be encryptdata_Core. _Core will be added in class name when you want to use as a helper file.</p>
<p><strong>Script for Custom Helper (Here is encryptdata which is used to encrypt any string):</strong></p>
<p>&lt;?php defined(&#8216;SYSPATH&#8217;) OR die(&#8216;No direct access allowed.&#8217;);<br />
/**<br />
* Encryptdata helper class.<br />
*<br />
*<br />
* @package    Core<br />
* @author     Ravi Prakash<br />
* @copyright  (c) 2010-2011 Witslog.com<br />
*/<br />
class encryptdata_Core {</p>
<p>var $method     = &#8220;&#8221;;<br />
var $repeats     = 0;<br />
var $split_crypt     = 0;<br />
var $final_method     = &#8220;md5&#8243;;<br />
/**</p>
<p>*/</p>
<p>public static function do_encrypt( $data,$method, $final, $repeats=2, $split=0 )<br />
{<br />
// Work out the method.<br />
$var1= new encryptdata_core;<br />
if( is_array($method) )<br />
{<br />
$var1-&gt;method = $method;<br />
}<br />
else<br />
{<br />
$var1-&gt;method = $method;<br />
}</p>
<p>$var1-&gt;repeats = $repeats;<br />
$var1-&gt;split_crypt = $split;<br />
$var1-&gt;final_method = $final;</p>
<p>if( is_array($var1-&gt;method) )<br />
{<br />
if( in_array(&#8217;sha1&#8242;, $var1-&gt;method) )<br />
{<br />
$data = encryptdata::_run_encrypt_function( $data, &#8217;sha1&#8242; );<br />
}<br />
if( in_array(&#8216;md5&#8242;, $var1-&gt;method) )<br />
{<br />
$data = encryptdata::_run_encrypt_function( $data, &#8216;md5&#8242; );<br />
}<br />
}<br />
else<br />
{<br />
$data = encryptdata::_run_encrypt_function( $data, $var1-&gt;method );<br />
}</p>
<p>// Which method should we use for the final output?<br />
// And should we trim this crypt?</p>
<p>if( $var1-&gt;final_method == &#8216;md5&#8242; )<br />
{<br />
return $var1-&gt;split_crypt != 0 ? substr( md5($data), 0, $var1-&gt;split_crypt) : md5( $data );<br />
}<br />
else if( $var1-&gt;final_method == &#8217;sha1&#8242; )<br />
{<br />
return $var1-&gt;split_crypt != 0 ? substr( sha1($data), 0, $var1-&gt;split_crypt) : sha1( $data );<br />
}<br />
else<br />
{<br />
return $var1-&gt;split_crypt != 0 ? substr( md5($data), 0, $var1-&gt;split_crypt) : md5( $data );<br />
}<br />
}</p>
<p>public static function _run_encrypt_function( $data, $func )<br />
{<br />
$var1= new encryptdata_core;<br />
if( !function_exists( $func ) )<br />
{<br />
$func = &#8216;md5&#8242;;<br />
}</p>
<p>if( $var1-&gt;repeats &gt; 0 )<br />
{<br />
for( $i = 0; $i &lt; $var1-&gt;repeats; $i++ )<br />
{<br />
$data = $func( $data );<br />
}<br />
}<br />
return $data;<br />
}</p>
<p>} // End encryptdata</p>
<p>In helpers file all the functions will be static.</p>
<p>How to call this class in my controller:</p>
<p>To call this file you will simply call function of this class by classname without &#8216;_core&#8217;.  &#8216;_core&#8217; is internally handle by kohana.</p>
<p><strong>echo encryptdata::do_encrypt(&#8216;ravi prakash&#8217;,'md5&#8242;, &#8216;md5&#8242;, 2, 0 );</strong></p>
<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..</p>
<p><strong>I hope this article will help you to learn deeply Kohana.<br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/php/kohana/make-a-custom-helpers-in-kohana-for-encrypt-data/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auth Module with SPRIG Library in Kohana</title>
		<link>http://witslog.com/wiki/technical/php/kohana/auth-module-with-sprig-library-in-kohana</link>
		<comments>http://witslog.com/wiki/technical/php/kohana/auth-module-with-sprig-library-in-kohana#comments</comments>
		<pubDate>Mon, 15 Mar 2010 10:57:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Kohana]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=89</guid>
		<description><![CDATA[Hi Guys please take a look on following article for working with auth module with sprig in koahana.
Basic Process



Download and install  the Sprig Module


Create a users table in your database


Set up your template controller to  redirect users who are not logged in


Create and...]]></description>
			<content:encoded><![CDATA[<p>Hi Guys please take a look on following article for working with auth module with sprig in koahana.</p>
<h4><a id="basic_process" name="basic_process">Basic Process</a></h4>
<div>
<ol>
<li>
<div><a title="http://github.com/shadowhand/sprig" rel="nofollow" href="http://github.com/shadowhand/sprig">Download</a> and install  the Sprig Module</div>
</li>
<li>
<div>Create a <strong>users</strong> table in your database</div>
</li>
<li>
<div>Set up your template controller to  redirect users who are not logged in</div>
</li>
<li>
<div>Create and  auth controller for loggin a user in and out</div>
</li>
</ol>
</div>
<h4><a id="creating_the_database" name="creating_the_database">Creating the Database</a></h4>
<div>
<p>Here is a database structure that can be used with the <a title="http://github.com/shadowhand/sprig/blob/master/classes/sprig/model/user.php" rel="nofollow" href="http://github.com/shadowhand/sprig/blob/master/classes/sprig/model/user.php">Sprig User Model</a>.</p>
<pre>  CREATE TABLE `users` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `username` varchar(30) NOT NULL,
    `password` varchar(40) default NULL,
    PRIMARY KEY  (`id`)
  ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;</pre>
</div>
<h4><a id="set_up_your_template_controller_to_redirect_users_who_are_not_logged_in" name="set_up_your_template_controller_to_redirect_users_who_are_not_logged_in">Set  up your template controller to redirect users who are not logged in</a></h4>
<div>
<p>The following template controller looks  for a user cookie for every request.  If a cookie is found it attempts  to load the user record. If no cookie is found or the user record is not  successfully loaded the controller redirects to the login form.</p>
<pre>  abstract class Controller_Website extends Controller_Template {

      // Public variable for the user model
  	public $user;

      // Using TRUE means requests will require authentication by default
  	public $auth_required = TRUE;

  	public function __construct(Request $request)
  	{
  	    parent::__construct($request);

          // If a user id cookie is found attempt to load user
  	    if ($id = Cookie::get('user'))
  	    {
  	    	$user = Sprig::factory('user')
  	    		-&gt;values(array('id' =&gt; $id))
  	    		-&gt;load();

  	    	if ($user-&gt;loaded())
  	    	{
  	    		// User is logged in
  	    		$this-&gt;user = $user;
  	    	}
  	    }

          // If user is not logged in and login is required
  	    if ($this-&gt;auth_required AND ! $this-&gt;user)
  	    {
  	    	// Redirect to the login page
  	    	$request-&gt;redirect('auth/login');
  	    }
  	}
  }</pre>
</div>
<h4><a id="the_auth_controller" name="the_auth_controller">The Auth  Controller</a></h4>
<div>
<p>The Auth controller below generates and  validates a login form.</p>
<pre>  class Controller_Auth extends Controller_Website {

      // This controller does not require authentication
  	public $auth_required = FALSE;

      // The login action
  	public function action_login()
  	{
              // Set our View and bind with $user and $errors
  		$this-&gt;template-&gt;title   = 'Login';
  		$this-&gt;template-&gt;content = View::factory('auth/login')
  			-&gt;bind('user', $user)
  			-&gt;bind('errors', $errors);

  		// Load an empty user
  		$user = Sprig::factory('user');

              // Load rules defined in sprig model into validation factory
  		$post = Validate::factory($_POST)
  			-&gt;rules('username', $user-&gt;field('username')-&gt;rules)
  			-&gt;rules('password', $user-&gt;field('password')-&gt;rules);

              // Validate the post
  		if ($post-&gt;check())
  		{
  			// Load the user by username and password
  			$user-&gt;values($post-&gt;as_array())-&gt;load();

  			if ($user-&gt;loaded())
  			{
  				// Store the user id
  				Cookie::set('user', $user-&gt;id);

  				// Redirect to the home page
  				$this-&gt;request-&gt;redirect('');
  			}
  			else
  			{
  				$post-&gt;error('password', 'invalid');
  			}
  		}

  		$errors = $post-&gt;errors('auth/login');
  	}

  	public function action_logout()
  	{
  		$this-&gt;template-&gt;title = 'logout';
  		$this-&gt;template-&gt;content = View::factory('auth/logout');

  		if (isset($_POST['logout']))
  		{
  			// Delete the user cookie
  			Cookie::delete('user');

  			// Redirect to the home page
  			$this-&gt;request-&gt;redirect('');
  		}
  	}

  } // End Users</pre>
</div>
<h5><a id="the_views" name="the_views">The Views</a></h5>
<div>
<p>Here is the <strong>auth/login</strong> View</p>
<pre>  &lt;?php echo form::open(NULL, array('id' =&gt; 'login')) ?&gt;

  &lt;h1&gt;&lt;?php echo __('Login') ?&gt;&lt;/h1&gt;

  &lt;?php include Kohana::find_file('views', 'errors') ?&gt;

  &lt;ol&gt;
   &lt;li&gt;&lt;label&gt;&lt;span&gt;&lt;?php echo __('Username') ?&gt;&lt;/span&gt; &lt;?php echo form::input('username', $user-&gt;username) ?&gt;&lt;/label&gt;&lt;/li&gt;
   &lt;li&gt;&lt;label&gt;&lt;span&gt;&lt;?php echo __('Password') ?&gt;&lt;/span&gt; &lt;?php echo form::password('password') ?&gt;&lt;/label&gt;&lt;/li&gt;
  &lt;/ol&gt;

  &lt;?php echo form::button(NULL, 'Login', array('type' =&gt; 'submit')) ?&gt;

  &lt;?php echo form::close() ?&gt;</pre>
<p>Here is the <strong>auth/logout</strong> View</p>
<pre>  &lt;?php echo form::open(NULL, array('id' =&gt; 'logout')) ?&gt;

  &lt;h1&gt;Log Out&lt;/h1&gt;

  &lt;p&gt;Are you sure you want to log out?&lt;/p&gt;

  &lt;?php echo form::button('logout', 'Yes, please!', array('type' =&gt; 'submit')) ?&gt;

  &lt;?php echo form::close() ?&gt;</pre>
<p>And our <strong>errors</strong> View  which is included into <strong>auth/login</strong> when there is an error.</p>
<pre>  &lt;?php if ( ! empty($errors)): ?&gt;
  &lt;ul&gt;
  &lt;?php foreach ($errors as $field =&gt; $error): ?&gt;
   &lt;li rel="&lt;?php echo $field ?&gt;"&gt;&lt;?php echo ucfirst($error) ?&gt;&lt;/li&gt;
  &lt;?php endforeach ?&gt;
  &lt;/ul&gt;
  &lt;?php endif ?&gt;</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/php/kohana/auth-module-with-sprig-library-in-kohana/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>get and set kohana config value during real time manipulation</title>
		<link>http://witslog.com/wiki/technical/php/kohana/get-and-set-kohana-config-value-during-real-time-manipulation</link>
		<comments>http://witslog.com/wiki/technical/php/kohana/get-and-set-kohana-config-value-during-real-time-manipulation#comments</comments>
		<pubDate>Mon, 15 Mar 2010 06:00:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Kohana]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=85</guid>
		<description><![CDATA[You can now directly set and get the config value of Kohana by this way:
Set Config value in Kohana:
Kohana::config_set(filename.variablename, value);
for example:
suppose we want to change language  from Danish to English

Kohana::config_set(&#8216;locale.language&#8217;, array(&#8216;en-us&#8217;,'United States&#8217;));

here locale is config filename while language is variable which lies in locale.php.  You...]]></description>
			<content:encoded><![CDATA[<p>You can now directly set and get the config value of Kohana by this way:</p>
<h3><span style="color: #000000"><strong>Set Config value in Kohana:</strong></span></h3>
<p><strong>Kohana::config_set(filename.variablename, value);</strong></p>
<p><strong>for example:</strong></p>
<p><strong>suppose we want to change language  from Danish to English<br />
</strong></p>
<p><strong>Kohana::config_set(&#8216;locale.language&#8217;, array(&#8216;en-us&#8217;,'United States&#8217;));<br />
</strong></p>
<p><strong>here locale is config filename while language is variable which lies in locale.php.  You can set value in both array and string.<br />
</strong></p>
<h3><strong>Get Config value in Kohana:</strong></h3>
<p><strong>Kohana::config(filename.variablename);</strong></p>
<p><strong>for example:</strong></p>
<p><strong>To get current language then we use below script</strong></p>
<p><strong>Kohana::config(&#8216;locale.language&#8217;);<br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/php/kohana/get-and-set-kohana-config-value-during-real-time-manipulation/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wordpress</title>
		<link>http://witslog.com/wiki/technical/php/wordpress/wordpress</link>
		<comments>http://witslog.com/wiki/technical/php/wordpress/wordpress#comments</comments>
		<pubDate>Sat, 06 Mar 2010 23:04:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=25</guid>
		<description><![CDATA[WordPress is an open source blog publishing application  powered by PHP  and MySQL  which can also be used for content management. It has many features including a workflow[clarification needed], a plugin architecture and a templating system. Used by over 2% of the...]]></description>
			<content:encoded><![CDATA[<p>WordPress is an open source blog publishing application  powered by PHP  and MySQL  which can also be used for content management. It has many features including a workflow[clarification needed], a plugin architecture and a templating system. Used by over 2% of the 10,000 biggest websites, WordPress is the most popular blog software in use today.</p>
<p>It was first released in May 2003 by Matt Mullenweg as a fork of b2/cafelog. As of September 2009, it was being used by 202 million websites worldwide.<br />
Features<br />
WordPress Template Hierarchy</p>
<h2><span id="Features" class="mw-headline">Features</span></h2>
<div class="thumb tright">
<div class="thumbinner" style="width: 252px;"><a class="image" href="http://en.wikipedia.org/wiki/File:Wordpress_Template_Hierarchy.png"><img class="thumbimage" src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Wordpress_Template_Hierarchy.png/250px-Wordpress_Template_Hierarchy.png" alt="" width="250" height="123" /></a></p>
<div class="thumbcaption">
<div class="magnify"><a class="internal" title="Enlarge" href="http://en.wikipedia.org/wiki/File:Wordpress_Template_Hierarchy.png"><img src="http://bits.wikimedia.org/skins-1.5/common/images/magnify-clip.png" alt="" width="15" height="11" /></a></div>
<p>WordPress Template Hierarchy</p>
</div>
</div>
</div>
<p>WordPress has a <a title="Template  processor" href="http://en.wikipedia.org/wiki/Template_processor">templating</a> system, which includes <a class="mw-redirect" title="Widgets" href="http://en.wikipedia.org/wiki/Widgets#Widget_management_systems">widgets</a> that can be rearranged  without editing <a title="PHP" href="http://en.wikipedia.org/wiki/PHP">PHP</a> or <a title="HTML" href="http://en.wikipedia.org/wiki/HTML">HTML</a> code, as well as <a title="Theme  (computing)" href="http://en.wikipedia.org/wiki/Theme_%28computing%29">themes</a> that can be installed and switched between. The  PHP and HTML code in themes can also be edited for more advanced  customizations. WordPress also features integrated link management; a <a class="mw-redirect" title="Search engine" href="http://en.wikipedia.org/wiki/Search_engine">search engine</a>-friendly, clean <a title="Permalink" href="http://en.wikipedia.org/wiki/Permalink">permalink</a> structure; the ability to assign nested, multiple categories to  articles; and support for <a title="Tag  (metadata)" href="http://en.wikipedia.org/wiki/Tag_%28metadata%29">tagging</a> of posts and articles. Automatic filters that  provide for proper formatting and styling of text in articles (for  example, converting regular quotes to <a class="mw-redirect" title="Smart quotes" href="http://en.wikipedia.org/wiki/Smart_quotes">smart quotes</a>) are also included. WordPress also  supports the <a title="Trackback" href="http://en.wikipedia.org/wiki/Trackback">Trackback</a> and <a title="Pingback" href="http://en.wikipedia.org/wiki/Pingback">Pingback</a> standards for displaying links to other sites that have themselves  linked to a post or article. Finally, WordPress has a rich <a class="mw-redirect" title="Plugin" href="http://en.wikipedia.org/wiki/Plugin">plugin architecture</a> which allows users and  developers to extend its functionality beyond the features that come as  part of the base install.</p>
<p>Native applications exist for Android<sup id="cite_ref-4" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-4"><span>[</span>5<span>]</span></a></sup>,  iPhone/iPod Touch<sup id="cite_ref-5" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-5"><span>[</span>6<span>]</span></a></sup>,  and BlackBerry<sup id="cite_ref-6" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-6"><span>[</span>7<span>]</span></a></sup> which provide access to some of the features in the WordPress Admin  panel and work with WordPress.com and many WordPress.org blogs.</p>
<h2><span class="editsection">[<a title="Edit section: Deployment" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=2">edit</a>]</span> <span id="Deployment" class="mw-headline">Deployment</span></h2>
<p>WordPress can be deployed using various methods on a hosting  environment. Users have the option to download the current version of  WordPress from <a class="external text" rel="nofollow" href="http://wordpress.org/">WordPress.org</a>. From there, they can upload the source  code and its dependencies to their hosting environment. Previously seen  as a difficult method to install WordPress, extensive documentation as  well as a user friendly installer have proved different.</p>
<p>WordPress can also be installed via <a title="Package management system" href="http://en.wikipedia.org/wiki/Package_management_system">package management system</a> or  deploying a ready-to-use <a title="TurnKey Linux Virtual Appliance Library" href="http://en.wikipedia.org/wiki/TurnKey_Linux_Virtual_Appliance_Library">TurnKey</a> WordPress  appliance, which does not require any manual setup or configuration.<sup id="cite_ref-7" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-7"><span>[</span>8<span>]</span></a></sup></p>
<p>The <a title="Microsoft Web Platform Installer" href="http://en.wikipedia.org/wiki/Microsoft_Web_Platform_Installer">Microsoft Web Platform  Installer</a> which installs WordPress on <a class="mw-redirect" title="Windows" href="http://en.wikipedia.org/wiki/Windows">Windows</a> and <a title="Internet Information Services" href="http://en.wikipedia.org/wiki/Internet_Information_Services">IIS</a>. The <a title="Microsoft Web Platform Installer" href="http://en.wikipedia.org/wiki/Microsoft_Web_Platform_Installer">Web PI</a> will automatically  detect any missing dependencies such as <a title="PHP" href="http://en.wikipedia.org/wiki/PHP">PHP</a> or <a title="MySQL" href="http://en.wikipedia.org/wiki/MySQL">MySQL</a> then  install and configure them<sup id="cite_ref-8" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-8"><span>[</span>9<span>]</span></a></sup> before installing WordPress.</p>
<p>Advanced users have the option to have WordPress downloaded to their  server and consistently updated using <a title="Subversion (software)" href="http://en.wikipedia.org/wiki/Subversion_%28software%29">SVN</a>. This will allow users to remain  updated easily.<sup id="cite_ref-9" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-9"><span>[</span>10<span>]</span></a></sup></p>
<p>Free hosting services such as <a title="WordPress.com" href="http://en.wikipedia.org/wiki/WordPress.com">WordPress.com</a> offer users an easy way to deploy a WordPress blog on-line without  having to install WordPress on your own web server. Many shared web  hosting services also offer automated WordPress installation through  their control panel.</p>
<h2><span class="editsection">[<a title="Edit section: History" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=3">edit</a>]</span> <span id="History" class="mw-headline">History</span></h2>
<p><em>b2/cafelog</em>, more commonly known as simply <em>b2</em> or <em>cafelog</em>,  was the precursor to WordPress.<sup id="cite_ref-10" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-10"><span>[</span>11<span>]</span></a></sup> b2/cafelog was estimated to have been employed on approximately 2,000  blogs as of May 2003. It was written in PHP for use with <a title="MySQL" href="http://en.wikipedia.org/wiki/MySQL">MySQL</a> by  Michel Valdrighi, who is now a contributing developer to WordPress.  Although WordPress is the official successor, another project, <a title="B2evolution" href="http://en.wikipedia.org/wiki/B2evolution">b2evolution</a>,  is also in active development.</p>
<p>WordPress first appeared in 2003 as a joint effort between <a title="Matt  Mullenweg" href="http://en.wikipedia.org/wiki/Matt_Mullenweg">Matt Mullenweg</a> and Mike Little to create a <a title="Fork (software development)" href="http://en.wikipedia.org/wiki/Fork_%28software_development%29">fork</a> of b2.<sup id="cite_ref-11" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-11"><span>[</span>12<span>]</span></a></sup> The name <em>WordPress</em> was suggested by Christine Selleck, a friend  of Mullenweg.<sup id="cite_ref-12" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-12"><span>[</span>13<span>]</span></a></sup></p>
<p>In 2004 the licensing terms for the competing <a title="Movable Type" href="http://en.wikipedia.org/wiki/Movable_Type">Movable  Type</a> package were changed by <a title="Six Apart" href="http://en.wikipedia.org/wiki/Six_Apart">Six  Apart</a>, and many of its users migrated to WordPress – causing a  marked and continuing growth in WordPress&#8217;s popularity.<sup class="Template-Fact" style="white-space: nowrap;" title="This claim needs references to reliable  sources from March 2009">[<em><a title="Wikipedia:Citation needed" href="http://en.wikipedia.org/wiki/Wikipedia:Citation_needed">citation needed</a></em>]</sup> By  October, 2009, the 2009 Open Source CMS Market Share Report reached the  conclusion that WordPress enjoys the greatest brand strength of any open  source content management systems. That conclusion was based on an  extensive analysis of rate of adoption patterns and brand strength and  was backed by a survey of users.<sup id="cite_ref-13" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-13"><span>[</span>14<span>]</span></a></sup></p>
<h3><span class="editsection">[<a title="Edit section: Awards" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=4">edit</a>]</span> <span id="Awards" class="mw-headline">Awards</span></h3>
<p>In 2007 WordPress won a <a title="Packt" href="http://en.wikipedia.org/wiki/Packt">Packt</a> Open Source CMS Award.<sup id="cite_ref-14" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-14"><span>[</span>15<span>]</span></a></sup></p>
<p>In 2009 WordPress won the best Open Source CMS Award.<sup id="cite_ref-15" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-15"><span>[</span>16<span>]</span></a></sup></p>
<h3><span class="editsection">[<a title="Edit section: Removal of sponsored themes" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=5">edit</a>]</span> <span id="Removal_of_sponsored_themes" class="mw-headline">Removal of  sponsored themes</span></h3>
<p>On 10 July 2007, following a discussion on the WordPress ideas forum<sup id="cite_ref-16" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-16"><span>[</span>17<span>]</span></a></sup> and a post by Mark Ghosh in his blog Weblog Tools Collection,<sup id="cite_ref-17" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-17"><span>[</span>18<span>]</span></a></sup> Matt Mullenweg announced that the official WordPress theme directory at  <a class="external free" rel="nofollow" href="http://themes.wordpress.net/">http://themes.wordpress.net</a> would no longer host  themes containing sponsored links.<sup id="cite_ref-18" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-18"><span>[</span>19<span>]</span></a></sup><sup id="cite_ref-19" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-19"><span>[</span>20<span>]</span></a></sup> Although this move was criticized by designers and users of sponsored  themes<sup class="Template-Fact" style="white-space: nowrap;" title="This claim needs references to  reliable sources from December 2009">[<em><a title="Wikipedia:Citation needed" href="http://en.wikipedia.org/wiki/Wikipedia:Citation_needed">citation needed</a></em>]</sup>, it was  applauded by WordPress users who consider such themes to be spam.<sup class="Template-Fact" style="white-space: nowrap;" title="This claim needs references to reliable  sources from December 2009">[<em><a title="Wikipedia:Citation needed" href="http://en.wikipedia.org/wiki/Wikipedia:Citation_needed">citation needed</a></em>]</sup> The  official WordPress theme directory ceased to accept any new themes,  including those without sponsored links, shortly after the announcement  was made.<sup id="cite_ref-20" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-20"><span>[</span>21<span>]</span></a></sup> Sponsored themes are still available elsewhere, as well as free themes  with additional sponsored links added by third parties.<sup id="cite_ref-21" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-21"><span>[</span>22<span>]</span></a></sup> <sup id="cite_ref-22" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-22"><span>[</span>23<span>]</span></a></sup></p>
<p>On July 18, 2008, a new theme directory opened at <a class="external free" rel="nofollow" href="http://wordpress.org/extend/themes/">http://wordpress.org/extend/themes/</a>. It was styled  along the same lines as the plug-ins directory.<sup id="cite_ref-23" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-23"><span>[</span>24<span>]</span></a></sup> Any theme that is uploaded to it will be vetted, first by an automated  program and then by a human.</p>
<p>On December 12, 2008, over 200 themes were removed from the WordPress  theme directory as they did not comply with GPL License requirements.<sup id="cite_ref-24" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-24"><span>[</span>25<span>]</span></a></sup><sup id="cite_ref-25" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-25"><span>[</span>26<span>]</span></a></sup> Today, author mentions are permitted in each theme but the official  policy does not allow for sponsorships or links to sites distributing  non-GPL compatible themes. Non-GPL compliant themes are now hosted on  other theme directories.</p>
<h3><span class="editsection">[<a title="Edit section: Releases" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=6">edit</a>]</span> <span id="Releases" class="mw-headline">Releases</span></h3>
<p>Most WordPress releases are code named after well-known <a title="Jazz" href="http://en.wikipedia.org/wiki/Jazz">jazz</a> musicians  starting after version 1.0.<sup id="cite_ref-26" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-26"><span>[</span>27<span>]</span></a></sup></p>
<table class="wikitable" border="1">
<tbody>
<tr>
<th>Version</th>
<th>Code Name</th>
<th>Release Date</th>
<th>Notes</th>
</tr>
<tr>
<td>0.70</td>
<td></td>
<td>27 May 2003</td>
<td>contained the same file structure as its predecessor, <strong>b2/cafelog</strong>.  Only 0.71-gold is available for download in the official WordPress  Release Archive page.</td>
</tr>
<tr>
<td>1.2</td>
<td><em><a title="Charles Mingus" href="http://en.wikipedia.org/wiki/Charles_Mingus">Mingus</a></em></td>
<td>22 May 2004</td>
<td>It&#8217;s notable for containing the support of Plugins. The same Plugin  identification headers are still used unchanged in the latest WordPress  releases.</td>
</tr>
<tr>
<td>1.5</td>
<td><em><a title="Billy Strayhorn" href="http://en.wikipedia.org/wiki/Billy_Strayhorn">Strayhorn</a></em></td>
<td>17 February 2005</td>
<td><em>Strayhorn</em> added a range of vital features, such as the  ability to manage static pages and a template/theme system. It was also  equipped with a new default template (code named <em><a title="Stanley  Kubrick" href="http://en.wikipedia.org/wiki/Stanley_Kubrick">Kubrick</a></em><sup id="cite_ref-27" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-27"><span>[</span>28<span>]</span></a></sup>)  designed by <a class="new" title="Michael Heilemann (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Michael_Heilemann&amp;action=edit&amp;redlink=1">Michael  Heilemann</a>.</td>
</tr>
<tr>
<td>2.0</td>
<td><em><a title="Duke  Ellington" href="http://en.wikipedia.org/wiki/Duke_Ellington">Duke</a></em></td>
<td>31 December 2005</td>
<td>This version added rich editing, better administration tools, image  uploading, faster posting, an improved import system, and completely  overhauled the back end. WordPress 2.0 also offered various improvements  to plugin developers.<sup id="cite_ref-28" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-28"><span>[</span>29<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.1</td>
<td><em><a title="Ella Fitzgerald" href="http://en.wikipedia.org/wiki/Ella_Fitzgerald">Ella</a></em></td>
<td>22 January 2007</td>
<td>In addition to correcting security issues, version 2.1 featured a  redesigned interface, enhanced editing tools (including integrated spell  check and auto save), and improved content management options.</td>
</tr>
<tr>
<td>2.2</td>
<td><em><a title="Stan  Getz" href="http://en.wikipedia.org/wiki/Stan_Getz">Getz</a></em></td>
<td>16 May 2007</td>
<td>Version 2.2 featured widget support for templates, updated <a title="Atom  (standard)" href="http://en.wikipedia.org/wiki/Atom_%28standard%29">Atom</a> feed support, and speed optimizations.<sup id="cite_ref-29" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-29"><span>[</span>30<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.3</td>
<td><em><a title="Dexter Gordon" href="http://en.wikipedia.org/wiki/Dexter_Gordon">Dexter</a></em></td>
<td>24 September 2007</td>
<td>Version 2.3 featured native tagging support, new <a title="Taxonomy" href="http://en.wikipedia.org/wiki/Taxonomy">taxonomy</a> system for categories, and easy notification of updates. 2.3 also fully  supports <a title="Atom (standard)" href="http://en.wikipedia.org/wiki/Atom_%28standard%29">Atom 1.0</a> along with the publishing protocol,  and included some much needed security fixes.<sup id="cite_ref-30" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-30"><span>[</span>31<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.5</td>
<td><em><a title="Michael Brecker" href="http://en.wikipedia.org/wiki/Michael_Brecker">Brecker</a></em></td>
<td>29 March 2008</td>
<td>Developers skipped the release of version 2.4 so version 2.5  contained two releases worth of new code. WordPress 2.5 saw a complete  overhaul of the administration interface and the WordPress website was  also redesigned to match the new style.<sup id="cite_ref-31" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-31"><span>[</span>32<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.6</td>
<td><em><a title="McCoy  Tyner" href="http://en.wikipedia.org/wiki/McCoy_Tyner">Tyner</a></em></td>
<td>15 July 2008</td>
<td><em>Tyner</em> contained new features that made WordPress a more  powerful CMS: you can now <a title="Revision  control" href="http://en.wikipedia.org/wiki/Revision_control">track changes</a> to every post and page and easily post from  wherever you are on the web.<sup id="cite_ref-32" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-32"><span>[</span>33<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.7</td>
<td><em><a title="John  Coltrane" href="http://en.wikipedia.org/wiki/John_Coltrane">Coltrane</a></em></td>
<td>11 December 2008</td>
<td>It once again saw the administration interface completely  redesigned. It also introduces an automated upgrade feature, and  automatic installation of plugins from within the administration  interface.<sup id="cite_ref-33" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-33"><span>[</span>34<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.8</td>
<td><em><a title="Chet  Baker" href="http://en.wikipedia.org/wiki/Chet_Baker">Baker</a></em></td>
<td>10 June 2009</td>
<td><em>Baker</em> offered improvements in speed, and automatic  installation of themes from within the administration interface. It also  introduces the CodePress editor for syntax highlighting and a  redesigned widget interface.<sup id="cite_ref-34" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-34"><span>[</span>35<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.9</td>
<td><em><a title="Carmen  McRae" href="http://en.wikipedia.org/wiki/Carmen_McRae">Carmen</a></em></td>
<td>19 December 2009</td>
<td><em>Carmen</em> offers a global undo feature, a built-in image editor,  batch plugin updating, and numerous under-the-hood tweaks.<sup id="cite_ref-35" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-35"><span>[</span>36<span>]</span></a></sup></td>
</tr>
</tbody>
</table>
<h2><span class="editsection">[<a title="Edit section: Vulnerabilities" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=7">edit</a>]</span> <span id="Vulnerabilities" class="mw-headline">Vulnerabilities</span></h2>
<p>Many security issues<sup id="cite_ref-36" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-36"><span>[</span>37<span>]</span></a></sup><sup id="cite_ref-37" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-37"><span>[</span>38<span>]</span></a></sup> were uncovered in the software, particularly in 2007 and 2008.  According to <a title="Secunia" href="http://en.wikipedia.org/wiki/Secunia">Secunia</a>, WordPress in April 2009 had 7 unpatched  security advisories (out of 32 total), with a maximum rating of &#8220;Less  Critical&#8221;.<sup id="cite_ref-38" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-38"><span>[</span>39<span>]</span></a></sup></p>
<p>BlogSecurity maintains a list of WordPress vulnerabilities,<sup id="cite_ref-39" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-39"><span>[</span>40<span>]</span></a></sup> up to version 2.3. <a title="Secunia" href="http://en.wikipedia.org/wiki/Secunia">Secunia</a> keeps a more recently updated list.<sup id="cite_ref-40" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-40"><span>[</span>41<span>]</span></a></sup></p>
<p>In January 2007, many high-profile <a title="Search engine optimization" href="http://en.wikipedia.org/wiki/Search_engine_optimization">Search engine optimization</a> (SEO)  blogs, as well as many low-profile commercial blogs featuring <a title="AdSense" href="http://en.wikipedia.org/wiki/AdSense">AdSense</a>,  were targeted and attacked with a WordPress exploit.<sup id="cite_ref-41" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-41"><span>[</span>42<span>]</span></a></sup> A separate vulnerability on one of the project site&#8217;s <a title="Web server" href="http://en.wikipedia.org/wiki/Web_server">web  servers</a> allowed an attacker to introduce exploitable code in the  form of a <a title="Backdoor (computing)" href="http://en.wikipedia.org/wiki/Backdoor_%28computing%29">back door</a> to some downloads of  WordPress 2.1.1. The 2.1.2 release addressed this issue; an advisory  released at the time advised all users to upgrade immediately.<sup id="cite_ref-42" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-42"><span>[</span>43<span>]</span></a></sup></p>
<p>In May 2007, a study revealed that 98% of WordPress blogs being run  were exploitable because they were running outdated and unsupported  versions of the software.<sup id="cite_ref-43" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-43"><span>[</span>44<span>]</span></a></sup></p>
<p>In a June 2007 interview, Stefen Esser, the founder of the PHP  Security Response Team, spoke critically of WordPress&#8217;s security track  record, citing problems with the application&#8217;s architecture that made it  unnecessarily difficult to write code that is secure from <a title="SQL injection" href="http://en.wikipedia.org/wiki/SQL_injection">SQL  injection</a> vulnerabilities, as well as some other problems.<sup id="cite_ref-44" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-44"><span>[</span>45<span>]</span></a></sup></p>
<h2><span class="editsection">[<a title="Edit section: Multi-blogging" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=8">edit</a>]</span> <span id="Multi-blogging" class="mw-headline">Multi-blogging</span></h2>
<p>WordPress supports one weblog per installation, although multiple  concurrent copies may be run from different directories if configured to  use separate database tables.</p>
<p>WordPress Multi-User (WordPress MU, or just WPMU) is a fork of  WordPress created to allow simultaneous blogs to exist within one  installation. WordPress MU makes it possible for anyone with a website  to host their own blogging community, control, and moderate all the  blogs from a single dashboard. WordPress MU adds eight new data tables  for each blog.</p>
<p>Matt Mullenweg announced that WordPress MU would be merged with  WordPress as part of a future release (version 3.0).<sup id="cite_ref-45" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-45"><span>[</span>46<span>]</span></a></sup></p>
<p><a title="Lyceum (software)" href="http://en.wikipedia.org/wiki/Lyceum_%28software%29">Lyceum</a> is another enterprise-edition of  WordPress. Unlike WordPress MU, Lyceum stores all of its information in a  set number of database tables. Notable communities that use Lyceum are  TeachFor.Us<sup id="cite_ref-46" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-46"><span>[</span>47<span>]</span></a></sup> (Teach For America teachers&#8217; blogs), BodyBlogs and the Hopkins Blogs.</p>
<p>In 2008 <a class="new" title="Andy Peatling (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Andy_Peatling&amp;action=edit&amp;redlink=1">Andy Peatling</a> joined <a title="Automattic" href="http://en.wikipedia.org/wiki/Automattic">Automattic</a> to continue his work on <a title="BuddyPress" href="http://en.wikipedia.org/wiki/BuddyPress">BuddyPress</a> &#8211; a plug-in extension of WPMU that is adding additional community  features to WordPress.<sup id="cite_ref-47" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-47"><span>[</span>48<span>]</span></a></sup></p>
<h2><span class="editsection">[<a title="Edit section: Key developers" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=9">edit</a>]</span> <span id="Key_developers" class="mw-headline">Key developers</span></h2>
<p>WordPress development is led by <a class="new" title="Ryan Boren (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Ryan_Boren&amp;action=edit&amp;redlink=1">Ryan Boren</a> and  <a title="Matt  Mullenweg" href="http://en.wikipedia.org/wiki/Matt_Mullenweg">Matt Mullenweg</a>. Mullenweg and <a class="new" title="Mike Little (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Mike_Little&amp;action=edit&amp;redlink=1">Mike Little</a> were co-founders of the project.</p>
<p>The core contributing developers include:</p>
<div class="references-small" style="margin-left: 1.5em;">
<ul>
<li><a class="external text" rel="nofollow" href="http://dougal.gunters.org/">Dougal Campbell</a></li>
<li><a class="external text" rel="nofollow" href="http://markjaquith.com/">Mark Jaquith</a></li>
<li><a class="external text" rel="nofollow" href="http://ocaoimh.ie/">Donncha  Ó Caoimh</a></li>
<li><a class="external text" rel="nofollow" href="http://skeltoac.com/">Andy  Skelton</a></li>
<li><a class="external text" rel="nofollow" href="http://intraordinary.com/">Michel Valdrighi</a></li>
<li><a class="external text" rel="nofollow" href="http://blog.ftwr.co.uk/">Peter Westwood</a></li>
</ul>
</div>
<p>Though largely developed by the community surrounding it, WordPress  is closely associated with <a title="Automattic" href="http://en.wikipedia.org/wiki/Automattic">Automattic</a>,  where some of WordPress&#8217;s main contributing developers are employees.<sup id="cite_ref-48" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-48"><span>[</span>49<span>]</span></a></sup></p>
<p>WordPress is also developed by its community, including WP testers, a  group of volunteers who test each release. They have early access to <a class="mw-redirect" title="Nightly  builds" href="http://en.wikipedia.org/wiki/Nightly_builds">nightly builds</a>, beta versions and  release candidates. Errors are documented in a special <a title="Mailing list" href="http://en.wikipedia.org/wiki/Mailing_list">mailing  list</a>, or the project&#8217;s <a title="Trac" href="http://en.wikipedia.org/wiki/Trac">Trac</a> tool.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">
<h2><span id="Features" class="mw-headline">Features</span></h2>
<div class="thumb tright">
<div class="thumbinner" style="width: 252px;"><a class="image" href="http://en.wikipedia.org/wiki/File:Wordpress_Template_Hierarchy.png"><img class="thumbimage" src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Wordpress_Template_Hierarchy.png/250px-Wordpress_Template_Hierarchy.png" alt="" width="250" height="123" /></a></p>
<div class="thumbcaption">
<div class="magnify"><a class="internal" title="Enlarge" href="http://en.wikipedia.org/wiki/File:Wordpress_Template_Hierarchy.png"><img src="http://bits.wikimedia.org/skins-1.5/common/images/magnify-clip.png" alt="" width="15" height="11" /></a></div>
<p>WordPress Template Hierarchy</p>
</div>
</div>
</div>
<p>WordPress has a <a title="Template  processor" href="http://en.wikipedia.org/wiki/Template_processor">templating</a> system, which includes <a class="mw-redirect" title="Widgets" href="http://en.wikipedia.org/wiki/Widgets#Widget_management_systems">widgets</a> that can be rearranged  without editing <a title="PHP" href="http://en.wikipedia.org/wiki/PHP">PHP</a> or <a title="HTML" href="http://en.wikipedia.org/wiki/HTML">HTML</a> code, as well as <a title="Theme  (computing)" href="http://en.wikipedia.org/wiki/Theme_%28computing%29">themes</a> that can be installed and switched between. The  PHP and HTML code in themes can also be edited for more advanced  customizations. WordPress also features integrated link management; a <a class="mw-redirect" title="Search engine" href="http://en.wikipedia.org/wiki/Search_engine">search engine</a>-friendly, clean <a title="Permalink" href="http://en.wikipedia.org/wiki/Permalink">permalink</a> structure; the ability to assign nested, multiple categories to  articles; and support for <a title="Tag  (metadata)" href="http://en.wikipedia.org/wiki/Tag_%28metadata%29">tagging</a> of posts and articles. Automatic filters that  provide for proper formatting and styling of text in articles (for  example, converting regular quotes to <a class="mw-redirect" title="Smart quotes" href="http://en.wikipedia.org/wiki/Smart_quotes">smart quotes</a>) are also included. WordPress also  supports the <a title="Trackback" href="http://en.wikipedia.org/wiki/Trackback">Trackback</a> and <a title="Pingback" href="http://en.wikipedia.org/wiki/Pingback">Pingback</a> standards for displaying links to other sites that have themselves  linked to a post or article. Finally, WordPress has a rich <a class="mw-redirect" title="Plugin" href="http://en.wikipedia.org/wiki/Plugin">plugin architecture</a> which allows users and  developers to extend its functionality beyond the features that come as  part of the base install.</p>
<p>Native applications exist for Android<sup id="cite_ref-4" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-4"><span>[</span>5<span>]</span></a></sup>,  iPhone/iPod Touch<sup id="cite_ref-5" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-5"><span>[</span>6<span>]</span></a></sup>,  and BlackBerry<sup id="cite_ref-6" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-6"><span>[</span>7<span>]</span></a></sup> which provide access to some of the features in the WordPress Admin  panel and work with WordPress.com and many WordPress.org blogs.</p>
<h2><span class="editsection">[<a title="Edit section: Deployment" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=2">edit</a>]</span> <span id="Deployment" class="mw-headline">Deployment</span></h2>
<p>WordPress can be deployed using various methods on a hosting  environment. Users have the option to download the current version of  WordPress from <a class="external text" rel="nofollow" href="http://wordpress.org/">WordPress.org</a>. From there, they can upload the source  code and its dependencies to their hosting environment. Previously seen  as a difficult method to install WordPress, extensive documentation as  well as a user friendly installer have proved different.</p>
<p>WordPress can also be installed via <a title="Package management system" href="http://en.wikipedia.org/wiki/Package_management_system">package management system</a> or  deploying a ready-to-use <a title="TurnKey Linux Virtual Appliance Library" href="http://en.wikipedia.org/wiki/TurnKey_Linux_Virtual_Appliance_Library">TurnKey</a> WordPress  appliance, which does not require any manual setup or configuration.<sup id="cite_ref-7" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-7"><span>[</span>8<span>]</span></a></sup></p>
<p>The <a title="Microsoft Web Platform Installer" href="http://en.wikipedia.org/wiki/Microsoft_Web_Platform_Installer">Microsoft Web Platform  Installer</a> which installs WordPress on <a class="mw-redirect" title="Windows" href="http://en.wikipedia.org/wiki/Windows">Windows</a> and <a title="Internet Information Services" href="http://en.wikipedia.org/wiki/Internet_Information_Services">IIS</a>. The <a title="Microsoft Web Platform Installer" href="http://en.wikipedia.org/wiki/Microsoft_Web_Platform_Installer">Web PI</a> will automatically  detect any missing dependencies such as <a title="PHP" href="http://en.wikipedia.org/wiki/PHP">PHP</a> or <a title="MySQL" href="http://en.wikipedia.org/wiki/MySQL">MySQL</a> then  install and configure them<sup id="cite_ref-8" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-8"><span>[</span>9<span>]</span></a></sup> before installing WordPress.</p>
<p>Advanced users have the option to have WordPress downloaded to their  server and consistently updated using <a title="Subversion (software)" href="http://en.wikipedia.org/wiki/Subversion_%28software%29">SVN</a>. This will allow users to remain  updated easily.<sup id="cite_ref-9" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-9"><span>[</span>10<span>]</span></a></sup></p>
<p>Free hosting services such as <a title="WordPress.com" href="http://en.wikipedia.org/wiki/WordPress.com">WordPress.com</a> offer users an easy way to deploy a WordPress blog on-line without  having to install WordPress on your own web server. Many shared web  hosting services also offer automated WordPress installation through  their control panel.</p>
<h2><span class="editsection">[<a title="Edit section: History" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=3">edit</a>]</span> <span id="History" class="mw-headline">History</span></h2>
<p><em>b2/cafelog</em>, more commonly known as simply <em>b2</em> or <em>cafelog</em>,  was the precursor to WordPress.<sup id="cite_ref-10" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-10"><span>[</span>11<span>]</span></a></sup> b2/cafelog was estimated to have been employed on approximately 2,000  blogs as of May 2003. It was written in PHP for use with <a title="MySQL" href="http://en.wikipedia.org/wiki/MySQL">MySQL</a> by  Michel Valdrighi, who is now a contributing developer to WordPress.  Although WordPress is the official successor, another project, <a title="B2evolution" href="http://en.wikipedia.org/wiki/B2evolution">b2evolution</a>,  is also in active development.</p>
<p>WordPress first appeared in 2003 as a joint effort between <a title="Matt  Mullenweg" href="http://en.wikipedia.org/wiki/Matt_Mullenweg">Matt Mullenweg</a> and Mike Little to create a <a title="Fork (software development)" href="http://en.wikipedia.org/wiki/Fork_%28software_development%29">fork</a> of b2.<sup id="cite_ref-11" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-11"><span>[</span>12<span>]</span></a></sup> The name <em>WordPress</em> was suggested by Christine Selleck, a friend  of Mullenweg.<sup id="cite_ref-12" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-12"><span>[</span>13<span>]</span></a></sup></p>
<p>In 2004 the licensing terms for the competing <a title="Movable Type" href="http://en.wikipedia.org/wiki/Movable_Type">Movable  Type</a> package were changed by <a title="Six Apart" href="http://en.wikipedia.org/wiki/Six_Apart">Six  Apart</a>, and many of its users migrated to WordPress – causing a  marked and continuing growth in WordPress&#8217;s popularity.<sup class="Template-Fact" style="white-space: nowrap;" title="This claim needs references to reliable  sources from March 2009">[<em><a title="Wikipedia:Citation needed" href="http://en.wikipedia.org/wiki/Wikipedia:Citation_needed">citation needed</a></em>]</sup> By  October, 2009, the 2009 Open Source CMS Market Share Report reached the  conclusion that WordPress enjoys the greatest brand strength of any open  source content management systems. That conclusion was based on an  extensive analysis of rate of adoption patterns and brand strength and  was backed by a survey of users.<sup id="cite_ref-13" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-13"><span>[</span>14<span>]</span></a></sup></p>
<h3><span class="editsection">[<a title="Edit section: Awards" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=4">edit</a>]</span> <span id="Awards" class="mw-headline">Awards</span></h3>
<p>In 2007 WordPress won a <a title="Packt" href="http://en.wikipedia.org/wiki/Packt">Packt</a> Open Source CMS Award.<sup id="cite_ref-14" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-14"><span>[</span>15<span>]</span></a></sup></p>
<p>In 2009 WordPress won the best Open Source CMS Award.<sup id="cite_ref-15" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-15"><span>[</span>16<span>]</span></a></sup></p>
<h3><span class="editsection">[<a title="Edit section: Removal of sponsored themes" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=5">edit</a>]</span> <span id="Removal_of_sponsored_themes" class="mw-headline">Removal of  sponsored themes</span></h3>
<p>On 10 July 2007, following a discussion on the WordPress ideas forum<sup id="cite_ref-16" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-16"><span>[</span>17<span>]</span></a></sup> and a post by Mark Ghosh in his blog Weblog Tools Collection,<sup id="cite_ref-17" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-17"><span>[</span>18<span>]</span></a></sup> Matt Mullenweg announced that the official WordPress theme directory at  <a class="external free" rel="nofollow" href="http://themes.wordpress.net/">http://themes.wordpress.net</a> would no longer host  themes containing sponsored links.<sup id="cite_ref-18" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-18"><span>[</span>19<span>]</span></a></sup><sup id="cite_ref-19" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-19"><span>[</span>20<span>]</span></a></sup> Although this move was criticized by designers and users of sponsored  themes<sup class="Template-Fact" style="white-space: nowrap;" title="This claim needs references to  reliable sources from December 2009">[<em><a title="Wikipedia:Citation needed" href="http://en.wikipedia.org/wiki/Wikipedia:Citation_needed">citation needed</a></em>]</sup>, it was  applauded by WordPress users who consider such themes to be spam.<sup class="Template-Fact" style="white-space: nowrap;" title="This claim needs references to reliable  sources from December 2009">[<em><a title="Wikipedia:Citation needed" href="http://en.wikipedia.org/wiki/Wikipedia:Citation_needed">citation needed</a></em>]</sup> The  official WordPress theme directory ceased to accept any new themes,  including those without sponsored links, shortly after the announcement  was made.<sup id="cite_ref-20" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-20"><span>[</span>21<span>]</span></a></sup> Sponsored themes are still available elsewhere, as well as free themes  with additional sponsored links added by third parties.<sup id="cite_ref-21" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-21"><span>[</span>22<span>]</span></a></sup> <sup id="cite_ref-22" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-22"><span>[</span>23<span>]</span></a></sup></p>
<p>On July 18, 2008, a new theme directory opened at <a class="external free" rel="nofollow" href="http://wordpress.org/extend/themes/">http://wordpress.org/extend/themes/</a>. It was styled  along the same lines as the plug-ins directory.<sup id="cite_ref-23" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-23"><span>[</span>24<span>]</span></a></sup> Any theme that is uploaded to it will be vetted, first by an automated  program and then by a human.</p>
<p>On December 12, 2008, over 200 themes were removed from the WordPress  theme directory as they did not comply with GPL License requirements.<sup id="cite_ref-24" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-24"><span>[</span>25<span>]</span></a></sup><sup id="cite_ref-25" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-25"><span>[</span>26<span>]</span></a></sup> Today, author mentions are permitted in each theme but the official  policy does not allow for sponsorships or links to sites distributing  non-GPL compatible themes. Non-GPL compliant themes are now hosted on  other theme directories.</p>
<h3><span class="editsection">[<a title="Edit section: Releases" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=6">edit</a>]</span> <span id="Releases" class="mw-headline">Releases</span></h3>
<p>Most WordPress releases are code named after well-known <a title="Jazz" href="http://en.wikipedia.org/wiki/Jazz">jazz</a> musicians  starting after version 1.0.<sup id="cite_ref-26" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-26"><span>[</span>27<span>]</span></a></sup></p>
<table class="wikitable" border="1">
<tbody>
<tr>
<th>Version</th>
<th>Code Name</th>
<th>Release Date</th>
<th>Notes</th>
</tr>
<tr>
<td>0.70</td>
<td></td>
<td>27 May 2003</td>
<td>contained the same file structure as its predecessor, <strong>b2/cafelog</strong>.  Only 0.71-gold is available for download in the official WordPress  Release Archive page.</td>
</tr>
<tr>
<td>1.2</td>
<td><em><a title="Charles Mingus" href="http://en.wikipedia.org/wiki/Charles_Mingus">Mingus</a></em></td>
<td>22 May 2004</td>
<td>It&#8217;s notable for containing the support of Plugins. The same Plugin  identification headers are still used unchanged in the latest WordPress  releases.</td>
</tr>
<tr>
<td>1.5</td>
<td><em><a title="Billy Strayhorn" href="http://en.wikipedia.org/wiki/Billy_Strayhorn">Strayhorn</a></em></td>
<td>17 February 2005</td>
<td><em>Strayhorn</em> added a range of vital features, such as the  ability to manage static pages and a template/theme system. It was also  equipped with a new default template (code named <em><a title="Stanley  Kubrick" href="http://en.wikipedia.org/wiki/Stanley_Kubrick">Kubrick</a></em><sup id="cite_ref-27" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-27"><span>[</span>28<span>]</span></a></sup>)  designed by <a class="new" title="Michael Heilemann (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Michael_Heilemann&amp;action=edit&amp;redlink=1">Michael  Heilemann</a>.</td>
</tr>
<tr>
<td>2.0</td>
<td><em><a title="Duke  Ellington" href="http://en.wikipedia.org/wiki/Duke_Ellington">Duke</a></em></td>
<td>31 December 2005</td>
<td>This version added rich editing, better administration tools, image  uploading, faster posting, an improved import system, and completely  overhauled the back end. WordPress 2.0 also offered various improvements  to plugin developers.<sup id="cite_ref-28" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-28"><span>[</span>29<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.1</td>
<td><em><a title="Ella Fitzgerald" href="http://en.wikipedia.org/wiki/Ella_Fitzgerald">Ella</a></em></td>
<td>22 January 2007</td>
<td>In addition to correcting security issues, version 2.1 featured a  redesigned interface, enhanced editing tools (including integrated spell  check and auto save), and improved content management options.</td>
</tr>
<tr>
<td>2.2</td>
<td><em><a title="Stan  Getz" href="http://en.wikipedia.org/wiki/Stan_Getz">Getz</a></em></td>
<td>16 May 2007</td>
<td>Version 2.2 featured widget support for templates, updated <a title="Atom  (standard)" href="http://en.wikipedia.org/wiki/Atom_%28standard%29">Atom</a> feed support, and speed optimizations.<sup id="cite_ref-29" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-29"><span>[</span>30<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.3</td>
<td><em><a title="Dexter Gordon" href="http://en.wikipedia.org/wiki/Dexter_Gordon">Dexter</a></em></td>
<td>24 September 2007</td>
<td>Version 2.3 featured native tagging support, new <a title="Taxonomy" href="http://en.wikipedia.org/wiki/Taxonomy">taxonomy</a> system for categories, and easy notification of updates. 2.3 also fully  supports <a title="Atom (standard)" href="http://en.wikipedia.org/wiki/Atom_%28standard%29">Atom 1.0</a> along with the publishing protocol,  and included some much needed security fixes.<sup id="cite_ref-30" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-30"><span>[</span>31<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.5</td>
<td><em><a title="Michael Brecker" href="http://en.wikipedia.org/wiki/Michael_Brecker">Brecker</a></em></td>
<td>29 March 2008</td>
<td>Developers skipped the release of version 2.4 so version 2.5  contained two releases worth of new code. WordPress 2.5 saw a complete  overhaul of the administration interface and the WordPress website was  also redesigned to match the new style.<sup id="cite_ref-31" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-31"><span>[</span>32<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.6</td>
<td><em><a title="McCoy  Tyner" href="http://en.wikipedia.org/wiki/McCoy_Tyner">Tyner</a></em></td>
<td>15 July 2008</td>
<td><em>Tyner</em> contained new features that made WordPress a more  powerful CMS: you can now <a title="Revision  control" href="http://en.wikipedia.org/wiki/Revision_control">track changes</a> to every post and page and easily post from  wherever you are on the web.<sup id="cite_ref-32" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-32"><span>[</span>33<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.7</td>
<td><em><a title="John  Coltrane" href="http://en.wikipedia.org/wiki/John_Coltrane">Coltrane</a></em></td>
<td>11 December 2008</td>
<td>It once again saw the administration interface completely  redesigned. It also introduces an automated upgrade feature, and  automatic installation of plugins from within the administration  interface.<sup id="cite_ref-33" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-33"><span>[</span>34<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.8</td>
<td><em><a title="Chet  Baker" href="http://en.wikipedia.org/wiki/Chet_Baker">Baker</a></em></td>
<td>10 June 2009</td>
<td><em>Baker</em> offered improvements in speed, and automatic  installation of themes from within the administration interface. It also  introduces the CodePress editor for syntax highlighting and a  redesigned widget interface.<sup id="cite_ref-34" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-34"><span>[</span>35<span>]</span></a></sup></td>
</tr>
<tr>
<td>2.9</td>
<td><em><a title="Carmen  McRae" href="http://en.wikipedia.org/wiki/Carmen_McRae">Carmen</a></em></td>
<td>19 December 2009</td>
<td><em>Carmen</em> offers a global undo feature, a built-in image editor,  batch plugin updating, and numerous under-the-hood tweaks.<sup id="cite_ref-35" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-35"><span>[</span>36<span>]</span></a></sup></td>
</tr>
</tbody>
</table>
<h2><span class="editsection">[<a title="Edit section: Vulnerabilities" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=7">edit</a>]</span> <span id="Vulnerabilities" class="mw-headline">Vulnerabilities</span></h2>
<p>Many security issues<sup id="cite_ref-36" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-36"><span>[</span>37<span>]</span></a></sup><sup id="cite_ref-37" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-37"><span>[</span>38<span>]</span></a></sup> were uncovered in the software, particularly in 2007 and 2008.  According to <a title="Secunia" href="http://en.wikipedia.org/wiki/Secunia">Secunia</a>, WordPress in April 2009 had 7 unpatched  security advisories (out of 32 total), with a maximum rating of &#8220;Less  Critical&#8221;.<sup id="cite_ref-38" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-38"><span>[</span>39<span>]</span></a></sup></p>
<p>BlogSecurity maintains a list of WordPress vulnerabilities,<sup id="cite_ref-39" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-39"><span>[</span>40<span>]</span></a></sup> up to version 2.3. <a title="Secunia" href="http://en.wikipedia.org/wiki/Secunia">Secunia</a> keeps a more recently updated list.<sup id="cite_ref-40" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-40"><span>[</span>41<span>]</span></a></sup></p>
<p>In January 2007, many high-profile <a title="Search engine optimization" href="http://en.wikipedia.org/wiki/Search_engine_optimization">Search engine optimization</a> (SEO)  blogs, as well as many low-profile commercial blogs featuring <a title="AdSense" href="http://en.wikipedia.org/wiki/AdSense">AdSense</a>,  were targeted and attacked with a WordPress exploit.<sup id="cite_ref-41" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-41"><span>[</span>42<span>]</span></a></sup> A separate vulnerability on one of the project site&#8217;s <a title="Web server" href="http://en.wikipedia.org/wiki/Web_server">web  servers</a> allowed an attacker to introduce exploitable code in the  form of a <a title="Backdoor (computing)" href="http://en.wikipedia.org/wiki/Backdoor_%28computing%29">back door</a> to some downloads of  WordPress 2.1.1. The 2.1.2 release addressed this issue; an advisory  released at the time advised all users to upgrade immediately.<sup id="cite_ref-42" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-42"><span>[</span>43<span>]</span></a></sup></p>
<p>In May 2007, a study revealed that 98% of WordPress blogs being run  were exploitable because they were running outdated and unsupported  versions of the software.<sup id="cite_ref-43" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-43"><span>[</span>44<span>]</span></a></sup></p>
<p>In a June 2007 interview, Stefen Esser, the founder of the PHP  Security Response Team, spoke critically of WordPress&#8217;s security track  record, citing problems with the application&#8217;s architecture that made it  unnecessarily difficult to write code that is secure from <a title="SQL injection" href="http://en.wikipedia.org/wiki/SQL_injection">SQL  injection</a> vulnerabilities, as well as some other problems.<sup id="cite_ref-44" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-44"><span>[</span>45<span>]</span></a></sup></p>
<h2><span class="editsection">[<a title="Edit section: Multi-blogging" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=8">edit</a>]</span> <span id="Multi-blogging" class="mw-headline">Multi-blogging</span></h2>
<p>WordPress supports one weblog per installation, although multiple  concurrent copies may be run from different directories if configured to  use separate database tables.</p>
<p>WordPress Multi-User (WordPress MU, or just WPMU) is a fork of  WordPress created to allow simultaneous blogs to exist within one  installation. WordPress MU makes it possible for anyone with a website  to host their own blogging community, control, and moderate all the  blogs from a single dashboard. WordPress MU adds eight new data tables  for each blog.</p>
<p>Matt Mullenweg announced that WordPress MU would be merged with  WordPress as part of a future release (version 3.0).<sup id="cite_ref-45" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-45"><span>[</span>46<span>]</span></a></sup></p>
<p><a title="Lyceum (software)" href="http://en.wikipedia.org/wiki/Lyceum_%28software%29">Lyceum</a> is another enterprise-edition of  WordPress. Unlike WordPress MU, Lyceum stores all of its information in a  set number of database tables. Notable communities that use Lyceum are  TeachFor.Us<sup id="cite_ref-46" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-46"><span>[</span>47<span>]</span></a></sup> (Teach For America teachers&#8217; blogs), BodyBlogs and the Hopkins Blogs.</p>
<p>In 2008 <a class="new" title="Andy Peatling (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Andy_Peatling&amp;action=edit&amp;redlink=1">Andy Peatling</a> joined <a title="Automattic" href="http://en.wikipedia.org/wiki/Automattic">Automattic</a> to continue his work on <a title="BuddyPress" href="http://en.wikipedia.org/wiki/BuddyPress">BuddyPress</a> &#8211; a plug-in extension of WPMU that is adding additional community  features to WordPress.<sup id="cite_ref-47" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-47"><span>[</span>48<span>]</span></a></sup></p>
<h2><span class="editsection">[<a title="Edit section: Key developers" href="http://en.wikipedia.org/w/index.php?title=WordPress&amp;action=edit&amp;section=9">edit</a>]</span> <span id="Key_developers" class="mw-headline">Key developers</span></h2>
<p>WordPress development is led by <a class="new" title="Ryan Boren (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Ryan_Boren&amp;action=edit&amp;redlink=1">Ryan Boren</a> and  <a title="Matt  Mullenweg" href="http://en.wikipedia.org/wiki/Matt_Mullenweg">Matt Mullenweg</a>. Mullenweg and <a class="new" title="Mike Little (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Mike_Little&amp;action=edit&amp;redlink=1">Mike Little</a> were co-founders of the project.</p>
<p>The core contributing developers include:</p>
<div class="references-small" style="margin-left: 1.5em;">
<ul>
<li><a class="external text" rel="nofollow" href="http://dougal.gunters.org/">Dougal Campbell</a></li>
<li><a class="external text" rel="nofollow" href="http://markjaquith.com/">Mark Jaquith</a></li>
<li><a class="external text" rel="nofollow" href="http://ocaoimh.ie/">Donncha  Ó Caoimh</a></li>
<li><a class="external text" rel="nofollow" href="http://skeltoac.com/">Andy  Skelton</a></li>
<li><a class="external text" rel="nofollow" href="http://intraordinary.com/">Michel Valdrighi</a></li>
<li><a class="external text" rel="nofollow" href="http://blog.ftwr.co.uk/">Peter Westwood</a></li>
</ul>
</div>
<p>Though largely developed by the community surrounding it, WordPress  is closely associated with <a title="Automattic" href="http://en.wikipedia.org/wiki/Automattic">Automattic</a>,  where some of WordPress&#8217;s main contributing developers are employees.<sup id="cite_ref-48" class="reference"><a href="http://en.wikipedia.org/wiki/WordPress#cite_note-48"><span>[</span>49<span>]</span></a></sup></p>
<p>WordPress is also developed by its community, including WP testers, a  group of volunteers who test each release. They have early access to <a class="mw-redirect" title="Nightly  builds" href="http://en.wikipedia.org/wiki/Nightly_builds">nightly builds</a>, beta versions and  release candidates. Errors are documented in a special <a title="Mailing list" href="http://en.wikipedia.org/wiki/Mailing_list">mailing  list</a>, or the project&#8217;s <a title="Trac" href="http://en.wikipedia.org/wiki/Trac">Trac</a> tool.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/php/wordpress/wordpress/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kohana</title>
		<link>http://witslog.com/wiki/technical/php/kohana/kohana</link>
		<comments>http://witslog.com/wiki/technical/php/kohana/kohana#comments</comments>
		<pubDate>Sat, 06 Mar 2010 23:00:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Kohana]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=21</guid>
		<description><![CDATA[Kohana is an open  source, PHP5, web application framework that uses the Model View Controller design pattern. It aims  to be secure, lightweight, and easy to learn and use.[2] It supports only version 5 or higher of PHP in order to make full...]]></description>
			<content:encoded><![CDATA[<p><em><strong>Kohana</strong></em> is an <a title="Open source" href="http://en.wikipedia.org/wiki/Open_source">open  source</a>, PHP5, <a title="Web  application framework" href="http://en.wikipedia.org/wiki/Web_application_framework">web application framework</a> that uses the <a title="Model  View Controller" href="http://en.wikipedia.org/wiki/Model_View_Controller">Model View Controller</a> <a title="Design pattern (computer science)" href="http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29">design pattern</a>. It aims  to be secure, lightweight, and easy to learn and use.<sup id="cite_ref-1"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-1">[2]</a></sup> It supports only version 5 or higher of PHP in order to make full use  of the improvements in that version&#8217;s <a title="Object-oriented programming" href="http://en.wikipedia.org/wiki/Object-oriented_programming">object-oriented</a> design.</p>
<h2>History</h2>
<p><em>Kohana</em> was originally created as a <a title="Fork (software development)" href="http://en.wikipedia.org/wiki/Fork_%28software_development%29">project fork</a><sup id="cite_ref-CodeIgniterFork_2-0"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-CodeIgniterFork-2">[3]</a></sup> of the <em><a title="CodeIgniter" href="http://en.wikipedia.org/wiki/CodeIgniter">CodeIgniter</a></em> PHP  framework under the name <em>Blue Flame</em>. The principal reason for the  fork was to create a more community-based web application framework as  many users were frustrated with <em>CodeIgniter&#8217;</em>s lack of bug fixes  and inclusion of new features requested by the community. In <a title="July 2007" href="http://en.wikipedia.org/wiki/July_2007">July  2007</a>, <em>Blue Flame</em> was renamed to <em>Kohana</em> to avoid  possible trademark issues<sup id="cite_ref-history_3-0"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-history-3">[4]</a></sup>.  The name Kohana was chosen when the developers began looking through <a title="Indigenous peoples of the Americas" href="http://en.wikipedia.org/wiki/Indigenous_peoples_of_the_Americas">Native American</a> dictionaries to find words that would have little copyright conflict.  Kohana is the <a title="Sioux" href="http://en.wikipedia.org/wiki/Sioux">Sioux</a> word for &#8217;swift.&#8217; It is also the <a title="Japanese  language" href="http://en.wikipedia.org/wiki/Japanese_language">Japanese</a> word for &#8216;tiny flower&#8217; (??), <a title="Ukrainian  language" href="http://en.wikipedia.org/wiki/Ukrainian_language">Ukrainian</a> (spelled <em>??????</em>) and <a title="Polish  language" href="http://en.wikipedia.org/wiki/Polish_language">Polish</a> (<em>kochana</em>) word for &#8216;beloved&#8217; (only of  feminine gender) and the name of a famous <a title="Killer whale" href="http://en.wikipedia.org/wiki/Killer_whale">killer  whale</a> (<a title="List of captive orcas" href="http://en.wikipedia.org/wiki/List_of_captive_orcas#Kohana">Kohana</a>) — none of which have any  relation to the original intended meaning.</p>
<p>While the initial release of Kohana was essentially an improved  version of CodeIgniter, by the end of 2007 the Kohana development team  had released version 2.0 which was a complete re-write from the ground  up. The new version 2.0 was strictly a PHP5 framework and has formed the  basis for all other releases since.</p>
<h2>Differences between <em>Kohana</em> and <em>CodeIgniter</em></h2>
<ul>
<li>Strict <a title="PHP5" href="http://en.wikipedia.org/wiki/PHP5">PHP5</a> <a title="OOP" href="http://en.wikipedia.org/wiki/OOP">OOP</a>. Offers many benefits: visibility protection,  automatic class loading, overloading, interfaces, abstracts, and  singletons.<sup id="cite_ref-differences_4-0"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li><em>Kohana</em> has joined the <a rel="nofollow" href="http://www.gophp5.org/">GoPHP5</a> initiative. All releases  from 2.2 on will conform with this project.<sup id="cite_ref-differences_4-1"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li>Continues <em><a title="CodeIgniter" href="http://en.wikipedia.org/wiki/CodeIgniter">CodeIgniter</a></em> design  patterns. Anyone who has used <em>CodeIgniter</em> will quickly understand  <em>Kohana&#8217;</em>s structure and design patterns.<sup id="cite_ref-differences_4-2"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li>Community, not company, driven. <em>Kohana</em> is driven by community  discussion, ideas, and code. <em>Kohana</em> developers are from all  around the world, each with their own talents. This allows a rapid and  flexible development cycle that can respond to bugs and requests within  hours, instead of days or months.<sup id="cite_ref-differences_4-3"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li>GET, POST, COOKIE, and SESSION arrays all work as expected. <em>Kohana</em> does not limit your access to global data, but offers the same  filtering and XSS protection that <em>CodeIgniter</em> does.<sup id="cite_ref-differences_4-4"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li>Cascading resources, modules, and inheritance. Controllers, models,  libraries, helpers, and views can be loaded from any location within  your system, application, or module paths. Configuration options are  inherited and can be dynamically overwritten by each application.<sup id="cite_ref-differences_4-5"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li>No <a title="Namespace" href="http://en.wikipedia.org/wiki/Namespace">namespace</a> conflicts. <a title="Class (computer science)" href="http://en.wikipedia.org/wiki/Class_%28computer_science%29">Class</a> suffixes, like _Controller,  are used to prevent namespace conflicts. This allows a User&#8217;s controller  and Users model to both be loaded at the same time.<sup id="cite_ref-differences_4-6"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li>True auto-loading of classes. This includes libraries, controllers,  models, and helpers. This is not pre-loading, but true dynamic loading  of classes, as they are instantiated.<sup id="cite_ref-differences_4-7"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li>Helpers are static classes, not functions. For example, instead of  using form_open(), you would use form::open().<sup id="cite_ref-differences_4-8"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li>Library drivers and <a title="API" href="http://en.wikipedia.org/wiki/API">API</a> consistency. Libraries can use  different &#8220;drivers&#8221; to handle different external APIs transparently. For  example, multiple session storage options are available (database,  cookie, and native), but the same interface is used for all of them.  This allows new drivers to be developed for existing libraries, which  keeps the API consistent and transparent.<sup id="cite_ref-differences_4-9"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li>Powerful event handler. <em>Kohana</em> events can by dynamically  added to, replaced, or even removed completely. This allows many changes  to <em>Kohana</em> execution process, without modification to existing  system code.<sup id="cite_ref-differences_4-10"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-differences-4">[5]</a></sup></li>
<li>Kohana features a built-in <a title="Object-relational mapping" href="http://en.wikipedia.org/wiki/Object-relational_mapping">ORM</a> library, whereas CodeIgniter  does not.<sup id="cite_ref-KohanaORM_5-0"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-KohanaORM-5">[6]</a></sup></li>
</ul>
<h2>Third-party vendors</h2>
<table>
<tbody>
<tr>
<th>Vendor</th>
<th>Usage</th>
<th>Inclusion</th>
</tr>
<tr>
<td><a rel="nofollow" href="http://phputf8.sourceforge.net/">phputf8</a></td>
<td>All of the Kohana UTF-8 functions are ported from the phputf8  project<sup id="cite_ref-credits_6-0"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-credits-6">[7]</a></sup></td>
<td>Core</td>
</tr>
<tr>
<td><a rel="nofollow" href="http://www.popoon.org/">Popoon</a></td>
<td>The default XSS filter used by Kohana was originally created by  Christian Stocker for the popoon framework. The original file is called  externalinput.php<sup id="cite_ref-credits_6-1"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-credits-6">[7]</a></sup></td>
<td>Core</td>
</tr>
<tr>
<td><a rel="nofollow" href="http://htmlpurifier.org/">HTML Purifier</a></td>
<td>The alternative XSS filter used by Kohana is HTML Purifier<sup id="cite_ref-credits_6-2"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-credits-6">[7]</a></sup></td>
<td>Optional</td>
</tr>
<tr>
<td><a rel="nofollow" href="http://www.swiftmailer.org/">SwiftMailer</a></td>
<td>The recommended way to send emails in Kohana is using SwiftMailer<sup id="cite_ref-credits_6-3"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-credits-6">[7]</a></sup></td>
<td>Optional</td>
</tr>
<tr>
<td><a title="Markdown" href="http://en.wikipedia.org/wiki/Markdown">PHP  Markdown</a></td>
<td>Markdown is a simple text-to-HTML formatting tool<sup id="cite_ref-credits_6-4"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-credits-6">[7]</a></sup></td>
<td>Optional</td>
</tr>
</tbody>
</table>
<h2>Release history</h2>
<table>
<tbody>
<tr>
<th>Colour</th>
<th>Meaning</th>
</tr>
<tr>
<td>Red</td>
<td>Old release; not supported</td>
</tr>
<tr>
<td>Yellow</td>
<td>Old release; still supported</td>
</tr>
<tr>
<td>Green</td>
<td>Current release</td>
</tr>
<tr>
<td>Blue</td>
<td>Future release</td>
</tr>
</tbody>
</table>
<table style="border:1px">
<tbody>
<tr>
<th>Product Name</th>
<th>Major Version</th>
<th>Code Name</th>
<th>Minor Version</th>
<th>Release Date</th>
<th>Significant Changes</th>
</tr>
<tr>
<th>BlueFlame</th>
<th>1.0</th>
<td></td>
<td>1.0</td>
<td>2007-05-31<sup id="cite_ref-blueflame_release_7-0"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-blueflame_release-7">[8]</a></sup></td>
<td>
<ul>
<li>Initial release</li>
<li>Forked from <a title="CodeIgniter" href="http://en.wikipedia.org/wiki/CodeIgniter">CodeIgniter</a> 1.5.4  (pre-release, svn revision 566)<sup id="cite_ref-blueflame_release_7-1"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-blueflame_release-7">[8]</a></sup></li>
</ul>
</td>
</tr>
<tr>
<th rowspan="15">Kohana</th>
<th>2.0</th>
<td>Superlime</td>
<td>2.0</td>
<td>2007-11-08<sup id="cite_ref-changelog_8-0"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-changelog-8">[9]</a></sup></td>
<td>
<ul>
<li>Complete rewrite<sup id="cite_ref-changelog_8-1"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-changelog-8">[9]</a></sup></li>
<li>Dropped PHP4 support in favour of PHP5<sup id="cite_ref-history_3-1"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-history-3">[4]</a></sup></li>
<li>Fully <a title="OOP" href="http://en.wikipedia.org/wiki/OOP">OOP</a> framework<sup id="cite_ref-history_3-2"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-history-3">[4]</a></sup></li>
<li>No legacy code<sup id="cite_ref-history_3-3"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-history-3">[4]</a></sup></li>
<li>Modules included<sup id="cite_ref-history_3-4"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-history-3">[4]</a></sup></li>
<li>Cascading resources concept<sup id="cite_ref-history_3-5"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-history-3">[4]</a></sup></li>
</ul>
</td>
</tr>
<tr>
<th rowspan="3">2.1</th>
<td rowspan="3">Schneefeier</td>
<td>2.1.0</td>
<td>2008-02-05<sup id="cite_ref-changelog_8-2"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-changelog-8">[9]</a></sup></td>
<td>
<ul>
<li>New libraries: Cache, Image, ORM, Payment</li>
<li>New helpers: num, expires, email, html::link(), html::breadcrumb(),  arr::binary_search(), valid::standard_text(), text::widont();</li>
<li>New modules: Auth &amp; Forge; PostgreSQL &amp; MySQLi drivers</li>
<li>gzip output compression, bug fixes &amp; API changes<sup id="cite_ref-9"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-9">[10]</a></sup></li>
</ul>
</td>
</tr>
<tr>
<td>2.1.1</td>
<td>2008-02-06<sup id="cite_ref-changelog_8-3"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-changelog-8">[9]</a></sup></td>
<td>
<ul>
<li>Fixed bug with extending helpers</li>
<li>Added English (UK), German and Macedonian languages<sup id="cite_ref-10"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-10">[11]</a></sup></li>
</ul>
</td>
</tr>
<tr>
<td>2.1.2</td>
<td>2008-06-10</td>
<td>
<ul>
<li>Added: KOHANA_IS_WIN constant for checking for a Windows environment</li>
<li>Fixed: Lots of bugfixes<sup id="cite_ref-11"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-11">[12]</a></sup></li>
</ul>
</td>
</tr>
<tr>
<th>2.2</th>
<td>Efímera</td>
<td>2.2.0</td>
<td>2008-08-08</td>
<td>
<ul>
<li>New libraries (<a title="Captcha" href="http://en.wikipedia.org/wiki/Captcha">Captcha</a>)</li>
<li>New helpers (upload, format, etc.)</li>
<li>New configuration attributes,</li>
<li>New drivers (MSSQL, PayPal Pro)</li>
<li>General cleanup, optimization and bug fixes</li>
</ul>
<p><sup id="cite_ref-12"><a href="http://en.wikipedia.org/wiki/Kohana_%28web_framework%29#cite_note-12">[13]</a></sup></td>
</tr>
<tr>
<th rowspan="5">2.3</th>
<th rowspan="3">Kernachtig</th>
<td>2.3.0</td>
<td>2008-12-20</td>
<td>
<ul>
<li>New Router</li>
<li>New Database library (object_db)</li>
</ul>
</td>
</tr>
<tr>
<td>2.3.1</td>
<td><a title="2009" href="http://en.wikipedia.org/wiki/2009">2009</a></td>
</tr>
<tr>
<td>2.3.2</td>
<td><a title="2009" href="http://en.wikipedia.org/wiki/2009">2009</a></td>
</tr>
<tr>
<td>Aegolius</td>
<td>2.3.3</td>
<td>2009-05-31</td>
</tr>
<tr>
<td>Buteo Regalis</td>
<td>2.3.4</td>
<td>2009-06-05</td>
</tr>
<tr>
<th>2.4</th>
<th></th>
<td>2.4</td>
<td></td>
<td>
<ul>
<li>New database library</li>
<li>Updates to ORM</li>
<li>View caching</li>
</ul>
</td>
</tr>
<tr>
<th rowspan="4">3.0</th>
<th rowspan="4">Renaissance</th>
<td><a rel="nofollow" href="http://v3.kohanaphp.com/">3.0</a></td>
<td>2009-09-17</td>
<td>
<ul>
<li>Complete rewrite of the framework</li>
<li><a title="HMVC" href="http://en.wikipedia.org/wiki/HMVC">HMVC</a> design pattern</li>
<li>Additional features added to core</li>
<li>Helpers and libraries are now all classes with class and/or member  methods and properties</li>
</ul>
</td>
</tr>
<tr>
<td>3.0.1</td>
<td>2009-10-20</td>
</tr>
<tr>
<td>3.0.2</td>
<td>2009-11-22</td>
</tr>
<tr>
<td>3.0.3</td>
<td>2009-11-24</td>
</tr>
</tbody>
</table>
<h2>Sites using Kohana</h2>
<p><a rel="nofollow" href="http://www.infinityward.com/">Infinity Ward</a> &#8211; Kohana V2</p>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/php/kohana/kohana/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

