<?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>vinicius.biz</title>
	<atom:link href="http://vinicius.biz/feed" rel="self" type="application/rss+xml" />
	<link>http://vinicius.biz</link>
	<description></description>
	<lastBuildDate>Sat, 05 Jun 2010 20:38:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Drupal: URLs amigáveis a partir de títulos contendo HTML</title>
		<link>http://vinicius.biz/drupal-urls-amigaveis-a-partir-de-titulos-contendo-html</link>
		<comments>http://vinicius.biz/drupal-urls-amigaveis-a-partir-de-titulos-contendo-html#comments</comments>
		<pubDate>Sat, 05 Jun 2010 17:48:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[pathauto]]></category>
		<category><![CDATA[token]]></category>

		<guid isPermaLink="false">http://vinicius.biz/?p=13</guid>
		<description><![CDATA[picture taken by mgallacher Uma das limitações do Drupal, pelo menos até a versão 6, é a falta de suporte ao uso de HTML nos títulos dos conteúdos. Embora existam bons motivos para não se usar HTML nos títulos, em &#8230; <a href="http://vinicius.biz/drupal-urls-amigaveis-a-partir-de-titulos-contendo-html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone size-full wp-image-26" title="Path" src="http://vinicius.biz/wordpress/wp-content/uploads/2010/06/picture-path.jpg" alt="Path" width="450" height="288" /><br />
<em>picture taken by <a href="http://www.flickr.com/photos/mgallacher/270395223/">mgallacher</a></em></p>
<p>Uma das limitações do <a href="http://drupal.org">Drupal</a>, pelo menos até a versão 6, é a falta de suporte ao uso de HTML nos títulos dos conteúdos. Embora existam bons motivos para não se usar HTML nos títulos, em alguns casos isso é necessário. Infelizmente esta prática acaba gerando uma série de problemas que precisam ser tratados caso a caso.</p>
<p>Um dos problemas está relacionado ao uso do módulo <a href="http://drupal.org/project/pathauto">Pathauto</a> para geração de URLs amigáveis (<em>aliases</em>) para conteúdos do Drupal. Como o Pathauto cria as URLs a partir do título, se este contiver tags HTML, essas tags irão aparecer na URL. Por exemplo, a URL de uma página com  o título &#8220;Sobre a &lt;b&gt;Empresa&lt;/b&gt;&#8221; seria algo como &#8220;/sobre-bempresab&#8221;.</p>
<p>A solução que encontrei (com a <a href="http://stackoverflow.com/questions/2804781/in-drupal-how-to-change-the-values-passed-to-pathauto">ajuda do Stack Overflow</a>) baseia-se na modificação do token usado pelo Pathauto como ponto de partida para gerar o alias. Por padrão, o token utilizado é [title-raw], ou seja, o título do conteúdo sem nenhuma alteração. Se precisamos que o alias seja gerado sem as tags HTML, basta criar um novo token que forneça ao Pathauto o título já com as tags HTML removidas. Isso pode ser feito através dos <a href="http://drupal.org/handbook/modules/token">hooks</a> disponibilizados pelo módulo <a href="http://drupal.org/project/token">Token</a>.</p>
<p>Os dois hooks que precisam ser implementados são o <strong>hook_token_list</strong>, que retorna uma lista com os tokens disponíveis, e o <strong>hook_token_values</strong>, que retorna o valor para um determinado token.</p>
<p>Considerando que os hooks serão implementados em um módulo de customizações chamado Tweak, o código para a criação do novo token para o Pathauto ficaria assim:</p>
<pre>function tweak_token_list($type = 'all') {
  $tokens = array();
  if ($type == 'node' || $type == 'all') {
    $tokens['node']['clean-title'] = 'Node title without HTML tags';
  }
  return $tokens;
}</pre>
<pre>function tweak_token_values($type, $object = NULL, $options = array()) {
  $tokens = array();
  if ($type == 'node') {
    $node = $object;
    $tokens['clean-title'] = strip_tags($node-&gt;title);
  }
  return $tokens;
}</pre>
<p>Com os hooks implementados, basta configurar o Pathauto para usar o token &#8216;clean-title&#8217;, ao invés do &#8216;title-raw&#8217;. Isto é feito na seção &#8220;Node path settings&#8221; da página &#8220;Automated alias settings&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://vinicius.biz/drupal-urls-amigaveis-a-partir-de-titulos-contendo-html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
