<?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>Just a bunch of code &#187; Programming</title>
	<atom:link href="http://www.bunchacode.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bunchacode.com</link>
	<description>where geeks are cool.</description>
	<lastBuildDate>Fri, 13 Aug 2010 18:04:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>opencart seo friendly urls</title>
		<link>http://www.bunchacode.com/programming/opencart-seo-friendly-urls/</link>
		<comments>http://www.bunchacode.com/programming/opencart-seo-friendly-urls/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 16:42:30 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[opencart]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=204</guid>
		<description><![CDATA[opencart has built in seo friendly url but that&#8217;s for products only as far as i can tell. and you have to actually type out the terms. so i took it upon myself to make it friendlier and more automagic. this is for opencart v1.4.8b the format of url we are trying to achieve is: [...]]]></description>
			<content:encoded><![CDATA[<p>opencart has built in seo friendly url but that&#8217;s for products only as far as i can tell. and you have to actually type out the terms. so i took it upon myself to make it friendlier and more automagic.</p>
<p>this is for opencart v1.4.8b</p>
<p>the format of url we are trying to achieve is:</p>
<p>/product/:product_id/:product_title</p>
<p>so it would look like something like <strong>/product/1/girls-gone-wild</strong></p>
<p>change <strong>catalog/model/tool/seo_url.php</strong></p>
<p>UPDATED: includes all urls now and added file for download (<a class="downloadlink" href="http://www.bunchacode.com/wp-content/plugins/download-monitor/download.php?id=2" title=" downloaded 42 times" >Catalog.rar (42)</a>)</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">function</span> rewrite<span class="br0">&#40;</span><span class="re0">$link</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>config<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#40;</span><span class="st_h">&#8216;config_seo_url&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$url_data</span> <span class="sy0">=</span> <a href="http://www.php.net/parse_url"><span class="kw3">parse_url</span></a><span class="br0">&#40;</span><a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;&amp;amp;amp;&#8217;</span><span class="sy0">,</span> <span class="st_h">&#8216;&amp;amp;&#8217;</span><span class="sy0">,</span> <span class="re0">$link</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$url</span> <span class="sy0">=</span> <span class="st_h">&#8221;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$data</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/parse_str"><span class="kw3">parse_str</span></a><span class="br0">&#40;</span><span class="re0">$url_data</span><span class="br0">&#91;</span><span class="st_h">&#8216;query&#8217;</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$data</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">switch</span><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">case</span> <span class="st_h">&#8216;product/product&#8217;</span><span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>load<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>model<span class="br0">&#40;</span><span class="st_h">&#8216;catalog/product&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$product</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>model_catalog_product<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>getProduct<span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;product_id&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//get product categories</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$path</span> <span class="sy0">=</span> <span class="st_h">&#8221;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">||</span> <a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$categories</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>model_catalog_product<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>getCategories<span class="br0">&#40;</span><span class="re0">$product</span><span class="br0">&#91;</span><span class="st_h">&#8216;product_id&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$categories</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$path</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>model_catalog_product<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>getPath<span class="br0">&#40;</span><span class="re0">$categories</span><span class="br0">&#91;</span><span class="st_h">&#8217;0&#8242;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">&#8216;category_id&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$path</span> <span class="sy0">=</span> <a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$path</span><span class="sy0">,-</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">==</span><span class="st_h">&#8216;_&#8217;</span>?<a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$path</span><span class="sy0">,</span>0<span class="sy0">,</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$path</span><span class="br0">&#41;</span><span class="sy0">-</span>1<span class="br0">&#41;</span><span class="sy0">:</span><span class="re0">$path</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$path</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$url</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>config<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#40;</span><span class="st_h">&#8216;config_url&#8217;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">&#8216;product/&#8217;</span><span class="sy0">.</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;product_id&#8217;</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st_h">&#8216;/&#8217;</span><span class="sy0">.</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$path</span><span class="br0">&#41;</span>?<span class="re0">$path</span><span class="sy0">.</span><span class="st_h">&#8216;/&#8217;</span><span class="sy0">:</span><span class="st_h">&#8221;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>toSlug<span class="br0">&#40;</span><span class="re0">$product</span><span class="br0">&#91;</span><span class="st_h">&#8216;name&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">break</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">case</span> <span class="st_h">&#8216;product/category&#8217;</span><span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>load<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>model<span class="br0">&#40;</span><span class="st_h">&#8216;catalog/category&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>load<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>model<span class="br0">&#40;</span><span class="st_h">&#8216;catalog/product&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$categoryId</span> <span class="sy0">=</span> <a href="http://www.php.net/explode"><span class="kw3">explode</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;_&#8217;</span><span class="sy0">,</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$path</span> <span class="sy0">=</span> <span class="st_h">&#8221;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$categoryId</span><span class="br0">&#41;</span> <span class="sy0">==</span> 1<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$path</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>model_catalog_product<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>getPathUp<span class="br0">&#40;</span><span class="re0">$categoryId</span><span class="br0">&#91;</span><span class="st_h">&#8217;0&#8242;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$path</span> <span class="sy0">=</span> <a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$path</span><span class="sy0">,-</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">==</span><span class="st_h">&#8216;_&#8217;</span>?<a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$path</span><span class="sy0">,</span>0<span class="sy0">,</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$path</span><span class="br0">&#41;</span><span class="sy0">-</span>1<span class="br0">&#41;</span><span class="sy0">:</span><span class="re0">$path</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$categoryId</span> <span class="sy0">=</span> <span class="re0">$categoryId</span><span class="br0">&#91;</span><span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$categoryId</span><span class="br0">&#41;</span><span class="sy0">-</span>1<span class="br0">&#41;</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$category</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>model_catalog_category<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>getCategory<span class="br0">&#40;</span><span class="re0">$categoryId</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$url</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>config<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#40;</span><span class="st_h">&#8216;config_url&#8217;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">&#8216;category/&#8217;</span><span class="sy0">.</span><span class="br0">&#40;</span><span class="re0">$path</span>?<span class="re0">$path</span><span class="sy0">:</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">&#8216;/&#8217;</span><span class="sy0">.</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>toSlug<span class="br0">&#40;</span><span class="re0">$category</span><span class="br0">&#91;</span><span class="st_h">&#8216;name&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">break</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">case</span> <span class="st_h">&#8216;information/information&#8217;</span><span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>load<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>model<span class="br0">&#40;</span><span class="st_h">&#8216;catalog/information&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$info</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>model_catalog_information<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>getInformation<span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;information_id&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$url</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>config<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#40;</span><span class="st_h">&#8216;config_url&#8217;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">&#8216;information/&#8217;</span><span class="sy0">.</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;information_id&#8217;</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st_h">&#8216;/&#8217;</span><span class="sy0">.</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>toSlug<span class="br0">&#40;</span><span class="re0">$info</span><span class="br0">&#91;</span><span class="st_h">&#8216;title&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">break</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">default</span><span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$route</span> <span class="sy0">=</span> <a href="http://www.php.net/explode"><span class="kw3">explode</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;/&#8217;</span><span class="sy0">,</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$url</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>config<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#40;</span><span class="st_h">&#8216;config_url&#8217;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">break</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/unset"><span class="kw3">unset</span></a><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span><span class="sy0">,</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span><span class="sy0">,</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;product_id&#8217;</span><span class="br0">&#93;</span><span class="sy0">,</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">&#8216;information_id&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$query</span> <span class="sy0">=</span> <span class="st_h">&#8221;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$data</span> <span class="kw1">as</span> <span class="re0">$key</span> <span class="sy0">=&amp;</span>gt<span class="sy0">;</span> <span class="re0">$value</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$query</span> <span class="sy0">.=</span> <span class="st_h">&#8216;&amp;amp;&#8217;</span> <span class="sy0">.</span> <span class="re0">$key</span> <span class="sy0">.</span> <span class="st_h">&#8216;=&#8217;</span> <span class="sy0">.</span> <span class="re0">$value</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$query</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$query</span> <span class="sy0">=</span> <span class="st_h">&#8216;?&#8217;</span> <span class="sy0">.</span> <a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><span class="re0">$query</span><span class="sy0">,</span> <span class="st_h">&#8216;&amp;amp;&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">return</span> <span class="re0">$url</span><span class="sy0">.</span><span class="re0">$query</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">return</span> <span class="re0">$link</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">return</span> <span class="re0">$link</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">function</span> toSlug<span class="br0">&#40;</span><span class="re0">$name</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$name</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st0">&quot;&#8217;&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="sy0">,</span> <span class="re0">$name</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$name</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;&quot;&#8217;</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="sy0">,</span> <span class="re0">$name</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$name</span> <span class="sy0">=</span> <a href="http://www.php.net/strtolower"><span class="kw3">strtolower</span></a><span class="br0">&#40;</span><span class="re0">$name</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$name</span> <span class="sy0">=</span> <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span><span class="st0">&quot;/&amp;amp;#?[a-z0-9]+;/i&quot;</span><span class="sy0">,</span><span class="st0">&quot;&quot;</span><span class="sy0">,</span><span class="re0">$name</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$name</span> <span class="sy0">=</span> <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;/[^a-zA-Z0-9-]/&#8217;</span><span class="sy0">,</span> <span class="st_h">&#8216;-&#8217;</span><span class="sy0">,</span> <span class="re0">$name</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$name</span> <span class="sy0">=</span> <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;/-+/&#8217;</span><span class="sy0">,</span> <span class="st0">&quot;-&quot;</span><span class="sy0">,</span> <span class="re0">$name</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">return</span> <span class="re0">$name</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</div>
<p>then change catalog/controller/common/seo_url.php</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">function</span> index<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;_route_&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$parts</span> <span class="sy0">=</span> <a href="http://www.php.net/explode"><span class="kw3">explode</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;/&#8217;</span><span class="sy0">,</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;_route_&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$routes</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;category&#8217;</span><span class="sy0">,</span><span class="st_h">&#8216;product&#8217;</span><span class="sy0">,</span><span class="st_h">&#8216;information&#8217;</span><span class="sy0">,</span><span class="st_h">&#8216;account&#8217;</span><span class="sy0">,</span><span class="st_h">&#8216;common&#8217;</span><span class="sy0">,</span><span class="st_h">&#8216;checkout&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/in_array"><span class="kw3">in_array</span></a><span class="br0">&#40;</span><span class="re0">$parts</span><span class="br0">&#91;</span>0<span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$routes</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">switch</span><span class="br0">&#40;</span><span class="re0">$parts</span><span class="br0">&#91;</span>0<span class="br0">&#93;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">case</span> <span class="st_h">&#8216;category&#8217;</span><span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$parts</span><span class="br0">&#91;</span>1<span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">break</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">case</span> <span class="st_h">&#8216;product&#8217;</span><span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;product_id&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$parts</span><span class="br0">&#91;</span>1<span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$parts</span><span class="br0">&#91;</span>2<span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">break</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">case</span> <span class="st_h">&#8216;information&#8217;</span><span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;information_id&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$parts</span><span class="br0">&#91;</span>1<span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">break</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">default</span><span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;_route_&#8217;</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">break</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$parts</span> <span class="kw1">as</span> <span class="re0">$part</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$query</span> <span class="sy0">=</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>db<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>query<span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM &quot;</span> <span class="sy0">.</span> DB_PREFIX <span class="sy0">.</span> <span class="st0">&quot;url_alias WHERE keyword = &#8216;&quot;</span> <span class="sy0">.</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>db<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>escape<span class="br0">&#40;</span><span class="re0">$part</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st0">&quot;&#8217;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$query</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>num_rows<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$url</span> <span class="sy0">=</span> <a href="http://www.php.net/explode"><span class="kw3">explode</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;=&#8217;</span><span class="sy0">,</span> <span class="re0">$query</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>row<span class="br0">&#91;</span><span class="st_h">&#8216;query&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st_h">&#8216;product_id&#8217;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;product_id&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$url</span><span class="br0">&#91;</span>1<span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st_h">&#8216;category_id&#8217;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$url</span><span class="br0">&#91;</span>1<span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span> <span class="sy0">.=</span> <span class="st_h">&#8216;_&#8217;</span> <span class="sy0">.</span> <span class="re0">$url</span><span class="br0">&#91;</span>1<span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st_h">&#8216;manufacturer_id&#8217;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;manufacturer_id&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$url</span><span class="br0">&#91;</span>1<span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st_h">&#8216;information_id&#8217;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;information_id&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$url</span><span class="br0">&#91;</span>1<span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st_h">&#8216;error/not_found&#8217;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;product_id&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st_h">&#8216;product/product&#8217;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> <span class="kw1">elseif</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;path&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st_h">&#8216;product/category&#8217;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> <span class="kw1">elseif</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;manufacturer_id&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st_h">&#8216;product/manufacturer&#8217;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> <span class="kw1">elseif</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;information_id&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st_h">&#8216;information/information&#8217;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">return</span> <span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>forward<span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>request<span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get<span class="br0">&#91;</span><span class="st_h">&#8216;route&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/opencart-seo-friendly-urls/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>get cakephp build-in css compression to work</title>
		<link>http://www.bunchacode.com/programming/get-cakephp-build-in-css-compression-to-work/</link>
		<comments>http://www.bunchacode.com/programming/get-cakephp-build-in-css-compression-to-work/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 19:45:41 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=194</guid>
		<description><![CDATA[Since cakephp 1.3, build-in css compression has stopped working. at least for me. however, it&#8217;s very easy to get it working again. Step 1: grab csspp from here and put it in your vendor directory so it looks something like this (app/vendors/csspp/csspp.php) Step 2: in your core.php file in app/config, uncomment Configure::write(&#8216;Asset.filter.css&#8217;, &#8216;css.php&#8217;); Step 3: [...]]]></description>
			<content:encoded><![CDATA[<p>Since cakephp 1.3, build-in css compression has stopped working. at least for me. however, it&#8217;s very easy to get it working again.</p>
<p><strong>Step 1:</strong></p>
<p>grab csspp from <a href="http://github.com/jeremyboles/csspp/blob/master/csspp.php" target="_blank">here</a> and put it in your vendor directory so it looks something like this (app/vendors/csspp/csspp.php)</p>
<p><strong>Step 2:</strong></p>
<p>in your core.php file in app/config, uncomment <strong>Configure::write(&#8216;Asset.filter.css&#8217;, &#8216;css.php&#8217;);</strong></p>
<p><strong>Step 3:</strong></p>
<p>in your css.php under app/webroot,  modify make_clean_css function so that it looks something like this</p>
<pre class="php">
<span class="phpFunctionKeyword">function</span> make_clean_css<span class="phpOperator">(</span>$path, $name<span class="phpOperator">)</span>
<span class="phpOperator">{</span>
App<span class="phpOperator">:</span><span class="phpOperator">:</span>import<span class="phpOperator">(</span><span class="phpString">'Vendor'</span>, <span class="phpString">'csspp'</span> <span class="phpOperator">.</span> DS <span class="phpOperator">.</span> <span class="phpString">'csspp'</span><span class="phpOperator">)</span><span class="phpText">;</span>
$data <span class="phpOperator">=</span> <span class="phpFunction">file_get_contents</span><span class="phpOperator">(</span>$path<span class="phpOperator">)</span><span class="phpText">;</span>
$csspp <span class="phpOperator">=</span><span class="phpKeyword"> new </span>csspp<span class="phpOperator">(</span>$name,<span class="phpString">''</span><span class="phpOperator">)</span><span class="phpText">;</span>
$output <span class="phpOperator">=</span> $csspp<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>process<span class="phpOperator">(</span><span class="phpOperator">)</span><span class="phpText">;</span>
$ratio <span class="phpOperator">=</span> 100 - <span class="phpOperator">(</span><span class="phpFunction">round</span><span class="phpOperator">(</span><span class="phpFunction">strlen</span><span class="phpOperator">(</span>$output<span class="phpOperator">)</span> / <span class="phpFunction">strlen</span><span class="phpOperator">(</span>$data<span class="phpOperator">)</span>, <span class="phpNumber">3</span><span class="phpOperator">)</span> * 100<span class="phpOperator">)</span><span class="phpText">;</span>
$output <span class="phpOperator">=</span> <span class="phpString">" <span class="phpComment">/* file<span class="phpOperator">:</span> $name, ratio<span class="phpOperator">:</span> $ratio% */</span> "</span> <span class="phpOperator">.</span> $output;
<span class="phpKeyword">
return </span>$output;
<span class="phpOperator">}</span>
</pre>
<p>and that should be it. if it doesnt work for some reason,</p>
<p>change  line 82 in your app/webroot/css.php to</p>
<p><strong>if (file_exists($cachepath) &amp;&amp; 0)</strong></p>
<p>so you won&#8217;t be looking at cached file when u debug.<strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/get-cakephp-build-in-css-compression-to-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery validate plugin, show only one error at a time</title>
		<link>http://www.bunchacode.com/programming/jquery-validate-plugin-show-only-one-error-at-a-time/</link>
		<comments>http://www.bunchacode.com/programming/jquery-validate-plugin-show-only-one-error-at-a-time/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 22:38:21 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[validate]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=190</guid>
		<description><![CDATA[﻿$('#form').validate({ ﻿errorLabelContainer:'#errorContainer', showErrors: function(errorMap, errorList) { if(errorList.length) { $('#errorContainer').html(errorList[0]['message']); } }, highlight:function(element,errorClass){ $(element).parent('td').addClass('error'); }, unhighlight:function(element,errorClass){ $(element).parent('td').removeClass('error'); } })]]></description>
			<content:encoded><![CDATA[<pre class="php">
﻿$<span class="phpOperator">(</span><span class="phpString">'#form'</span><span class="phpOperator">)</span>.validate<span class="phpOperator">(</span><span class="phpOperator">{</span>
﻿errorLabelContainer<span class="phpOperator">:</span><span class="phpString">'#errorContainer'</span>,
showErrors<span class="phpOperator">:</span> <span class="phpFunctionKeyword">function</span><span class="phpOperator">(</span>errorMap, errorList<span class="phpOperator">)</span> <span class="phpOperator">{</span>
<span class="phpKeyword">
if<span class="phpOperator">(</span></span>errorList.length<span class="phpOperator">)</span>
<span class="phpOperator">{</span>
$<span class="phpOperator">(</span><span class="phpString">'#errorContainer'</span><span class="phpOperator">)</span>.html<span class="phpOperator">(</span>errorList<span class="phpOperator">[</span><span class="phpNumber">0</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'message'</span><span class="phpOperator">]</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpOperator">}</span>
<span class="phpOperator">}</span>,
highlight<span class="phpOperator">:</span><span class="phpFunctionKeyword">function</span><span class="phpOperator">(</span>element,errorClass<span class="phpOperator">)</span><span class="phpOperator">{</span>
$<span class="phpOperator">(</span>element<span class="phpOperator">)</span>.parent<span class="phpOperator">(</span><span class="phpString">'td'</span><span class="phpOperator">)</span>.addClass<span class="phpOperator">(</span><span class="phpString">'error'</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpOperator">}</span>,
unhighlight<span class="phpOperator">:</span><span class="phpFunctionKeyword">function</span><span class="phpOperator">(</span>element,errorClass<span class="phpOperator">)</span><span class="phpOperator">{</span>
$<span class="phpOperator">(</span>element<span class="phpOperator">)</span>.parent<span class="phpOperator">(</span><span class="phpString">'td'</span><span class="phpOperator">)</span>.removeClass<span class="phpOperator">(</span><span class="phpString">'error'</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpOperator">}</span>
<span class="phpOperator">}</span><span class="phpOperator">)</span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/jquery-validate-plugin-show-only-one-error-at-a-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery validate plugin with ajax duplicate check</title>
		<link>http://www.bunchacode.com/programming/jquery-validate-plugin-with-ajax-duplicate-check/</link>
		<comments>http://www.bunchacode.com/programming/jquery-validate-plugin-with-ajax-duplicate-check/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 19:40:58 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[valdate]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=183</guid>
		<description><![CDATA[jQuery validate plugin is pretty awsome. However it doesn&#8217;t do everything. That&#8217;s why the plugin have the addMethod function. And I need to add an ajax duplicate check for an email input. Here&#8217;s the method i wrote. There might be a better way. I would love to know. jQuery.validator.addMethod("checkForDupeEmail", function(value, element, param){ var ajaxFunc = [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/" target="_blank">jQuery validate plugin</a> is pretty awsome. However it doesn&#8217;t do everything. That&#8217;s why the plugin have the addMethod function. And I need to add an ajax duplicate check for an email input. Here&#8217;s the method i wrote. There might be a better way. I would love to know.</p>
<pre class="php">
jQuery<span class="phpOperator">.</span>validator.addMethod<span class="phpOperator">(</span><span class="phpString">"checkForDupeEmail"</span>, <span class="phpFunctionKeyword">function</span><span class="phpOperator">(</span>value, element, param<span class="phpOperator">)</span><span class="phpOperator">{</span>
<span class="phpKeyword">
var </span>ajaxFunc <span class="phpOperator">=</span> $<span class="phpOperator">.</span>ajax<span class="phpOperator">(</span><span class="phpOperator">{</span>
async<span class="phpKeyword"><span class="phpOperator">:</span>false,</span>   <span class="phpComment">//we have to set it to<span class="phpKeyword"> false,</span> it does not<span class="phpKeyword"> return </span>a value before we even complete the request.
</span>data<span class="phpOperator">:</span><span class="phpString">'email='</span><span class="phpOperator">+</span><span class="phpOperator">(</span>$<span class="phpOperator">.</span><span class="phpFunction">trim</span><span class="phpOperator">(</span>value<span class="phpOperator">)</span><span class="phpOperator">)</span>,
type<span class="phpOperator">:</span><span class="phpString">'POST'</span>,
url<span class="phpOperator">:</span><span class="phpString">'/employees/ajax_checkDupe'</span>,
dataType<span class="phpOperator">:</span><span class="phpString">'text'</span>,
<span class="phpOperator">}</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpComment">//here we check the response
</span>
<span class="phpKeyword">
if<span class="phpOperator">(</span></span>ajaxFunc<span class="phpOperator">.</span>responseText <span class="phpOperator"><span class="phpOperator">=</span>=</span> <span class="phpNumber">1</span><span class="phpOperator">)</span>
<span class="phpKeyword">
return </span>>true<span class="phpText">;</span>
<span class="phpKeyword">
else
</span><span class="phpKeyword">
return </span>>false<span class="phpText">;</span>
<span class="phpOperator">}</span><span class="phpOperator">)</span><span class="phpText">;</span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/jquery-validate-plugin-with-ajax-duplicate-check/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dynamic subdomain in cakephp</title>
		<link>http://www.bunchacode.com/programming/dynamic-subdomain-in-cakephp/</link>
		<comments>http://www.bunchacode.com/programming/dynamic-subdomain-in-cakephp/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 22:05:53 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[subdomain]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=175</guid>
		<description><![CDATA[I am doing this under windows 7+Apache on my local machine. So it&#8217;s a local environment. Production setup might change slightly. In apache httpd-vhosts.conf, which can be found in Apache2.2\conf\extra\ &#60;VirtualHost *:80&#62; ServerName company.lc DocumentRoot D:/htdocs/web/public/company/app/webroot ServerAlias *.company.lc &#60;/VirtualHost&#62; And in windows hosts file which can be found windows\system32\drivers\etc\ in windows 7 127.0.0.1       test.company.lc 127.0.0.1       [...]]]></description>
			<content:encoded><![CDATA[<p>I am doing this under windows 7+Apache on my local machine. So it&#8217;s a local environment. Production setup might change slightly.</p>
<p>In apache <strong>httpd-vhosts.conf</strong>, which can be found in Apache2.2\conf\extra\</p>
<blockquote><p>&lt;VirtualHost *:80&gt;<br />
ServerName company.lc<br />
DocumentRoot D:/htdocs/web/public/company/app/webroot<br />
ServerAlias *.company.lc<br />
&lt;/VirtualHost&gt;</p></blockquote>
<p>And in windows <strong>hosts </strong>file which can be found windows\system32\drivers\etc\ in windows 7</p>
<blockquote><p>127.0.0.1       test.company.lc<br />
127.0.0.1       company.lc</p></blockquote>
<p>since windows hosts doesnt allow dynamic subdomain. You have to type out each subdomain you want accessible through your browser locally. Not a big deal.</p>
<p>Restart apache. If it doesn&#8217;t work. Flush your local dns by typing ipconfig /flushdns in cmd.exe.</p>
<p>Now you should be able to access test.company.lc correctly.</p>
<p>I have a function in my app_controller.php for grabbing the subdomain and do some comparison and checking. It&#8217;s very simple though flawed in some way.</p>
<pre class="php">
<span class="phpFunctionKeyword">function</span> getSubdomain<span class="phpOperator">(</span><span class="phpOperator">)</span> <span class="phpOperator">{</span>
$domain <span class="phpOperator">=</span> <span class="phpFunction">parse_url</span><span class="phpOperator">(</span><span class="phpScriptVar">$_SERVER</span><span class="phpOperator">[</span><span class="phpString">'HTTP_HOST'</span><span class="phpOperator">]</span><span class="phpOperator">)</span><span class="phpText">;</span>
$domain <span class="phpOperator">=</span> <span class="phpFunction">explode</span><span class="phpOperator">(</span><span class="phpString">'<span class="phpOperator">.</span>'</span>,$domain<span class="phpOperator">[</span><span class="phpString">'path'</span><span class="phpOperator">]</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword">
if<span class="phpOperator">(</span></span><span class="phpFunction">count</span><span class="phpOperator">(</span>$domain<span class="phpOperator">)</span><span class="phpOperator"><span class="phpOperator">=</span>=</span><span class="phpNumber">3</span> and <span class="phpOperator">!</span><span class="phpFunction">empty</span><span class="phpOperator">(</span>$domain<span class="phpOperator">[</span><span class="phpNumber">0</span><span class="phpOperator">]</span><span class="phpOperator">)</span><span class="phpOperator">)</span> <span class="phpOperator">{</span>
<span class="phpKeyword">
return </span>$domain<span class="phpOperator">[</span><span class="phpNumber">0</span><span class="phpOperator">]</span><span class="phpText">;</span>
<span class="phpOperator">}</span>
<span class="phpKeyword">
return </span><span class="phpString">''</span><span class="phpText">;</span>
<span class="phpOperator">}</span>
</pre>
<p>And there you have it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/dynamic-subdomain-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shadow Menu</title>
		<link>http://www.bunchacode.com/programming/shadow-menu/</link>
		<comments>http://www.bunchacode.com/programming/shadow-menu/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 05:20:07 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[dropdown]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[menu]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=166</guid>
		<description><![CDATA[Shadow Menu is a simple dropdown menu with a little animation. see demo]]></description>
			<content:encoded><![CDATA[<p>Shadow Menu is a simple dropdown menu with a little animation.</p>
<p><a rel="attachment wp-att-167" href="http://www.bunchacode.com/programming/shadow-menu/attachment/1/"><img class="alignnone size-full wp-image-167" title="1" src="http://www.bunchacode.com/wp-content/uploads/2009/08/1.jpg" alt="1" width="764" height="254" /></a></p>
<p>see <a href="http://www.bunchacode.com/Shadow%20Menu/">demo</a></p>
<a class="downloadlink" href="http://www.bunchacode.com/wp-content/plugins/download-monitor/download.php?id=1" title="Version1.0 downloaded 201 times" >ShadowMenu -- Download (201)</a>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/shadow-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>relative time in cakephp</title>
		<link>http://www.bunchacode.com/programming/relative-time-in-cakephp/</link>
		<comments>http://www.bunchacode.com/programming/relative-time-in-cakephp/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 15:41:07 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[date]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=160</guid>
		<description><![CDATA[function plural($num) { if ($num != 1) return "s"; } function getRelativeTime($date) { $diff = time() - strtotime($date); if ($diff&#60;60) return $diff . " second" . plural($diff) . " ago"; $diff = round($diff/60); if ($diff&#60;60) return $diff . " minute" . plural($diff) . " ago"; $diff = round($diff/60); if ($diff&#60;24) return $diff . " hour" [...]]]></description>
			<content:encoded><![CDATA[<pre class="php">
<span class="phpFunctionKeyword">function</span> plural<span class="phpOperator">(</span>$num<span class="phpOperator">)</span> <span class="phpOperator">{</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$num <span class="phpOperator">!</span><span class="phpOperator">=</span> <span class="phpNumber">1</span><span class="phpOperator">)</span>
<span class="phpKeyword"> return </span><span class="phpString">"s"</span><span class="phpText">;</span>
<span class="phpOperator">}</span>
<span class="phpFunctionKeyword">function</span> getRelativeTime<span class="phpOperator">(</span>$<span class="phpFunction">date</span><span class="phpOperator">)</span> <span class="phpOperator">{</span>
 $diff <span class="phpOperator">=</span> <span class="phpFunction">time</span><span class="phpOperator">(</span><span class="phpOperator">)</span> - strto<span class="phpFunction">time</span><span class="phpOperator">(</span>$<span class="phpFunction">date</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$diff<span class="phpOperator">&lt;</span>60<span class="phpOperator">)</span>
<span class="phpKeyword"> return </span>$diff <span class="phpOperator">.</span> <span class="phpString">" second"</span> <span class="phpOperator">.</span> plural<span class="phpOperator">(</span>$diff<span class="phpOperator">)</span> <span class="phpOperator">.</span> <span class="phpString">" ago"</span><span class="phpText">;</span>
 $diff <span class="phpOperator">=</span> <span class="phpFunction">round</span><span class="phpOperator">(</span>$diff/60<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$diff<span class="phpOperator">&lt;</span>60<span class="phpOperator">)</span>
<span class="phpKeyword"> return </span>$diff <span class="phpOperator">.</span> <span class="phpString">" minute"</span> <span class="phpOperator">.</span> plural<span class="phpOperator">(</span>$diff<span class="phpOperator">)</span> <span class="phpOperator">.</span> <span class="phpString">" ago"</span><span class="phpText">;</span>
 $diff <span class="phpOperator">=</span> <span class="phpFunction">round</span><span class="phpOperator">(</span>$diff/60<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$diff<span class="phpOperator">&lt;</span>24<span class="phpOperator">)</span>
<span class="phpKeyword"> return </span>$diff <span class="phpOperator">.</span> <span class="phpString">" hour"</span> <span class="phpOperator">.</span> plural<span class="phpOperator">(</span>$diff<span class="phpOperator">)</span> <span class="phpOperator">.</span> <span class="phpString">" ago"</span><span class="phpText">;</span>
 $diff <span class="phpOperator">=</span> <span class="phpFunction">round</span><span class="phpOperator">(</span>$diff/24<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$diff<span class="phpOperator">&lt;</span><span class="phpNumber">7</span><span class="phpOperator">)</span>
<span class="phpKeyword"> return </span>$diff <span class="phpOperator">.</span> <span class="phpString">" day"</span> <span class="phpOperator">.</span> plural<span class="phpOperator">(</span>$diff<span class="phpOperator">)</span> <span class="phpOperator">.</span> <span class="phpString">" ago"</span><span class="phpText">;</span>
 $diff <span class="phpOperator">=</span> <span class="phpFunction">round</span><span class="phpOperator">(</span>$diff/<span class="phpNumber">7</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$diff<span class="phpOperator">&lt;</span><span class="phpNumber">4</span><span class="phpOperator">)</span>
<span class="phpKeyword"> return </span>$diff <span class="phpOperator">.</span> <span class="phpString">" week"</span> <span class="phpOperator">.</span> plural<span class="phpOperator">(</span>$diff<span class="phpOperator">)</span> <span class="phpOperator">.</span> <span class="phpString">" ago"</span><span class="phpText">;</span>
<span class="phpKeyword"> return </span><span class="phpString">"on "</span> <span class="phpOperator">.</span> <span class="phpFunction">date</span><span class="phpOperator">(</span><span class="phpString">"F j, Y"</span>, strto<span class="phpFunction">time</span><span class="phpOperator">(</span>$<span class="phpFunction">date</span><span class="phpOperator">)</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpOperator">}</span><span class="phpOperator">&lt;</span>span<span class="phpOperator">&gt;</span>
</pre>
<p>If you want to use this in your view files, You need a create a file call app.php in view folder.<br />
In your app_controller.php declare a variable</p>
<pre class="php">
<span class="phpKeyword">
var </span>$view <span class="phpOperator">=</span> <span class="phpString">"App"</span><span class="phpText">;</span>
</pre>
<p>your app.php looks something like this</p>
<pre class="php">
<span class="phpKeyword">class </span>AppView<span class="phpKeyword"><span class="phpKeyword"> extends </span></span>View<span class="phpOperator">{</span>
 <span class="phpFunctionKeyword">function</span> convertMysqlDate<span class="phpOperator">(</span>$dateString<span class="phpOperator">)</span>
 <span class="phpOperator">{</span>
<span class="phpKeyword"> return </span><span class="phpFunction">date</span><span class="phpOperator">(</span><span class="phpString">'M d Y h<span class="phpOperator">:</span>s A'</span>,<span class="phpFunction">strto<span class="phpFunction">time</span></span><span class="phpOperator">(</span>$dateString<span class="phpOperator">)</span><span class="phpOperator">)</span><span class="phpText">;</span>
 <span class="phpOperator">}</span>
 <span class="phpFunctionKeyword">function</span> plural<span class="phpOperator">(</span>$num<span class="phpOperator">)</span> <span class="phpOperator">{</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$num <span class="phpOperator">!</span><span class="phpOperator">=</span> <span class="phpNumber">1</span><span class="phpOperator">)</span>
<span class="phpKeyword"> return </span><span class="phpString">"s"</span><span class="phpText">;</span>
 <span class="phpOperator">}</span>
 <span class="phpFunctionKeyword">function</span> getRelativeTime<span class="phpOperator">(</span>$<span class="phpFunction">date</span><span class="phpOperator">)</span> <span class="phpOperator">{</span>
 $diff <span class="phpOperator">=</span> <span class="phpFunction">time</span><span class="phpOperator">(</span><span class="phpOperator">)</span> - <span class="phpFunction">strto<span class="phpFunction">time</span></span><span class="phpOperator">(</span>$<span class="phpFunction">date</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$diff<span class="phpOperator">&lt;</span>60<span class="phpOperator">)</span>
<span class="phpKeyword"> return </span>$diff <span class="phpOperator">.</span> <span class="phpString">" second"</span> <span class="phpOperator">.</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>plural<span class="phpOperator">(</span>$diff<span class="phpOperator">)</span> <span class="phpOperator">.</span> <span class="phpString">" ago"</span><span class="phpText">;</span>
 $diff <span class="phpOperator">=</span> <span class="phpFunction">round</span><span class="phpOperator">(</span>$diff/60<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$diff<span class="phpOperator">&lt;</span>60<span class="phpOperator">)</span>
<span class="phpKeyword"> return </span>$diff <span class="phpOperator">.</span> <span class="phpString">" minute"</span> <span class="phpOperator">.</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>plural<span class="phpOperator">(</span>$diff<span class="phpOperator">)</span> <span class="phpOperator">.</span> <span class="phpString">" ago"</span><span class="phpText">;</span>
 $diff <span class="phpOperator">=</span> <span class="phpFunction">round</span><span class="phpOperator">(</span>$diff/60<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$diff<span class="phpOperator">&lt;</span>24<span class="phpOperator">)</span>
<span class="phpKeyword"> return </span>$diff <span class="phpOperator">.</span> <span class="phpString">" hour"</span> <span class="phpOperator">.</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>plural<span class="phpOperator">(</span>$diff<span class="phpOperator">)</span> <span class="phpOperator">.</span> <span class="phpString">" ago"</span><span class="phpText">;</span>
 $diff <span class="phpOperator">=</span> <span class="phpFunction">round</span><span class="phpOperator">(</span>$diff/24<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$diff<span class="phpOperator">&lt;</span><span class="phpNumber">7</span><span class="phpOperator">)</span>
<span class="phpKeyword"> return </span>$diff <span class="phpOperator">.</span> <span class="phpString">" day"</span> <span class="phpOperator">.</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>plural<span class="phpOperator">(</span>$diff<span class="phpOperator">)</span> <span class="phpOperator">.</span> <span class="phpString">" ago"</span><span class="phpText">;</span>
 $diff <span class="phpOperator">=</span> <span class="phpFunction">round</span><span class="phpOperator">(</span>$diff/<span class="phpNumber">7</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword"> if </span><span class="phpOperator">(</span>$diff<span class="phpOperator">&lt;</span><span class="phpNumber">4</span><span class="phpOperator">)</span>
<span class="phpKeyword"> return </span>$diff <span class="phpOperator">.</span> <span class="phpString">" week"</span> <span class="phpOperator">.</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>plural<span class="phpOperator">(</span>$diff<span class="phpOperator">)</span> <span class="phpOperator">.</span> <span class="phpString">" ago"</span><span class="phpText">;</span>
<span class="phpKeyword"> return </span><span class="phpString">"on "</span> <span class="phpOperator">.</span> <span class="phpFunction">date</span><span class="phpOperator">(</span><span class="phpString">"F j, Y"</span>, <span class="phpFunction">strto<span class="phpFunction">time</span></span><span class="phpOperator">(</span>$<span class="phpFunction">date</span><span class="phpOperator">)</span><span class="phpOperator">)</span><span class="phpText">;</span>
 <span class="phpOperator">}</span>
<span class="phpOperator">}</span>
</pre>
<p><span><br />
<a href="http://snipplr.com/view/4912/relative-time/" target="_blank">source</a></span></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/relative-time-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>load jquery for firebug console</title>
		<link>http://www.bunchacode.com/programming/load-jquery-for-firebug-console/</link>
		<comments>http://www.bunchacode.com/programming/load-jquery-for-firebug-console/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 02:50:13 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=155</guid>
		<description><![CDATA[javascript:void((function(){j=document.createElement("SCRIPT");j.src="http://code.jquery.com/jquery-latest.pack.js";document.getElementsByTagName("HEAD")[0].appendChild(j);})()) you put this in your address bar and hit enter. Bookmarking it would help a lot also. of course, i didnt write it. I also forgot where i found it too.]]></description>
			<content:encoded><![CDATA[<pre class="php">
javascript<span class="phpOperator">:</span>void<span class="phpOperator">(</span><span class="phpOperator">(</span><span class="phpFunctionKeyword">function</span><span class="phpOperator">(</span><span class="phpOperator">)</span><span class="phpOperator">{</span>j<span class="phpOperator">=</span>document.createElement<span class="phpOperator">(</span><span class="phpString">"SCRIPT"</span><span class="phpOperator">)</span><span class="phpText">;</span>j<span class="phpOperator">.</span>src=<span class="phpString">"http<span class="phpOperator">:</span><span class="phpComment">//code.jquery<span class="phpOperator">.</span>com/jquery-latest.pack<span class="phpOperator">.</span>js"</span><span class="phpText">;</span>document.getElementsByTagName<span class="phpOperator">(</span><span class="phpString">"HEAD"</span><span class="phpOperator">)</span><span class="phpOperator">[</span><span class="phpNumber">0</span><span class="phpOperator">]</span>.appendChild<span class="phpOperator">(</span>j<span class="phpOperator">)</span><span class="phpText">;</span><span class="phpOperator">}</span><span class="phpOperator">)</span><span class="phpOperator">(</span><span class="phpOperator">)</span><span class="phpOperator">)</span>
</span>
</pre>
<p>you put this in your address bar and hit enter. Bookmarking it would help a lot also.</p>
<p>of course, i didnt write it. I also forgot where i found it too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/load-jquery-for-firebug-console/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql get first letter of a column from a table</title>
		<link>http://www.bunchacode.com/programming/mysql-get-first-letter-of-a-column-from-a-table/</link>
		<comments>http://www.bunchacode.com/programming/mysql-get-first-letter-of-a-column-from-a-table/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 15:43:43 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=148</guid>
		<description><![CDATA[Let&#8217;s say you have a store table in your database and you want to get the first letter of each store&#8217;s name. So you can create a menu by first letter of each store name and not having a letter that contains no stores. $stores = $this-&#62;Store-&#62;find('all',array(    'order'=&#62;'name ASC', 'fields'=&#62;'DISTINCT(UPPER(LEFT(name,1))) AS letter', 'conditions'=&#62;array("UPPER(LEFT(name,1)) REGEXP '[A-Z]'")));]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s say you have a store table in your database and you want to get the first letter of each store&#8217;s name. So you can create a menu by first letter of each store name and not having a letter that contains no stores.</p>
<pre class="php">
$stores <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>Store<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>find<span class="phpOperator">(</span><span class="phpString">'all'</span>,<span class="phpFunction">array</span><span class="phpOperator">(</span>    <span class="phpString">'order'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'name ASC'</span>,
<span class="phpString">'fields'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'DISTINCT<span class="phpOperator">(</span>UPPER<span class="phpOperator">(</span>LEFT<span class="phpOperator">(</span>name,<span class="phpNumber">1</span><span class="phpOperator">)</span><span class="phpOperator">)</span><span class="phpOperator">)</span> AS letter'</span>,
<span class="phpString">'conditions'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpFunction">array</span><span class="phpOperator">(</span><span class="phpString">"UPPER<span class="phpOperator">(</span>LEFT<span class="phpOperator">(</span>name,<span class="phpNumber">1</span><span class="phpOperator">)</span><span class="phpOperator">)</span> REGEXP <span class="phpString">'<span class="phpOperator">[</span>A-Z<span class="phpOperator">]</span>'</span>"</span><span class="phpOperator">)</span><span class="phpOperator">)</span><span class="phpOperator">)</span><span class="phpText">;</span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/mysql-get-first-letter-of-a-column-from-a-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cakephp model&#8211;sum, avg and etc on same model</title>
		<link>http://www.bunchacode.com/programming/cakephp-model-sum-avg-and-etc-on-same-model/</link>
		<comments>http://www.bunchacode.com/programming/cakephp-model-sum-avg-and-etc-on-same-model/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 16:29:00 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=143</guid>
		<description><![CDATA[If you need to sum up or average a column on a table via bindModel. this is what you are looking for. The table looks like this //each report is connected to same session report via session_id CREATE TABLE IF NOT EXISTS `gather_reports` ( `id` int(11) NOT NULL AUTO_INCREMENT, `session_id` varchar(64) NOT NULL DEFAULT '', [...]]]></description>
			<content:encoded><![CDATA[<p>If you need to sum up or average a column on a table via bindModel. this is what you are looking for.<br />
The table looks like this</p>
<pre class="php">
<span class="phpComment">//each report is connected to same session report via session_id
</span>CREATE TABLE IF NOT EXISTS `gather_reports` <span class="phpOperator">(</span>
  `id` int<span class="phpOperator">(</span>11<span class="phpOperator">)</span> NOT NULL AUTO_INCREMENT,
  `session_id` varchar<span class="phpOperator">(</span>64<span class="phpOperator">)</span> NOT NULL DEFAULT <span class="phpString">''</span>,
  `type` enum<span class="phpOperator">(</span><span class="phpString">'Category'</span>,<span class="phpString">'Store'</span><span class="phpOperator">)</span> NOT NULL DEFAULT <span class="phpString">'Category'</span>,
  `name` varchar<span class="phpOperator">(</span>128<span class="phpOperator">)</span> NOT NULL DEFAULT <span class="phpString">''</span>,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `importedId` text NOT NULL,
  `total` int<span class="phpOperator">(</span>11<span class="phpOperator">)</span> NOT NULL DEFAULT <span class="phpString">'<span class="phpNumber">0</span>'</span>,
  `imported` int<span class="phpOperator">(</span>11<span class="phpOperator">)</span> NOT NULL DEFAULT <span class="phpString">'<span class="phpNumber">0</span>'</span>,
  `duration` int<span class="phpOperator">(</span>11<span class="phpOperator">)</span> NOT NULL DEFAULT <span class="phpString">'<span class="phpNumber">0</span>'</span>,
  PRIMARY KEY <span class="phpOperator">(</span>`id`<span class="phpOperator">)</span>
<span class="phpOperator">)</span>
</pre>
<p>in your controller</p>
<pre class="php">
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>GatherReport<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>bindModel<span class="phpOperator">(</span>
    <span class="phpFunction">array</span><span class="phpOperator">(</span><span class="phpString">'hasOne'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpFunction">array</span><span class="phpOperator">(</span>
	<span class="phpString">'GatherTotal'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpFunction">array</span><span class="phpOperator">(</span>
        	<span class="phpString">'className'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'GatherReport'</span>,
		<span class="phpString">'foreignKey'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'id'</span>,
		<span class="phpString">'fields'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'SUM<span class="phpOperator">(</span>GatherTotal<span class="phpOperator">.</span>total<span class="phpOperator">)</span><span class="phpKeyword"> as </span>total'</span>
	<span class="phpOperator">)</span>,
	<span class="phpString">'GatherImported'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpFunction">array</span><span class="phpOperator">(</span>
		<span class="phpString">'className'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'GatherReport'</span>,
		<span class="phpString">'foreignKey'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'id'</span>,
		<span class="phpString">'fields'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'SUM<span class="phpOperator">(</span>GatherImported<span class="phpOperator">.</span>imported<span class="phpOperator">)</span><span class="phpKeyword"> as </span>imported'</span>
	<span class="phpOperator">)</span>,
	<span class="phpString">'GatherTime'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpFunction">array</span><span class="phpOperator">(</span>
		<span class="phpString">'className'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'GatherReport'</span>,
		<span class="phpString">'foreignKey'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'id'</span>,
		<span class="phpString">'fields'</span><span class="phpOperator"><span class="phpOperator">=</span><span class="phpOperator">&gt;</span></span><span class="phpString">'SUM<span class="phpOperator">(</span>GatherTime.duration<span class="phpOperator">)</span><span class="phpKeyword"> as </span>duration'</span>
	<span class="phpOperator">)</span>
<span class="phpOperator">)</span><span class="phpOperator">)</span><span class="phpKeyword">,false<span class="phpOperator">)</span></span><span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>paginate<span class="phpOperator">[</span><span class="phpString">'GatherReport'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'group'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'GatherReport.session_id'</span><span class="phpText">;</span>
$data <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>paginate<span class="phpOperator">(</span><span class="phpString">'GatherReport'</span><span class="phpOperator">)</span><span class="phpText">;</span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/cakephp-model-sum-avg-and-etc-on-same-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jquery select text on focus or click</title>
		<link>http://www.bunchacode.com/programming/jquery-select-text-on-focus-or-click/</link>
		<comments>http://www.bunchacode.com/programming/jquery-select-text-on-focus-or-click/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 17:39:06 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[select all]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=141</guid>
		<description><![CDATA[$('input').focus(function(){ this.select(); });]]></description>
			<content:encoded><![CDATA[<pre class="javascript">
$('input').focus(function(){
    this.select();
});
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/jquery-select-text-on-focus-or-click/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>excel to mysql import script</title>
		<link>http://www.bunchacode.com/programming/excel-to-mysql-import-script/</link>
		<comments>http://www.bunchacode.com/programming/excel-to-mysql-import-script/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 19:07:25 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[autoit]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=133</guid>
		<description><![CDATA[Sometimes a client requires you to import some data from an excel sheet to mysql. You can do it by hand if there are only a few records. However, if there are a few hundred records, you need some kind of script to do this. I had this same problem. So i wrote something in [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes a client requires you to import some data from an excel sheet to mysql. You can do it by hand if there are only a few records. However, if there are a few hundred records, you need some kind of script to do this. I had this same problem. So i wrote something in <a href="http://www.autoitscript.com/autoit3/" target="_blank">autoit </a>and thought i might share it. The script itself it very simple and very easy to modify.<br />
You need to <a href="http://www.autoitscript.com/autoit3/downloads.shtml">download </a> and install autoit before you can run this. I could just give you the executable, but no one would download it and no one should. Besides the script is very specific and is meant to be modified to suit your need.</p>
<p><a href="http://www.bunchacode.com/?attachment_id=137">here</a> the file in case wordpress butchers my script.</p>
<pre class="php">
<span class="phpKeyword"><span class="phpKeyword">#include </span></span><span class="phpOperator">&lt;</span>GUIConstantsEx<span class="phpOperator">.</span>au3<span class="phpOperator">&gt;</span>
<span class="phpKeyword"><span class="phpKeyword">#include </span></span><span class="phpOperator">&lt;</span>WindowsConstants<span class="phpOperator">.</span>au3<span class="phpOperator">&gt;</span>
<span class="phpKeyword"><span class="phpKeyword">#include </span></span><span class="phpOperator">&lt;</span>EditConstants<span class="phpOperator">.</span>au3<span class="phpOperator">&gt;</span>
<span class="phpKeyword"><span class="phpKeyword">#include </span></span><span class="phpOperator">&lt;</span>Excel<span class="phpOperator">.</span>au3<span class="phpOperator">&gt;</span>
<span class="phpKeyword"><span class="phpKeyword">#include </span></span><span class="phpOperator">&lt;</span>Array<span class="phpOperator">.</span>au3<span class="phpOperator">&gt;</span>
#Include <span class="phpOperator">&lt;</span>Date.au3<span class="phpOperator">&gt;</span>
<span class="phpText">;</span><span class="phpFunction">file</span> picker
$excelFile <span class="phpOperator">=</span> FileOpenDialog<span class="phpOperator">(</span><span class="phpString">"Select an excel <span class="phpFunction">file</span>"</span>,@DesktopDir,<span class="phpString">"Excel <span class="phpOperator">(</span>*<span class="phpOperator">.</span>xls<span class="phpOperator">)</span>"</span> ,<span class="phpNumber">1</span><span class="phpOperator">+</span><span class="phpNumber">2</span><span class="phpOperator">)</span>
If Not @error Then
<span class="phpText">;</span>create main window
$mainGui <span class="phpOperator">=</span> GUICreate<span class="phpOperator">(</span><span class="phpString">"Importing"</span>,350,150<span class="phpOperator">)</span>
GUISetState<span class="phpOperator">(</span>@SW_SHOW<span class="phpOperator">)</span>
$status <span class="phpOperator">=</span> GUICtrlCreateEdit<span class="phpOperator">(</span><span class="phpString">"Begin importing"</span>,10,10,330,130,$ES_AUTOVSCROLL<span class="phpOperator">+</span>$ES_AUTOHSCROLL<span class="phpOperator">+</span>$ES_MULTILINE<span class="phpOperator">+</span>$ES_READONLY<span class="phpOperator">)</span>
addStatus<span class="phpOperator">(</span><span class="phpString">"File selected<span class="phpOperator">:</span>"</span>&#038;amp<span class="phpText">;</span>$excelFile<span class="phpOperator">)</span>
doExport<span class="phpOperator">(</span>$excelFile<span class="phpOperator">)</span>
Else
MsgBox<span class="phpOperator">(</span><span class="phpNumber">0</span>,<span class="phpString">"Error"</span>,<span class="phpString">"Error opening <span class="phpFunction">file</span>"</span><span class="phpOperator">)</span>
Exit
EndIf
While <span class="phpNumber">1</span>
$msg <span class="phpOperator">=</span> GUIGetMsg<span class="phpOperator">(</span><span class="phpOperator">)</span>
If $msg <span class="phpOperator">=</span> $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete<span class="phpOperator">(</span><span class="phpOperator">)</span>
Func doExport<span class="phpOperator">(</span>$<span class="phpFunction">file</span><span class="phpOperator">)</span>
$fpExcel <span class="phpOperator">=</span> _ExcelBookOpen<span class="phpOperator">(</span>$<span class="phpFunction">file</span>,<span class="phpNumber">0</span>,1<span class="phpOperator">)</span>
If @error <span class="phpOperator">=</span> <span class="phpNumber">1</span> Then
addStatus<span class="phpOperator">(</span><span class="phpString">"Unable to Create the Excel Object"</span><span class="phpOperator">)</span>
Exit
ElseIf @error <span class="phpOperator">=</span> <span class="phpNumber">2</span> Then
addStatus<span class="phpOperator">(</span><span class="phpString">"File does not exist - Shame on you<span class="phpOperator">!</span>"</span><span class="phpOperator">)</span>
Exit
Else
addStatus<span class="phpOperator">(</span><span class="phpString">"File open successfully"</span><span class="phpOperator">)</span>
EndIf
$done <span class="phpOperator">=</span> False
$i <span class="phpOperator">=</span> <span class="phpNumber">2</span>
While Not $done
<span class="phpText">;</span>read a row from excel <span class="phpFunction">file</span>
$excelArray <span class="phpOperator">=</span> _ExcelReadArray<span class="phpOperator">(</span>$fpExcel,$i,<span class="phpNumber">1</span>,9,<span class="phpNumber">0</span>,0<span class="phpOperator">)</span>
If $excelArray<span class="phpOperator">[</span><span class="phpNumber">0</span><span class="phpOperator">]</span> <span class="phpOperator">&lt;</span><span class="phpOperator">&gt;</span> <span class="phpString">"" Then
addStatus("reading Row " &amp; $i)
;insert into sql file
arrayToSql($excelArray)
Else
addStatus("Finsihed reading excel file")
addStatus($i-2 &amp; " rows converted into sql statement")
$done = True
EndIf
$i += 1
WEnd
_ExcelBookClose($fpExcel)
EndFunc
Func arrayToSql($array)
;save sql file to desktop
$sqlFile = FileOpen(@DesktopDir&amp;"/ExcelToSql-"&amp;@MDAY&amp;"-"&amp;@MON&amp;"-"&amp;@YEAR&amp;".sql",1+8)
$sqlStatement = "INSERT INTO `_products` (`int_id`, `product_type`, `title`, `description`, `synopsis`, `publication_date`, `price`, `categories`, `list`, `type_id`, `processed`, `write_err`) VALUES ("
$sqlStatement &amp;= "'"&amp; escapeString($array[0]) &amp; "'</span>," <span class="phpText">;</span>int_id
$sqlStatement &#038;amp<span class="phpText">;</span><span class="phpOperator">=</span> <span class="phpString">"<span class="phpString">'"&amp; escapeString($array[1]) &amp; "'</span>,"</span> <span class="phpText">;</span>product_type
$sqlStatement &#038;amp<span class="phpText">;</span><span class="phpOperator">=</span> <span class="phpString">"<span class="phpString">'"&amp; escapeString($array[2]) &amp; "'</span>,"</span> <span class="phpText">;</span>title
$sqlStatement &#038;amp<span class="phpText">;</span><span class="phpOperator">=</span> <span class="phpString">"<span class="phpString">'"&amp; escapeString($array[3]) &amp; "'</span>,"</span> <span class="phpText">;</span>description
$sqlStatement &#038;amp<span class="phpText">;</span><span class="phpOperator">=</span> <span class="phpString">"<span class="phpString">'"&amp; escapeString($array[4]) &amp; "'</span>,"</span> <span class="phpText">;</span>synopsis
$sqlStatement &#038;amp<span class="phpText">;</span><span class="phpOperator">=</span> <span class="phpString">"<span class="phpString">'"&amp; toExcelDate($array[5]) &amp; "'</span>,"</span>  <span class="phpText">;</span><span class="phpFunction">date</span>
$sqlStatement &#038;amp<span class="phpText">;</span><span class="phpOperator">=</span> <span class="phpString">"<span class="phpString">'"&amp; escapeString($array[6]) &amp; "'</span>,"</span> <span class="phpText">;</span>price
$sqlStatement &#038;amp<span class="phpText">;</span><span class="phpOperator">=</span> <span class="phpString">"<span class="phpString">'"&amp; escapeString($array[7]) &amp; "'</span>,"</span> <span class="phpText">;</span>category
$sqlStatement &#038;amp<span class="phpText">;</span><span class="phpOperator">=</span> <span class="phpString">"<span class="phpString">'"&amp; escapeString($array[8]) &amp; "'</span>,"</span> <span class="phpText">;</span><span class="phpFunction">list</span>
$sqlStatement &#038;amp<span class="phpText">;</span><span class="phpOperator">=</span> <span class="phpString">"<span class="phpString">''</span>,<span class="phpString">'N'</span>,<span class="phpString">'N'</span>"</span>
$sqlStatement &#038;amp<span class="phpText">;</span><span class="phpOperator">=</span> <span class="phpString">"<span class="phpOperator">)</span><span class="phpText">;</span>"</span>
FileWriteLine<span class="phpOperator">(</span>$sqlFile,$sqlStatement<span class="phpOperator">)</span>
FileClose<span class="phpOperator">(</span>$sqlFile<span class="phpOperator">)</span>
EndFunc
Func escapeString<span class="phpOperator">(</span>$string<span class="phpOperator">)</span>
<span class="phpText">;</span>replace anything that is not a number, letter or common punctuation
$string <span class="phpOperator">=</span> StringRegExpReplace<span class="phpOperator">(</span>$string,<span class="phpString">"<span class="phpOperator">[</span>^<span class="phpNumber">0</span>-9a-zA-Z<span class="phpOperator">.</span>,\\/\<span class="phpOperator">!</span>@#$%\^\&#038;amp<span class="phpText">;</span>\*\<span class="phpOperator">(</span>\<span class="phpOperator">)</span>\-_\<span class="phpOperator">+</span><span class="phpOperator">=</span>\h<span class="phpOperator">&lt;</span><span class="phpOperator">&gt;</span><span class="phpOperator">]</span>"</span>,<span class="phpString">""</span><span class="phpOperator">)</span>
<span class="phpText">;</span>escape single quote
$string <span class="phpOperator">=</span> StringRegExpReplace<span class="phpOperator">(</span>$string,<span class="phpString">"<span class="phpOperator">[</span><span class="phpString">'<span class="phpOperator">]</span>"</span>,<span class="phpString">"\'</span>"</span><span class="phpOperator">)</span>
Return $string
EndFunc
Func toExcelDate<span class="phpOperator">(</span>$dateString<span class="phpOperator">)</span>
$yearString <span class="phpOperator">=</span> StringMid<span class="phpOperator">(</span>$dateString,<span class="phpNumber">1</span>,4<span class="phpOperator">)</span>
$monthString <span class="phpOperator">=</span> StringMid<span class="phpOperator">(</span>$dateString,<span class="phpNumber">5</span>,2<span class="phpOperator">)</span>
$dayString <span class="phpOperator">=</span> StringMid<span class="phpOperator">(</span>$dateString,<span class="phpNumber">7</span>,2<span class="phpOperator">)</span>
<span class="phpKeyword">
return </span>$dayString&#038;amp<span class="phpText">;</span><span class="phpString">"-"</span>&#038;amp<span class="phpText">;</span>StringMid<span class="phpOperator">(</span>_DateToMonth<span class="phpOperator">(</span>$monthString,<span class="phpNumber">1</span><span class="phpOperator">)</span>,<span class="phpNumber">1</span>,3<span class="phpOperator">)</span>&#038;amp<span class="phpText">;</span><span class="phpString">"-"</span>&#038;amp<span class="phpText">;</span>$yearString
EndFunc
Func addStatus<span class="phpOperator">(</span>$text<span class="phpOperator">)</span>
GUICtrlSetData<span class="phpOperator">(</span>$status,@CRLF&#038;amp<span class="phpText">;</span>$text,<span class="phpNumber">1</span><span class="phpOperator">)</span>
EndFunc
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/excel-to-mysql-import-script/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Game of life, jquery implementation</title>
		<link>http://www.bunchacode.com/programming/game-of-life-jquery-implementation/</link>
		<comments>http://www.bunchacode.com/programming/game-of-life-jquery-implementation/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 15:11:53 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=96</guid>
		<description><![CDATA[Game of life in javascript/jquery flavor. Rules: For a space that is &#8216;populated&#8217;: Each cell with one or no neighbors dies, as if by loneliness. Each cell with four or more neighbors dies, as if by overpopulation. Each cell with two or three neighbors survives. For a space that is &#8216;empty&#8217; or &#8216;unpopulated&#8217; Each cell [...]]]></description>
			<content:encoded><![CDATA[<div class="golWrapper contentWrapper">
<div class="textWrapper">Game of life in javascript/jquery flavor.</div>
<div class="textWrapper"><strong>Rules: </strong></div>
<div class="textWrapper">
<div>
<ul>
<li> For a space that is &#8216;populated&#8217;:
<ul>
<li>Each cell with one or no neighbors dies, as if by loneliness.</li>
<li>Each cell with four or more neighbors dies, as if by overpopulation.</li>
<li>Each cell with two or three neighbors survives.</li>
</ul>
</li>
<li> For a space that is &#8216;empty&#8217; or &#8216;unpopulated&#8217;
<ul>
<li>Each cell with three neighbors becomes populated.</li>
</ul>
</li>
</ul>
</div>
<p><strong>Notes:</strong></p>
<div>
<ul>
<li>runs much faster in Chrome.</li>
<li>broken and runs like crap in all versions of ie</li>
</ul>
</div>
</div>
<div>
<input id="saveBar" style="width: 450px;" onclick="this.select();" /></div>
<div id="GameofLife">place holder</div>
<div>Round: <span id="roundCount" style="font-weight:bold;"> </span></div>
<div class="gameControls"><button id="gameStart">Start</button><button id="gameStop">Stop</button><button id="gameSave">Save</button><button id="gameRestore">Restore</button></p>
<select id="preSetMaps">
<option value="none"></option>
<option value="0,1,0;0,0,1;1,1,1">Glider</option>
<option value="0,1,0;1,1,1;1,0,1;0,1,0">Small exploder</option>
<option value="1,0,1,0,1;1,0,0,0,1;1,0,0,0,1;1,0,0,0,1;1,0,1,0,1">Exploder</option>
<option value="1,1,1,1,1,1,1,1,1,1">10 cells</option>
<option value="0,1,1,1,1;1,0,0,0,1;0,0,0,0,1;1,0,0,1,0">Spaceship</option>
<option value="0,1,1,0,1,1,0;0,1,1,0,1,1,0;0,0,1,0,1,0,0;1,0,1,0,1,0,1;1,0,1,0,1,0,1;1,1,0,0,0,1,1">Tumbler</option>
</select>
<select id="step">
<option value="2000">2 Seconds &#8212; for slow pc</option>
<option value="1000">1 Second</option>
<option value="750">3/4 of a second &#8212; for fast pc</option>
<option value="250">1/4 of a second</option>
<option value="100">1/10 of a second &#8212; for fast pc with google chrome</option>
<option value="50">1/20 of a second</option>
</select>
</div>
</div>
<link rel="stylesheet" href="http://www.bunchacode.com/gameoflife.css" />
<script type="text/javascript" src="http://www.bunchacode.com/js/jquery-1.3.2.min.js"></script><br />
<script type="text/javascript" src="http://www.bunchacode.com/js/gameoflife.js"></script><br />
<script type="text/javascript">// <![CDATA[
     GameofLife_initiate("#GameofLife");
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/game-of-life-jquery-implementation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>internationalization and localization in cakephp</title>
		<link>http://www.bunchacode.com/programming/internationalization-and-localization-in-cakephp/</link>
		<comments>http://www.bunchacode.com/programming/internationalization-and-localization-in-cakephp/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 05:53:39 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[internationalization]]></category>
		<category><![CDATA[l11n]]></category>
		<category><![CDATA[localization]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=75</guid>
		<description><![CDATA[I18n and l11n in cakephp is extremely easy. However before we start, you need to download and install a po file editor. The one I use is called poedit. The main thing you need to change in your application is the way you handle your string constants. Normally, you just type out phrases in your [...]]]></description>
			<content:encoded><![CDATA[<p>I18n and l11n in cakephp is extremely easy. However before we start, you need to download and install a po file editor. The one I use is called <a href="http://www.poedit.net/download.php">poedit</a>.</p>
<p>The main thing you need to change in your application is the way you handle your string constants. Normally, you just type out phrases in your application like:</p>
<pre class="php">
$site_title <span class="phpOperator">=</span> <span class="phpString">"My site title"</span><span class="phpText">;</span>
</pre>
<p>To internationalize it, you change it to</p>
<pre class="php">
$site_title <span class="phpOperator">=</span> __<span class="phpOperator">(</span><span class="phpString">"My site title"</span><span class="phpKeyword">,true<span class="phpOperator">)</span></span><span class="phpText">;</span>
</pre>
<p>The __ function takes a string and returns or echoes the localized version of it by checking the language files. The second parameter tells it if the localized string should be returned.<br />
Obviously, if you are outputting string in your view file. You don&#8217;t need the second parameter because it defaults to false.</p>
<p>Now that your files are ready to be localized, you can start creating the language files you desire.<br />
1. create a folder in app/locale with an appropriate name like rus for russian and eng for english<br />
2. create a folder called LC_MESSAGES. This folder will contain the actual language file.</p>
<p>Now we need to configure the po editor you downloaded earlier.<br />
1. download and install it, of course.<br />
2. now close the catalog manager. go File-&gt;Preference<br />
3. go to translation memory tab, set max.# of missing words to 0 and max. difference in sentence length to 0<br />
4. go to parsers tab, add a new source code parser called php if one doesn&#8217;t already exist.<br />
5. in php parser&#8217;s setting window, change the list of extentions to <strong>*.ctp;*.php</strong>, add whatever suits your needs.<br />
6. change parse command to <strong>xgettext &#8211;force-po -o %o %C %K %F &#8211;language=php </strong><br />
7. change an item in keywords list to <strong>-k%k</strong><br />
8. change an item in input files list to <strong>%f</strong><br />
9. source code charset to <strong>&#8211;from-code=%c</strong> and now hit ok to save everything<br />
10. open poedit, go to File-&gt;Catalogs Manager<br />
11. click on the create a new translation project.<br />
12. give it a name and set the directory to you projects app folder. in my case it looks something like this <strong>D:\htdocs\web\public\mysite\app\</strong><br />
13. Now go to File-&gt;New Catalog&#8230;<br />
14. give it a name, set charset to UTF-8<br />
15. go to paths tab, here you add folders that you want poedit to scan through to look for files. With cakephp the folders you want to include are the controller folder and view folders. you need to enter each of them separetly as poedit don&#8217;t go through the folders recursively.<br />
in my case i added</p>
<pre class="php">
views\layouts
views\home
views\pages
controllers
<span class="phpOperator">.</span>
</pre>
<p>The last dot tells it to look in app folder for files like app_controller.php<br />
16. go to keywords tab, add __ as a keywords. This tells poedit to look for __ when search through the files in path tab. hit ok to save.<br />
17. with a little luck and all the stuff set correctly. you can hit the update catalog button and you should see your string constants in poedit and click on one to write the translation for it.</p>
<p>With all these you still need to tell cakephp which language to use. you can do that like</p>
<pre class="php">
Configure<span class="phpOperator">:</span><span class="phpOperator">:</span>write<span class="phpOperator">(</span><span class="phpString">'Config<span class="phpOperator">.</span>language'</span>,<span class="phpString">'rus'</span><span class="phpOperator">)</span><span class="phpText">;</span>
</pre>
<p>You can send this file to your client and he can use poedit to update the file and send it back to you. All you have to do is to put the file in the appropriate folder in locale, open it with poedit and hit the update button. Then you are set. Pretty frigging awsome if you ask me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/internationalization-and-localization-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>integrating wordpress with cakephp</title>
		<link>http://www.bunchacode.com/programming/integrating-wordpress-with-cakephp/</link>
		<comments>http://www.bunchacode.com/programming/integrating-wordpress-with-cakephp/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 06:13:50 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=51</guid>
		<description><![CDATA[So how do you combine your favorite blogging app with your favorite framework so that user can signin from your cakephp app and maintain his/her session in wordpress, assuming user can only sign up and log in from your cakephp site. The idea is to create a wordpress user when a user signs up on [...]]]></description>
			<content:encoded><![CDATA[<p>So how do you combine your favorite blogging app with your favorite framework so that user can signin from your cakephp app and maintain his/her session in wordpress, assuming user can only sign up and log in from your cakephp site.</p>
<p>The idea is to create a wordpress user when a user signs up on your cakephp site.</p>
<p>1. We need wordpress password hash function to do this properly. You need to create a new component that would contain wp password hashing functions. The file that contains everything you need is at <strong>wp-include/class-phpass.php</strong>. Just turn this class into a cakephp component, so you can include it in your user controller.</p>
<p>2. In your user controller, include your recently created wp hash function component. And after the user is saved into your cakephp user table. You want to add it to your wp user table as well. And it would look something like this.</p>
<pre class="php">
<span class="phpKeyword">
if<span class="phpOperator">(</span></span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>User<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">)</span><span class="phpOperator">)</span>
<span class="phpOperator">{</span>
<span class="phpComment">//create blog user<span class="phpKeyword"> for </span>this user
</span>$wp_hash <span class="phpOperator">=</span><span class="phpKeyword"> new </span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>Wphash<span class="phpText">;</span>
$wp_hash<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>PasswordHash<span class="phpOperator">(</span><span class="phpNumber">8</span>,1<span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'ID'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>User<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>id<span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'user_login'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>sanitize_user<span class="phpOperator">(</span>$email<span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'user_pass'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $wp_hash<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>HashPassword<span class="phpOperator">(</span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'password'</span><span class="phpOperator">]</span><span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'user_email'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpFunction">trim</span><span class="phpOperator">(</span>$email<span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'user_url'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'http<span class="phpOperator">:</span><span class="phpComment">//'</span><span class="phpText">;</span>
</span>$blog_user<span class="phpOperator">[</span><span class="phpString">'user_nicename'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'firstname'</span><span class="phpOperator">]</span>.<span class="phpString">' '</span>.<span class="phpFunction">substr</span><span class="phpOperator">(</span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'lastname'</span><span class="phpOperator">]</span>,<span class="phpNumber">0</span>,1<span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'display_name'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'firstname'</span><span class="phpOperator">]</span>.<span class="phpString">' '</span>.<span class="phpFunction">substr</span><span class="phpOperator">(</span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'lastname'</span><span class="phpOperator">]</span>,<span class="phpNumber">0</span>,1<span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'user_registered'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpFunction">date</span><span class="phpOperator">(</span>configure<span class="phpOperator">:</span><span class="phpOperator">:</span>read<span class="phpOperator">(</span><span class="phpString">'dateformat'</span><span class="phpOperator">)</span><span class="phpOperator">)</span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'Blog_user'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $blog_user<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>Blog_user<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpComment">//create user meta
</span>$bid <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>Blog_user<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>id<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'first_name'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'firstname'</span><span class="phpOperator">]</span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'last_name'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'lastname'</span><span class="phpOperator">]</span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'nickname'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $email;
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'rich_editing'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString"><span class="phpKeyword">'true'</span></span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'comment_shortcuts'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString"><span class="phpKeyword">'false'</span></span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'admin_color'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'fresh'</span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'blog_capabilities'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'a<span class="phpOperator">:</span><span class="phpNumber">1</span><span class="phpOperator">:</span><span class="phpOperator">{</span>s<span class="phpOperator">:</span>10<span class="phpOperator">:</span><span class="phpString">"subscriber"</span><span class="phpText">;</span>b<span class="phpOperator">:</span><span class="phpNumber">1</span><span class="phpText">;</span><span class="phpOperator">}</span>'</span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
</pre>
<p>3. In your wordpress index.php file</p>
<pre class="php">
<span class="phpComment">//change the session name of your wordpress site to match that of your cakephp site.
</span><span class="phpComment">//so session data can be shared<span class="phpOperator">.</span>
</span><span class="phpFunction">session_name</span><span class="phpOperator">(</span><span class="phpString">"mysite"</span><span class="phpOperator">)</span><span class="phpText">;</span>
</pre>
<p>4. in your theme header.php(might not be the best place if you change your theme a lot)</p>
<pre class="php">
<span class="phpComment">//you read the user id
</span>$user <span class="phpOperator">=</span> <span class="phpScriptVar">$_SESSION</span><span class="phpOperator">[</span><span class="phpString">'Auth'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpText">;</span>
<span class="phpKeyword">
if<span class="phpOperator">(</span></span><span class="phpOperator">!</span><span class="phpFunction">empty</span><span class="phpOperator">(</span>$user<span class="phpOperator">)</span><span class="phpOperator">)</span>
<span class="phpOperator">{</span>
<span class="phpComment">//you change the current user manually
</span>wp_set_current_user<span class="phpOperator">(</span>$user<span class="phpOperator">[</span><span class="phpString">'id'</span><span class="phpOperator">]</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpOperator">}</span>
</pre>
<p>And there you have it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/integrating-wordpress-with-cakephp/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>maintain session data across subdomains in cakephp</title>
		<link>http://www.bunchacode.com/programming/maintain-session-data-across-subdomains-in-cakephp/</link>
		<comments>http://www.bunchacode.com/programming/maintain-session-data-across-subdomains-in-cakephp/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 05:51:16 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=48</guid>
		<description><![CDATA[One of my bigger project requires me to setup personal sites on the main site&#8217;s subdomains. So i did what everyone would do and googled that. It turned out to be quite simple. You just have to set session.cookie_domain to the domain of your site without www. Like this session.cookie_domain = .mysite.com Of course, you [...]]]></description>
			<content:encoded><![CDATA[<p>One of my bigger project requires me to setup personal sites on the main site&#8217;s subdomains. So i did what everyone would do and googled that.</p>
<p>It turned out to be quite simple. You just have to set <strong>session.cookie_domain</strong> to the domain of your site without www.</p>
<p>Like this session.cookie_domain = .mysite.com</p>
<p>Of course, you can set it with php using</p>
<pre class="">ini_set("session.cookie_domain", ".localhost/mysite");</pre>
<p>AND<br />
You probably need to set cakephp security setting to medium or low. You can do that in core.php<br />
Some people say medium is enough, but i needed to change minie to low in order for it to work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/maintain-session-data-across-subdomains-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>print first N sentences</title>
		<link>http://www.bunchacode.com/programming/print-first-n-sentences/</link>
		<comments>http://www.bunchacode.com/programming/print-first-n-sentences/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 05:36:54 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=40</guid>
		<description><![CDATA[Here&#8217;s a cool function i found today while i was working on a project. it prints the first n sentence. function getLeadingSentences($data, $max) { //given string $data, will return the first $max sentences in that string //in: $data = the string to parse, $max = maximum # of sentences to return //returns: string containing the first $max sentences //(If the # of sentences in the string is less than $max, //then entire string will be returned.) //a sentence is any charactors except ., !, and ? //any number of times,  plus one or more .s, ?s, or !s //and any leading or trailing whitespace: $re = "^s*[^.?!]+[.?!]+s*"; $out = ""; for($i = 0; $i &#60; $max; $i++) { if(ereg($re, $data, $match)) { //if a sentence is found, take it out of $data and add it to $out $out .= $match[0]; $data = ereg_replace($re, [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a cool function i found today while i was working on a project.</p>
<p>it prints the first n sentence.</p>
<pre class=""><span style="color: #000000;"><span style="color: #007700;">function </span><span style="color: #0000bb;">getLeadingSentences</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$data</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$max</span><span style="color: #007700;">)
{
</span><span style="color: #ff8000;">//given string $data, will return the first $max sentences in that string</span></span>
//in: $data = the string to parse, $max = maximum # of sentences to return
//returns: string containing the first $max sentences
//(If the # of sentences in the string is less than $max,
//then entire string will be returned.)
//a sentence is any charactors except ., !, and ?
//any number of times,  plus one or more .s, ?s, or !s
//and any leading or trailing whitespace:
<span style="color: #0000bb;">$re </span><span style="color: #007700;">= </span><span style="color: #dd0000;">"^s*[^.?!]+[.?!]+s*"</span><span style="color: #007700;">;
</span><span style="color: #0000bb;">$out </span><span style="color: #007700;">= </span><span style="color: #dd0000;">""</span><span style="color: #007700;">;
for(</span><span style="color: #0000bb;">$i </span><span style="color: #007700;">= </span><span style="color: #0000bb;">0</span><span style="color: #007700;">; </span><span style="color: #0000bb;">$i </span><span style="color: #007700;">&lt; </span><span style="color: #0000bb;">$max</span><span style="color: #007700;">; </span><span style="color: #0000bb;">$i</span><span style="color: #007700;">++) {
if(</span><span style="color: #0000bb;">ereg</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$re</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$data</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$match</span><span style="color: #007700;">)) {
</span><span style="color: #ff8000;">//if a sentence is found, take it out of $data and add it to $out
</span><span style="color: #0000bb;">$out </span><span style="color: #007700;">.= </span><span style="color: #0000bb;">$match</span><span style="color: #007700;">[</span><span style="color: #0000bb;">0</span><span style="color: #007700;">];
</span><span style="color: #0000bb;">$data </span><span style="color: #007700;">= </span><span style="color: #0000bb;">ereg_replace</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$re</span><span style="color: #007700;">, </span><span style="color: #dd0000;">""</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$data</span><span style="color: #007700;">);
}
else {
</span><span style="color: #0000bb;">$i </span><span style="color: #007700;">= </span><span style="color: #0000bb;">$max</span><span style="color: #007700;">;
}
}
return </span><span style="color: #0000bb;">$out</span><span style="color: #007700;">;
}</span>
<span style="color: #ff8000;">//EXAMPLE:
</span><span style="color: #0000bb;">$start </span><span style="color: #007700;">= </span><span style="color: #dd0000;">"Sentence one...  Sentence two?  Sentence three!  Sentence four."</span><span style="color: #007700;">;
</span><span style="color: #0000bb;">$end </span><span style="color: #007700;">= </span><span style="color: #0000bb;">getLeadingSentences</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$start</span><span style="color: #007700;">, </span><span style="color: #0000bb;">3</span><span style="color: #007700;">);
echo(</span><span style="color: #dd0000;">"result: $end"</span><span style="color: #007700;">); </span></pre>
<p>[<a href="http://www.phpfront.com/php/Print-first-sentence/" target="_blank">source</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/print-first-n-sentences/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Cakephp local setup</title>
		<link>http://www.bunchacode.com/programming/cakephp-local-setup/</link>
		<comments>http://www.bunchacode.com/programming/cakephp-local-setup/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 14:46:52 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=27</guid>
		<description><![CDATA[Setting up cakephp in local development environment can be tricky, escpecially in windows. There are two setups to every cakephp application, development and production. Using development setup is easy, just extra cakephp to, let&#8217;s say http://localhost/webapp. And you are done. To change to production setup, just change your document root to ROOT.&#8217;/webapp/app/webroot/&#8217;. Even when you [...]]]></description>
			<content:encoded><![CDATA[<p>Setting up cakephp in local development environment can be tricky, escpecially in windows.</p>
<p>There are two setups to every cakephp application, development and production.</p>
<p>Using development setup is easy, just extra cakephp to, let&#8217;s say <strong>http://localhost/webapp</strong>. And you are done.</p>
<p>To change to production setup, just change your document root to <strong>ROOT.&#8217;/webapp/app/webroot/&#8217;</strong>.</p>
<p>Even when you are using development setup, every request is still redirected to <strong>app/webroot</strong>.</p>
<p>So all your css, js and images should be put in webroot directory.</p>
<p>Since cakephp uses pretty urls. You can&#8217;t use relative links in your application. To get around this problem, i set up a virtual host in apache.</p>
<p>to do this, please visit <a href="http://apptools.com/phptools/virtualhost.php" target="_blank">this site</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/cakephp-local-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Common php local development setup</title>
		<link>http://www.bunchacode.com/programming/common-php-local-development-setup/</link>
		<comments>http://www.bunchacode.com/programming/common-php-local-development-setup/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 01:55:15 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=19</guid>
		<description><![CDATA[I will share my php development setup here. i have a windows machine. so i  have WAMP(window, apache, mysql, php) set up, as opposed to WIMP(window, iis, mysql, php). I use phpmyadmin to access database most of the time. My IDE is eclipse php. Very nice IDE. I tried several other IDEs that were built [...]]]></description>
			<content:encoded><![CDATA[<p>I will share my php development setup here.</p>
<p>i have a windows machine. so i  have WAMP(window, apache, mysql, php) set up, as opposed to WIMP(window, iis, mysql, php).</p>
<p>I use phpmyadmin to access database most of the time.</p>
<p>My IDE is eclipse php. Very nice IDE. I tried several other IDEs that were built on top of eclipse, but they didn&#8217;t suit my needs. so I went back to eclipse eventually.</p>
<p>Although i check my work on all major browsers, i use firefox as my main development browser. The main reason i use firefox is because of firebug. I just can&#8217;t live without it. It&#8217;s the best thing since sliced bread.</p>
<p>Filezilla is my ftp client. Dual monitors, one of them is for IDE. The other one is the above mentioned browser and photoshop. Needless to say, i use photoshop to cut up my designs.</p>
<p>For communication, we have MSN and email. that&#8217;s about it. Very simple but works well together.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/common-php-local-development-setup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick note about cakephp</title>
		<link>http://www.bunchacode.com/programming/quick-note-about-cakephp/</link>
		<comments>http://www.bunchacode.com/programming/quick-note-about-cakephp/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 01:45:00 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=17</guid>
		<description><![CDATA[It&#8217;s really powerful and flexible. Use it]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s really powerful and flexible. Use <a title="Cakephp" href="http://cakephp.org/" target="_blank">it</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/quick-note-about-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
