Widget con informacion de Eventos en Calendario

barcraft Seguir

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Nov 2009
Mensajes
305
Hola Amigos,

Alguien sabe si es posible tener un Widget en el HOME en donde pueda ver la lista de los ultimos X Eventos programados?

Desde ya, muchas gracias por la ayuda.
 

imported_Elmer

Zeta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Jul 2003
Mensajes
1.865
Pues todo es posible, si sabes programar en PHP podrías hacer un widget php y sacar de la db lo que quieres. Si te refieres a si vBulletin trae alguna forma de hacerlo, pues no la trae. Solo podrías creando un widget utilizando PHP.
 

barcraft

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Nov 2009
Mensajes
305
Pues todo es posible, si sabes programar en PHP podrías hacer un widget php y sacar de la db lo que quieres. Si te refieres a si vBulletin trae alguna forma de hacerlo, pues no la trae. Solo podrías creando un widget utilizando PHP.

Dale, algo estuve pillando por ahi, el problema es que no se PHP.

Lo que tengo dudas, es si en los Widgets se pueden programar tal cual se hacen las plantillas. Por ejemplo con esos {vb:algo} {vb:funcionx} ... porque de ser asi ya sabria como... se puede?
 

barcraft

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Nov 2009
Mensajes
305
Amigos,

Encontré como hacerlo, para a quienes les interesa deben:

1.- Crear un Widget que ejecute PHP

2.- Editarlo y poner el siguiente codigo:

Insertar CODE, HTML o PHP:
ob_start();

//  %d
$show_count = 5;

$query = sprintf("SELECT * FROM ".TABLE_PREFIX."event WHERE visible = 1 AND (dateline_from >= '%d' || (  dateline_from >= '%d' AND dateline_to <= '%d' )) ORDER BY dateline_from ASC LIMIT %d",TIMENOW,TIMENOW,TIMENOW,$show_count);

$event_get = vB::$db->query_read($query);

$output_bits = '';
while($event = vB::$db->fetch_array($event_get)) {

     if($event['dateline_to'] == 0 )
     {
         $format = sprintf("%s",date('jS M Y',$event['dateline_from']));
     } else {
         $format = sprintf("Desde el %s al %s",date('jS M Y',$event['dateline_from']),date('jS M Y',$event['dateline_to']));
     }
     
     $output_bits .= sprintf('
        <div class = "cms_widget_post_bit"><h4 class="cms_widget_post_header"><a href="calendar.php?do=getinfo&e=%d">%s</a></h4>
            <p class="cms_widget_post_content">%s</p>
        </div>
        ',$event['eventid'],$event['title'],$format);

}
$output = $output_bits;

ob_end_clean();

El único problema que tengo es con los Eventos del día, no me los muestra y creo que encontre la falla.

Revisé el SQL y es:

Insertar CODE, HTML o PHP:
SELECT *
  FROM beta_event
 WHERE visible = 1
  AND (dateline_from >= '1266261207' || (  dateline_from >= '1266261207' AND dateline_to <= '1266261207' )) 
ORDER BY dateline_from ASC LIMIT 5;

El valor '1266261207' es el resultado de lo obtenido con '%d' en el SQL, por lo tanto asumo que está considerando la fecha NOW(), es decir, la fecha actual y hora actual, pero el evento es grabado para la fecha actual con hora inicial anterior.

Si alguien me pudiera explicar como definir un valor para la fecha que sea el NOW() a las 00:01 se lo agradecería.

De ante mano, muchas gracias!
 
Arriba