181 lines
4.7 KiB
PHP
181 lines
4.7 KiB
PHP
<?php
|
|
|
|
/** Ticket Room
|
|
* Seat arrangement
|
|
*
|
|
* @version 1.9.0
|
|
* @since 2007-02-16
|
|
* @author martin lenzelbauer
|
|
*
|
|
*/
|
|
class TicketRoom extends TicketObject{
|
|
|
|
var $type;
|
|
var $xml; //xml encoded seat arrangement
|
|
|
|
/** C'tor
|
|
*/
|
|
//------------------------------------------------
|
|
function TicketRoom($id, $parent){
|
|
//------------------------------------------------
|
|
parent::TicketObject($id, $parent);
|
|
$this->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;
|
|
}
|
|
|
|
|
|
};
|
|
|
|
?>
|