Código PHP:
class EventCalendar extends Calendario {
var $chek = FALSE;
function EventCalendar(){
parent::Calendario();
}
function createCalendarioEvent($mes,$anio){
$this->chek = parent::checkMes($mes);
if($this->chek == TRUE){
$strMes = parent::switchMes($mes);
// Creamos todas las variables de control
$diaMes = 1;
$numDiaSemana = parent::numSemana(1,$mes,$anio);
$ultimoDia = parent::getLastDay($mes,$anio);
$currentDay = date('d');
$classCalendar = $this->classCalendar;
$estruct ='<div class="leftCalend">';
$estruct .= ' <table class="'.$classCalendar.'">
<tr><th align="center" colspan="7" class="mesTit">'.$strMes.' '.$anio.'</th></tr>
<tr>
<th>Lun</th>
<th>Mar</th>
<th>Mie</th>
<th>Jue</th>
<th>Vie</th>
<th>Sab</th>
<th>Dom</th>
</tr>
<tr>';
/*****************************************************************************************************************************
GENERAMOS LA PRIMER FILA YA QUE NECESITAMOS SABER EN QUE POSICION VA A EMPEZAR
******************************************************************************************************************************/
for($i=0;$i<7;$i++){
$fechaCompleta = $diaMes.'/'.$mes.'/'.$anio;
if($i<$numDiaSemana){
//si el dia de la semana i es menor que el numero del primer dia de la semana
//no pongo nada en la celda
$estruct .= '
<td></td>';
}else{
//ponemos el numero del dia
global $DbConn;
// buscamos si hay algun evento registrado para la fecha a mostrar
$sql = "SELECT idEvento FROM eventos WHERE fecha='".$fechaCompleta."'";
$res = $DbConn->query($sql);
$numRows = $DbConn->numRows($res);
if($numRows==1){
$idEvento = mysql_result($res,0);
}
/**********************************************************************************************
COMPROBAMOS SI EXISTE ALGUN EVENTO
**********************************
EN CASO DE EXISTIR Y ES EN LA FECHA ACTUAL APLICA EL ESTILO PERTINENTE PARA ESA OPCION
***********************************************************************************************/
if($diaMes == $currentDay){
if($numRows==1){
$estruct .= '
<td class="currentV"><a href="?ver='.$idEvento.'">'.$diaMes.'</a></td>';
}else{
$estruct .= '
<td class="currentA"><a href="?addEvent='.$fechaCompleta.'">'.$diaMes.'</a></td>';
}
}else{
if($numRows==1){
$estruct .= '
<td class="ver"><a href="?ver='.$idEvento.'">'.$diaMes.'</a></td>';
}else{
$estruct .= '
<td class="add"><a href="?addEvent='.$fechaCompleta.'">'.$diaMes.'</a></td>';
}
} // END ELSE COMPROBACION DE DIA ACTUAL
$diaMes++;
} //END ELSE COMPROBACION DE EXISTENCIA DE DIAS
} // END FOR
$estruct .= '
</tr>';
/*****************************************************************************************************************************
GENERAMOS LAS FILAS QUE FALTAN
******************************************************************************************************************************/
$setPos = 0;
//recorremos los demas dias
while($diaMes <= $ultimoDia){
$fechaCompleta = $diaMes.'/'.$mes.'/'.$anio;
//si empieza la semana escribimos una nueva linea
if ($setPos == 0){
$estruct .= '<tr>';
}
// buscamos si hay algun evento registrado para la fecha a mostrar
$sql = "SELECT idEvento FROM eventos WHERE fecha='".$fechaCompleta."'";
$res = $DbConn->query($sql);
$numRows = $DbConn->numRows($res);
if($numRows==1){
$idEvento = mysql_result($res,0);
}
if($diaMes == $currentDay){
if($numRows==1){
$estruct .= '
<td class="currentV"><a href="?ver='.$idEvento.'">'.$diaMes.'</a></td>';
}else{
$estruct .= '
<td class="currentA"><a href="?addEvent='.$fechaCompleta.'">'.$diaMes.'</a></td>';
}
}else{
if($numRows==1){
$estruct .= '
<td class="ver"><a href="?ver='.$idEvento.'">'.$fechaCompleta.'</a></td>';
}else{
$estruct .= '
<td class="add"><a href="?addEvent='.$fechaCompleta.'">'.$diaMes.'</a></td>';
}
}
$diaMes++;
$setPos++;
//chequeamos que no si setPos llego al final de la fila
if ($setPos == 7){
$setPos = 0;
$estruct .= '</tr>';
}
}
/*****************************************************************************************************************************
******************************************************************************************************************************/
$Prev = $this->getPrevMont($mes,$anio);
$Next = $this->getNextMont($mes,$anio);
$estruct .= '
</tr>
<tr>
<td><a href="?newMont='.$Prev[0].'&newYear='.$Prev[1].'"> <img src="'.ROOT_IMG.'calendario/prevBtn.jpg"></a></td>
<td colspan="5"></td>
<td><a href="?newMont='.$Next[0].'&newYear='.$Next[1].'"> <img src="'.ROOT_IMG.'calendario/nextBtn.jpg"></a></td>
</tr>
</table>
</div>
';
echo $estruct;
}
}
function getPrevMont($mes,$anio){
$mesAnt = $mes -1;
$anioAnt = $anio;
if($mesAnt == 0){
$mesAnt =12;
$anioAnt = $anioAnt -1;
}
$data_prev[0]=$mesAnt;
$data_prev[1]=$anioAnt;
return $data_prev;
}
function getNextMont($mes,$anio){
$mesNext = $mes +1;
$anioNext = $anio;
if ($mesNext == 13){
$mesNext = 1;
$anioNext++;
}
$data_next[0] = $mesNext;
$data_next[1] = $anioNext;
return $data_next;
}
function getDataEvent($idEventoE){
global $DbConn;
$sql = "SELECT * FROM eventos WHERE idEvento='".$idEventoE."'";
$res = $DbConn->query($sql);
$data = $DbConn->fetchArray($res);
if (ereg ("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})", $data['fecha'], $retFecha)) {
$data['dia']=$retFecha[1];
$data['mes']=$retFecha[2];
$data['anio']=$retFecha[3];
}
return $data;
}
} // end Class
despues por ejemplo yo lo vizualice temporalmente asi
Código PHP:
$EventCalendar = new EventCalendar();
$mesAct =strftime('%m');
$anioAct =strftime('%Y');
if($_GET['newMont'] || $_GET['newYear']){
$mesAct = $_GET['newMont'];
$anioAct = $_GET['newYear'];
}
if($_GET['ver']){
$data = $EventCalendar->getDataEvent($_GET['ver']);
$mesAct = $data['mes'];
$anioAct = $data['anio'];
}
$EventCalendar->createCalendarioEvent($mesAct,$anioAct);
if($_GET['ver']){
echo createEditEvent($data);
}