Pesquisa
Itens ativos
Posts mais lidos hoje
Login do usuário
Assine o RSS do Drupal-BR
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
- Se logue ou se registre para poder enviar comentários
- 376 leituras




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
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
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
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
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
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