Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

[aporte]Clase para crear calendarios

Estas en el tema de [aporte]Clase para crear calendarios en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola gente, esta semana eh estado actualizando la web de mi trabajo, el tema que mas me complico es que tenia todas las classes para ...
  #1 (permalink)  
Antiguo 23/10/2008, 14:48
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
[aporte]Clase para crear calendarios

Hola gente, esta semana eh estado actualizando la web de mi trabajo, el tema que mas me complico es que tenia todas las classes para php 5 y el servidor tenia php 4, por lo cual tuve que rehacer muchas cosas, bueno esta mañana me decidi a hacer un calendario y no sabia como encararlo asi que estuve bastante para terminarlo, le faltan algunos retoques.
Pero por el momento permite generar dos tipos de calendarios, uno simple y otro con gestion de eventos

Código PHP:

<?php

class calendario{
    var 
$date;
    var 
$day;
    var 
$month;
    var 
$year;
    var 
$actualDay;
    var 
$firstDay;
    var 
$lastDay;
    var 
$nexDay;
    var 
$nexMonth;
    var 
$nextYear;
    var 
$Event;
    var 
$classCalendar "defaultCalendar";
    
    function 
calendario($data=null){
        
$this->date time();
        
            if(
is_null($data['dia'])){
                
$data['dia'] = date('d',$this->date);
            }
            if(
is_null($data['mes'])){
                
$data['mes'] = date('m',$this->date);
            }
            if(
is_null($data['anio'])){
                
$data['anio'] = date('Y',$this->date);
            }
                
        
$this->day $data['dia'];
        
$this->month $data['mes'];
        
$this->year $data['anio'];
    }
    
    function 
createMes ($mes,$anio=''){
        
/*******************************************
        el dato $mes tiene que ser un numero del 1 al 12
        ********************************************/
        
if(is_int($mes)){
            if(
$mes >|| $mes <=12){
                
$strMes calendario::switchMes($mes);
                    
// Creamos todas las variables de control
                    
$diaMes 1;
                    
$numDiaSemana calendario::numSemana(1,$mes,$this->year);
                    
$ultimoDia calendario::getLastDay($mes,$this->year);
                    
$currentDay $this->day;
                    
                    
$estruct '
                                            <table class="'
.$classCalendar.'">
                                                <tr colspan="7">'
.$strMes.'</tr>
                                                <tr>
                                                    <td>Lun</td>
                                                    <td>Mar</td>
                                                    <td>Mie</td>
                                                    <td>Jue</td>
                                                    <td>Vie</td>
                                                    <td>Sab</td>
                                                    <td>Dom</td>
                                                </tr>
                                                <tr>'
;
                    
                    for(
$i=0;$i<7;$i++){
                        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
                            
if($diaMes == $currentDay){
                                
$estruct .= '    
                                                    <td class="current">'
.$diaMes.'</td>';
                            }else{
                                
$estruct .= '    
                                                    <td>'
.$diaMes.'</td>';
                            }
                            
$diaMes++;
                        }
                    }
                    
                    
                    
$estruct .= '    
                                                </tr>'
;
                    
$setPos 0;
                    
//recorremos los demas dias
                    
while($diaMes <= $ultimoDia){
                        
//si empieza la semana escribimos una nueva linea
                        
if ($setPos == 0){
                            
$estruct .= '<tr>';
                        }
                            if(
$diaMes == $currentDay){
                                
$estruct .= '
                                                        <td class="current">'
.$diaMes.'</td>';
                            }else{
                                
$estruct .= '
                                                        <td>'
.$diaMes.'</td>';
                            }
                            
$diaMes++;
                            
$setPos++;
                        
//chequeamos que no si setPos llego al final de la fila
                        
if ($setPos == 7){
                            
$setPos 0;
                            
$estruct .= '</tr>';
                        }
                    }
                    
                return 
$estruct;        
            }else{
                
$error 'error: Debe ingresar un numero del 1 al 12';
            }
        }else{
            
$error 'el dato debe ser un numero';
                return 
$error;
        }
    }
    
    function 
