Taller de KumbiaPHP en México

Anunciando el próximo Taller de KumbiaPHP en México, este taller se llevará a cabo en el Instituto Tecnológico de San Juan del Río, dentro su 8º congreso Nacional de Tecnologías de la Información. El taller tendrá una duración de 3 x 3 (3 horas x 3 días)

Adelantando la presentación (versión NO final)

Publicidad oficial del Instituto Tecnológico de San Juan del Río

Taller KumbiaPHP Mexico ITSJR
Taller KumbiaPHP Mexico ITSJR

Que necesitas para el taller:

Dos nuevos screencast: Instalación de KumbiapPHP y Hola Mundo

Gracias a Roosvelt Aristizabal  de  TutorialesVirtuales.com desde Manizales, Colombia nos trae dos video-tutoriales de muy buena calidad para los que quieren empezar con KumbiaPHP.

Instalar Kumbia PHP en Español

Primeros pasos con KumbiaPHP y su instalación en Windows con xampp.

KumbiaPHP Parte 2 Primera Aplicación

Y como primera aplicación y para entender el MVC se crear el ejemplo del “Hola Mundo”

El cual completamos con el tutorial en la comunidad Cristalab: Programar un “Hola mundo” con KumbiaPHP

iCal con Kumbiaphp beta2

Buen día,

Este es mi primer post para la comunidad y espero les sirva:

Voy a explicar como implementar un iCal  jQuery (Calendario de eventos con estilo similar al del iphone) y poblarlo con los datos que tengo en MySQL a través de Kumbiaphp Framework:

Lo primero que deben hacer, obviamente después de tener configurado Kumbiaphp Beta2, es descargar el iCal desde aquí .  Los archivos .js se ubican en /default/app/public/javascript, el archivo .css se ubica en /default/app/public/css.

Creamos una tabla en MySQL que va a ser nuestro insumo de datos para poblar el calendario (supongo hasta aquí que ya saben que es un modelo, como se configura la base de datos y sus convenciones) :

CREATE TABLE IF NOT EXISTS `agenda` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fecha` date NOT NULL,
`hora_inicio` time NOT NULL,
`hora_fin` time NOT NULL,
`producto_id` int(11) NOT NULL,
`cliente_id` int(11) NOT NULL,
`estado` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

Si se fijan,  la creación de la tabla está asociada a dos tablas que son cliente y producto.

En la clase modelo agenda.php se crea una función:

public function getCalendario(){

$sql = “SELECT fecha as date, producto.nombre as title,
CONCAT(hora_inicio, ‘ hasta ‘, hora_fin, ‘ ‘, cliente.nombres, ‘ ‘, cliente.apellidos) as ‘desc’
FROM agenda
INNER JOIN cliente ON (agenda.cliente_id=cliente.id)
INNER JOIN producto ON (agenda.producto_id=producto.id)”;

return $this->find_all_by_sql($sql);

}

Cómo pueden ver hay un join a dos tablas asociadas.

En el controlador agenda_controller.php se crea una función que llame la consulta creada en el modelo y lo traiga en un array:

public function verCalendario (){

   $this->calendario = Load::model(‘agenda’)->getCalendario();

}

Luego en el directorio  /default/app/view/_shared/partials se crea un partial, decidí hacer un partial para reutilizarlo en caso de que necesite incluirlo en otras páginas.

<script type=”text/javascript”>
$(document).ready(function()
{
$(“#ical”).ical({
daynames: [‘Dom’, ‘Lun’, ‘Mar’, ‘Mie’, ‘Jue’, ‘Vie’, ‘Sab’],
//startOnSunday: true,
eventdates: <?php echo json_encode($Model);?>
});
});
</script>
<div id=”ical”></div>

 Como ven estoy usando la función json_encode que me va a arrojar un formato como este:

eventdates: [{“date”: “2009-03-21”, “title”: “My birthday”, “desc”: “Its my birthday!”},
{“date”: “yyyy-01-01”, “title”: “New Year”, “desc”: “Its a new year!”}]

Los alias que utilicé en la consulta del modelo (date,title,desc) están asociados a este formato.

y por último se implementa la vista verCalendario.phtml con el siguiente código:

<?php
echo Tag::js(‘jquery-1.3.2.min’);
echo Tag::js(‘jquery-ical’);
Tag::css(‘master’);
?>
<?php echo View::content();?>
<?php echo View::partial(‘ical/script’,false,array(‘Model’=>$calendario));?>

 Y esto es todo, espero sea de utilidad y si tienen aportes, mejoras o recomendaciones ¡bien recibidas sean!

Saludos.