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
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
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
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
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
<?phpif ($node->field_estado['und'][0]['taxonomy_term']->name == 'opcion1') {
?>
<?phpprint $node->field_estado['und'][0]['taxonomy_term']->name;
?>
<?php} elseif ($node->field_estado['und'][0]['taxonomy_term']->name == 'opcion2') {
?>
<?phpprint $node->field_estado['und'][0]['taxonomy_term']->name;
?>
<?php} else {
?>
<?phpprint $node->field_estado['und'][0]['taxonomy_term']->name;}
?>
Bueno no puedo poner el
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