switchMes ($mes){
        
            switch(
$mes){
                case 
1:    $retMes     =     'Enero';        break;
                case 
2:    $retMes     =     'Febrero';        break;
                case 
3:    $retMes     =     'Marzo';        break;
                case 
4:    $retMes     =     'Abril';        break;
                case 
5:    $retMes     =     'Mayo';            break;
                case 
6:    $retMes     =     'Junio';        break;
                case 
7:    $retMes     =     'Julio';        break;
                case 
8:    $retMes     =     'Agosto';        break;
                case 
9:    $retMes     =     'Septiembre';    break;
                case 
10$retMes     =     'Octubre';        break;
                case 
11$retMes     =     'Noviembre';    break;
                case 
12$retMes     =     'Diciembre';    break;
            }
            return 
$retMes;
        
    }    
        
    function 
numSemana ($dia,$mes,$anio){
        
$intSem date('w'mktime(0,0,0,$mes,$dia,$anio));
            if(
$intSem == 0){
                
$intSem 6;
            }else{
                
$intSem--;
            }
        return 
$intSem;
    }
    
    function 
getLastDay ($mes,$anio){
        
$ultimo_dia=28;
        
// mientras sea true se comprueba, si el mes tiene mas de 28 dias va a umentar sino frena la cuenta en el ultimo numero
            
while (checkdate($mes,$ultimo_dia 1,$anio)){
                
$ultimo_dia++;
            }
        return 
$ultimo_dia;
    } 
    
    function 
checkMes ($mes){
        if(
is_int($mes)){    
            if(
$mes >|| $mes <=12){
                return 
TRUE;
            }else{
                
$error 'El mes debe ser un numero del 1 al 12';
            }
        }else{
            
$error 'El mes debe ser un numero';
        }
        return 
$error;
    }
        
}
  #2 (permalink)  
Antiguo 23/10/2008, 14:49
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: [aporte]Clase para crear calendarios

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);
        } 
  #3 (permalink)  
Antiguo 27/10/2008, 11:37
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: [aporte]Clase para crear calendarios

agregue otra funcion a la clase EventCalendar:

Código PHP:
function createDivCalendarioEvent($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');
                    
$mesAct date('m');
                    
$classCalendar $this->classCalendar;
                    
                    
$estruct ='<div class="leftCalend">';
                    
                    
$estruct .= '            <div class="calendarioCont">
                                                <div class="mesTit">'
.$strMes.' '.$anio.'</div>
                                                <div class="diaSem">
                                                    <div>Lu</div>
                                                    <div>Ma</div>
                                                    <div>Mi</div>
                                                    <div>Ju</div>
                                                    <div>Vi</div>
                                                    <div>Sa</div>
                                                    <div>Do</div>
                                                </div>
                                                <div class="rowsSem">'
;
                    
                
/*****************************************************************************************************************************
                    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 .= '
                                                        <div>&nbsp</div>'
;
                            }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."' AND tipo='".$this->eventType."'";
                                
$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 && $mesAct == $mes){
                                    if(
$numRows>0){
                                        
$estruct .= '    
                                                            <div class="currentV"><a href="?ver='
.$fechaCompleta.'">'.$diaMes.'</a></div>';
                                    }else{
                                        
$estruct .= '    
                                                            <div class="currentA"><a href="?addEvent='
.$fechaCompleta.'">'.$diaMes.'</a></div>';    
                                    }
                                }else{
                                    if(
$numRows>0){
                                        
$estruct .= '    
                                                            <div class="ver"><a href="?ver='
.$fechaCompleta.'">'.$diaMes.'</a></div>';
                                    }else{
                                        
$estruct .= '    
                                                            <div class="add"><a href="?addEvent='
.$fechaCompleta.'">'.$diaMes.'</a></div>';    
                                    }                
                                } 
// END ELSE COMPROBACION DE DIA ACTUAL
                                
$diaMes++;
                            } 
//END ELSE COMPROBACION DE EXISTENCIA DE DIAS
                        
                        
// END FOR
                    
                    
$estruct .= '    
                                                </div>'
;
/*****************************************************************************************************************************
                                        GENERAMOS LAS FILAS QUE FALTAM
******************************************************************************************************************************/                                                
                    
$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 .= '<div class="rowsSem">';
                        }
                        
