Calendario
Un
ei_calendario
es una grilla que muestra días y semanas en una vista
mensual. Por defecto, sólo se muestra el número de día (como en
cualquier calendario), pero existe una opción para habilitar la
visualización del contenido del mismo, y cumplir en forma limitada con
la funcionalidad de agenda. Cada uno de los días y semanas pueden
ser seleccionados a través de eventos.
Carga
Para visualizar los contenidos por día, durante la configuración debe invocar a la función toba_ei_calendario::set_ver_contenidos() del calendario:
<?php
function conf__calendario($calendario)
{
$calendario->set_ver_contenidos(true);
$calendario->set_datos(array('2006-11-10' => 'Charla CafeLUG'),...);
}
?>
El calendario espera en la carga un arreglo cuyas componentes son también arreglos (asociativos) del tipo 'dia' => valor (el formato de fechas es yyyy-mm-dd), 'contenido' => valor. Notar que la carga de contenidos sólo tendrá efecto sobre la visualización si el calendario está en modo mostrar contenidos.
Eventos predefinidos
El calendario puede manejar los siguientes eventos en forma predefinida:
seleccionar_dia: La selección está habilitada para los días anteriores a la fecha actual. Envía como parámetro el valor del día seleccionado, en forma de un arreglo asociativo con los campos dia, mes y anio. Esta selección cambia el estilo visual del día seleccionado.
seleccionar_semana: La selección de una semana en particular se habilita el día viernes de la misma. Envía como parámetro el valor de la semana seleccionada, en forma de un arreglo asociativo con los campos semana y anio. Esta selección también actualiza el estilo visual de la selección.
cambiar_mes: Ante un cambio de mes o año explícito del usuario se dispara este evento con un arreglo asociativo conteniendo el mes y el anio.
Notar que para los dos primeros eventos, la opción de selección estará deshabilitada hasta que la fecha sea igual o posterior a la que se desea seleccionar. Esto es así dado que la selección está pensada para informar y no para almacenar recordatorios futuros.
Ejemplos
Existe un ejemplo de un calendario junto a un formulario en el proyecto de Referencia, ítem Componentes > Elementos de Interface Varios > ei_calendario.