• Cadastro
  • Fóruns
  • Manual
  • Projetos
  • Seminário
  • Tradução
  • Tutoriais
Início

Treinamento Drupal 31 de Janeiro em São Paulo

Pesquisa

Google

Itens ativos

  • Upload de imagens em massa
  • Treinamento Drupal
  • Foto do usuário no topo do blog
  • Tamanho do backup do banco de dados
  • Site fora do ar Personalizado
  • É possível fazer isso com o Drupal?
  • Erro de e-mails no Drupal Brasil
  • Formulario personalizado
  • Views e rss
  • Onde hospedar site com Drupal?
mais

Posts mais lidos hoje

  • Foto do usuário no topo do blog
  • Tutoriais
  • Treinamento Drupal
  • Manual
  • Upload de imagens em massa
  • Como instalar e configurar o TinyMCE no Drupal
  • Tutorial Para Iniciantes
  • Site fora do ar Personalizado
  • Desenvolvendo Portais com o CMS Drupal
  • Sobre o Drupal

Login do usuário

  • Criar uma conta
  • Recuperar senha

Parceiros

Assine o RSS do Drupal-BR

RSS dos itens mais ativos

RSS do conteúdo

RSS dos comentários

Início » Fórum » Suporte » Taxonomias

Associar taxonomia conteúdo próprio

Olá. Eu preciso que uma taxonomia seja associada a um conteúdo próprio que eu criei por meio de meu módulo. Eu consegui colocar a caixa que exibe os termos de um dado vocabulário na tela de criação de conteúdo, o que eu não consigo fazer, é pegar o valor que o usuário selecionou, da taxonomia, e salvar no banco de dados a associação da taxonomia escolhida com o nó do conteúdo..

Não sei se fui muito claro, no meu "hook_form", entre outros campos, eu inseri esse:

<?php
$form['taxonomia_usuario'] = module_invoke("taxonomy","form", '3');
// Esse '3' é o vid (vocabulary id) da taxonomia, ele diz que eu quero que o vocabulário 3 seja exibido na caixa de escolha de taxonomia.
?>

Com isso, eu consigo exibir, na criação do meu conteúdo, aquela caixinha de escolha de taxonomia. Mas quando o usuário clica em "submeter", a taxonomia que ele selecionou não é atrelada ao nó do conteúdo, e eu queria que isso acontecesse. Para resolver esse problema eu tentei inserir em "hook_insert" o seguinte:

<?php
db_query("INSERT INTO {term_node} (nid, tid) VALUES (%d, %d)", $node->vid, $taxonomia_usuario);
?>

O "term_node" é a tabela que relaciona quais nós estão atrelados a quais termos da taxonomia. Porém isso não funcionou porque eu acabei descobrindo mais tarde que, de alguma forma, o módulo taxonomia mexe com os dados dessa tabela, automaticamente, sempre quando um conteúdo é criado. Então, esse comando não funcionava. Eu cheguei a essa conclusão pois se eu colocasse "$node->vid+1" funciona.

Mas isso é uma explicação das conclusões e tentativas que fiz.. O eu gostaria mesmo, é de saber como eu faria para conseguir atrelar o meu conteúdo a uma taxonomia.

Alguém tem alguma sugestão?

Abraços

‹ Dúvidas Com o Módulo Taxonomy Image customizar modulo taxonomia ›
Enviado por rmanola em 12/01/2008 - 15:12
  • Taxonomias
  • Se logue ou se registre para poder enviar comentários
  • 376 leituras
Em 14/01/2008 - 10:22 pedrofaria disse:

Se eu nao me engano, qdo você cria um vocabulario, vc especifica em quais node-type vc quer usar a taxonomy...

confere ae!

--
Pedro Faria de Miranda Pinto
http://www.eusouopedro.com
http://www.phpavancado.net
Bate Papo sobre Drupal? irc://irc.freenode.net/drupal-br

  • Se logue ou se registre para poder enviar comentários
Em 16/01/2008 - 14:03 rmanola disse:

Sim, eu sei disso. A taxonomia a ser exibida depende do usuário que está criando o conteúdo, é por isso que eu crio o conteúdo por meio do meu módulo, senão eu nem estaria fazendo módulo, eu usava CCK mesmo...