// buscamos si hay algun evento registrado para la fecha a mostrar
                            
$sql "SELECT idEvento FROM eventos WHERE fecha='".$fechaCompleta."' AND tipo='".$this->eventType."'";
                            
$res $DbConn->query($sql);
                            
$numRows $DbConn->numRows($res);
                                
                        if(
$diaMes == $currentDay && $mesAct == $mes){
                                if(
$numRows>0){
                                    
$estruct .= '    
                                                        <div class="currentV"><a href="?ver='
.$fechaCompleta.'">'.$diaMes.'</a></div>';
                                }else{
                                    
$estruct .= '    
                                                        <div class="currentA"><a href="?addEvent='
.$fechaCompleta.'">'.$diaMes.'</a></div>';    
                                }
                            }else{
                                if(
$numRows>0){
                                    
$estruct .= '    
                                                        <div class="ver"><a href="?ver='
.$fechaCompleta.'">'.$diaMes.'</a></div>';
                                }else{
                                    
$estruct .= '    
                                                        <div class="add"><a href="?addEvent='
.$fechaCompleta.'">'.$diaMes.'</a></div>';    
                                }                
                            }
                            
$diaMes++;
                            
$setPos++;
                        
//chequeamos que no si setPos llego al final de la fila
                        
if ($setPos == 7){
                            
$setPos 0;
                            
$estruct .= '</div>';
                        }
                    
                    }
/*****************************************************************************************************************************
******************************************************************************************************************************/    
                    
$Prev $this->getPrevMont($mes,$anio);
                    
$Next $this->getNextMont($mes,$anio);
                    
$estruct .= '
                                </div>
                                <div class="rowsBOT">
                                    <div><a href="?newMont='
.$Prev[0].'&newYear='.$Prev[1].'"> <img src="'.ROOT_IMG.'calendario/prevBtn.jpg"></a></div>
                                    <div>&nbsp</div>
                                    <div>&nbsp</div>
                                    <div>&nbsp</div>
                                    <div>&nbsp</div>
                                    <div>&nbsp</div>
                                    <div><a href="?newMont='
.$Next[0].'&newYear='.$Next[1].'"> <img src="'.ROOT_IMG.'calendario/nextBtn.jpg"></a></div>
                                </div>
                                    </div>
                                </div>    
                    '
;
                    
                    return 
$estruct;
                    
            }
    } 
hice esto porque tenia problemas para acomodar la tabla en los divs que tenia en la web, les dejo el estilo default en css:

