-<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');\r
-/**\r
- * CodeIgniter\r
- *\r
- * An open source application development framework for PHP 4.3.2 or newer\r
- *\r
- * @package CodeIgniter\r
- * @author ExpressionEngine Dev Team\r
- * @copyright Copyright (c) 2008, EllisLab, Inc.\r
- * @license http://codeigniter.com/user_guide/license.html\r
- * @link http://codeigniter.com\r
- * @since Version 1.0\r
- * @filesource\r
- */\r
-\r
-// ------------------------------------------------------------------------\r
-\r
-/**\r
- * Parser Class\r
- *\r
- * @package CodeIgniter\r
- * @subpackage Libraries\r
- * @category Parser\r
- * @author ExpressionEngine Dev Team\r
- * @link http://codeigniter.com/user_guide/libraries/parser.html\r
- */\r
-class CI_Parser {\r
-\r
- var $l_delim = '{';\r
- var $r_delim = '}';\r
- var $object;\r
- \r
- /**\r
- * Parse a template\r
- *\r
- * Parses pseudo-variables contained in the specified template,\r
- * replacing them with the data in the second param\r
- *\r
- * @access public\r
- * @param string\r
- * @param array\r
- * @param bool\r
- * @return string\r
- */\r
- function parse($template, $data, $return = FALSE)\r
- {\r
- $CI =& get_instance();\r
- $template = $CI->load->view($template, $data, TRUE);\r
- \r
- if ($template == '')\r
- {\r
- return FALSE;\r
- }\r
- \r
- foreach ($data as $key => $val)\r
- {\r
- if (is_array($val))\r
- {\r
- $template = $this->_parse_pair($key, $val, $template); \r
- }\r
- else\r
- {\r
- $template = $this->_parse_single($key, (string)$val, $template);\r
- }\r
- }\r
- \r
- if ($return == FALSE)\r
- {\r
- $CI->output->append_output($template);\r
- }\r
- \r
- return $template;\r
- }\r
- \r
- // --------------------------------------------------------------------\r
- \r
- /**\r
- * Set the left/right variable delimiters\r
- *\r
- * @access public\r
- * @param string\r
- * @param string\r
- * @return void\r
- */\r
- function set_delimiters($l = '{', $r = '}')\r
- {\r
- $this->l_delim = $l;\r
- $this->r_delim = $r;\r
- }\r
- \r
- // --------------------------------------------------------------------\r
- \r
- /**\r
- * Parse a single key/value\r
- *\r
- * @access private\r
- * @param string\r
- * @param string\r
- * @param string\r
- * @return string\r
- */\r
- function _parse_single($key, $val, $string)\r
- {\r
- return str_replace($this->l_delim.$key.$this->r_delim, $val, $string);\r
- }\r
- \r
- // --------------------------------------------------------------------\r
- \r
- /**\r
- * Parse a tag pair\r
- *\r
- * Parses tag pairs: {some_tag} string... {/some_tag}\r
- *\r
- * @access private\r
- * @param string\r
- * @param array\r
- * @param string\r
- * @return string\r
- */\r
- function _parse_pair($variable, $data, $string)\r
- { \r
- if (FALSE === ($match = $this->_match_pair($string, $variable)))\r
- {\r
- return $string;\r
- }\r
-\r
- $str = '';\r
- foreach ($data as $row)\r
- {\r
- $temp = $match['1'];\r
- foreach ($row as $key => $val)\r
- {\r
- if ( ! is_array($val))\r
- {\r
- $temp = $this->_parse_single($key, $val, $temp);\r
- }\r
- else\r
- {\r
- $temp = $this->_parse_pair($key, $val, $temp);\r
- }\r
- }\r
- \r
- $str .= $temp;\r
- }\r
- \r
- return str_replace($match['0'], $str, $string);\r
- }\r
- \r
- // --------------------------------------------------------------------\r
- \r
- /**\r
- * Matches a variable pair\r
- *\r
- * @access private\r
- * @param string\r
- * @param string\r
- * @return mixed\r
- */\r
- function _match_pair($string, $variable)\r
- {\r
- if ( ! preg_match("|".$this->l_delim . $variable . $this->r_delim."(.+?)".$this->l_delim . '/' . $variable . $this->r_delim."|s", $string, $match))\r
- {\r
- return FALSE;\r
- }\r
- \r
- return $match;\r
- }\r
-\r
-}\r
-// END Parser Class\r
-\r
-/* End of file Parser.php */\r
+<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * CodeIgniter
+ *
+ * An open source application development framework for PHP 4.3.2 or newer
+ *
+ * @package CodeIgniter
+ * @author ExpressionEngine Dev Team
+ * @copyright Copyright (c) 2008 - 2009, EllisLab, Inc.
+ * @license http://codeigniter.com/user_guide/license.html
+ * @link http://codeigniter.com
+ * @since Version 1.0
+ * @filesource
+ */
+
+// ------------------------------------------------------------------------
+
+/**
+ * Parser Class
+ *
+ * @package CodeIgniter
+ * @subpackage Libraries
+ * @category Parser
+ * @author ExpressionEngine Dev Team
+ * @link http://codeigniter.com/user_guide/libraries/parser.html
+ */
+class CI_Parser {
+
+ var $l_delim = '{';
+ var $r_delim = '}';
+ var $object;
+
+ /**
+ * Parse a template
+ *
+ * Parses pseudo-variables contained in the specified template,
+ * replacing them with the data in the second param
+ *
+ * @access public
+ * @param string
+ * @param array
+ * @param bool
+ * @return string
+ */
+ function parse($template, $data, $return = FALSE)
+ {
+ $CI =& get_instance();
+ $template = $CI->load->view($template, $data, TRUE);
+
+ if ($template == '')
+ {
+ return FALSE;
+ }
+
+ foreach ($data as $key => $val)
+ {
+ if (is_array($val))
+ {
+ $template = $this->_parse_pair($key, $val, $template);
+ }
+ else
+ {
+ $template = $this->_parse_single($key, (string)$val, $template);
+ }
+ }
+
+ if ($return == FALSE)
+ {
+ $CI->output->append_output($template);
+ }
+
+ return $template;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Set the left/right variable delimiters
+ *
+ * @access public
+ * @param string
+ * @param string
+ * @return void
+ */
+ function set_delimiters($l = '{', $r = '}')
+ {
+ $this->l_delim = $l;
+ $this->r_delim = $r;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Parse a single key/value
+ *
+ * @access private
+ * @param string
+ * @param string
+ * @param string
+ * @return string
+ */
+ function _parse_single($key, $val, $string)
+ {
+ return str_replace($this->l_delim.$key.$this->r_delim, $val, $string);
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Parse a tag pair
+ *
+ * Parses tag pairs: {some_tag} string... {/some_tag}
+ *
+ * @access private
+ * @param string
+ * @param array
+ * @param string
+ * @return string
+ */
+ function _parse_pair($variable, $data, $string)
+ {
+ if (FALSE === ($match = $this->_match_pair($string, $variable)))
+ {
+ return $string;
+ }
+
+ $str = '';
+ foreach ($data as $row)
+ {
+ $temp = $match['1'];
+ foreach ($row as $key => $val)
+ {
+ if ( ! is_array($val))
+ {
+ $temp = $this->_parse_single($key, $val, $temp);
+ }
+ else
+ {
+ $temp = $this->_parse_pair($key, $val, $temp);
+ }
+ }
+
+ $str .= $temp;
+ }
+
+ return str_replace($match['0'], $str, $string);
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Matches a variable pair
+ *
+ * @access private
+ * @param string
+ * @param string
+ * @return mixed
+ */
+ function _match_pair($string, $variable)
+ {
+ if ( ! preg_match("|".$this->l_delim . $variable . $this->r_delim."(.+?)".$this->l_delim . '/' . $variable . $this->r_delim."|s", $string, $match))
+ {
+ return FALSE;
+ }
+
+ return $match;
+ }
+
+}
+// END Parser Class
+
+/* End of file Parser.php */
/* Location: ./system/libraries/Parser.php */
\ No newline at end of file