<?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>infinita Design &#187; CakePHP</title>
	<atom:link href="http://infinitadesign.com/blog/category/cakephp/feed/" rel="self" type="application/rss+xml" />
	<link>http://infinitadesign.com/blog</link>
	<description>coding style.</description>
	<lastBuildDate>Sat, 20 Mar 2010 01:10:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dynamic Databases</title>
		<link>http://infinitadesign.com/blog/2008/05/19/dynamic-databases/</link>
		<comments>http://infinitadesign.com/blog/2008/05/19/dynamic-databases/#comments</comments>
		<pubDate>Mon, 19 May 2008 11:28:50 +0000</pubDate>
		<dc:creator>andre</dc:creator>
				<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false">http://infinitadesign.com/2008/05/19/dynamic-databases/</guid>
		<description><![CDATA[Depois de procurar por muito tempo como fazer com que o cake utilizasse  varias databases, consegui encontrar alguma informação mas nada que fosse oque eu estva procurando, então resolvi modificar o database.php pra poder usar um DB onde as informaões estariam guardadas em um banco.
o Caso:
Existe um tabela no banco onde se econtram informações [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de procurar por muito tempo como fazer com que o cake utilizasse  varias databases, consegui encontrar alguma informação mas nada que fosse oque eu estva procurando, então resolvi modificar o database.php pra poder usar um DB onde as informaões estariam guardadas em um banco.<br />
o Caso:<br />
Existe um tabela no banco onde se econtram informações sobre outro banco de dados, como fazer o cake utilizar essas informações e conectar a esse banco dinamicamente?</p>
<p>Solução:<br />
isso soa mais como um hack do que uma solução, mas o que fiz foi fazer com que o database.php se conectasse primeiro ao banco principal e resgatasse as informações do banco secundário e ao mesmo tempo atribuir esses valores a variável do segundo banco.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> DATABASE_CONFIG
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$default</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'driver'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'mysql'</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'persistent'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'connect'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'mysql_connect'</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'host'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'localhost'</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'login'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'user'</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'password'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'pass'</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'database'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'pg_main'</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'prefix'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$panel</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'driver'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'mysql'</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'persistent'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'connect'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'mysql_connect'</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'host'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'login'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'password'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'database'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'pg_website'</span><span style="color: #339933;">,</span>
								<span style="color: #0000ff;">'prefix'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Criei além da conexão default uma conexão $panel em branco.  Então dentro da classe database criei o metodo construtor para resgatar os valores do banco default.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> DATABASE_CONFIG<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$domain</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_HOST'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//remove any www.</span>
		<span style="color: #000088;">$domain</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'www.'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$domain</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$domain</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.localhost'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$domain</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//$domain = 'pgwebsite';</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//connect to the default server and get the info about the cliente database</span>
		<span style="color: #000088;">$link</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>default<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'host'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>default<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'login'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>default<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'password'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Erro na conexao&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>default<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'database'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Erro na conexao&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #990000;">mysql_error</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'select * from websites'</span><span style="color: #339933;">,</span><span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$someone</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_assoc</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//set the database array for the panel conector</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>panel<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'host'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$someone</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dburl'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>panel<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'login'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$someone</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dbuser'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>panel<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'password'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$someone</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dbsenha'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">mysql_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Nota-se que é um metodo simples, mas realmente é bastante funcional qdo vc trata de varias conexões, neste exemplo a variável $user era setada por meio de leitura da url em um alias, ex. meusite.dominio.com, sendo assim resgatando as informações do usuário &#8220;meusite&#8221; no banco $default.</p>
<p>Depois é só utilizar $useDbConfig nos seus models para usar o banco $panel:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>code<span style="color: #339933;">&gt;&amp;</span>lt<span style="color: #339933;">;</span>?php <span style="color: #000000; font-weight: bold;">class</span> Model <span style="color: #000000; font-weight: bold;">extends</span> AppModel <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$name</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Model'</span><span style="color: #339933;">;</span>var <span style="color: #000088;">$useDbConfig</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;panel&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;&lt;/</span>code<span style="color: #339933;">&gt;</span></pre></div></div>

<p>O Principal motivo de utilizar este metodo é que se vc setar o banco durante o runtime do cake ele não é utilizavel via $useDbConfig no model.</p>
]]></content:encoded>
			<wfw:commentRss>http://infinitadesign.com/blog/2008/05/19/dynamic-databases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Urls usando &#8217;slug&#8217;</title>
		<link>http://infinitadesign.com/blog/2007/12/18/urls-usando-slug/</link>
		<comments>http://infinitadesign.com/blog/2007/12/18/urls-usando-slug/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 19:08:23 +0000</pubDate>
		<dc:creator>andre</dc:creator>
				<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false">http://infinitadesign.com/2007/12/18/urls-usando-slug/</guid>
		<description><![CDATA[Vo mostrar aqui como utilizar urls em estilo slug como o wordpress.  As razões de utilizar esse tipo de recurso é simples, as urls ficam mais apresentáeis e intuitivas e tornando-se mais atraentes. O precesso de adaptação é bem simples, utilizando mais um field &#8217;slug&#8217; na tabela do banco e usando esse campo ao [...]]]></description>
			<content:encoded><![CDATA[<p>Vo mostrar aqui como utilizar urls em estilo slug como o wordpress.  As razões de utilizar esse tipo de recurso é simples, as urls ficam mais apresentáeis e intuitivas e tornando-se mais atraentes. O precesso de adaptação é bem simples, utilizando mais um field &#8217;slug&#8217; na tabela do banco e usando esse campo ao invés do id para procura.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> contents <span style="color: #FF00FF;">&#40;</span>  id <span style="color: #999900; font-weight: bold;">INTEGER</span> <span style="color: #FF9900; font-weight: bold;">UNSIGNED</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #000033;">,</span>images_id <span style="color: #999900; font-weight: bold;">INTEGER</span> <span style="color: #FF9900; font-weight: bold;">UNSIGNED</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>title <span style="color: #999900; font-weight: bold;">VARCHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">45</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
&nbsp;
slug <span style="color: #999900; font-weight: bold;">VARCHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
&nbsp;
<span style="color: #999900; font-weight: bold;">text</span> <span style="color: #999900; font-weight: bold;">TEXT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
&nbsp;
created <span style="color: #999900; font-weight: bold;">DATETIME</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
&nbsp;
updated <span style="color: #999900; font-weight: bold;">DATETIME</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
&nbsp;
<span style="color: #990099; font-weight: bold;">PRIMARY KEY</span><span style="color: #FF00FF;">&#40;</span>id<span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span>
&nbsp;
<span style="color: #FF9900; font-weight: bold;">UNIQUE</span> <span style="color: #990099; font-weight: bold;">INDEX</span> contents_index1129<span style="color: #FF00FF;">&#40;</span>slug<span style="color: #FF00FF;">&#41;</span>
&nbsp;
<span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></pre></div></div>

<p>Com a table já pronta, podemos editar o controler. Para isso vamos mudar a function &#8220;view&#8221; do contents_controller.php.<br />
A seguir o code original criado a partir do bake.php:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> view<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Session<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>setFlash<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Invalid id for Content.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>redirect<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/contents/index'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>set<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'content'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Content<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>read<span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Agora a modificação, e então ocorre a mágica:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> view<span style="color: #009900;">&#40;</span><span style="color: #000088;">$slug</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$slug</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Session<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>setFlash<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Invalid id for Content.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>redirect<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/contents/index'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>set<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'content'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Content<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>findBySlug<span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #000088;">$slug</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Com o método &#8216;findBy&#8217; vc escolhe qual campo vc deseja usar para a procura, no caso nosso campo &#8217;slug&#8217; da tabela.<br />
Então para completar a mudança só é preciso agora alterar as views de modo que nos links seja indicado não a ID e sim o Slug da página requisitada:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">...</span>
<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>td <span style="color: #000000; font-weight: bold;">class</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;actions&quot;</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>?php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$html</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>link<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'View'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'/contents/view/'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$contents</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Content'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'slug'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>?php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$html</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>link<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Edit'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'/contents/edit/'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$contents</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Content'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'slug'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>?php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$html</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>link<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Delete'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'/contents/delete/'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$contents</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Content'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'slug'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Are you sure you want to delete id '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$contents</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Content'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'slug'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;/</span>td<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>
<span style="color: #339933;">...</span></pre></div></div>

<p>Agora uma última implementação, reparam que usamos na tabela a campo &#8217;slug&#8217; como UNIQUE, obviamente é necessário que essa entrada seja única no banco de dados para que duas páginas não tenham o mesmo &#8217;slug&#8217; perdendo assim a funcionalidade que mostramos aqui. Só é necessário alterar a function &#8216;add&#8217; no próprio controller:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> add<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>data<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>render<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>cleanUpFields<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/*aqui preencho o campo slug com o title + a data pra formar uma entrada unica */</span>
&nbsp;
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>data<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Content'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'slug'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Common<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>title_slug<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>data<span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Content'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'title'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'-'</span><span style="color: #339933;">.</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Y-m-d H:i:s'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Content<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>save<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>data<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Session<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>setFlash<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'The Content has been saved'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>redirect<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/contents/index'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>Session<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>setFlash<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Please correct errors below.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Repare que foi utilizado um component &#8216;Common&#8217; cujo codigo é disponibilizado a seguir, basta criar o arquivo /controllers/components/Common.php com ele e chama-lo usando &#8220;var $components = array(&#8216;Common&#8217;);&#8221;.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> CommonComponent <span style="color: #000000; font-weight: bold;">extends</span> Object<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">function</span> title_slug<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$title</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$slug</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$title</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$bad</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Š'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ž'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'š'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ž'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ÿ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'À'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Á'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Â'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ã'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ä'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Å'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ç'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'È'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'É'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ê'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ë'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ì'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Í'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Î'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ï'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ñ'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'Ò'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ó'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ô'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Õ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ö'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ø'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ù'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ú'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Û'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ü'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ý'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'à'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'á'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'â'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ã'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ä'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'å'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ç'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'è'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'é'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ê'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'ë'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ì'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'í'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'î'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ï'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ñ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ò'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ó'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ô'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'õ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ö'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ø'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ù'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ú'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'û'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ü'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ý'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ÿ'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'Þ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'þ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Ð'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ð'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ß'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Œ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'œ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Æ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'æ'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'µ'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'&quot;'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'“'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&quot;'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;r&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'_'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$good</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'S'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Z'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'s'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'z'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Y'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'C'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'E'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'N'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'O'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'U'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Y'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'c'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'e'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'n'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'o'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'y'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'y'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'TH'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'th'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'DH'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'dh'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ss'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'OE'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'oe'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'AE'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ae'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'u'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'-'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// replace strange characters with alphanumeric equivalents</span>
<span style="color: #000088;">$slug</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$bad</span><span style="color: #339933;">,</span> <span style="color: #000088;">$good</span><span style="color: #339933;">,</span> <span style="color: #000088;">$slug</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$slug</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$slug</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// remove any duplicate whitespace, and ensure all characters are alphanumeric</span>
<span style="color: #000088;">$bad_reg</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/s+/'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'/[^A-Za-z0-9-]/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$good_reg</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$slug</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$bad_reg</span><span style="color: #339933;">,</span> <span style="color: #000088;">$good_reg</span><span style="color: #339933;">,</span> <span style="color: #000088;">$slug</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// and lowercase</span>
<span style="color: #000088;">$slug</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$slug</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$slug</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://infinitadesign.com/blog/2007/12/18/urls-usando-slug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

