Color según término de taxonomía

Events happening in the community are now at Drupal community events on www.drupal.org.
cumpatomas's picture

Hola gente! tengo un nodo con un campo que referencia a un término de taxonomía y quiero darle un color determinado según la opción seleccionada de esa taxonomía o sea según el término que se elija.
De alguna manera llegué a publicar el campo que referencia a la taxonomía agregando una función en commom_methods.php del theme y luego llamándolo en el node.tpl.php del nodo de esta manera:

<?php
print $node->field_estado['und'][0]['taxonomy_term']->name;
?>

Yo pienso que se puede hacer con una función IF en PHP para que según el término que se elija (son sólo 3) pueda meter este llamado en una DIV diferente para cada termino y le doy el formato y color desde CSS pero no tengo idea de PHP y para hacerlo desde Views me parece que es muy tarde porque ya estructuré todo desde node.tpl.php asi que algún experto en PHP tal vez me puede echar una mano. Desde ya mil gracias!!

Comments

Yo lo que haria es extender

tomas.souto's picture

Yo lo que haria es extender la taxonomia agregandole un field de color. Entonces cuando agregas un nuevo termino ademas del nombre pones el color en hecadecimal, ej: #FFAACC

Despues en tu nodo solo tenes que levantar el termino e imprimes el nombre y el color o haces con el color lo que quieras.

<?php
$term
= taxonomy_get_term_by_name($node->field_estado['und'][0]['taxonomy_term']->name);
echo
'<span class="color: ' . $term->field_color. '">' . $term->name . '</span>';
?>

Otra opcion es hacer algo asi:

<?php
$class
= pathauto_cleanstring($node->field_estado['und'][0]['taxonomy_term']->name);
echo
'<span class="' . $class . '">' . $node->field_estado['und'][0]['taxonomy_term']->name . '</span>';
?>

Y luego en css vas creando classes para cada term con el diseño que quieras....

Lo malo de esto es que cada vez que agreges un termino -no te quedes en que hoy tenes solo 3- tenes que tocar el CSS, de la primer manera solo agregarias el termino y el color

Tomás Souto
Skype: tomas.souto

Baireswebdesign.com
Digital Agency - Web Design and Development
baireswebdesign.com

Antes que nada gracias por al

cumpatomas's picture

Antes que nada gracias por al ayuda! Te cuento que me arroja un error con el primer método haciendo referencia al node.tpl.php

"Error: Trying to get property of non-object en include()"

Creé un field de TEXTO en el vocabulario de la taxonomía llamado color y para cada término le puse un valor hectadecimal pero me tira ese error, habrá algun problema en el código php??

Muchas gracias! Saludos

Hola cumpatomas, no sé nada

FAAREIA's picture

Hola cumpatomas, no sé nada de como manipular los campos desde node.tpl.php pero lo que haría es llamar al ID del término y ponerlo asi:
<tag class="color-ID"></tag>
De esa forma te organizas en el CSS los colores por ID y listo, sin necesidad de agregar un campo extra a la taxonomía ni de invocar toda la taxonomía para solo poner 1 color.

Hola gente muchas gracias por

cumpatomas's picture

Hola gente muchas gracias por la ayuda! Al final lo resolví con una función IF de php que de tanto probar salió. Estoy seguro de que hay una manera más fácil, muy seguro! pero bueno asi lo resolví yo. Tengo 3 opciones para el término de taxonomía y 3 etiquetas de colores en CSS. Aqui está el código para el node.tpl.php. Saludos

<?php
if ($node->field_estado['und'][0]['taxonomy_term']->name == 'opcion1') {
?>

<?php
print $node->field_estado['und'][0]['taxonomy_term']->name;
?>

<?php
} elseif ($node->field_estado['und'][0]['taxonomy_term']->name == 'opcion2') {
?>

<?php
print $node->field_estado['und'][0]['taxonomy_term']->name;
?>

<?php
} else {
?>
<?php
print $node->field_estado['und'][0]['taxonomy_term']->name;}
?>

Bueno no puedo poner el

cumpatomas's picture

Bueno no puedo poner el código con tag class no me los toma pero lo que hice fue encerrar en un tag diferente cada print del termino y le di el color desde CSS a cada tag class. Gracias por la ayuda gente. Saludos

Argentina

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: