Itens ativos
Pesquisa
Login do usuário
Assine o RSS do Drupal-BR
Sobrescrever a função de taxonomia de um tipo de node específico
Oi amigos tudo bom?
Seguinte, eu tenho um tipo de conteúdo chamado "portfolio". criei um template de node específico para ele, o node-portfolio.tpl.php.
Agora vem o problema.
esse node tem duas taxonomias. Uma delas é Marcação Livre, e a outra é de Seleção Múltipla, com termos definidos.
Na listagem de termos do Node, são listados naturalmente tanto os termos da marcação livre quanto os termos selecionados na Seleção Múltipla. O Código HTML da página fica assim:
<div class="terms">
<ul class="links inline">
<li class="first taxonomy_term_11"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/adobe-flash" rel="tag" title="" class="taxonomy_term_11">Adobe Flash</a></li>
<li class="taxonomy_term_10"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/adobe-photoshop" rel="tag" title="" class="taxonomy_term_10">Adobe Photoshop</a></li>
<li class="taxonomy_term_8"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/css" rel="tag" title="" class="taxonomy_term_8">CSS</a></li>
<li class="taxonomy_term_13"><a href="/marcusvbp/designlivre/categorias/tags/desenvolvimento" rel="tag" title="" class="taxonomy_term_13">desenvolvimento</a></li>
<li class="taxonomy_term_1"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/drupal" rel="tag" title="" class="taxonomy_term_1">Drupal</a></li>
<li class="taxonomy_term_9"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/gimp" rel="tag" title="" class="taxonomy_term_9">GIMP</a></li>
<li class="taxonomy_term_5"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/inkscape" rel="tag" title="" class="taxonomy_term_5">Inkscape</a></li>
</ul>
</div>
<ul class="links inline">
<li class="first taxonomy_term_11"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/adobe-flash" rel="tag" title="" class="taxonomy_term_11">Adobe Flash</a></li>
<li class="taxonomy_term_10"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/adobe-photoshop" rel="tag" title="" class="taxonomy_term_10">Adobe Photoshop</a></li>
<li class="taxonomy_term_8"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/css" rel="tag" title="" class="taxonomy_term_8">CSS</a></li>
<li class="taxonomy_term_13"><a href="/marcusvbp/designlivre/categorias/tags/desenvolvimento" rel="tag" title="" class="taxonomy_term_13">desenvolvimento</a></li>
<li class="taxonomy_term_1"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/drupal" rel="tag" title="" class="taxonomy_term_1">Drupal</a></li>
<li class="taxonomy_term_9"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/gimp" rel="tag" title="" class="taxonomy_term_9">GIMP</a></li>
<li class="taxonomy_term_5"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/inkscape" rel="tag" title="" class="taxonomy_term_5">Inkscape</a></li>
</ul>
</div>
Eu gostaria de fazer o seguinte:
1 - Listar apenas os termos da taxonomia de Seleção Múltipla;
2 - Adicionar uma classe e um "title" aos termos, veja o código alterado abaixo:
<div class="terms">
<ul class="links inline">
<li class="first taxonomy_term_11"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/adobe-flash" rel="tag" ***title="Feito com Adobe Flash"*** class="taxonomy_term_11 ***tooltip***">Adobe Flash</a></li>
<li class="taxonomy_term_10 ***tooltip***><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/adobe-photoshop" rel="tag" ***title="Feito com Adobe Photoshop"*** class="taxonomy_term_10">Adobe Photoshop</a></li>
<li class="taxonomy_term_8 ***tooltip***"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/css" rel="tag" ***title="Feito com CSS"*** class="taxonomy_term_8">CSS</a></li>
<li class="taxonomy_term_1 ***tooltip***"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/drupal" rel="tag" ***title="Feito com Drupal"*** class="taxonomy_term_1">Drupal</a></li>
<li class="taxonomy_term_9 ***tooltip***"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/gimp" rel="tag" ***title="Feito com GIMP"*** class="taxonomy_term_9">GIMP</a></li>
<li class="taxonomy_term_5 ***tooltip***"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/inkscape" rel="tag" ***title="Feito com Inkscape"*** class="taxonomy_term_5">Inkscape</a></li>
</ul>
</div>
<ul class="links inline">
<li class="first taxonomy_term_11"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/adobe-flash" rel="tag" ***title="Feito com Adobe Flash"*** class="taxonomy_term_11 ***tooltip***">Adobe Flash</a></li>
<li class="taxonomy_term_10 ***tooltip***><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/adobe-photoshop" rel="tag" ***title="Feito com Adobe Photoshop"*** class="taxonomy_term_10">Adobe Photoshop</a></li>
<li class="taxonomy_term_8 ***tooltip***"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/css" rel="tag" ***title="Feito com CSS"*** class="taxonomy_term_8">CSS</a></li>
<li class="taxonomy_term_1 ***tooltip***"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/drupal" rel="tag" ***title="Feito com Drupal"*** class="taxonomy_term_1">Drupal</a></li>
<li class="taxonomy_term_9 ***tooltip***"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/gimp" rel="tag" ***title="Feito com GIMP"*** class="taxonomy_term_9">GIMP</a></li>
<li class="taxonomy_term_5 ***tooltip***"><a href="/marcusvbp/designlivre/categorias/tecnologias-utilizadas/inkscape" rel="tag" ***title="Feito com Inkscape"*** class="taxonomy_term_5">Inkscape</a></li>
</ul>
</div>
Conto com a ajuda da galera!
Enviado por marcus_vbp em sab, 19/07/2008 - 22:26.
- Por favor, se logue ou se registre para poder enviar comentários
- 177 leituras




