<?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></description>
	<lastBuildDate>Sun, 11 Sep 2011 19:56:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Auto URL</title>
		<link>http://www.bunchacode.com/programming/auto-url/</link>
		<comments>http://www.bunchacode.com/programming/auto-url/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 23:44:10 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=280</guid>
		<description><![CDATA[WordPress Auto URL Plugin This plugin generates customized wordpress permalink/url for posts and pages depending on the post type, categories, and tags. http://wordpress.org/extend/plugins/auto-url/ P.S. messed up release 0.5,  if you are one of the lucky ten or so people. just ftp into your site and delete wp-content/plugins/auto-url folder &#160;]]></description>
			<content:encoded><![CDATA[<p>WordPress Auto URL Plugin</p>
<p>This plugin generates customized wordpress permalink/url for posts and pages depending on the post type, categories, and tags.</p>
<p>http://wordpress.org/extend/plugins/auto-url/</p>
<p>P.S. messed up release 0.5,  if you are one of the lucky ten or so people. just ftp into your site and delete wp-content/plugins/auto-url folder</p>
<p><a href="http://www.bunchacode.com/wp-content/uploads/2011/09/patterns.png"><img class="alignnone size-medium wp-image-285 colorbox-280" title="patterns" src="http://www.bunchacode.com/wp-content/uploads/2011/09/patterns-300x255.png" alt="" width="300" height="255" /></a></p>
<p><a href="http://www.bunchacode.com/wp-content/uploads/2011/09/urls.png"><img class="alignnone size-medium wp-image-286 colorbox-280" title="urls" src="http://www.bunchacode.com/wp-content/uploads/2011/09/urls-300x183.png" alt="" width="300" height="183" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/auto-url/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Fancy Sitemap</title>
		<link>http://www.bunchacode.com/programming/fancy-sitemap/</link>
		<comments>http://www.bunchacode.com/programming/fancy-sitemap/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 22:22:02 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sitemap]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=268</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.org/extend/plugins/fancy-sitemap/" title="Download Plugin" target="_blank"></a></p>
<p><a href="http://www.bunchacode.com/wp-content/uploads/2011/08/admin-map.jpg"><img class="alignnone size-medium wp-image-269 colorbox-268" title="admin map" src="http://www.bunchacode.com/wp-content/uploads/2011/08/admin-map-300x198.jpg" alt="" width="300" height="198" /></a></p>
<p><a href="http://www.bunchacode.com/wp-content/uploads/2011/08/page-or-menu.jpg"><img class="alignnone size-medium wp-image-271 colorbox-268" title="page or menu" src="http://www.bunchacode.com/wp-content/uploads/2011/08/page-or-menu-300x260.jpg" alt="" width="300" height="260" /></a></p>
<p><a href="http://www.bunchacode.com/wp-content/uploads/2011/08/frontend.jpg"><img class="alignnone size-medium wp-image-270 colorbox-268" title="frontend" src="http://www.bunchacode.com/wp-content/uploads/2011/08/frontend-300x196.jpg" alt="" width="300" height="196" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/fancy-sitemap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Custom Admin Columns</title>
		<link>http://www.bunchacode.com/programming/custom-admin-columns/</link>
		<comments>http://www.bunchacode.com/programming/custom-admin-columns/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 16:28:43 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=259</guid>
		<description><![CDATA[Custom Admin Columns is a plug in that adds additional column to Posts, Pages and Media page of wordpress admin area. http://wordpress.org/extend/plugins/custom-admin-column/]]></description>
			<content:encoded><![CDATA[<p>Custom Admin Columns is a plug in that adds additional column to Posts, Pages and Media page of wordpress admin area.</p>
<p><a title="Download" href="http://wordpress.org/extend/plugins/custom-admin-column/" target="_blank">http://wordpress.org/extend/plugins/custom-admin-column/</a></p>
<p><a href="http://www.bunchacode.com/wp-content/uploads/2011/08/media.jpg"><img class="size-large wp-image-261 alignnone colorbox-259" title="media" src="http://www.bunchacode.com/wp-content/uploads/2011/08/media-1024x226.jpg" alt="" width="510" height="112" /></a></p>
<p><a href="http://www.bunchacode.com/wp-content/uploads/2011/08/posts.jpg"><img class="size-large wp-image-263 alignnone colorbox-259" title="posts" src="http://www.bunchacode.com/wp-content/uploads/2011/08/posts-1024x306.jpg" alt="" width="510" height="152" /></a><a href="http://www.bunchacode.com/wp-content/uploads/2011/08/pages.jpg"><img class="alignnone size-large wp-image-262 colorbox-259" title="pages" src="http://www.bunchacode.com/wp-content/uploads/2011/08/pages-1024x185.jpg" alt="" width="510" height="92" /></a></p>
<p><a href="http://www.bunchacode.com/wp-content/uploads/2011/08/pages.jpg"><img class="alignleft size-large wp-image-262 colorbox-259" title="pages" src="http://www.bunchacode.com/wp-content/uploads/2011/08/pages-1024x185.jpg" alt="" width="510" height="92" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/custom-admin-columns/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>opencart getting modules for 1.4 to work in 1.5</title>
		<link>http://www.bunchacode.com/programming/opencart-getting-modules-for-1-4-to-work-in-1-5/</link>
		<comments>http://www.bunchacode.com/programming/opencart-getting-modules-for-1-4-to-work-in-1-5/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 14:45:08 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[opencart]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=253</guid>
		<description><![CDATA[in your admin/controller/module/[module_name].php find the line where the document title is set. it looks something like: 1 $this-&#38;gt;document-&#38;gt;title = $this-&#38;gt;language-&#38;gt;get('heading_title'); and change it to 1 $this-&#38;gt;document-&#38;gt;setTitle($this-&#38;gt;language-&#38;gt;get('heading_title')); there could be more to this, but worth a try.]]></description>
			<content:encoded><![CDATA[<p>in your admin/controller/module/[module_name].php</p>
<p>find the line where the document title is set. it looks something like:</p>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
</pre>
<pre><span class="php"><span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;document<span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;title <span class="php-operator">=</span> <span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;language<span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;get<span class="php-brackets">(</span><span class="php-string">'heading_title'</span><span class="php-brackets">)</span>;</span></pre>
</div>
<p>and change it to</p>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
</pre>
<pre><span class="php"><span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;document<span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;setTitle<span class="php-brackets">(</span><span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;language<span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;get<span class="php-brackets">(</span><span class="php-string">'heading_title'</span><span class="php-brackets">)</span><span class="php-brackets">)</span>;</span></pre>
</div>
<p>there could be more to this, but worth a try.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/opencart-getting-modules-for-1-4-to-work-in-1-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>google analytics: tracking link click synchronously and asynchronously</title>
		<link>http://www.bunchacode.com/programming/google-analytics-tracking-link-click-synchronously-and-asynchronously/</link>
		<comments>http://www.bunchacode.com/programming/google-analytics-tracking-link-click-synchronously-and-asynchronously/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 16:47:45 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=232</guid>
		<description><![CDATA[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 [...]]]></description>
			<content:encoded><![CDATA[<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
</pre>
<pre><span class="php"><span class="php-var">$</span><span class="php-brackets">(</span>document<span class="php-brackets">)</span><span class="php-operator">.</span>ready<span class="php-brackets">(</span><span class="php-function">function</span><span class="php-brackets">(</span><span class="php-brackets">)</span><span class="php-brackets">{</span>
    <span class="php-var">$</span><span class="php-brackets">(</span><span class="php-string">'a'</span><span class="php-brackets">)</span><span class="php-operator">.</span><span class="php-function">each</span><span class="php-brackets">(</span><span class="php-function">function</span><span class="php-brackets">(</span><span class="php-brackets">)</span><span class="php-brackets">{</span>
        <span class="php-keyword">var</span> <span class="php-function">link</span> <span class="php-operator">=</span> <span class="php-var">$</span><span class="php-brackets">(</span>this<span class="php-brackets">)</span><span class="php-brackets">[</span><span class="php-number">0</span><span class="php-brackets">]</span><span class="php-operator">.</span>href;

        <span class="php-keyword">var</span> pdfFiles <span class="php-operator">=</span> <span class="php-operator">/</span>\<span class="php-operator">.</span><span class="php-brackets">(</span>pdf<span class="php-brackets">)</span><span class="php-var">$</span><span class="php-operator">/</span>i;
        <span class="php-keyword">var</span> imgFiles <span class="php-operator">=</span> <span class="php-operator">/</span>\<span class="php-operator">.</span><span class="php-brackets">(</span>jpg<span class="php-operator">|</span>gif<span class="php-operator">|</span>png<span class="php-brackets">)</span><span class="php-var">$</span><span class="php-operator">/</span>i;
        <span class="php-keyword">var</span> allFiles <span class="php-operator">=</span> <span class="php-operator">/</span>\<span class="php-operator">.</span><span class="php-brackets">(</span>pdf<span class="php-operator">|</span>doc<span class="php-operator">*</span><span class="php-operator">|</span>xls<span class="php-operator">*</span><span class="php-operator">|</span>ppt<span class="php-operator">*</span><span class="php-operator">|</span>jpg<span class="php-operator">|</span>gif<span class="php-operator">|</span>png<span class="php-operator">|</span>zip<span class="php-operator">|</span>mp<span class="php-number">3</span><span class="php-operator">|</span>mp<span class="php-number">4</span><span class="php-operator">|</span>mov<span class="php-brackets">)</span><span class="php-var">$</span><span class="php-operator">/</span>i;
        <span class="php-keyword">var</span> action <span class="php-operator">=</span> <span class="php-string">''</span>;
        <span class="php-keyword">var</span> _onclick <span class="php-operator">=</span> <span class="php-keyword">new</span> String<span class="php-brackets">(</span><span class="php-var">$</span><span class="php-brackets">(</span>this<span class="php-brackets">)</span><span class="php-operator">.</span>attr<span class="php-brackets">(</span><span class="php-string">'onclick'</span><span class="php-brackets">)</span><span class="php-brackets">)</span>;

        <span class="php-comment">//remove onclick pagetrack event from links
</span>
        <span class="php-keyword">if</span><span class="php-brackets">(</span>_onclick<span class="php-operator">.</span>indexOf<span class="php-brackets">(</span><span class="php-string">'pageTracker'</span><span class="php-brackets">)</span> <span class="php-operator">!</span><span class="php-operator">=</span> <span class="php-operator">-</span><span class="php-number">1</span><span class="php-brackets">)</span>
        <span class="php-brackets">{</span>
            <span class="php-var">$</span><span class="php-brackets">(</span>this<span class="php-brackets">)</span><span class="php-operator">.</span>removeAttr<span class="php-brackets">(</span><span class="php-string">'onclick'</span><span class="php-brackets">)</span>;
        <span class="php-brackets">}</span>

        <span class="php-comment">//check to make sure link is not external
</span>
        <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-brackets">(</span><span class="php-operator">!</span><span class="php-function">link</span><span class="php-operator">.</span>match<span class="php-brackets">(</span><span class="php-operator">/</span><span class="php-operator">^</span>https<span class="php-operator">?</span>\<span class="php-operator">:</span><span class="php-operator">/</span>i<span class="php-brackets">)</span><span class="php-brackets">)</span> <span class="php-operator">|</span><span class="php-operator">|</span> <span class="php-brackets">(</span><span class="php-function">link</span><span class="php-operator">.</span>match<span class="php-brackets">(</span>document<span class="php-operator">.</span>domain<span class="php-brackets">)</span><span class="php-brackets">)</span><span class="php-brackets">)</span>
        <span class="php-brackets">{</span>
            <span class="php-comment">//if link leads to a download, we listen to the click event of that link
</span>
            <span class="php-comment">//All Files event is guranteed to be tracked at this point
</span>
            <span class="php-keyword">if</span><span class="php-brackets">(</span><span class="php-function">link</span><span class="php-operator">.</span>match<span class="php-brackets">(</span>allFiles<span class="php-brackets">)</span><span class="php-brackets">)</span>
            <span class="php-brackets">{</span>
                <span class="php-var">$</span><span class="php-brackets">(</span>this<span class="php-brackets">)</span><span class="php-operator">.</span>click<span class="php-brackets">(</span><span class="php-function">function</span><span class="php-brackets">(</span><span class="php-brackets">)</span> <span class="php-brackets">{</span>
                    action <span class="php-operator">=</span> <span class="php-string">'Link Click Capture'</span>;

                    <span class="php-comment">//it's a pdf file
</span>
                    <span class="php-keyword">if</span><span class="php-brackets">(</span><span class="php-function">link</span><span class="php-operator">.</span>match<span class="php-brackets">(</span>pdfFiles<span class="php-brackets">)</span><span class="php-brackets">)</span>
                    <span class="php-brackets">{</span>
                        trackIt<span class="php-brackets">(</span><span class="php-string">'PDF Downloads'</span>, action, <span class="php-function">link</span>, <span class="php-number">1</span><span class="php-brackets">)</span>;
                    <span class="php-brackets">}</span>

                    <span class="php-comment">//catch all event
</span>
                    trackIt<span class="php-brackets">(</span><span class="php-string">'All Files'</span>, action, <span class="php-function">link</span>, <span class="php-number">1</span><span class="php-brackets">)</span>;
                <span class="php-brackets">}</span><span class="php-brackets">)</span>;
            <span class="php-brackets">}</span>
        <span class="php-brackets">}</span>
    <span class="php-brackets">}</span><span class="php-brackets">)</span>;
<span class="php-brackets">}</span><span class="php-brackets">)</span>;
<span class="php-function">function</span> trackIt<span class="php-brackets">(</span>category, action, <span class="php-function">link</span>, opt<span class="php-brackets">)</span>
<span class="php-brackets">{</span>
	<span class="php-comment">//sync tracking
</span>
   <span class="php-comment">//pageTracker._trackEvent(category, action, link, 1);
</span>

	<span class="php-comment">//async
</span>
    _gaq<span class="php-operator">.</span>push<span class="php-brackets">(</span><span class="php-brackets">[</span><span class="php-string">'_trackEvent'</span>, category, action, <span class="php-function">link</span><span class="php-brackets">]</span><span class="php-brackets">)</span>;
<span class="php-brackets">}</span></span></pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/google-analytics-tracking-link-click-synchronously-and-asynchronously/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>writing a Sudoku Solver</title>
		<link>http://www.bunchacode.com/programming/writing-a-sudoku-solver/</link>
		<comments>http://www.bunchacode.com/programming/writing-a-sudoku-solver/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 22:57:13 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[c-sharp]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=223</guid>
		<description><![CDATA[So the other day, I was bored outta  my mind. I was playing sudoku on my ipod. I said to myself, like I usually do, there has got to be a better way to solve a sudoku puzzle. Then an LED light bulb(to conserve energy) lit up in my head, I will write a program [...]]]></description>
			<content:encoded><![CDATA[<p>So the other day, I was bored outta  my mind. I was playing sudoku on my ipod. I said to myself, like I usually do, there has got to be a better way to solve a sudoku puzzle. Then an LED light bulb(to conserve energy) lit up in my head, I will write a program to do it. Here we are. The repo is up on <a href="https://github.com/dexxa/SudokuSolver" target="_blank">github</a>.</p>
<p>It solves by:</p>
<ol>
<li>going through the puzzle.</li>
<li>if it is an empty cell,  it checks corresponding row, column and block while eliminating possibilities.</li>
<li>if it is an occupied cell, it checks neighboring rows and columns. it looks for cells with same value and see if there is an empty cell in neighboring blocks that can hold that value.</li>
<li>it goes through these until the puzzle is solved or if we don&#8217;t solve a single cell in 5 consecutive run.</li>
<li>if it&#8217;s not solved at this point, we use backtracking(highly inefficient but works to some degree).</li>
</ol>
<ul>
<li>it works by bascailly going through all the possible values.</li>
<li>guessing one cell and base the guess of the next cell on the previous one.</li>
<li>if we have no possible guesses, we go back one cell and guess again.</li>
<li>repeat this until we have successfully guess all the remaining cells.</li>
</ul>
<ol></ol>
<p>To-do:</p>
<ul>
<li>find a better way to solve it</li>
</ul>
<p><a href="http://www.bunchacode.com/wp-content/uploads/2010/12/1.jpg"><img class="alignnone size-full wp-image-224 colorbox-223" title="1" src="http://www.bunchacode.com/wp-content/uploads/2010/12/1.jpg" alt="" width="611" height="450" /></a></p>
<p><a href="http://www.bunchacode.com/wp-content/uploads/2010/12/1.jpg"></a><a href="http://www.bunchacode.com/wp-content/uploads/2010/12/2.jpg"><img class="alignnone size-full wp-image-227 colorbox-223" title="2" src="http://www.bunchacode.com/wp-content/uploads/2010/12/2.jpg" alt="" width="606" height="448" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/writing-a-sudoku-solver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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 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 627 times" >Catalog.rar (627)</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>6</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>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre>
<pre><span class="php"><span class="php-function">function</span> make_clean_css<span class="php-brackets">(</span><span class="php-var">$path</span>, <span class="php-var">$name</span><span class="php-brackets">)</span>
<span class="php-brackets">{</span>
App<span class="php-operator">:</span><span class="php-operator">:</span>import<span class="php-brackets">(</span><span class="php-string">'Vendor'</span>, <span class="php-string">'csspp'</span> <span class="php-operator">.</span> DS <span class="php-operator">.</span> <span class="php-string">'csspp'</span><span class="php-brackets">)</span>;
<span class="php-var">$data</span> <span class="php-operator">=</span> <span class="php-function">file_get_contents</span><span class="php-brackets">(</span><span class="php-var">$path</span><span class="php-brackets">)</span>;
<span class="php-var">$csspp</span> <span class="php-operator">=</span> <span class="php-keyword">new</span> csspp<span class="php-brackets">(</span><span class="php-var">$name</span>,<span class="php-string">''</span><span class="php-brackets">)</span>;
<span class="php-var">$output</span> <span class="php-operator">=</span> <span class="php-var">$csspp</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;process<span class="php-brackets">(</span><span class="php-brackets">)</span>;
<span class="php-var">$ratio</span> <span class="php-operator">=</span> <span class="php-number">1</span><span class="php-number">0</span><span class="php-number">0</span> <span class="php-operator">-</span> <span class="php-brackets">(</span><span class="php-function">round</span><span class="php-brackets">(</span><span class="php-function">strlen</span><span class="php-brackets">(</span><span class="php-var">$output</span><span class="php-brackets">)</span> <span class="php-operator">/</span> <span class="php-function">strlen</span><span class="php-brackets">(</span><span class="php-var">$data</span><span class="php-brackets">)</span>, <span class="php-number">3</span><span class="php-brackets">)</span> <span class="php-operator">*</span> <span class="php-number">1</span><span class="php-number">0</span><span class="php-number">0</span><span class="php-brackets">)</span>;
<span class="php-var">$output</span> <span class="php-operator">=</span> <span class="php-string">&quot; /* file: $name, ratio: $ratio% */ &quot;</span> <span class="php-operator">.</span> <span class="php-var">$output</span>;
<span class="php-keyword">return</span> <span class="php-var">$output</span>;
<span class="php-brackets">}</span></span></pre>
</div>
<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>3</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[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ﻿$('#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[<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre>
<pre><span class="php">﻿<span class="php-var">$</span><span class="php-brackets">(</span><span class="php-string">'#form'</span><span class="php-brackets">)</span><span class="php-operator">.</span>validate<span class="php-brackets">(</span><span class="php-brackets">{</span>

﻿errorLabelContainer<span class="php-operator">:</span><span class="php-string">'#errorContainer'</span>,
showErrors<span class="php-operator">:</span> <span class="php-function">function</span><span class="php-brackets">(</span>errorMap, errorList<span class="php-brackets">)</span> <span class="php-brackets">{</span>
<span class="php-keyword">if</span><span class="php-brackets">(</span>errorList<span class="php-operator">.</span>length<span class="php-brackets">)</span>
<span class="php-brackets">{</span>
<span class="php-var">$</span><span class="php-brackets">(</span><span class="php-string">'#errorContainer'</span><span class="php-brackets">)</span><span class="php-operator">.</span>html<span class="php-brackets">(</span>errorList<span class="php-brackets">[</span><span class="php-number">0</span><span class="php-brackets">]</span><span class="php-brackets">[</span><span class="php-string">'message'</span><span class="php-brackets">]</span><span class="php-brackets">)</span>;
<span class="php-brackets">}</span>
<span class="php-brackets">}</span>,
highlight<span class="php-operator">:</span><span class="php-function">function</span><span class="php-brackets">(</span>element,errorClass<span class="php-brackets">)</span><span class="php-brackets">{</span>
<span class="php-var">$</span><span class="php-brackets">(</span>element<span class="php-brackets">)</span><span class="php-operator">.</span>parent<span class="php-brackets">(</span><span class="php-string">'td'</span><span class="php-brackets">)</span><span class="php-operator">.</span>addClass<span class="php-brackets">(</span><span class="php-string">'error'</span><span class="php-brackets">)</span>;
<span class="php-brackets">}</span>,
unhighlight<span class="php-operator">:</span><span class="php-function">function</span><span class="php-brackets">(</span>element,errorClass<span class="php-brackets">)</span><span class="php-brackets">{</span>
<span class="php-var">$</span><span class="php-brackets">(</span>element<span class="php-brackets">)</span><span class="php-operator">.</span>parent<span class="php-brackets">(</span><span class="php-string">'td'</span><span class="php-brackets">)</span><span class="php-operator">.</span>removeClass<span class="php-brackets">(</span><span class="php-string">'error'</span><span class="php-brackets">)</span>;
<span class="php-brackets">}</span>
<span class="php-brackets">}</span><span class="php-brackets">)</span></span></pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/jquery-validate-plugin-show-only-one-error-at-a-time/feed/</wfw:commentRss>
		<slash:comments>4</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. 1 2 3 4 5 6 7 [...]]]></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>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre>
<pre><span class="php">jQuery<span class="php-operator">.</span>validator<span class="php-operator">.</span>addMethod<span class="php-brackets">(</span><span class="php-string">&quot;checkForDupeEmail&quot;</span>, <span class="php-function">function</span><span class="php-brackets">(</span>value, element, param<span class="php-brackets">)</span><span class="php-brackets">{</span>

<span class="php-keyword">var</span> ajaxFunc <span class="php-operator">=</span> <span class="php-var">$</span><span class="php-operator">.</span>ajax<span class="php-brackets">(</span><span class="php-brackets">{</span>
async<span class="php-operator">:</span><span class="php-keyword">false</span>,   <span class="php-comment">//we have to set it to false, it does not return a value before we even complete the request.
</span>
data<span class="php-operator">:</span><span class="php-string">'email='</span><span class="php-operator">+</span><span class="php-brackets">(</span><span class="php-var">$</span><span class="php-operator">.</span><span class="php-function">trim</span><span class="php-brackets">(</span>value<span class="php-brackets">)</span><span class="php-brackets">)</span>,
type<span class="php-operator">:</span><span class="php-string">'POST'</span>,
url<span class="php-operator">:</span><span class="php-string">'/employees/ajax_checkDupe'</span>,
dataType<span class="php-operator">:</span><span class="php-string">'text'</span>,
<span class="php-brackets">}</span><span class="php-brackets">)</span>;

<span class="php-comment">//here we check the response
</span>

<span class="php-keyword">if</span><span class="php-brackets">(</span>ajaxFunc<span class="php-operator">.</span>responseText <span class="php-operator">=</span><span class="php-operator">=</span> <span class="php-number">1</span><span class="php-brackets">)</span>
<span class="php-keyword">return</span> <span class="php-keyword">true</span>;
<span class="php-keyword">else</span>
<span class="php-keyword">return</span> <span class="php-keyword">false</span>;
<span class="php-brackets">}</span><span class="php-brackets">)</span>;</span></pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/jquery-validate-plugin-with-ajax-duplicate-check/feed/</wfw:commentRss>
		<slash:comments>3</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>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre>
<pre><span class="php"><span class="php-function">function</span> getSubdomain<span class="php-brackets">(</span><span class="php-brackets">)</span> <span class="php-brackets">{</span>
<span class="php-var">$domain</span> <span class="php-operator">=</span> <span class="php-function">parse_url</span><span class="php-brackets">(</span><span class="php-var">$_SERVER</span><span class="php-brackets">[</span><span class="php-string">'HTTP_HOST'</span><span class="php-brackets">]</span><span class="php-brackets">)</span>;
<span class="php-var">$domain</span> <span class="php-operator">=</span> <span class="php-function">explode</span><span class="php-brackets">(</span><span class="php-string">'.'</span>,<span class="php-var">$domain</span><span class="php-brackets">[</span><span class="php-string">'path'</span><span class="php-brackets">]</span><span class="php-brackets">)</span>;
<span class="php-keyword">if</span><span class="php-brackets">(</span><span class="php-function">count</span><span class="php-brackets">(</span><span class="php-var">$domain</span><span class="php-brackets">)</span><span class="php-operator">=</span><span class="php-operator">=</span><span class="php-number">3</span><span class="php-operator"> and </span><span class="php-operator">!</span><span class="php-keyword">empty</span><span class="php-brackets">(</span><span class="php-var">$domain</span><span class="php-brackets">[</span><span class="php-number">0</span><span class="php-brackets">]</span><span class="php-brackets">)</span><span class="php-brackets">)</span> <span class="php-brackets">{</span>
<span class="php-keyword">return</span> <span class="php-var">$domain</span><span class="php-brackets">[</span><span class="php-number">0</span><span class="php-brackets">]</span>;
<span class="php-brackets">}</span>
<span class="php-keyword">return</span> <span class="php-string">''</span>;
<span class="php-brackets">}</span></span></pre>
</div>
<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 colorbox-166" 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 401 times" >ShadowMenu -- Download (401)</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[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 function plural($num) { if ($num != 1) return &#34;s&#34;; } function [...]]]></description>
			<content:encoded><![CDATA[<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
</pre>
<pre><span class="php"><span class="php-function">function</span> plural<span class="php-brackets">(</span><span class="php-var">$num</span><span class="php-brackets">)</span> <span class="php-brackets">{</span>
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$num</span> <span class="php-operator">!</span><span class="php-operator">=</span> <span class="php-number">1</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-string">&quot;s&quot;</span>;
<span class="php-brackets">}</span>

<span class="php-function">function</span> getRelativeTime<span class="php-brackets">(</span><span class="php-var">$date</span><span class="php-brackets">)</span> <span class="php-brackets">{</span>
 <span class="php-var">$diff</span> <span class="php-operator">=</span> <span class="php-function">time</span><span class="php-brackets">(</span><span class="php-brackets">)</span> <span class="php-operator">-</span> <span class="php-function">strtotime</span><span class="php-brackets">(</span><span class="php-var">$date</span><span class="php-brackets">)</span>;
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">&amp;</span>lt;<span class="php-number">6</span><span class="php-number">0</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-var">$diff</span> <span class="php-operator">.</span> <span class="php-string">&quot; second&quot;</span> <span class="php-operator">.</span> plural<span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-brackets">)</span> <span class="php-operator">.</span> <span class="php-string">&quot; ago&quot;</span>;
 <span class="php-var">$diff</span> <span class="php-operator">=</span> <span class="php-function">round</span><span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">/</span><span class="php-number">6</span><span class="php-number">0</span><span class="php-brackets">)</span>;
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">&amp;</span>lt;<span class="php-number">6</span><span class="php-number">0</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-var">$diff</span> <span class="php-operator">.</span> <span class="php-string">&quot; minute&quot;</span> <span class="php-operator">.</span> plural<span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-brackets">)</span> <span class="php-operator">.</span> <span class="php-string">&quot; ago&quot;</span>;
 <span class="php-var">$diff</span> <span class="php-operator">=</span> <span class="php-function">round</span><span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">/</span><span class="php-number">6</span><span class="php-number">0</span><span class="php-brackets">)</span>;
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">&amp;</span>lt;<span class="php-number">2</span><span class="php-number">4</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-var">$diff</span> <span class="php-operator">.</span> <span class="php-string">&quot; hour&quot;</span> <span class="php-operator">.</span> plural<span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-brackets">)</span> <span class="php-operator">.</span> <span class="php-string">&quot; ago&quot;</span>;
 <span class="php-var">$diff</span> <span class="php-operator">=</span> <span class="php-function">round</span><span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">/</span><span class="php-number">2</span><span class="php-number">4</span><span class="php-brackets">)</span>;
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">&amp;</span>lt;<span class="php-number">7</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-var">$diff</span> <span class="php-operator">.</span> <span class="php-string">&quot; day&quot;</span> <span class="php-operator">.</span> plural<span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-brackets">)</span> <span class="php-operator">.</span> <span class="php-string">&quot; ago&quot;</span>;
 <span class="php-var">$diff</span> <span class="php-operator">=</span> <span class="php-function">round</span><span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">/</span><span class="php-number">7</span><span class="php-brackets">)</span>;
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">&amp;</span>lt;<span class="php-number">4</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-var">$diff</span> <span class="php-operator">.</span> <span class="php-string">&quot; week&quot;</span> <span class="php-operator">.</span> plural<span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-brackets">)</span> <span class="php-operator">.</span> <span class="php-string">&quot; ago&quot;</span>;
 <span class="php-keyword">return</span> <span class="php-string">&quot;on &quot;</span> <span class="php-operator">.</span> <span class="php-function">date</span><span class="php-brackets">(</span><span class="php-string">&quot;F j, Y&quot;</span>, <span class="php-function">strtotime</span><span class="php-brackets">(</span><span class="php-var">$date</span><span class="php-brackets">)</span><span class="php-brackets">)</span>;
<span class="php-brackets">}</span><span class="php-operator">&lt;</span>span<span class="php-operator">&gt;</span></span></pre>
</div>
<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>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
</pre>
<pre><span class="php"><span class="php-keyword">var</span> <span class="php-var">$view</span> <span class="php-operator">=</span> <span class="php-string">&quot;App&quot;</span>;</span></pre>
</div>
<p>your app.php looks something like this</p>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
</pre>
<pre><span class="php"><span class="php-keyword">class</span> AppView <span class="php-keyword">extends</span> View<span class="php-brackets">{</span>

 <span class="php-function">function</span> convertMysqlDate<span class="php-brackets">(</span><span class="php-var">$dateString</span><span class="php-brackets">)</span>
 <span class="php-brackets">{</span>
 <span class="php-keyword">return</span> <span class="php-function">date</span><span class="php-brackets">(</span><span class="php-string">'M d Y h:s A'</span>,<span class="php-function">strtotime</span><span class="php-brackets">(</span><span class="php-var">$dateString</span><span class="php-brackets">)</span><span class="php-brackets">)</span>;
 <span class="php-brackets">}</span>
 <span class="php-function">function</span> plural<span class="php-brackets">(</span><span class="php-var">$num</span><span class="php-brackets">)</span> <span class="php-brackets">{</span>
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$num</span> <span class="php-operator">!</span><span class="php-operator">=</span> <span class="php-number">1</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-string">&quot;s&quot;</span>;
 <span class="php-brackets">}</span>

 <span class="php-function">function</span> getRelativeTime<span class="php-brackets">(</span><span class="php-var">$date</span><span class="php-brackets">)</span> <span class="php-brackets">{</span>
 <span class="php-var">$diff</span> <span class="php-operator">=</span> <span class="php-function">time</span><span class="php-brackets">(</span><span class="php-brackets">)</span> <span class="php-operator">-</span> <span class="php-function">strtotime</span><span class="php-brackets">(</span><span class="php-var">$date</span><span class="php-brackets">)</span>;
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">&amp;</span>lt;<span class="php-number">6</span><span class="php-number">0</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-var">$diff</span> <span class="php-operator">.</span> <span class="php-string">&quot; second&quot;</span> <span class="php-operator">.</span> <span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;plural<span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-brackets">)</span> <span class="php-operator">.</span> <span class="php-string">&quot; ago&quot;</span>;
 <span class="php-var">$diff</span> <span class="php-operator">=</span> <span class="php-function">round</span><span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">/</span><span class="php-number">6</span><span class="php-number">0</span><span class="php-brackets">)</span>;
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">&amp;</span>lt;<span class="php-number">6</span><span class="php-number">0</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-var">$diff</span> <span class="php-operator">.</span> <span class="php-string">&quot; minute&quot;</span> <span class="php-operator">.</span> <span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;plural<span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-brackets">)</span> <span class="php-operator">.</span> <span class="php-string">&quot; ago&quot;</span>;
 <span class="php-var">$diff</span> <span class="php-operator">=</span> <span class="php-function">round</span><span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">/</span><span class="php-number">6</span><span class="php-number">0</span><span class="php-brackets">)</span>;
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">&amp;</span>lt;<span class="php-number">2</span><span class="php-number">4</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-var">$diff</span> <span class="php-operator">.</span> <span class="php-string">&quot; hour&quot;</span> <span class="php-operator">.</span> <span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;plural<span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-brackets">)</span> <span class="php-operator">.</span> <span class="php-string">&quot; ago&quot;</span>;
 <span class="php-var">$diff</span> <span class="php-operator">=</span> <span class="php-function">round</span><span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">/</span><span class="php-number">2</span><span class="php-number">4</span><span class="php-brackets">)</span>;
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">&amp;</span>lt;<span class="php-number">7</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-var">$diff</span> <span class="php-operator">.</span> <span class="php-string">&quot; day&quot;</span> <span class="php-operator">.</span> <span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;plural<span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-brackets">)</span> <span class="php-operator">.</span> <span class="php-string">&quot; ago&quot;</span>;
 <span class="php-var">$diff</span> <span class="php-operator">=</span> <span class="php-function">round</span><span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">/</span><span class="php-number">7</span><span class="php-brackets">)</span>;
 <span class="php-keyword">if</span> <span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-operator">&amp;</span>lt;<span class="php-number">4</span><span class="php-brackets">)</span>
 <span class="php-keyword">return</span> <span class="php-var">$diff</span> <span class="php-operator">.</span> <span class="php-string">&quot; week&quot;</span> <span class="php-operator">.</span> <span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;plural<span class="php-brackets">(</span><span class="php-var">$diff</span><span class="php-brackets">)</span> <span class="php-operator">.</span> <span class="php-string">&quot; ago&quot;</span>;
 <span class="php-keyword">return</span> <span class="php-string">&quot;on &quot;</span> <span class="php-operator">.</span> <span class="php-function">date</span><span class="php-brackets">(</span><span class="php-string">&quot;F j, Y&quot;</span>, <span class="php-function">strtotime</span><span class="php-brackets">(</span><span class="php-var">$date</span><span class="php-brackets">)</span><span class="php-brackets">)</span>;
 <span class="php-brackets">}</span>
<span class="php-brackets">}</span></span></pre>
</div>
<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[1 javascript:void((function(){j=document.createElement(&#34;SCRIPT&#34;);j.src=&#34;http://code.jquery.com/jquery-latest.pack.js&#34;;document.getElementsByTagName(&#34;HEAD&#34;)[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[<div class="fvch-code">
<pre class="fvch-line-numbers">1
</pre>
<pre><span class="php">javascript<span class="php-operator">:</span>void<span class="php-brackets">(</span><span class="php-brackets">(</span><span class="php-function">function</span><span class="php-brackets">(</span><span class="php-brackets">)</span><span class="php-brackets">{</span>j<span class="php-operator">=</span>document<span class="php-operator">.</span>createElement<span class="php-brackets">(</span><span class="php-string">&quot;SCRIPT&quot;</span><span class="php-brackets">)</span>;j<span class="php-operator">.</span>src<span class="php-operator">=</span><span class="php-string">&quot;http://code.jquery.com/jquery-latest.pack.js&quot;</span>;document<span class="php-operator">.</span>getElementsByTagName<span class="php-brackets">(</span><span class="php-string">&quot;HEAD&quot;</span><span class="php-brackets">)</span><span class="php-brackets">[</span><span class="php-number">0</span><span class="php-brackets">]</span><span class="php-operator">.</span>appendChild<span class="php-brackets">(</span>j<span class="php-brackets">)</span>;<span class="php-brackets">}</span><span class="php-brackets">)</span><span class="php-brackets">(</span><span class="php-brackets">)</span><span class="php-brackets">)</span></span></pre>
</div>
<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>3</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. 1 2 3 4 5 $stores = $this-&#38;gt;Store-&#38;gt;find('all',array(    'order'=&#38;gt;'name ASC', 'fields'=&#38;gt;'DISTINCT(UPPER(LEFT(name,1))) [...]]]></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>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
</pre>
<pre><span class="php"><span class="php-var">$stores</span> <span class="php-operator">=</span> <span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;Store<span class="php-operator">-</span><span class="php-operator">&amp;</span>gt;find<span class="php-brackets">(</span><span class="php-string">'all'</span>,<span class="php-keyword">array</span><span class="php-brackets">(</span>    <span class="php-string">'order'</span><span class="php-operator">=</span><span class="php-operator">&amp;</span>gt;<span class="php-string">'name ASC'</span>,
<span class="php-string">'fields'</span><span class="php-operator">=</span><span class="php-operator">&amp;</span>gt;<span class="php-string">'DISTINCT(UPPER(LEFT(name,1))) AS letter'</span>,
<span class="php-string">'conditions'</span><span class="php-operator">=</span><span class="php-operator">&amp;</span>gt;<span class="php-keyword">array</span><span class="php-brackets">(</span><span class="php-string">&quot;UPPER(LEFT(name,1)) REGEXP '[A-Z]'&quot;</span><span class="php-brackets">)</span><span class="php-brackets">)</span><span class="php-brackets">)</span>;</span></pre>
</div>
]]></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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 //each report is [...]]]></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>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre>
<pre><span class="php"><span class="php-comment">//each report is connected to same session report via session_id
</span>
CREATE TABLE IF NOT EXISTS <span class="php-operator">`</span>gather_reports<span class="php-operator">`</span> <span class="php-brackets">(</span>
  <span class="php-operator">`</span>id<span class="php-operator">`</span> <span class="php-var-type">int</span><span class="php-brackets">(</span><span class="php-number">1</span><span class="php-number">1</span><span class="php-brackets">)</span> NOT NULL AUTO_INCREMENT,
  <span class="php-operator">`</span><span class="php-function">session_id</span><span class="php-operator">`</span> varchar<span class="php-brackets">(</span><span class="php-number">6</span><span class="php-number">4</span><span class="php-brackets">)</span> NOT NULL DEFAULT <span class="php-string">''</span>,
  <span class="php-operator">`</span>type<span class="php-operator">`</span> enum<span class="php-brackets">(</span><span class="php-string">'Category'</span>,<span class="php-string">'Store'</span><span class="php-brackets">)</span> NOT NULL DEFAULT <span class="php-string">'Category'</span>,
  <span class="php-operator">`</span>name<span class="php-operator">`</span> varchar<span class="php-brackets">(</span><span class="php-number">1</span><span class="php-number">2</span><span class="php-number">8</span><span class="php-brackets">)</span> NOT NULL DEFAULT <span class="php-string">''</span>,
  <span class="php-operator">`</span><span class="php-function">date</span><span class="php-operator">`</span> timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  <span class="php-operator">`</span>importedId<span class="php-operator">`</span> text NOT NULL,
  <span class="php-operator">`</span>total<span class="php-operator">`</span> <span class="php-var-type">int</span><span class="php-brackets">(</span><span class="php-number">1</span><span class="php-number">1</span><span class="php-brackets">)</span> NOT NULL DEFAULT <span class="php-string">'0'</span>,
  <span class="php-operator">`</span>imported<span class="php-operator">`</span> <span class="php-var-type">int</span><span class="php-brackets">(</span><span class="php-number">1</span><span class="php-number">1</span><span class="php-brackets">)</span> NOT NULL DEFAULT <span class="php-string">'0'</span>,
  <span class="php-operator">`</span>duration<span class="php-operator">`</span> <span class="php-var-type">int</span><span class="php-brackets">(</span><span class="php-number">1</span><span class="php-number">1</span><span class="php-brackets">)</span> NOT NULL DEFAULT <span class="php-string">'0'</span>,
  PRIMARY KEY <span class="php-brackets">(</span><span class="php-operator">`</span>id<span class="php-operator">`</span><span class="php-brackets">)</span>
<span class="php-brackets">)</span></span></pre>
</div>
<p>in your controller</p>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre>
<pre><span class="php"><span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&gt;</span>GatherReport<span class="php-operator">-</span><span class="php-operator">&gt;</span>bindModel<span class="php-brackets">(</span>
    <span class="php-keyword">array</span><span class="php-brackets">(</span><span class="php-string">'hasOne'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-keyword">array</span><span class="php-brackets">(</span>
	<span class="php-string">'GatherTotal'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-keyword">array</span><span class="php-brackets">(</span>
        	<span class="php-string">'className'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-string">'GatherReport'</span>,
		<span class="php-string">'foreignKey'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-string">'id'</span>,
		<span class="php-string">'fields'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-string">'SUM(GatherTotal.total) as total'</span>
	<span class="php-brackets">)</span>,
	<span class="php-string">'GatherImported'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-keyword">array</span><span class="php-brackets">(</span>
		<span class="php-string">'className'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-string">'GatherReport'</span>,
		<span class="php-string">'foreignKey'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-string">'id'</span>,
		<span class="php-string">'fields'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-string">'SUM(GatherImported.imported) as imported'</span>
	<span class="php-brackets">)</span>,
	<span class="php-string">'GatherTime'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-keyword">array</span><span class="php-brackets">(</span>
		<span class="php-string">'className'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-string">'GatherReport'</span>,
		<span class="php-string">'foreignKey'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-string">'id'</span>,
		<span class="php-string">'fields'</span><span class="php-operator">=</span><span class="php-operator">&gt;</span><span class="php-string">'SUM(GatherTime.duration) as duration'</span>
	<span class="php-brackets">)</span>
<span class="php-brackets">)</span><span class="php-brackets">)</span>,<span class="php-keyword">false</span><span class="php-brackets">)</span>;
<span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&gt;</span>paginate<span class="php-brackets">[</span><span class="php-string">'GatherReport'</span><span class="php-brackets">]</span><span class="php-brackets">[</span><span class="php-string">'group'</span><span class="php-brackets">]</span> <span class="php-operator">=</span> <span class="php-string">'GatherReport.session_id'</span>;
<span class="php-var">$data</span> <span class="php-operator">=</span> <span class="php-var">$this</span><span class="php-operator">-</span><span class="php-operator">&gt;</span>paginate<span class="php-brackets">(</span><span class="php-string">'GatherReport'</span><span class="php-brackets">)</span>;</span></pre>
</div>
]]></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[1 2 3 4 5 $('input').focus(function(){ this.select(); });]]></description>
			<content:encoded><![CDATA[<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
</pre>
<pre><span class="js">$<span class="js-bracket">(</span><span class="js-string">'input'</span><span class="js-bracket">)</span>.<span class="js-client-keyword">focus</span><span class="js-bracket">(</span><span class="js-function-keyword">function</span><span class="js-bracket">(</span><span class="js-bracket">)</span><span class="js-bracket">{</span>
    <span class="js-reserved-keyword">this</span>.<span class="js-native-keyword">select</span><span class="js-bracket">(</span><span class="js-bracket">)</span>;
<span class="js-bracket">}</span><span class="js-bracket">)</span>;</span></pre>
</div>
]]></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>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
</pre>
<pre><span class="php"><span class="php-comment">#include &lt;GUIConstantsEx.au3&gt;
</span>
<span class="php-comment">#include &lt;WindowsConstants.au3&gt;
</span>
<span class="php-comment">#include &lt;EditConstants.au3&gt;
</span>
<span class="php-comment">#include &lt;Excel.au3&gt;
</span>
<span class="php-comment">#include &lt;Array.au3&gt;
</span>
<span class="php-comment">#Include &lt;Date.au3&gt;
</span>

;<span class="php-function">file</span> picker
<span class="php-var">$excelFile</span> <span class="php-operator">=</span> FileOpenDialog<span class="php-brackets">(</span><span class="php-string">&quot;Select an excel file&quot;</span>,@DesktopDir,<span class="php-string">&quot;Excel (*.xls)&quot;</span> ,<span class="php-number">1</span><span class="php-operator">+</span><span class="php-number">2</span><span class="php-brackets">)</span>

If Not @error Then
;create <span class="php-function">main</span> window
<span class="php-var">$mainGui</span> <span class="php-operator">=</span> GUICreate<span class="php-brackets">(</span><span class="php-string">&quot;Importing&quot;</span>,<span class="php-number">3</span><span class="php-number">5</span><span class="php-number">0</span>,<span class="php-number">1</span><span class="php-number">5</span><span class="php-number">0</span><span class="php-brackets">)</span>
GUISetState<span class="php-brackets">(</span>@SW_SHOW<span class="php-brackets">)</span>

<span class="php-var">$status</span> <span class="php-operator">=</span> GUICtrlCreateEdit<span class="php-brackets">(</span><span class="php-string">&quot;Begin importing&quot;</span>,<span class="php-number">1</span><span class="php-number">0</span>,<span class="php-number">1</span><span class="php-number">0</span>,<span class="php-number">3</span><span class="php-number">3</span><span class="php-number">0</span>,<span class="php-number">1</span><span class="php-number">3</span><span class="php-number">0</span>,<span class="php-var">$ES_AUTOVSCROLL</span><span class="php-operator">+</span><span class="php-var">$ES_AUTOHSCROLL</span><span class="php-operator">+</span><span class="php-var">$ES_MULTILINE</span><span class="php-operator">+</span><span class="php-var">$ES_READONLY</span><span class="php-brackets">)</span>

addStatus<span class="php-brackets">(</span><span class="php-string">&quot;File selected:&quot;</span><span class="php-operator">&amp;</span>amp;<span class="php-var">$excelFile</span><span class="php-brackets">)</span>

doExport<span class="php-brackets">(</span><span class="php-var">$excelFile</span><span class="php-brackets">)</span>
Else
MsgBox<span class="php-brackets">(</span><span class="php-number">0</span>,<span class="php-string">&quot;Error&quot;</span>,<span class="php-string">&quot;Error opening file&quot;</span><span class="php-brackets">)</span>
Exit
EndIf

While <span class="php-number">1</span>
<span class="php-var">$msg</span> <span class="php-operator">=</span> GUIGetMsg<span class="php-brackets">(</span><span class="php-brackets">)</span>
If <span class="php-var">$msg</span> <span class="php-operator">=</span> <span class="php-var">$GUI_EVENT_CLOSE</span> Then ExitLoop
WEnd
GUIDelete<span class="php-brackets">(</span><span class="php-brackets">)</span>

Func doExport<span class="php-brackets">(</span><span class="php-var">$file</span><span class="php-brackets">)</span>
<span class="php-var">$fpExcel</span> <span class="php-operator">=</span> _ExcelBookOpen<span class="php-brackets">(</span><span class="php-var">$file</span>,<span class="php-number">0</span>,<span class="php-number">1</span><span class="php-brackets">)</span>
If @error <span class="php-operator">=</span> <span class="php-number">1</span> Then
addStatus<span class="php-brackets">(</span><span class="php-string">&quot;Unable to Create the Excel Object&quot;</span><span class="php-brackets">)</span>
Exit
ElseIf @error <span class="php-operator">=</span> <span class="php-number">2</span> Then
addStatus<span class="php-brackets">(</span><span class="php-string">&quot;File does not exist - Shame on you!&quot;</span><span class="php-brackets">)</span>
Exit
Else
addStatus<span class="php-brackets">(</span><span class="php-string">&quot;File open successfully&quot;</span><span class="php-brackets">)</span>
EndIf

<span class="php-var">$done</span> <span class="php-operator">=</span> False
<span class="php-var">$i</span> <span class="php-operator">=</span> <span class="php-number">2</span>
While Not <span class="php-var">$done
</span>
;read a row from excel <span class="php-function">file</span>
<span class="php-var">$excelArray</span> <span class="php-operator">=</span> _ExcelReadArray<span class="php-brackets">(</span><span class="php-var">$fpExcel</span>,<span class="php-var">$i</span>,<span class="php-number">1</span>,<span class="php-number">9</span>,<span class="php-number">0</span>,<span class="php-number">0</span><span class="php-brackets">)</span>

If <span class="php-var">$excelArray</span><span class="php-brackets">[</span><span class="php-number">0</span><span class="php-brackets">]</span> <span class="php-operator">&amp;</span>lt;<span class="php-operator">&amp;</span>gt; <span class="php-string">&quot;&quot;</span> Then
addStatus<span class="php-brackets">(</span><span class="php-string">&quot;reading Row &quot;</span> <span class="php-operator">&amp;</span>amp; <span class="php-var">$i</span><span class="php-brackets">)</span>
;insert into sql <span class="php-function">file</span>
arrayToSql<span class="php-brackets">(</span><span class="php-var">$excelArray</span><span class="php-brackets">)</span>
Else
addStatus<span class="php-brackets">(</span><span class="php-string">&quot;Finsihed reading excel file&quot;</span><span class="php-brackets">)</span>
addStatus<span class="php-brackets">(</span><span class="php-var">$i</span><span class="php-operator">-</span><span class="php-number">2</span> <span class="php-operator">&amp;</span>amp; <span class="php-string">&quot; rows converted into sql statement&quot;</span><span class="php-brackets">)</span>
<span class="php-var">$done</span> <span class="php-operator">=</span> True
EndIf
<span class="php-var">$i</span> <span class="php-operator">+</span><span class="php-operator">=</span> <span class="php-number">1</span>
WEnd

_ExcelBookClose<span class="php-brackets">(</span><span class="php-var">$fpExcel</span><span class="php-brackets">)</span>
EndFunc

Func arrayToSql<span class="php-brackets">(</span><span class="php-var">$array</span><span class="php-brackets">)</span>
;save sql <span class="php-function">file</span> to desktop
<span class="php-var">$sqlFile</span> <span class="php-operator">=</span> FileOpen<span class="php-brackets">(</span>@DesktopDir<span class="php-operator">&amp;</span>amp;<span class="php-string">&quot;/ExcelToSql-&quot;</span><span class="php-operator">&amp;</span>amp;@MDAY<span class="php-operator">&amp;</span>amp;<span class="php-string">&quot;-&quot;</span><span class="php-operator">&amp;</span>amp;@MON<span class="php-operator">&amp;</span>amp;<span class="php-string">&quot;-&quot;</span><span class="php-operator">&amp;</span>amp;@YEAR<span class="php-operator">&amp;</span>amp;<span class="php-string">&quot;.sql&quot;</span>,<span class="php-number">1</span><span class="php-operator">+</span><span class="php-number">8</span><span class="php-brackets">)</span>

<span class="php-var">$sqlStatement</span> <span class="php-operator">=</span> <span class="php-string">&quot;INSERT INTO `_products` (`int_id`, `product_type`, `title`, `description`, `synopsis`, `publication_date`, `price`, `categories`, `list`, `type_id`, `processed`, `write_err`) VALUES (&quot;</span>
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;'&quot;</span><span class="php-operator">&amp;</span>amp; escapeString<span class="php-brackets">(</span><span class="php-var">$array</span><span class="php-brackets">[</span><span class="php-number">0</span><span class="php-brackets">]</span><span class="php-brackets">)</span> <span class="php-operator">&amp;</span>amp; <span class="php-string">&quot;',&quot;</span> ;int_id
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;'&quot;</span><span class="php-operator">&amp;</span>amp; escapeString<span class="php-brackets">(</span><span class="php-var">$array</span><span class="php-brackets">[</span><span class="php-number">1</span><span class="php-brackets">]</span><span class="php-brackets">)</span> <span class="php-operator">&amp;</span>amp; <span class="php-string">&quot;',&quot;</span> ;product_type
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;'&quot;</span><span class="php-operator">&amp;</span>amp; escapeString<span class="php-brackets">(</span><span class="php-var">$array</span><span class="php-brackets">[</span><span class="php-number">2</span><span class="php-brackets">]</span><span class="php-brackets">)</span> <span class="php-operator">&amp;</span>amp; <span class="php-string">&quot;',&quot;</span> ;title
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;'&quot;</span><span class="php-operator">&amp;</span>amp; escapeString<span class="php-brackets">(</span><span class="php-var">$array</span><span class="php-brackets">[</span><span class="php-number">3</span><span class="php-brackets">]</span><span class="php-brackets">)</span> <span class="php-operator">&amp;</span>amp; <span class="php-string">&quot;',&quot;</span> ;description
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;'&quot;</span><span class="php-operator">&amp;</span>amp; escapeString<span class="php-brackets">(</span><span class="php-var">$array</span><span class="php-brackets">[</span><span class="php-number">4</span><span class="php-brackets">]</span><span class="php-brackets">)</span> <span class="php-operator">&amp;</span>amp; <span class="php-string">&quot;',&quot;</span> ;synopsis
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;'&quot;</span><span class="php-operator">&amp;</span>amp; toExcelDate<span class="php-brackets">(</span><span class="php-var">$array</span><span class="php-brackets">[</span><span class="php-number">5</span><span class="php-brackets">]</span><span class="php-brackets">)</span> <span class="php-operator">&amp;</span>amp; <span class="php-string">&quot;',&quot;</span>  ;<span class="php-function">date</span>
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;'&quot;</span><span class="php-operator">&amp;</span>amp; escapeString<span class="php-brackets">(</span><span class="php-var">$array</span><span class="php-brackets">[</span><span class="php-number">6</span><span class="php-brackets">]</span><span class="php-brackets">)</span> <span class="php-operator">&amp;</span>amp; <span class="php-string">&quot;',&quot;</span> ;price
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;'&quot;</span><span class="php-operator">&amp;</span>amp; escapeString<span class="php-brackets">(</span><span class="php-var">$array</span><span class="php-brackets">[</span><span class="php-number">7</span><span class="php-brackets">]</span><span class="php-brackets">)</span> <span class="php-operator">&amp;</span>amp; <span class="php-string">&quot;',&quot;</span> ;category
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;'&quot;</span><span class="php-operator">&amp;</span>amp; escapeString<span class="php-brackets">(</span><span class="php-var">$array</span><span class="php-brackets">[</span><span class="php-number">8</span><span class="php-brackets">]</span><span class="php-brackets">)</span> <span class="php-operator">&amp;</span>amp; <span class="php-string">&quot;',&quot;</span> ;<span class="php-function">list</span>
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;'','N','N'&quot;</span>
<span class="php-var">$sqlStatement</span> <span class="php-operator">&amp;</span>amp;<span class="php-operator">=</span> <span class="php-string">&quot;);&quot;</span>

FileWriteLine<span class="php-brackets">(</span><span class="php-var">$sqlFile</span>,<span class="php-var">$sqlStatement</span><span class="php-brackets">)</span>
FileClose<span class="php-brackets">(</span><span class="php-var">$sqlFile</span><span class="php-brackets">)</span>
EndFunc

Func escapeString<span class="php-brackets">(</span><span class="php-var">$string</span><span class="php-brackets">)</span>
;replace anything that is not a number, letter<span class="php-operator"> or </span>common punctuation
<span class="php-var">$string</span> <span class="php-operator">=</span> StringRegExpReplace<span class="php-brackets">(</span><span class="php-var">$string</span>,<span class="php-string">&quot;[^0-9a-zA-Z.,\\/\!@#$%\^\&amp;amp;\*\(\)\-_\+=\h&amp;lt;&amp;gt;]&quot;</span>,<span class="php-string">&quot;&quot;</span><span class="php-brackets">)</span>
;escape single quote
<span class="php-var">$string</span> <span class="php-operator">=</span> StringRegExpReplace<span class="php-brackets">(</span><span class="php-var">$string</span>,<span class="php-string">&quot;[']&quot;</span>,<span class="php-string">&quot;\'&quot;</span><span class="php-brackets">)</span>
Return <span class="php-var">$string
</span>
EndFunc

Func toExcelDate<span class="php-brackets">(</span><span class="php-var">$dateString</span><span class="php-brackets">)</span>
<span class="php-var">$yearString</span> <span class="php-operator">=</span> StringMid<span class="php-brackets">(</span><span class="php-var">$dateString</span>,<span class="php-number">1</span>,<span class="php-number">4</span><span class="php-brackets">)</span>
<span class="php-var">$monthString</span> <span class="php-operator">=</span> StringMid<span class="php-brackets">(</span><span class="php-var">$dateString</span>,<span class="php-number">5</span>,<span class="php-number">2</span><span class="php-brackets">)</span>
<span class="php-var">$dayString</span> <span class="php-operator">=</span> StringMid<span class="php-brackets">(</span><span class="php-var">$dateString</span>,<span class="php-number">7</span>,<span class="php-number">2</span><span class="php-brackets">)</span>
<span class="php-keyword">return</span> <span class="php-var">$dayString</span><span class="php-operator">&amp;</span>amp;<span class="php-string">&quot;-&quot;</span><span class="php-operator">&amp;</span>amp;StringMid<span class="php-brackets">(</span>_DateToMonth<span class="php-brackets">(</span><span class="php-var">$monthString</span>,<span class="php-number">1</span><span class="php-brackets">)</span>,<span class="php-number">1</span>,<span class="php-number">3</span><span class="php-brackets">)</span><span class="php-operator">&amp;</span>amp;<span class="php-string">&quot;-&quot;</span><span class="php-operator">&amp;</span>amp;<span class="php-var">$yearString
</span>
EndFunc

Func addStatus<span class="php-brackets">(</span><span class="php-var">$text</span><span class="php-brackets">)</span>
GUICtrlSetData<span class="php-brackets">(</span><span class="php-var">$status</span>,@CRLF<span class="php-operator">&amp;</span>amp;<span class="php-var">$text</span>,<span class="php-number">1</span><span class="php-brackets">)</span>
EndFunc</span></pre>
</div>
]]></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>4</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>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
</pre>
<pre><span class="php"><span class="php-var">$site_title</span> <span class="php-operator">=</span> <span class="php-string">&quot;My site title&quot;</span>;</span></pre>
</div>
<p>To internationalize it, you change it to</p>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
</pre>
<pre><span class="php"><span class="php-var">$site_title</span> <span class="php-operator">=</span> __<span class="php-brackets">(</span><span class="php-string">&quot;My site title&quot;</span>,<span class="php-keyword">true</span><span class="php-brackets">)</span>;</span></pre>
</div>
<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>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
2
3
4
5
6
7
8
9
</pre>
<pre><span class="php">views\layouts
views\home
views\pages
controllers
<span class="php-operator">.</span></span></pre>
</div>
<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>
<div class="fvch-code">
<pre class="fvch-line-numbers">1
</pre>
<pre><span class="php">Configure<span class="php-operator">:</span><span class="php-operator">:</span>write<span class="php-brackets">(</span><span class="php-string">'Config.language'</span>,<span class="php-string">'rus'</span><span class="php-brackets">)</span>;</span></pre>
</div>
<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>8</slash:comments>
		</item>
	</channel>
</rss>

