<?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; php</title>
	<atom:link href="http://www.bunchacode.com/tag/php/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>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>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>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>