marcus_vbp, vc disse que já
marcus_vbp,
vc disse que já está usando outro arquivo de template pra essa página, então, vc pode substituir a variavel $terms por uma função que vai pegar os termos direto do node, aí vc pode filtrar os que vc quer e pode fazer com que eles sejam exibidos do seu jeito! Voce pode utilizar o Dev Render do módulo Devel pra te ajudar. Por Exemplo:
foreach($node->taxonomy as $termo) { //Aqui você navega em todos os termos de taxonomia que tem o seu node
if($termo->tid=="TID_DO_TERMO_QUE_VOCE_QUER") {
$nome_do_termo=$termo->name;
$tid=$termo->tid;
print "<li title='O_QUE_VOCE_QUIZER'>".l($nome_do_termo,'taxonomy/term/'.$tid)."</li>";
}
}
?>
Assim vc gera um li com link do termo que vc quizer e personaliza do seu jeito!
Qualquer dúvida é só falar!
/* Lucas Souza */
Cara, obrigado pela
Cara, obrigado pela resposta.
Infelizmente o código que você me passou retornou-me apenas o termo com ID = 1. E não era isso q eu queria.
Saca só, o node tem dois tipos de taxonomia (vocabulary):
Tags livres (id = 2)
Seleção Livre (id = 1):
-- termo 1 (tid = 1)
-- termo 2 (tid = 2)
-- termo 3 (tid = 3)
-- termo 4 (tid = 4)
eu gostaria de listar todos os itens do vocabulary "selecao Livre".
--
http://www.marcusvbp.com.br
http://www.nh18.com.br
http://inofensivo.blog.br
Consegui =) Eu fiz da
Consegui =)
Eu fiz da seguinte forma:
$termo_links = '<ul class="links inline">';
foreach ((array)taxonomy_node_get_terms_by_vocabulary($nid, 1, $key = 'tid') as $term) {
$termo_links .= '<li class="termo_'. $term->tid .'"><a class="tooltip" title="Feito com '.$term->name.'" href="' . taxonomy_term_path($term) . '">'.$term->name.'</a></li>';
}
$termo_links .= '</ul>';
print $termo_links;
?>
A página que me ajudou a fazer isso foi:
http://drupal.org/node/88890
Agora eu gostaria de fazer o seguinte. Para manter tudo organizado e separar a parte lógica do tema, eu gostaria de separar esse código acima no template.php e no arquivo do tema só fazer um "print $termo_links".
É apenas para manter as coisas bonitinhas :)
--
http://www.marcusvbp.com.br
http://www.nh18.com.br
http://inofensivo.blog.br
ok! vc tá usando o drupal 5
ok! vc tá usando o drupal 5 aí eu não ia poder te ajudar mais...
Ainda bem q vc conseguiu!
/* Lucas Souza */