Hola buenos días, ya vamos avanzando en el calendario.
ahora lo que tengo que hacer es despues de hacer la consulta a la base de datos que la hace correctamente es marcar en el calendario las fechas en las que hayan eventos y ya por último que cuando pinche en dicha fecha me muestre en una página nueva la información, supongo que eso lo hare por GET pero me he quedado bloqueado con el coloreo de la fecha.
Código PHP:
<?php
// comprobar los eventos que hay en la base de datos y marcarlos en el calendario
$sql="SELECT id_noticia, id_idioma, fecha FROM noticias";
$r=mysql_query($sql, $link);
while ($fila=mysql_fetch_array($r)){
$fecha_evento=($fila["fecha"]); // recoger fecha de la base de datos
$evento= date("j/m", strtotime("$fecha_evento + 0 days")); // poner la fecha en formato dia/mes
}
$anyo=date("Y");
$mes=date("m");
switch($mes)
{
case 1:
$mes_nombre="Enero";
break;
case 2:
$mes_nombre="Febrero";
break;
case 3:
$mes_nombre="Marzo";
break;
case 4:
$mes_nombre="Abril";
break;
case 5:
$mes_nombre="Mayo";
break;
case 6:
$mes_nombre="Junio";
break;
case 7:
$mes_nombre="Julio";
break;
case 8:
$mes_nombre="Agosto";
break;
case 9:
$mes_nombre="Septiembre";
break;
case 10:
$mes_nombre="Octubre";
break;
case 11:
$mes_nombre="Noviembre";
break;
case 12:
$mes_nombre="Diciembre";
break;
}
$fecha=date("Y-m-d", easter_date()); // Calcula la fecha desde el 21 y no 22 de marzo la fecha que me muestra es el Sabado de Pascua y no el Domingo
if ($fecha==date("$anyo-04-26")){ // si la fecha obtenida es el 26 de abril la Pascua se pasa al 19 de abril
$fecha=date("$anyo-04-19");
}
if ($fecha==date("$anyo-04-25")){ // si la fecha obtenida es el 25 de abril la Pascua se pasa al 18 de abril
$fecha=date("$anyo-04-18");
}
$juevessanto= date("j/m", strtotime("$fecha - 2 days")); // restar dos días para calcular el Jueves Santo
$viernessanto= date("j/m", strtotime("$fecha - 1 days")); //restar un día para calcular el Viernes Santo
$sabadosanto= date("j/m", strtotime("$fecha + 0 days")); // se pasa la fecha calculada anteriormente para saber cuando cae el Sábado Santo
$domingopascua= date("j/m", strtotime("$fecha + 1 days")); // añadir un día para calcular el Domingo de Pascua
$lunessanto= date("j/m", strtotime("$fecha + 2 days")); // añadir dos días para calcular el Lunes Santo
// ----------- INICIO Dias Festivos ----------
//Días Festivos Nacionales
$array_dias_festivos[0] = '1/01'; // 1 de enero Año Nuevo
$array_dias_festivos[1] = '6/01'; // 6 de enero día de los Reyes
$array_dias_festivos[2] = '19/03'; // 19 de marzo San José
$array_dias_festivos[3] = '1/05'; // 1 de mayo día del trabajador
$array_dias_festivos[4] = '25/07'; // 15 de Julio Santiago Apostol
$array_dias_festivos[5] = '15/08'; // 15 de agosto Asunción de la Virgen
$array_dias_festivos[6] = '12/10'; // 12 de octubre día del Pilar
$array_dias_festivos[7] = '1/11'; // 1 de noviembre día de Todos los Santos
$array_dias_festivos[8] = '6/12'; // 6 de diciembre día de la Constitución
$array_dias_festivos[9] = '8/12'; // 8 de diciembre día de la Inmaculada Concepción
$array_dias_festivos[10] = '25/12'; // 25 de diciembre día de Navidad
// Semana Santa
$array_dias_festivos[11] = $juevessanto; // Jueves Santo
$array_dias_festivos[12] = $viernessanto; // Viernes Santo
$array_dias_festivos[13] = $sabadosanto; // Sabado Santo
$array_dias_festivos[14] = $domingopascua; //Domingo Pascua
$array_dias_festivos[15] = $lunessanto; // Lunes Santo
// ----------- FIN Dias Festivos ----------
echo '<table border="0" bgcolor="#EEEEEE" align="center" cellspacing="1" width="100%" height="100%" id="meses"><tr>';
echo '<td colspan="7" bgcolor="#e67817" ><font color="#FFFFFF"> '.$mes_nombre.' - '.$anyo.'</font></td>';
$ultimo_dia = date("t",mktime(0, 0, 0, $mes, 1, $anyo)); // ultimo dia del mes dado //
//título días de la semana
echo '
<tr>
<td bgcolor="#e67817" align="center"><font color="#FFFFFF">Lu</font></td>
<td bgcolor="#e67817" align="center"><font color="#FFFFFF">Ma</font></td>
<td bgcolor="#e67817" align="center"><font color="#FFFFFF">Mi</font></td>
<td bgcolor="#e67817" align="center"><font color="#FFFFFF">Ju</font></td>
<td bgcolor="#e67817" align="center"><font color="#FFFFFF">Vi</font></td>
<td bgcolor="#e67817" align="center"><font color="#FFFFFF">Sa</font></td>
<td bgcolor="#e67817" align="center"><font color="#FFFFFF">Do</font></td>
</tr>';
echo '<tr>';
for($d=1; $d<=$ultimo_dia; $d++)// crear los dias
{
if($d==1)
{
$dia_name = date("D",mktime(0, 0, 0, $mes, 1, $anyo)); //nombre del dia 1
if($dia_name=="Mon"){}
if($dia_name=="Tue"){echo "<td> </td>";}
if($dia_name=="Wed"){echo "<td colspan='2'> </td>";}
if($dia_name=="Thu"){echo "<td colspan='3'> </td>";}
if($dia_name=="Fri"){echo "<td colspan='4'> </td>";}
if($dia_name=="Sat"){echo "<td colspan='5'> </td>";}
if($dia_name=="Sun"){echo "<td colspan='6'> </td>";}
// esto lo hacemos para que el calendario quede bien los primeros dias, por ejemplo, si el primer dia del mes fuera un jueves, no podriamos ponerlo en la primera columna.
//de esta manera solucuionamos el problema
}
$dia_nombre = date("D",mktime(0, 0, 0, $mes, $d, $anyo)); //nombre del dia
if($dia_nombre=="Sun" || $dia_nombre=="Sat") //distinguimos si es sabado o domingo para lo siguiente:
{
if($dia_nombre=="Sun")
{
//si es domingo, hacemos que el calendario vaje a la siguiente fila, para que quiede bien, ademas lo marcamos de color
echo '<td bgcolor="#555555" align="center"><font color="#FFFFFF"><b> '.$d.' </b></font></td>';
echo '</tr><tr>';
}
else
{
//si es sabado, lo marcamos de color
echo '<td bgcolor="#555555" align="center"><font color="#FFFFFF"><b> '.$d.' </b></font></td>'; //si es sabado, lo marcamos de color
}
}
else
{
$comprobar=$d.'/'.$mes;
if(in_array($comprobar,$array_dias_festivos)) // si ha de estar marcado con un color...
{
echo '<td bgcolor="#555555" align="center"><font color="#FFFFFF"><b> '.$d.' </b></font></td>';
}
else // si es un dia normal...
{
echo '<td bgcolor="#FFFFFF" align="center"><font color="#555555"><b> '.$d.' </b></font></td>';
}
}
}
echo '</tr></table>';
?>
Este es todo el código.
Alguien sabe como lo tengo que hacer?
Gracias mil veces más.
Fernando.