name = "[unbenannter Sitzplan]"; $this->type = 'seat'; $this->xml = ""; $this->buttonDelete = true; } /** @see CmsObject::load() */ //----------------------------------------------- function load($path=array()){ //----------------------------------------------- parent::load($path); if(!$this->classId){ return; } $query = sprintf("SELECT * FROM bruckm_ticketroom WHERE id = %d", $this->classId); $result = dbQuery($query); $line = mysqli_fetch_array($result, MYSQLI_ASSOC); $this->xml = $line['xml']; $this->type = $line['type']; } /** @see TicketObject::doSave() */ //---------------------------------------------- function doSave(){ //---------------------------------------------- $query = sprintf("UPDATE bruckm_ticketroom SET xml = %s, type = %s WHERE id = %d", sqlstring($this->xml), sqlstring($this->type), sqlnum($this->classId)); dbQuery($query); parent::doSave(); } /** @see TicketObject::doCreate() */ //---------------------------------------------- function doCreate(){ //---------------------------------------------- $query = sprintf("INSERT INTO bruckm_ticketroom (xml) VALUES (%s)", sqlstring($this->xml)); dbQuery($query); $this->classId = mysql_insert_id(); parent::doCreate(); } /** @see TicketObject::doDelete() */ //----------------------------------------------- function doDelete(){ //----------------------------------------------- parent::doDelete(); $query = sprintf("DELETE FROM bruckm_ticketroom WHERE id = %d LIMIT 1", $this->classId); dbQuery($query); } /** @see TicketObject::canBeDeleted() */ //----------------------------------------------- function canBeDeleted(){ //----------------------------------------------- if($this->isUsed()){ $this->addError("Der Sitzplan kann nicht gelöscht werden, da er in einer oder mehreren aktuellen Veranstaltungen verwendet wird!"); return false; } return true; } /** @see TicketObject::install() */ //----------------------------------------------- function install(){ //----------------------------------------------- $query = sprintf("CREATE TABLE IF NOT EXISTS bruckm_ticketroom ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, xml TEXT NOT NULL DEFAULT '', PRIMARY KEY (id) )"); dbQuery($query); } /** @see CmsObject::update() */ //----------------------------------------------- function update(){ //----------------------------------------------- parent::update(); if($this->xml != $_POST['xml']){ if($this->isUsed()){ $this->addError("Der Sitzplan kann nicht geändert werden, da er in einer oder mehreren aktuellen Veranstaltungen verwendet wird!"); } else{ $this->xml = urldecode($_POST['xml']); //$this->type = urldecode($_POST['type']); } } } /** @see CmsObject::doPrintClassContent() */ //----------------------------------------------- function doPrintClassContent(){ //----------------------------------------------- $t = new Template(CMS_TEMPLATE_DIR."ticketroom.html"); $t->setVar("NAME", htmlspecialchars($this->name)); //$t->setVar("TYPE", htmlspecialchars($this->type)); $t->setVar("XML", urlencode($this->xml)); return $t->toString(); } /** @see Element::getCssClass() */ //------------------------------------------------ function getCssClass(){ //------------------------------------------------ return "itemTicketRoom"; } // === ADDITIONAL METHODS ============================================================= // /** checks if the seat arrangement is used for a current event * @return true if the seat arrangement is used */ //----------------------------------------------- function isUsed(){ //----------------------------------------------- $query = sprintf("SELECT id FROM bruckm_ticketdate WHERE `date` > NOW() AND room = %s LIMIT 1", sqlstring($this->id)); $result = dbQuery($query); if(mysql_num_rows($result) > 0){ return true; } return false; } /** returns the xml room description */ //---------------------------------------- function toXml(){ //---------------------------------------- return $this->xml; } }; ?>