En este caso lo he limitado a un evento por día pero usando un array se puede modificar para recoger varios eventos por día.
/* Clase Dia */ class Dia { /* Miembros */ private $perteneceAlMes; //Indica si pertenece al mes que muestra en el calendario private $numDia; //Número del día en el mes private $diaSemana; //Número del día de la semana private $evento; //Objeto de la clase evento que contiene los datos asociados a un evento private $hayEvento; /* Constructor */ public function __construct($diaSemana, $diaActual, $perteneceAlMes) { //Pertenece al mes $this->setPerteneceAlMes($perteneceAlMes); //Día del mes if(!$perteneceAlMes) { $this->setNumDia(-1); } else { $this->setNumDia($diaActual); } //Día de la semana $this->setDiaSemana($diaSemana); //En principio no hay ningún evento $this->setHayEvento(false); } /* Métodos de acceso */ public function setHayEvento($hayEvento) { $this->hayEvento = $hayEvento; } public function getHayEvento() { return $this->hayEvento; } public function setPerteneceAlMes($perteneceAlMes) { $this->perteneceAlMes = $perteneceAlMes; } public function getPerteneceAlMes() { return $this->perteneceAlMes; } public function setNumDia($numDia) { $this->numDia = $numDia; } public function getNumDia() { return $this->numDia; } public function setDiaSemana($diaSemana) { $this->diaSemana = $diaSemana; } public function setEvento($evento) { $this->evento = $evento; $this->setHayEvento(true); } public function getEvento() { return $this->evento; } public function muestraEvento() { $this->evento->muestraEvento(); } /* Métodos */ /* Muestra el HTML correspondiente a un día */ public function muestraDia() { //Si el día pertenece al mes if($this->getPerteneceAlMes()) { //Si hay un evento en el día if($this->getHayEvento()) { $numDia = $this->getNumDia(); printf( "<td class =\"hayEvento\"<a href=\"#\" onClick=\"verEvento(%d)\"> %d</a></td>\n", $numDia, $numDia ); } //Si no lo hay else { printf( "<td class=\"noHayEvento\">%d</td>\n", $this->getNumDia() ); } } //Si el día no pertenece al mes else { printf("<td></td>\n"); } } }
No comments:
Post a Comment