From 60226a75d8e4a3ee9504da6eab6d8f329bb32e7b Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Tue, 27 Nov 2012 12:13:33 +0100 Subject: Separate the very application-specific output classes from the Roundcube framework; add autoloader for rmail* classes --- program/include/rcmail_output.php | 120 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 program/include/rcmail_output.php (limited to 'program/include/rcmail_output.php') diff --git a/program/include/rcmail_output.php b/program/include/rcmail_output.php new file mode 100644 index 000000000..36512ad48 --- /dev/null +++ b/program/include/rcmail_output.php @@ -0,0 +1,120 @@ + | + | Author: Aleksander Machniak | + +-----------------------------------------------------------------------+ +*/ + +/** + * Class for output generation + * + * @package Core + * @subpackage View + */ +abstract class rcmail_output extends rcube_output +{ + const JS_OBJECT_NAME = 'rcmail'; + + public $type = 'html'; + public $ajax_call = false; + public $framed = false; + + protected $pagetitle = ''; + protected $object_handlers = array(); + + + /** + * Object constructor + */ + public function __construct($task = null, $framed = false) + { + parent::__construct(); + } + + + /** + * Setter for page title + * + * @param string $title Page title + */ + public function set_pagetitle($title) + { + $this->pagetitle = $title; + } + + + /** + * Getter for the current skin path property + */ + public function get_skin_path() + { + return $this->config->get('skin_path'); + } + + + /** + * Delete all stored env variables and commands + */ + public function reset() + { + parent::reset(); + + $this->object_handlers = array(); + $this->pagetitle = ''; + } + + + /** + * Call a client method + * + * @param string Method to call + * @param ... Additional arguments + */ + abstract function command(); + + + /** + * Add a localized label to the client environment + */ + abstract function add_label(); + + + /** + * Register a template object handler + * + * @param string Object name + * @param string Function name to call + * @return void + */ + public function add_handler($obj, $func) + { + $this->object_handlers[$obj] = $func; + } + + + /** + * Register a list of template object handlers + * + * @param array Hash array with object=>handler pairs + * @return void + */ + public function add_handlers($arr) + { + $this->object_handlers = array_merge($this->object_handlers, $arr); + } + +} -- cgit v1.2.3