drupal-header

Imprimir las taxonomias de un nodo en una tabla

Hola Yamil. Voy a dar por hecho que el Content type lo hiciste con CCK.

Dicho lo anterior lo que tendrías que hacer es usar el modulo Content template (Contemplate para los amigos) lo que te va a dar muchísima flexibilidad sobre las variables que tenés disponibles para imprimir y el layout que querés usar.
Entonces, ya teniendo Contemplate y la plantilla básica del nodo que te va a proporcionar Contemplate (Lee la documentación de Contemplate para saber como hacer un template en disco duro.) solo te queda imprimir del nodo solamente lo que te interese y formatearlo.

y resolviendo tu duda, te comento que dentro de la plantilla deberías formatear las taxonomias de la siguiente manera:

[pyg lang=”html+php”]
< ?php if (count($node->taxonomy)): ?>

< ?php foreach ($node->taxonomy as $tag): ?>< ?php endforeach; ?>

< ?php print $tag->name; ?>

< ?php endif; ?>
[/pyg]

Por ultimo te comento que en este ejemplo la variable $tag es un objeto que tiene el vid (vocabulario) al que pertenece por lo que si solo queres imprimir los términos que haya en un determinado vocabulario solo tenes que poner un if()

[pyg lang=”html+php”]
//suponiendo que solo queremos los terminos del vocabulario “Atributos del pichichu” que vendria a ser el 3:
< ?php if (count($node->taxonomy)): ?>

< ?php foreach ($node->taxonomy as $tag): ?> < ?php if ($tag->vid == 3): ?>< ?php endif; ?> < ?php endforeach; ?>

< ?php print $tag->name; ?>

< ?php endif; ?>
[/pyg]

8 Comments

  • yamil 12/08/2011

    Hola!.. Nose si fue dirigido a mí! que soy yamil! pero hace meses que estoy buscando esa solución… voy a probar y después te cuento como me fue!…

  • Capy 12/08/2011

    jajajaja, si man fue para vos.
    Mas vale tarde que nunca XD

  • yamil 13/08/2011

    muy bueno!! gracias por el post ahora mira una cosa
    Agrego un tipo de taxonomía:
    Marca: donde selecciono “audi” – “bmw” y cada uno de esto me lleva al termino hijo “a3” “a4” etc…
    Al crear el nodo lo realizo con Hierarchical Select.
    Con el contémplate me muestra para imprimir solo el “ termino hijo” y el nombre de la taxonomía “marca” pero no en si la marca “audi”….

  • yamil 13/08/2011

    te dejo el link del proyecto http://wimleers.com/demo/hierarchical-select/taxonomy explica unos arrays!… con contemplate

    $node->field_marcatxs[‘und’][0][‘taxonomy_term’]->tid
    53
    $node->field_marcatxs[‘und’][0][‘taxonomy_term’]->vid
    2
    $node->field_marcatxs[‘und’][0][‘taxonomy_term’]->name
    A3
    $node->field_marcatxs[‘und’][0][‘taxonomy_term’]->description (NULL)
    $node->field_marcatxs[‘und’][0][‘taxonomy_term’]->format (NULL)
    $node->field_marcatxs[‘und’][0][‘taxonomy_term’]->weight
    0
    $node->field_marcatxs[‘und’][0][‘taxonomy_term’]->vocabulary_machine_name
    marca (este es el nombre de la taxonomia) cual que atributo le asigna al primer termino “padre”

  • yamil 16/08/2011

    sabes que al utilizar Hierarchical Select solo guarda los terminos hijo para mostrar en el nodo…es algo que me complico la vida!… de todas formas muy bueno el aporte “contemplate” me ayudo a ver otras cosas y pude imprimir las taxonomias en otros tipos de contenidos… gracias.

  • yamil 24/08/2011

    Solucionado era un problema de los modulos!… porque con drupal 6.x lo podia hacer en drupal 7 estaban desactualizado!…
    saludos men gracias!… Grande DRUPAL!…

  • Capy 29/08/2011

    Huy perdoname la tardanza. estaba de vacaciones. Me alegro que te hayas podido auto solucionar el problema, Saludos!

  • huesi 27/02/2012

    Buenos días… A min también me sirvió, era lo que estaba buscando… Sólo que no consigo que me imprima “sólamente” los términos de un vocabulario, sino que los imprime todos (los de todos los vocabularios con los que categorizo el nodo).
    Y también quería que los imprimiera. Te dejo el código que modifiqué, pero que no sé si está bien:

    taxonomy) ):?>
    taxonomy as $tag ):?>
    vid == 6):?>
    <a href="

    Como verás, el vocabulario que me interesa tiene vid 6
    Gracias de antemano!

:).