From 9f394dc55945567ca95a85910c4300330fa0dca8 Mon Sep 17 00:00:00 2001 From: rohieb Date: Fri, 25 Jul 2008 04:33:27 +0200 Subject: [PATCH] added new class mod_roomReservationControl (a abstract class for user defined controls) and poerted mod_roomReservationTimesliceListBox to it --- includes/mod_roomReservationControl.inc | 111 ++++++++++++++++++ .../mod_roomReservationTimesliceListBox.inc | 31 +++-- 2 files changed, 125 insertions(+), 17 deletions(-) create mode 100644 includes/mod_roomReservationControl.inc diff --git a/includes/mod_roomReservationControl.inc b/includes/mod_roomReservationControl.inc new file mode 100644 index 0000000..3806137 --- /dev/null +++ b/includes/mod_roomReservationControl.inc @@ -0,0 +1,111 @@ +oCfg = $oCfg; + $this->processRequestVariables(); + } + + /***************************************************************************/ + /** + * @} + * @name Initialization + * @{ + */ + + /** + * Process the REQUEST variables and preset the some variables + * @return void + */ + protected function processRequestVariables() { } + + /***************************************************************************/ + /** + * @} + * @name Output + * @{ + */ + + /** + * Get the messages that have been produced. Returns HTML. + * @return string + */ + protected function getMessages() { + if(count($this->asMessages) > 0) { + return sprintf("
%s

\n", + nl2br(q(join("\n", $this->asMessages)))); + } + } + + /** + * Show the beginning of the control. + * @return void + */ + protected function beginShow() { } + + /** + * Show the control. Override this function to print your HTML code. + * @return void + */ + protected abstract function doShow(); + + /** + * Show the end of the control. + * @return void + */ + protected function endShow() { } + + /** + * Show the full control. You don't need to override this function. Instead, + * override doShow(). + * @return void + */ + public function show() { + $this->beginShow(); + $this->doShow(); + $this->endShow(); + } +} +?> \ No newline at end of file diff --git a/includes/mod_roomReservationTimesliceListBox.inc b/includes/mod_roomReservationTimesliceListBox.inc index 595ed61..6928a33 100644 --- a/includes/mod_roomReservationTimesliceListBox.inc +++ b/includes/mod_roomReservationTimesliceListBox.inc @@ -27,6 +27,7 @@ */ require_once("ctrl.inc"); +require_once("mod_room-reservation/mod_roomReservationControl.inc"); require_once("mod_room-reservation/mod_roomReservationTimeslice.inc"); /*****************************************************************************/ @@ -48,10 +49,8 @@ define("MOD_ROOM_RESERVATION_TLB_ACTION_DELETE", 2); /** @} */ /** @todo document, add a delete confirmation */ -class mod_roomReservationTimesliceListBox /* extends mclControl */ { +class mod_roomReservationTimesliceListBox extends mod_roomReservationControl { - /** (mod_roomReservationConfig) Reference to the configuration object */ - protected $oCfg; /** * (constant) The action to be done (GET data). * See @ref timeslicelistbox_actions. @@ -61,8 +60,6 @@ class mod_roomReservationTimesliceListBox /* extends mclControl */ { protected $sNewBegin; /** (string) The ending for a new timeslice (GET data) */ protected $sNewEnd; - /** (array of strings) Errors that occur while processing the form */ - protected $asFormErrors; /***************************************************************************/ /** @@ -71,12 +68,10 @@ class mod_roomReservationTimesliceListBox /* extends mclControl */ { * Constructor * @param $oCfg (reference to mod_roomReservationConfig) Reference to the * configuration - * @return mod_roomReservationBookingTable + * @return mod_roomReservationTimesliceListBox */ public function __construct(mod_roomReservationConfig &$oCfg) { - $this->oCfg = $oCfg; - - $this->processRequestVariables(); + parent::__construct($oCfg); } /***************************************************************************/ @@ -118,12 +113,12 @@ class mod_roomReservationTimesliceListBox /* extends mclControl */ { // Note: we want to handle the timestamps in GMT format, hence the "+0000" if(strtotime($this->getNewBegin()." +0000") === false) { - $this->asFormErrors[] = _c("room-reservation:The beginning time is ". + $this->asMessages[] = _c("room-reservation:The beginning time is ". "invalid."); $bErrors = true; } if(strtotime($this->getNewEnd()." +0000") === false) { - $this->asFormErrors[] = _c("room-reservation:The ending time is ". + $this->asMessages[] = _c("room-reservation:The ending time is ". "invalid."); $bErrors = true; } @@ -137,7 +132,7 @@ class mod_roomReservationTimesliceListBox /* extends mclControl */ { $this->setNewBegin(""); $this->setNewEnd(""); } catch(Exception $e) { - $this->asFormErrors[] = $e->getMessage(); + $this->asMessages[] = $e->getMessage(); } } @@ -210,20 +205,22 @@ class mod_roomReservationTimesliceListBox /* extends mclControl */ { */ /** - * Show the control + * Actually show the control * @return void */ - public function show() { + public function doShow() { TreeView(array(_c("room-reservation:Begin"), _c("room-reservation:End"))); // addition form printf("
"); hidden("mod_roomReservationTimesliceListBox[action]", "add"); TreeViewTitle(_("Add")); - if(count($this->asFormErrors) > 0) { - TreeViewLine(sprintf("
%s
", - nl2br(q(trim(join("\n", $this->asFormErrors)))))); + + $sMessages = $this->getMessages(); + if(trim($sMessages) != "") { + TreeViewLine($sMessages); } + TreeViewLine(array(sprintf("<%s name='mod_roomReservationTimesliceListBox". "[begin]' value='%s' size='8'/>", $GLOBALS["stdedt"], $this->getNewBegin()), sprintf("<%s name='". -- 2.20.1