Bueno, les cuento. El calendario se genera con ASP 3.0 y los eventos se importan desde un XML generado en otro servidor que solo soporta PHP 5.x y ocupo ajax para cargar los meses.
eventos.js
Código PHP:
function nuevoAjax()
{
var xmlhttp=false;
try
{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E)
{
if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
}
}
return xmlhttp;
}
function cargarMes(mes, anio, div) {
var destino = document.getElementById(div);
var ajax=nuevoAjax();
ajax.open("GET", "/calendario.asp?MES="+mes+"&ANIO="+anio, true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==1)
{
// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
destino.innerHTML="<div style=\"text-align: center; margin-top 20px;\"><img src=\"loading.gif\" border=\"0\" /></div>";
}
if (ajax.readyState==4)
{
destino.innerHTML=ajax.responseText;
}
}
ajax.send(null);
}
eventos.php
Código PHP:
<?php
# Generamos las variables
$date = time();
$meses = array("","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
$day = date('d', $date);
$month = date('m', $date);
$year = date('Y', $date);
if (isset($_GET[MES]))
$month = $_GET[MES];
if (isset($_GET[ANIO]))
$year = $_GET[ANIO];
$hostname = "localhost";
$database = "";
$username = "";
$password = "";
$link = mysql_connect($hostname, $username, $password) or die(mysql_error());
mysql_select_db($database, $link);
$first_day = mktime(0,0,0,$month, $day_num, $year);
$last_day = mktime(23,59,59,$month, cal_days_in_month(0, $month, $year), $year);
$result = mysql_query("SELECT ID, fecha_desde, fecha_hasta FROM eventos_beta WHERE fecha_desde >= ".$first_day." AND fecha_hasta <= ".$last_day."", $link);
header('Content-Type: text/xml');
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo '<rss version="2.0">
<channel>
<title>Eventos</title>
<link>http://</link>
<language>es-CL</language>
<description></description>
<generator>TukySolutions</generator>';
while($rw = mysql_fetch_assoc($result)) {
echo "<item>
<id>$rw[ID]</id>
<evento_dia>".intval(date("d", $rw[fecha_desde]))."</evento_dia>
<evento_mes>".intval(date("m", $rw[fecha_desde]))."</evento_mes>
</item>";
}
echo '</channel></rss>';
exit();
?>