Cada usuário vai ter uma taxonomia e eu quero que essa taxonomia seja exibida na criação do conteúdo, isso eu consigo fazer já, como foi citado acima, o que eu não consigo fazer é gravar a escolha da taxonomia que ele escolheu ao nó que acaba de ser criado.

Eu pensando em continuar com a abordagem de tentar gravar direto no banco de dados, só que fazendo isso por agendamento, usando cron.

Abraços
----------------------------------------
Renan Manola

----------------------------------------
Renan Manola

  • Se logue ou se registre para poder enviar comentários
Em 16/01/2008 - 15:47 rafael disse:

Renan,

A não ser que eu tenha entendido errado, você não precisa disso. Basta vc criar seu vocabulário e associá-lo ao seu tipo de conteúdo. Nesse momento já irá aparecer a opção da taxonomia (seja um select box, como no fórum aqui do Drupal Brasil, seja uma caixa com auto complete se vc escolher free taggin na hora de criar seu vocabulário).

Não sei se ajuda, isso é o correto, pelo que eu entendi que você quer.

Abraço

--
Rafael Ferreira Silva
http://www.rafaelsilva.net

  • Se logue ou se registre para poder enviar comentários
Em 16/01/2008 - 21:11 rmanola disse:

Rafael, desculpa eu não ter sido mais claro. Cada usuário terá sua taxonomia própria, ou seja, assim que o módulo detecta que um usuário quer usar o sistema, ele cria uma taxonomia (vocabulário) padrão e associa essa ao dado usuário. Quando o usuário vai criar o conteúdo oferecido pelo meu módulo, essa taxonomia DO USUÀRIO que foi criada é apresentada. Então, na tela de criação de conteúdo do usuário X a taxonomia que aparece para ele selecionar é a taxonomia T_X, na tela de criação de conteúdo do usuário Y, a taxonomia que aparece para ele selecionar é a taxonomia T_Y, entende?

Eu não consigo fazer isso usando a configuração do móduloo taxonomy na tela de administração, porque uma vez que eu atribuo uma taxonomia a um conteúdo, indiferente do usuário, essa taxonomia vai aparecer na criação do conteúdo.

Abraços

----------------------------------------
Renan Manola

----------------------------------------
Renan Manola

  • Se logue ou se registre para poder enviar comentários
Em 18/01/2008 - 10:06 rafael disse:

Renan,

Agora entendi hehe
Bom, antes de mais nada, recomendo vc dar uma olhada na seção de módulos do Drupal pra ver se não há algo que possa lhe servir: http://drupal.org/project/Modules/name

Dando uma olhada lá encontrei um módulo http://drupal.org/project/taxonomy_user que se não resolver seu problema pode lhe ajudar a chegar lá.

Por último tem uma seção só de módulos relacionados à taxonomia: http://drupal.org/project/Modules/category/71
Dê uma conferida lá, e veja se tem alguma coisa que ajuda.

Qualquer dúvida é só falar que a gente tenta ajudar :-)

Abraço

--
Rafael Ferreira Silva
http://www.rafaelsilva.net

  • Se logue ou se registre para poder enviar comentários
Em 24/01/2008 - 20:57 rmanola disse:

Obrigado pelos comentários, eu já tinha visto esses módulos e eu realmente preciso criar um módulo.

Eu acabo de descobrir como resolver meu problema. O módulo taxonomy possui no seu hook_nodeapi() a implementação do "insert" o que quer dizer que sempre quando um conteúdo é criado, ele chama uma função padrão que automaticamente verifica se deve atrelar o nó em questão a uma taxonomia, a função é: "taxonomy_node_save($node->nid, $node->taxonomy);" então tudo que eu tenho que fazer no meu hook_insert() é: $node->taxonomy = form['taxonomia_usuario'].

Problema resolvido.

Abraços

----------------------------------------
Renan Manola

----------------------------------------
Renan Manola

  • Se logue ou se registre para poder enviar comentários
Designimage

Este site é feito, orgulhosamente, com Drupal.