From 3510d7bf0a58084dd950f5e1dabf5042500cf412 Mon Sep 17 00:00:00 2001
From: till <till@php.net>
Date: Wed, 30 Apr 2008 09:24:45 -0400
Subject: [PATCH] * implemented __set/__get

---
 program/include/rcube_html_page.php |   80 +++++++++++++++++++++++++++++----------
 1 files changed, 59 insertions(+), 21 deletions(-)

diff --git a/program/include/rcube_html_page.php b/program/include/rcube_html_page.php
index 42036f6..676d1fb 100644
--- a/program/include/rcube_html_page.php
+++ b/program/include/rcube_html_page.php
@@ -1,5 +1,4 @@
 <?php
-
 /*
  +-----------------------------------------------------------------------+
  | program/include/rcube_html_page.php                                   |
@@ -23,28 +22,25 @@
  * Class for HTML page creation
  *
  * @package HTML
+ *
+ * @author  Thomas Bruederli <roundcube@gmail.com>
+ * @license http://gnu.org GPL
+ * @todo    See about improving performance (__get, __set, sprintf)
  */
 class rcube_html_page
 {
-    protected $scripts_path = '';
-    protected $script_files = array();
-    protected $external_scripts = array();
-    protected $scripts = array();
-    protected $charset = 'UTF-8';
+    protected $_store = array();
 
-    protected $script_tag_file = "<script type=\"text/javascript\" src=\"%s%s\"></script>\n";
-    protected $script_tag      = "<script type=\"text/javascript\">\n<!--\n%s\n\n//-->\n</script>\n";
-    protected $default_template = "<html>\n<head><title></title></head>\n<body></body>\n</html>";
-    protected $tag_format_external_script = "<script type=\"text/javascript\" src=\"%s\"></script>\n";
-
-    protected $title = '';
-    protected $header = '';
-    protected $footer = '';
-    protected $body = '';
-
-
-    /** Constructor */
-    public function __construct() {}
+    /**
+     * Constructor
+     *
+     * @return rcube_html_page
+     * @uses self::reset()
+     */
+    public function __construct()
+    {
+        $this->reset();
+    }
 
     /**
      * Link an external script file
@@ -124,14 +120,30 @@
 
     /**
      * Reset all saved properties
+     *
+     * @return void
+     * @see self::__construct
+     * @uses self::$_store
      */
     public function reset()
     {
+        $this->scripts_path = '';
         $this->script_files = array();
+        $this->external_scripts = array();
         $this->scripts = array();
+        $this->charset = 'UTF-8';
+
+        // templates
+        $this->script_tag_file = "<script type=\"text/javascript\" src=\"%s%s\"></script>\n";
+        $this->script_tag = "<script type=\"text/javascript\">\n<!--\n%s\n\n//-->\n</script>\n";
+        $this->default_template = "<html>\n<head><title></title></head>\n<body></body>\n</html>";
+        $this->tag_format_external_script = "<script type=\"text/javascript\" src=\"%s\"></script>\n";
+
+        // page stuff
         $this->title = '';
         $this->header = '';
         $this->footer = '';
+        $this->body = '';
     }
 
     /**
@@ -250,7 +262,33 @@
         $output = preg_replace('/(src|href|background)=(["\']?)(\/[a-z0-9_\-]+)/Ui', "\\1=\\2$base_path\\3", $output);
         $output = str_replace('$__skin_path', $base_path, $output);
 
-        print rcube_charset_convert($output, 'UTF-8', $this->charset);
+        echo rcube_charset_convert($output, 'UTF-8', $this->charset);
+    }
+
+    /**
+     * __get
+     *
+     * @param string $var A variable name.
+     *
+     * @return mixed
+     * @uses self::$_store
+     */
+    public function __get($var)
+    {
+        return $this->_store[$var];
+    }
+
+    /**
+     * __set
+     *
+     * @param string $var A variable name.
+     * @param mixed  $value The value of the variable.
+     *
+     * @return mixed
+     * @uses self::$_store
+     */
+    public function __set($var, $value)
+    {
+        return $this->_store[$var] = $value;
     }
 }
-

--
Gitblit v1.9.1