Foros del Web » Programando para Internet » PHP »

Problema al integrar eventos a un calendario

Estas en el tema de Problema al integrar eventos a un calendario en el foro de PHP en Foros del Web. Buenas, Estoy trabajando en una web de novedades y eventos. tengo creados un script que se comunica con la base de datos y funciona bastante ...
  #1 (permalink)  
Antiguo 13/02/2012, 08:15
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Problema al integrar eventos a un calendario

Buenas,

Estoy trabajando en una web de novedades y eventos. tengo creados un script que se comunica con la base de datos y funciona bastante bien.

Se me ha ocurrido la brillante idea de incrustar dichos eventos dentro de un calendario. Al no saber como crear un calendario busqué por internet y encontré un script que parecía sencillo y cómodo para moldearlo a mis gustos y necesidades, lo he editado en varios aspectos, y funciona bastante bien pero a la hora de integrar los eventos que tengo creados no se por donde empezar, me he bloqueado...

El código es el siguiente:
Código PHP:
<?php
/* Se definen las variables */
$mes $_GET['mes'];
$ano $_GET['ano'];

$tipo_semana 1;
$tipo_mes 1;

$MESCOMPLETO[1] = 'Enero';
$MESCOMPLETO[2] = 'Febrero';
$MESCOMPLETO[3] = 'Marzo';
$MESCOMPLETO[4] = 'Abril';
$MESCOMPLETO[5] = 'Mayo';
$MESCOMPLETO[6] = 'Junio';
$MESCOMPLETO[7] = 'Julio';
$MESCOMPLETO[8] = 'Agosto';
$MESCOMPLETO[9] = 'Septiembre';
$MESCOMPLETO[10] = 'Octubre';
$MESCOMPLETO[11] = 'Noviembre';
$MESCOMPLETO[12] = 'Diciembre';

$MESABREVIADO[1] = 'Ene';
$MESABREVIADO[2] = 'Feb';
$MESABREVIADO[3] = 'Mar';
$MESABREVIADO[4] = 'Abr';
$MESABREVIADO[5] = 'May';
$MESABREVIADO[6] = 'Jun';
$MESABREVIADO[7] = 'Jul';
$MESABREVIADO[8] = 'Ago';
$MESABREVIADO[9] = 'Sep';
$MESABREVIADO[10] = 'Oct';
$MESABREVIADO[11] = 'Nov';
$MESABREVIADO[12] = 'Dic';

$SEMANACOMPLETA[0] = 'Lunes';
$SEMANACOMPLETA[1] = 'Martes';
$SEMANACOMPLETA[2] = 'Mi&eacute;rcoles';
$SEMANACOMPLETA[3] = 'Jueves';
$SEMANACOMPLETA[4] = 'Viernes';
$SEMANACOMPLETA[5] = 'S&aacute;bado';
$SEMANACOMPLETA[6] = 'Domingo';

$SEMANAABREVIADA[0] = 'Lun';
$SEMANAABREVIADA[1] = 'Mar';
$SEMANAABREVIADA[2] = 'Mi&eacute;';
$SEMANAABREVIADA[3] = 'Jue';
$SEMANAABREVIADA[4] = 'Vie';
$SEMANAABREVIADA[5] = 'S&aacute;b';
$SEMANAABREVIADA[6] = 'Dom';

/*Fin variables */
/*Definir tipo semana & mes */
if($tipo_semana == 1){
        
$ARRDIASSEMANA $SEMANACOMPLETA;
    }elseif(
$tipo_semana == 1){
        
$ARRDIASSEMANA $SEMANAABREVIADA;
    }

if(
$tipo_mes == 0){
        
$ARRMES $MESCOMPLETO;
    }elseif(
$tipo_mes == 1){
        
$ARRMES $MESABREVIADO;
    }
