123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- <?php
- /*
- * Clase que contiene todas las fechas finales que se pueden generar a partir de los datos de la BD
- * y que serán pintadas en el calendario.
- * Las validaciones se ahcen previamente.
- */
- define("PERIODO_COLOR", "#c99a0c");//Antes 6ABF4B
- define("EXTRAS_COLOR", "#E470C0");
- class Evento {
- public $id_db, $titulo, $desc, $categoria, $categoria_desc, $color, $fecha, $todo_dia, $hora_ini, $hora_fin, $inscripciones, $editable;
- public $fechasArr;
-
- function __construct($id_db, $titulo, $desc, $categoria, $cat_desc, $color, $periodo, $fecha, $todo_dia = true, $hora_ini = "", $hora_fin = "", $editable = true, $inscripciones = false){
- $this->id_db = $id_db;
- $this->titulo = $titulo;
- $this->desc = $desc;
- $this->categoria = $categoria;
- $this->categoria_desc = $cat_desc;
- $this->color = $color;
- $this->fecha = fechaGuion($fecha);
- $this->todo_dia = $todo_dia;
- $this->hora_ini = $hora_ini;
- $this->hora_fin = $hora_fin;
- $this->inscripciones = $inscripciones;
- $this->editable = $editable;
- $this->periodo = $periodo;
- $this->fechasArr = array();
- $this->perfilesArr = array();
- }
-
- function addPerfil($perf){
- $this->perfilesArr[] = array("id"=>$perf["CalendarioPerfil_id"], "desc"=>$perf["CalendarioPerfil_desc"]);
- }
-
- //Fecha normal
- function addFecha($fecha){
- $fecha = fechaGuion($fecha);
- if(strtotime($fecha)>= strtotime($this->fecha))//solo si la fecha es mayor a la fecha inicial
- $this->fechasArr[] = array("fecha_orig"=> $fecha, "fecha"=> $fecha, "todo_dia"=>$this->todo_dia, "hora_ini"=>$this->hora_ini, "hora_fin"=>$this->hora_fin);
- }
-
- //Fechas modificadas
- function replaceFecha($fecha_orig, $fecha_new, $hora_ini, $hora_fin){//fecha_orig en formato yyyy-mm-dd hh:mm:ss
- $fecha_busca = explode(" ", $fecha_orig);//quita horas
- $fecha_busca[0] = fechaGuion($fecha_busca[0]);
- $fecha_new = fechaGuion($fecha_new);
-
- for($i=0; $i< count($this->fechasArr); $i++){
- if($this->fechasArr[$i]["fecha_orig"] == $fecha_busca[0]){
- $this->fechasArr[$i]["fecha"] = $fecha_new;
- $this->fechasArr[$i]["hora_ini"] = $hora_ini;
- $this->fechasArr[$i]["hora_fin"] = $hora_fin;
- break;//solo 1 por fecha
- }
- }
- }
-
- //Excepciones
- function removeFecha($fecha_busca){
- $tmp = explode(" ", $fecha_busca);//quita horas
- $fecha_busca = fechaGuion($tmp[0]);
- for($i=0; $i< count($this->fechasArr); $i++){
- if($this->fechasArr[$i]["fecha_orig"] == $fecha_busca){
- array_splice($this->fechasArr, $i, 1);
- break;
- }
- }
- }
-
- function hasFecha($fecha){
- $fecha = fechaGuion($fecha);
- foreach($this->fechasArr as $fechaArr){
- if($fechaArr["fecha"] == $fecha)
- return true;
- }
- return false;
- }
-
- //Obtiene listado de fechas y cada una con la descripicón del evento.
- //Filtra las fechas generadas por el mes y el año
- function getEventList($mes, $anho){
- $arr = array();
- foreach($this->fechasArr as $fecha){
- if(intval(date("n", strtotime($fecha["fecha"]))) == intval($mes) && intval(date("Y", strtotime($fecha["fecha"]))) == intval($anho) ){
- $arr[] = array(
- "id_db"=>$this->id_db,
- "titulo"=>$this->titulo,
- "desc"=>nl2br($this->desc),
- "categoria"=>$this->categoria,
- "categoria_desc"=>$this->categoria_desc,
- "color"=>$this->color,
- "fechas_total"=> count($this->fechasArr),
- "fecha_orig"=> fechaSlash($fecha["fecha_orig"]),
- "fecha"=> fechaSlash($fecha["fecha"]),
- "dia"=>intval(date("j", strtotime($fecha["fecha"]))),//solo para pintarlo
- "todo_dia"=>$this->todo_dia,
- "hora_ini_orig"=> substr($fecha["hora_ini"],0,5),
- "hora_ini"=> substr($fecha["hora_ini"],0,5),
- "hora_fin"=>substr($fecha["hora_fin"],0,5),
- "inscripciones"=>$this->inscripciones,
- "editable"=>$this->editable,
- "periodo"=>$this->periodo,
- "perfiles"=>$this->perfilesArr,
- );
- }
- }
- return $arr;
- }
-
- function getEventList_All($fecha_ini, $fecha_fin){
- $arr = array();
- foreach($this->fechasArr as $fecha){
- if(strtotime($fecha["fecha"]) >= strtotime($fecha_ini) && strtotime($fecha["fecha"]) <= strtotime($fecha_fin)){
- $arr[] = array(
- "id_db"=>$this->id_db,
- "titulo"=>$this->titulo,
- "desc"=>nl2br($this->desc),
- "categoria"=>$this->categoria,
- "categoria_desc"=>$this->categoria_desc,
- "color"=>$this->color,
- //"fechas_total"=> count($this->fechasArr),
- //"fecha_orig"=> fechaSlash($fecha["fecha_orig"]),
- "fecha"=> fechaSlash($fecha["fecha"]),
- //"dia"=>intval(date("j", strtotime($fecha["fecha"]))),//solo para pintarlo
- "todo_dia"=>$this->todo_dia,
- //"hora_ini_orig"=> substr($fecha["hora_ini"],0,5),
- "hora_ini"=> substr($fecha["hora_ini"],0,5),
- "hora_fin"=>substr($fecha["hora_fin"],0,5),
- "inscripciones"=>$this->inscripciones,
- "editable"=>$this->editable,
- "periodo"=>$this->periodo,
- "perfiles"=>$this->perfilesArr,
- );
- }
- }
- return $arr;
- }
- }
|