diff --git a/e107_handlers/e_parse_class.php b/e107_handlers/e_parse_class.php index 0fa32e86b..3ad46721e 100644 --- a/e107_handlers/e_parse_class.php +++ b/e107_handlers/e_parse_class.php @@ -2,18 +2,28 @@ /* * e107 website system * -* Copyright (C) 2008-2009 e107 Inc (e107.org) +* Copyright (C) 2008-2010 e107 Inc (e107.org) * Released under the terms and conditions of the * GNU General Public License (http://www.gnu.org/licenses/gpl.txt) * * Text processing and parsing functions * * $Source: /cvs_backup/e107_0.8/e107_handlers/e_parse_class.php,v $ -* $Revision: 1.93 $ -* $Date: 2010-01-23 16:41:50 $ -* $Author: mcfly_e107 $ +* $Revision: 1.94 $ +* $Date: 2010-01-24 12:05:53 $ +* $Author: secretr $ * */ + +/** + * @package e107 + * @subpackage e107_handlers + * @version $Id: e_parse_class.php,v 1.94 2010-01-24 12:05:53 secretr Exp $ + * + * Text processing and parsing functions. + * Simple parse data model. + */ + if (!defined('e107_INIT')) { exit(); } // Directory for the hard-coded utf-8 handling routines @@ -1892,52 +1902,118 @@ class e_parse } } +/** + * Data model for e_parse::simpleParse() + * + */ class e_vars { + /** + * @var array + */ private $vars; + /** + * Constructor + * + * @param array $array [optional] initial data + */ public function __construct($array='') { $this->setVars($array); } + /** + * Set array data + * + * @param array $array + * @param boolean $empty true (default) override old data, false - merge with existing data + * @return e_vars + */ + public function setVars(array $array, $empty = true) + { + if($empty) { $this->emptyVars(); } + + foreach($array as $key => $val) + { + $this->vars[$key] = $val; + } + + return $this; + } + + /** + * Add array data to the object (merge with existing) + * Convenient proxy to setVars methods + * + * @param array $array + * @return + */ + public function addVars(array $array) + { + $this->setVars($array, false); + } + + /** + * Reset object data + * + * @return e_vars + */ + public function emptyVars() + { + $this->vars = array(); + return $this; + } + + /** + * Magic setter + * + * @param string $key + * @param mixed $value + */ public function __set($key, $value) { $this->vars[$key] = $value; } + /** + * Magic getter + * + * @param string $key + * @return mixed value or null if key not found + */ public function __get($key) { if(isset($this->vars[$key])) { return $this->vars[$key]; } - else - { - return false; - } + + return null; } - public function emptyVars() + /** + * Magic method to check if given data key is set. + * Triggered on myKey); + * NOTE: works on PHP 5.1.0+ + * + * @param string $key + * @return boolean + */ + public function __isset($key) { - $this->vars = array(); + return isset($this->vars[$key]); } - public function setVars($array='', $empty = true) + /** + * Magic method to unset given data key. + * Triggered on myKey); + * NOTE: works on PHP 5.1.0+ + * + * @param string $key + */ + public function __unset($key) { - if($empty) { $this->vars = array(); } - if(is_array($array)) - { - foreach($array as $key => $val) - { - $this->vars[$key] = $val; - } - } + unset($this->vars[$key]); } - - public function addVars($array='') - { - $this->setVars($array); - } - }