Buenas, lo que tienes que hacer, ya que los valores son accesibles a tu
código php es hacer una sentencia condicional.. te propongo lo siguiente:
function coloredValues($str, $config) {
/* Config es un array del estilo
* $config =
* array('valor1' => 'color1', 'valor2' => 'color2', 'valor3' => 'color3')
*/
/* Si no vas a reaprovechar éste código se puede hardcodear
* aquí dentro haciéndo que la función solo tenga un parámetro
*/
return "<font color=\".$config[$str]."\">".$str."</font>";
/* Aquí tengo que hacer una indicación, creo que no se debería
* usar la etiqueta font ya que el w3c la ha deshechado
*/
/* A cambio haría un <div class="color"> y añadiría css para
* definir allí el color, que ademas nos permite definir más
* propiedades, como el tamaño, cursivas o negrita
* entonces $config sería de la forma
* $config = array('valor1' => 'clase1', 'valor2' => 'clase2', etc);
*/
}
Más detalles, para imprimir valores directamente desde php en pequeños
bloques que sólo hacen eso, se puede hacer el siguiente cambio para ganar
legibilidad y reducir código:
<?php echo "cadena" ?>
se cambia por
<?= "cadena" ?>
Obviamente, si soys muy ahorrativos y no os importa la legibilidad, también
podéis eliminar esos dos espacios que hay allí. Bueno, por eso he hecho que
la función retorne el valor de la cadena y no la imprima directamente.
Recomiendo meter esa función en un Helper si se quiere utilizar en
diferentes vistas, pero si no es así, es preferible meterla a palo seco
dentro de la vista ya que los helpers añaden sobrecarga.
Un saludo.
El 14 de mayo de 2010 11:59, gandalf.cake <[email protected]> escribió:
> Pero no lo acabo de entender, el problema es que el color cambiarà
> dependiendo del valor del campo, si en la vista donde tengo los campos de
> esta forma:
>
>
> <td><?php echo $actividad['Actividad']['id']; ?> </td>
> <td><?php echo $actividad['Actividad']['num']; ?> </td>
> <td><?php echo $actividad['Actividad']['actividad']; ?> </td>
> <td><?php echo $actividad['Actividad']['solicitante'];
> ?> </td>
> <td><?php echo $actividad['Actividad']['empresa']; ?> </td>
> <td><?php echo $actividad['Actividad']['estado']; ?> </td>
>
> El la columna estado pongo:
>
> columna pongo esto:
>
> <td><?php echo '<FONT COLOR="red">'.
> $actividad['Actividad']['estado'] . '</FONT>'?> </td>
>
> Me saldran todos los valores en rojo. Lo que quiero es que dependiendo del
> valor del campo pueda poner un color o otro.
>
>
--
- Per la llibertat del coneixement -
- Per la llibertat de la ment... -
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a
[email protected]
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/cakephp-es?hl=es.