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']; ?>&nbsp;</td>
>         <td><?php echo $actividad['Actividad']['num']; ?>&nbsp;</td>
>         <td><?php echo $actividad['Actividad']['actividad']; ?>&nbsp;</td>
>         <td><?php echo $actividad['Actividad']['solicitante'];
> ?>&nbsp;</td>
>         <td><?php echo $actividad['Actividad']['empresa']; ?>&nbsp;</td>
>         <td><?php echo $actividad['Actividad']['estado']; ?>&nbsp;</td>
>
> El la columna estado pongo:
>
> columna pongo esto:
>
>         <td><?php echo '<FONT COLOR="red">'.
> $actividad['Actividad']['estado'] . '</FONT>'?>&nbsp;</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.

Responder a