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!

Ponencia del FLISOL 2013. Maracay Venezuela.

kumbiaphpTodo un éxito el FLISOL 2013 de la ciudad de Maracay, donde tuvimos el honor de haber sido invitado para dar a conocer un poco más nuestro framework. El objetivo era crear un app en menos de 30 minutos siguiendo estás intrucciones:

  1. Bajar la framework desde GitHub
  2. Copiar en el directorio del servidor ( mod_rewrite debe estar activado)
  3. Crear la base de datos
    1. Usuarios (id, nombre, hash)
    2. Anuncio (id, titulo, contenido, usuario_id, creado_at, modifcado_in)
  4. Crear los modelos (no olvidar la relación)
  5. Agregar la configuración de conexión
  6. Verificar el controller index
  7. Verificar el controller admin
  8. Crear el modulo admin
    1. AnunciosController (para manejar anuncios)
    2. UsuariosController (para administrar usuarios)
  9. Crear un usuario usando el scaffold (enfatizar que la contraseña queda plana)
  10. Crear un metodo before_save en el controller que guarde la contraseña encriptada usando un hash
  11. Crear un anuncio usando el controlador (mostrar que el activerecord valida automáticamente los campos no nulos)
  12. Crear el método de autenticación en el initialize del admin y el template login
  13. Usar la librería Auth para facilitar la autenticación
  14. Crear metodo de logout
  15. Automatizar al usuario
    1. Crear vistas para anuncios
    2. Solo accion crear
    3. Crear un before_create_validation
  16. Modificar el index para mostrar los ultimos anuncios

Y el objetivo fue cumplido, explicando a los presentes como era el procedimiento y escribiendo el código en vivo, la aplicación estuvo lista en 25 minutos. Demostrando que nuestro framework es bien fácil y rápido de usar.

Puedes ver el código fuente en https://github.com/Ashrey/Flisol obviamente bajo una licencia libre.