Código:
/***********************************************************************************************************************
									CALENDARIO DIVS
************************************************************************************************************************/
.calendarioCont {width:287px; padding:0; margin:0}
div.mesTit{width:100%;text-align:center; font-weight:bold;background:url(../img/calendario/titMes.jpg) repeat-x;color:#FFF }
div.diaSem{width:100%;clear:both;}
div.diaSem div{float:left;height:20px;width:40px;background:#80BDE6;text-align:center;border-left:solid 1px #80BDE6;border-bottom:solid 1px #FFF;color:#FFF}
div.rowsSem{width:100%; clear:both}
div.rowsSem div{float:left;padding:10px 0 10px 0;width:40px;background:#F2F2F2;text-align:center;border-left:solid 1px #FFF;border-bottom:solid 1px #FFF}
div.rowsSem  div.currentA{background:#AA0000; color :#FFF}
div.rowsSem  div.currentA a{color :#FFF}

div.rowsSem  div.currentV{background:#1E851D;}
div.rowsSem  div.currentV a{color :#FFF}

div.rowsBOT{width:100%; clear:both}
div.rowsBOT div{float:left;width:28px;background:#FFF;text-align:center;border-left:solid 1px #FFF;border-bottom:solid 1px #FFF;color:#FFF}
  #4 (permalink)  
Antiguo 04/11/2008, 17:34
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: [aporte]Clase para crear calendarios

Buen aporte podias poner el modelo de ejemplo para ver como queda?
  #5 (permalink)  
Antiguo 04/11/2008, 21:26
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: [aporte]Clase para crear calendarios

Muy bueno, pero eso pon un ejemplo de uso.

Un saludo
  #6 (permalink)  
Antiguo 05/11/2008, 04:21
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: [aporte]Clase para crear calendarios

en el primer post hay un ejemplo:

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'];
            
        }    
                
       echo 
$EventCalendar->createDivCalendarioEvent($mesAct,$anioAct);
        
        if(
$_GET['ver']){
            echo 
createEditEvent($data);
        } 
Si se pasa por get los parametros newMonth y newYear setea las variables $mesAct y $anioAct con echo $EventCalendar->createDivCalendarioEvent($mesAct,$anioAct); imprimimos el calendario
  #7 (permalink)  
Antiguo 05/11/2008, 08:37
Avatar de jakuam  
Fecha de Ingreso: abril-2007
Mensajes: 354
Antigüedad: 17 años
Puntos: 0
Respuesta: [aporte]Clase para crear calendarios

disculpen la consulta pero como muestro el calendario en una web, como puedo visualizar la class..
he colocado el codigo del calendario simple, pero no puedo visualizarlo ..
gracias
__________________
Jakuam
Reserva Hoteles Online
Turismo San Rafael Mendoza
  #8 (permalink)  
Antiguo 05/11/2008, 08:50
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: [aporte]Clase para crear calendarios

Cita:
Iniciado por jakuam Ver Mensaje
disculpen la consulta pero como muestro el calendario en una web, como puedo visualizar la class..
he colocado el codigo del calendario simple, pero no puedo visualizarlo ..
gracias
pues tienes hacer "echo" y llamar la clase con su funcion
Código:
$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);
        }
  #9 (permalink)  
Antiguo 05/11/2008, 10:17
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: [aporte]Clase para crear calendarios

claro, disculpen pero en el calendario simple teneia un echo que despues lo cambie por un return, porque era mas comodo si se incluia la funcion que devuelve el calendario en una varible dentro de un bucle.

por ejemplo como manejo los eventos

Código PHP:
$resultCalendar = new EventCalendar();
            
            
    
// inicializamos los datos principales que pueden ir variando
        
if(!isset($_GET['ver']) && !isset($_GET['action']) ){
            
$fechaActua['mes'] =strftime('%m');
            
$fechaActual['anio'] = strftime('%Y');
            
/****************************************************************************/
                
$calendario $resultCalendar->createDivCalendarioEvent($fechaActua['mes'] ,$fechaActual['anio']);
                
$seccion createListEvent($fechaActual);
            
/****************************************************************************/
        
}    
            
            if(
$_GET['newMont'] && $_GET['newMont']){
                
// Definimos las variables con los datos
                
$newMes $_GET['newMont'];
                
$newAnio $_GET['newYear'];
                
$fecha['mes'] = $newMes;
                
$fecha['anio'] = $newAnio;                
                
                
/****************************************************************************/
                    
$calendario $resultCalendar->createDivCalendarioEvent($newMes,$newAnio);
                    
$seccion createListEvent($fecha);
                
/****************************************************************************/
            
}
    
    
//comprobamos los permisos        
            
            
if($permiso_ 900){
                if(
$_GET['action']=='Delet' && $_GET['event']!=0){
                    if(
$permiso_>800){
                        
$mensaje2['tipo'] = 'Adv';
                        
$mensaje2['mensaje'] = '¿Esta seguro que quiere eliminar este Evento?</br>
                                                    
                                                 <div>
                                                     <a href="?action=Delet&event='
.$_GET['event'].'&bool=si">si</a>
                                                     <a href="?action=Delet&event='
.$_GET['event'].'&bool=no">no</a>
                                                 </div>'
;
                        
/****************************************************************************/
                            
$seccion SendMsjHtml($mensaje2); 
                        
/****************************************************************************/
                    
}
                }
                
                if(
$_GET['fecha'] && $_GET['event'] && $_GET['action']!='Delet'){
                    if(
$_GET['action']){
                        
                        switch(
$_GET['action']){
                            case 
'Edit':
                                        
$fechaArr separeDate($_GET['fecha']);
                                        
$newMes $fechaArr['mes'];
                                        
$newAnio $fechaArr['anio'];
                                        
                                            
$EditParam['action']['update']=true;
                                            
$EditParam['event']['id']=$_GET['event'];
                                            
$EditParam['fecha'] = $_GET['fecha'];
                                            
/****************************************************************************/
                                                
$calendario $resultCalendar->createDivCalendarioEvent($newMes,$newAnio);
                                                
$seccion createFormEvent($EditParam);
                                            
/****************************************************************************/
                            
break;
                        }
                    }
                }
                
                if(
$_GET['addEvent']){
                    
$fechaCal separeDate($_GET['addEvent']);
                    
$newMes $fechaCal['mes'];
                    
$newAnio $fechaCal['anio'];    
                        
                        
$AddParam['fecha']=$_GET['addEvent'];
                        
                        
/****************************************************************************/
                            
$calendario $resultCalendar->createDivCalendarioEvent($newMes,$newAnio);
                            
$seccion createFormEvent($AddParam);
                        
/****************************************************************************/
                
}

                if(
$_GET['ver']){
                    
$fechaVer separeDate($_GET['ver']);
                        
$dataList['dia'] = $fechaVer['dia'];
                        
$dataList['mes'] = $fechaVer['mes'];
                        
$dataList['anio'] = $fechaVer['anio'];
                
                    
$mesAct $dataList['mes'];
                    
$anioAct $dataList['anio'] ;
                        
                        
/****************************************************************************/
                            
$calendario $resultCalendar->createDivCalendarioEvent($mesAct,$anioAct);
                            
$seccion createListEvent($dataList);
                        
/****************************************************************************/
                
}
                    
                
                if(
$_GET['bool'] && $_GET['event'] && $_GET['action']){
                        if (
$_GET['bool'] =='si'){
                            
$eventInfo['event']['id']=$_GET['event'] ;
                            
$eventInfo['event']['tipo']=1;
                            
$EventTrash = new evento($eventInfo);
                            
$EventTrash->deletEvent($eventInfo);
                            
redirect('eventos.php');
                        }else{
                            
redirect('eventos.php');
                        }
                }
            
            }
            
            echo 
$calendario;
            echo 
$seccion;
                    
?> 
hay funciones como createListEvent createFormEvent, que lo que hacen son crear los formularios para ingresar los datos en la base de datos
  #10 (permalink)  
Antiguo 05/11/2008, 10:23
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: [aporte]Clase para crear calendarios

entonces lo que hago es setear dos varibles, una con el calendario, y otra con la seccion que va a mostrar, el calendario cambia porque si quiero modificar un evento de diciembre quiero que el calendario quede posicionado en diciembre, en algunos casos como SendMsjHtml lo que envio un cartel para que corrobore si realmente quiere eliminar el evento y no me muestra el calendario, ya que no esta definido
  #11 (permalink)  
Antiguo 08/11/2008, 11:57
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: [aporte]Clase para crear calendarios

gran aporte

gracias :)
  #12 (permalink)  
Antiguo 10/11/2008, 20:05
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Respuesta: [aporte]Clase para crear calendarios

Como consejo deberían emigrar a PHP5.

Php4 ya quedó obsoleto hacer rato

No usen var, usen el Principio de ocultación de OOP (public, protected, private) para las propiedades y los métodos.

El constructor debe llamarse __costructor y no el nombre de la clase.
  #13 (permalink)  
Antiguo 11/11/2008, 12:19
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: [aporte]Clase para crear calendarios

es que esta clase la hice asi porque es compatible con php5 en cambio si el servidor tiene php4 y esta estaria definida de otra forma no andaria, y me paso, ya que en el servidor no tenia de la empresa no habia php5
  #14 (permalink)  
Antiguo 18/12/2008, 09:52
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: [aporte]Clase para crear calendarios

Samu ya has migrado el calendario a php5 ?
  #15 (permalink)  
Antiguo 06/05/2010, 19:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 15
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: [aporte]Clase para crear calendarios

Este calendario comprueba entre dos fechas o solo una fecha determinada?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:42.