/* Fin definir semana & mes */
/* Si no se pasan los datos de fecha se muestra la fecha actual */
if(!$dia$dia date(d);
if(!
$mes$mes date(n);
if(!
$ano$ano date(Y);

$TotalDiasMes date(t,mktime(0,0,0,$mes,$dia,$ano));
$DiaSemanaEmpiezaMes date(w,mktime(0,0,0,$mes,1,$ano));
$DiaSemanaTerminaMes date(w,mktime(0,0,0,$mes,$TotalDiasMes,$ano));
$EmpiezaMesCalOffset $DiaSemanaEmpiezaMes;
$TerminaMesCalOffset $DiaSemanaTerminaMes;
$TotalDeCeldas $TotalDiasMes $DiaSemanaEmpiezaMes $TerminaMesCalOffset;


if(
$mes == 1){
        
$MesAnterior 12;
        
$MesSiguiente $mes 1;
        
$AnoAnterior $ano 1;
        
$AnoSiguiente $ano;
    }elseif(
$mes == 12){
        
$MesAnterior $mes 1;
        
$MesSiguiente 1;
        
$AnoAnterior $ano;
        
$AnoSiguiente $ano 1;
    }else{
        
$MesAnterior $mes 1;
        
$MesSiguiente $mes 1;
        
$AnoAnterior $ano;
        
$AnoSiguiente $ano;
        
$AnoAnteriorAno $ano 1;
        
$AnoSiguienteAno $ano 1;
    }
/* cabecera del calendario */
echo "<table align=center border=0 cellpadding=1 cellspacing=1>";
echo 
"<tr>";
echo 
"<td colspan=10>";
echo 
"<table border=0 align=center>";
echo 
"<tr>";
echo 
"<td width='1%'><a href='calendario.php?mes=".$mes."&ano=".$AnoAnteriorAno."'><- A&ntilde;o</a></td>";
echo 
"<td width='1%'><a href='calendario.php?mes=".$MesAnterior."&ano=".$AnoAnterior."'><- Mes</a></td>";
echo 
"<td width='1%' colspan='1' align='center' nowrap><b>".$ARRMES[$mes]." - $ano</b></td>";
echo 
"<td width='1%'><a href='calendario.php?mes=".$MesSiguiente."&ano=".$AnoSiguiente."'>Mes -></a></td>";
echo 
"<td width='1%'><a href='calendario.php?mes=".$mes."&ano=".$AnoSiguienteAno."'>A&ntilde;o -></a></td>";
echo 
"</tr>";
echo 
"</table>";
echo 
"</td>";
echo 
"</tr>";
echo 
"<tr>";

foreach(
$ARRDIASSEMANA AS $key){
echo 
'<td bgcolor="#ccccff" align=center><b>'.$key.'</b></td>';
}
echo 
'</tr>';

for(
$a=2;$a <= $TotalDeCeldas;$a++){
if(!
$b$b 0;
if(
$b == 7$b 0;
if(
$b == 0) echo '<tr>';
if(!
$c$c 1;
if(
$a $EmpiezaMesCalOffset AND $c <= $TotalDiasMes){
if(
$c == date(d) && $mes == date(m) && $ano == date(Y)){
echo 
'<td bgcolor="#88ba3d" align=center>'.$c.'<br></td>'/* Día actual */
}elseif($b == OR $b == 6){
echo 
'<td bgcolor="#d0d0d0" align=center>'.$c.'</td>'/* Fines de semana */
}else{
echo 
'<td bgcolor="#e1e1e1" align=center>'.$c.'</td>'/* resto días */
}
$c++;
}else{
echo 
"<td> </td>";
}
if(
$b == 6) echo '</tr>';
$b++;
}
echo 
'<tr><td align=center colspan=10></a></td></tr>';
echo 
'</table>';
?>


Mi duda es como podría meter los eventos.

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 13/02/2012, 12:41
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Problema al integrar eventos a un calendario

Qué eventos? Los guardas en una DB? En archivos? Cómo se supone que debe funcionar?
Si pones algún dato mejor, saludos.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 13/02/2012, 16:18
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema al integrar eventos a un calendario

Los guardo en una Base de Datos (mysql).
Me gustaría que funcionase; que si hay algún evento convirtiera la fecha (la de inicio) en un enlace a los eventos que haya en ese día.

En la BdD esta creado así (sql):
Código:
CREATE TABLE IF NOT EXISTS `events` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `title` text CHARACTER SET utf8 NOT NULL,
  `summary` longtext CHARACTER SET utf8 NOT NULL,
  `rest` longtext CHARACTER SET utf8 NOT NULL,
  `url` text CHARACTER SET utf8 NOT NULL,
  `startdate` date NOT NULL,
  `finishdate` date NOT NULL,
  `important` varchar(3) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

La manera que tengo de sacar los datos actualmente de la BdD es:
Código PHP:
function listareventos() {
  include (
"./conexion.inc");
  
$sql "SELECT * FROM `events` ORDER BY `startdate` ASC LIMIT 0, 5";
  
$registros=mysql_query($sql$connection);
        echo 
"<table><tr><th>Titulo:</th><th>Fecha inicio:</th></tr>";
    while (
$registro=mysql_fetch_row($registros))
        {
        echo 
"<tr><td><a href='./events.php?url=".$registro[4]."'>".$registro[1]."</a></td><td><center>".date("d-m-Y",strtotime($registro[5]))."</center></td><tr>";
        }
        echo 
"</table>";
}
function 
sacareventos() {
    include (
"./conexion.inc");
        
$url=$_GET['url'];
    if(isset(
$url)) {
          
$sql "SELECT * FROM `events` WHERE `url` like '%$url%' ORDER BY `ID` DESC LIMIT 0, 1";
          
$registros=mysql_query($sql$connection);
            while (
$registro=mysql_fetch_row($registros)){
                if(
$registro[6]=='0000-00-00'){
                    echo 
"<h2>".$registro[1]."</h2><p class='autor'>El <i>".date("d-m-Y",strtotime($registro[5]))."</i><div class='resto'><p><b>".$registro[2]."</b></p><p>".$registro[3]."</p></div>";
                }else{
                    echo 
"<h2>".$registro[1]."</h2><p class='autor'>Del <i>".date("d-m-Y",strtotime($registro[5]))."</i> al <i>".date("d-m-Y",strtotime($registro[6]))."</i></p><div class='resto'><p><b>".$registro[2]."</b></p><p>".$registro[3]."</p></div>";
                    }
            }
    }
    else{
    
$query "SELECT * FROM events";
    
$rsT =  mysql_query($query$connection);
    
$total mysql_num_rows($rsT);
    
    
$pg $_GET['page'];
    
$cantidad 5
    
    
$paginacion = new paginacion($cantidad$pg);
    
$desde $paginacion->getFrom();
    
    
$query "SELECT * FROM events WHERE 1 ORDER BY `startdate` ASC LIMIT $desde, $cantidad";
    
$rs mysql_query($query$connection);
    
    while (
$row mysql_fetch_assoc($rs)) {
        if(
$row['finishdate']=='0000-00-00'){
             echo 
"<h2>".$row['title']."</h2><p class='autor'>El <i>".date("d-m-Y",strtotime($row['startdate']))."</i></p><div class='resto'><p>".$row['summary']."</p></div><p class='more'><a href='events.php?url=".$row['url']."'>Leer m&aacute;s</a></p>";
            }else{
             echo 
"<h2>".$row['title']."</h2><p class='autor'>Del <i>".date("d-m-Y",strtotime($row['startdate']))."</i> al <i>".date("d-m-Y",strtotime($row['finishdate']))."</i> </p><div class='resto'><p>".$row['summary']."</p></div><p class='more'><a href='events.php?url=".$row['url']."'>Leer m&aacute;s</a></p>";
            }
    }
     echo 
"<div class='numPages'>";

    
$url "events.php?";
    
    
$classCss "numPages";
    
    
$back "&laquo;Posteriores";
    
$next "Anteriores&raquo;";
    
    
$paginacion->generaPaginacion($total$back$next$url$classCss);
    echo 
"</div>";
    }

}
function 
eventodestacado() {
  include (
".conexion.inc");
  
$sql "SELECT * FROM `events` WHERE `important` like 'YES' LIMIT 0, 1";
  
$registros=mysql_query($sql$connection);
    while (
$registro=mysql_fetch_row($registros))
        if(
$registro[6]=='0000-00-00'){
                    echo 
"<h3>".$registro[1]."</h3><p class='autor'>El <i>".date("d-m-Y",strtotime($registro[5]))."</i><div class='resto'><p>".$registro[2]."</p></div><p class='more'><a href='events.php?url=".$registro[4]."'>Leer m&aacute;s</a></p>";
                }else{
                    echo 
"<h3>".$registro[1]."</h3><p class='autor'>Del <i>".date("d-m-Y",strtotime($registro[5]))."</i> al <i>".date("d-m-Y",strtotime($registro[6]))."</i></p><div class='resto'><p>".$registro[2]."</p></div><p class='more'><a href='events.php?url=".$registro[4]."'>Leer m&aacute;s</a></p>";
                    }

Gracias por la molestia,

Etiquetas: calendario, eventos, integrar, variables
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




La zona horaria es GMT -6. Ahora son las 23:15.