Modificaciones en el calendario IV

  • Por
Finalizamos las modificaciones de la librería del calendario con las que nos permitirán colorear los días dependiendo de si son domingos o si es el día actual.
4) Inteligencia para colorear los días

Por último se ha modificado la librería del calendario para que lo días tengan colores representativos. El rojo para el domingo, el azul para el día actual y el negro para cualquier otro día.

La primera acción tomada para hacer posible el cambio de color en los días ha sido añadir a nuestra hoja de estilos CSS, donde se definen los estilos del calendario, los nuevos estilos para los distintos tipos de días.

.hoy {
    font-family : verdana,arial,helvetica;
    font-size : 10pt;
    color: 000099
}

.domingo {
    font-family : verdana,arial,helvetica;
    font-size : 10pt;
    color: 990000
}

.diario {
    font-family : verdana,arial,helvetica;
    font-size : 10pt;
    color: 000000
}


Luego se ha creado una función que recibe el día que se pretende imprimir y devuelve el color, o mejor dicho, el estilo que se le debe aplicar.

function dame_estilo($dia_imprimir){
    global $mes,$ano,$dia_solo_hoy,$tiempo_actual;
    //dependiendo si el día es Hoy, Domigo o Cualquier otro, devuelvo un estilo
    if ($dia_solo_hoy == $dia_imprimir && $mes==date("n", $tiempo_actual) && $ano==date("Y", $tiempo_actual)){
       //si es hoy
       $estilo = " class='hoy'";
    }else{
       $fecha=mktime(12,0,0,$mes,$dia_imprimir,$ano);
       if (date("w",$fecha)==0){
          //si es domingo
          $estilo = " class='domingo'";
       }else{
          //si es cualquier dia
          $estilo = " class='diario'";
       }
    }
    return $estilo;
}


La función utiliza varias variables globales como son el mes y el año del calendario que se está mostrando, el día que es hoy en número (variable $dia_solo_hoy) y el timestamp del momento actual (variable $tiempo_actual).

Lo primero que se comprueba es si el número de día que se pretende imprimir es el mismo que el número de día de hoy y si el mes y año que se está imprimiendo es el mismo que el mes y año actuales. En este caso es que el día, mes y año concuerdan con lo que devolverá el estilo "hoy". Luego se comprueba si el día de la semana es domingo, devolviendo en ese caso el estilo "domingo". En caso contrario devuelve el estilo "diario".

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Manuel Fernandez

07/4/2006
Saludos.- ¿Como se puede hacer para que los dias que tengan una actividad especifica definida en la base de datos se coloren de un color distinto?. Gracias.