From d9bb625523f2037efcb4ae6e51c961fee6eb1583 Mon Sep 17 00:00:00 2001
From: pedro_morgan <pedro_morgan@ispconfig3>
Date: Sat, 18 Aug 2007 23:48:27 -0400
Subject: [PATCH] * Made the tpl class php 5 * Minor tweaks
---
interface/lib/classes/tpl.inc.php | 520 +++++++++++++++++++++++++++------------------------------
1 files changed, 245 insertions(+), 275 deletions(-)
diff --git a/interface/lib/classes/tpl.inc.php b/interface/lib/classes/tpl.inc.php
index 33566c0..d76c48d 100644
--- a/interface/lib/classes/tpl.inc.php
+++ b/interface/lib/classes/tpl.inc.php
@@ -1,12 +1,15 @@
<?php
/**
- * Template Class
- *
- * @author Kelvin Jones <kelvin@kelvinjones.co.uk>
- * @copyright 2002 Active Fish Group
- * @version 1.1
- * @package ISPConfig
- */
+* vlibTemplate is a class used to seperate PHP and HTML.
+* For instructions on how to use vlibTemplate, see the
+* vlibTemplate.html file, located in the 'docs' directory.
+*
+* @since 07/03/2002
+* @author Kelvin Jones <kelvin@kelvinjones.co.uk>
+* @package vLIB
+* @access public
+* @see vlibTemplate.html
+*/
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
@@ -19,160 +22,130 @@
//
// $Id: class.tpl.inc.php,v 1.1 2003/07/08 12:31:10 platinum Exp $
-// check to avoid multiple including of class
+//** check to avoid multiple including of class
if (!defined('vlibTemplateClassLoaded')) {
define('vlibTemplateClassLoaded', 1);
global $conf;
include_once ($conf['classpath'].'/tpl_error.inc.php');
include_once ($conf['classpath'].'/tpl_ini.inc.php');
- /**
- * vlibTemplate is a class used to seperate PHP and HTML.
- * For instructions on how to use vlibTemplate, see the
- * vlibTemplate.html file, located in the 'docs' directory.
- *
- * @since 07/03/2002
- * @author Kelvin Jones <kelvin@kelvinjones.co.uk>
- * @package vLIB
- * @access public
- * @see vlibTemplate.html
- */
-
- class tpl {
-
- /*-----------------------------------------------------------------------------\
- | ATTENTION |
- | Do not touch the following variables. vlibTemplate will not work otherwise. |
- \-----------------------------------------------------------------------------*/
-
- var $OPTIONS = array(
- 'MAX_INCLUDES' => 10,
- 'TEMPLATE_DIR' => null,
- 'GLOBAL_VARS' => null,
- 'GLOBAL_CONTEXT_VARS' => null,
- 'LOOP_CONTEXT_VARS' => null,
- 'SET_LOOP_VAR' => null,
- 'DEFAULT_ESCAPE' => null,
- 'STRICT' => null,
- 'CASELESS' => null,
- 'UNKNOWNS' => null,
- 'TIME_PARSE' => null,
- 'ENABLE_PHPINCLUDE' => null,
- 'INCLUDE_PATHS' => array(),
- 'CACHE_DIRECTORY' => null,
- 'CACHE_LIFETIME' => null,
- 'CACHE_EXTENSION' => null
- );
+ class tpl{
+
+ /*-----------------------------------------------------------------------------\
+ | ATTENTION |
+ | Do not touch the following variables. vlibTemplate will not work otherwise. |
+ \-----------------------------------------------------------------------------*/
+ private $OPTIONS = array(
+ 'MAX_INCLUDES' => 10,
+ 'TEMPLATE_DIR' => null,
+ 'GLOBAL_VARS' => null,
+ 'GLOBAL_CONTEXT_VARS' => null,
+ 'LOOP_CONTEXT_VARS' => null,
+ 'SET_LOOP_VAR' => null,
+ 'DEFAULT_ESCAPE' => null,
+ 'STRICT' => null,
+ 'CASELESS' => null,
+ 'UNKNOWNS' => null,
+ 'TIME_PARSE' => null,
+ 'ENABLE_PHPINCLUDE' => null,
+ 'INCLUDE_PATHS' => array(),
+ 'CACHE_DIRECTORY' => null,
+ 'CACHE_LIFETIME' => null,
+ 'CACHE_EXTENSION' => null
+ );
/** open and close tags used for escaping */
- var $ESCAPE_TAGS = array(
- 'html' => array('open' => 'htmlspecialchars('
- ,'close'=> ', ENT_QUOTES)'),
- 'url' => array('open' => 'urlencode('
- ,'close'=> ')'),
- 'rawurl'=>array('open' => 'rawurlencode('
- ,'close'=> ')'),
- 'sq' => array('open' => 'addcslashes('
- ,'close'=> ", \"'\")"),
- 'dq' => array('open' => 'addcslashes('
- ,'close'=> ", '\"')"),
- '1' => array('open' => 'htmlspecialchars('
- ,'close'=> ', ENT_QUOTES)'),
- '0' => array('open' => ''
- ,'close'=> ''),
- 'none' => array('open' => ''
- ,'close'=> ''),
- 'hex' => array('open' => '$this->_escape_hex(',
- 'close'=> ', false)'),
- 'hexentity' => array('open' => '$this->_escape_hex(',
- 'close'=> ', true)')
- );
-
+ private $ESCAPE_TAGS = array(
+ 'html' => array('open' => 'htmlspecialchars(' ,'close'=> ', ENT_QUOTES)'),
+ 'url' => array('open' => 'urlencode(' ,'close'=> ')'),
+ 'rawurl' => array('open' => 'rawurlencode(' ,'close'=> ')'),
+ 'sq' => array('open' => 'addcslashes(' ,'close'=> ", \"'\")"),
+ 'dq' => array('open' => 'addcslashes(' ,'close'=> ", '\"')"),
+ '1' => array('open' => 'htmlspecialchars(' ,'close'=> ', ENT_QUOTES)'),
+ '0' => array('open' => '' ,'close'=> ''),
+ 'none' => array('open' => '' ,'close'=> ''),
+ 'hex' => array('open' => '$this->_escape_hex(' ,'close'=> ', false)'),
+ 'hexentity' => array('open' => '$this->_escape_hex(' ,'close'=> ', true)')
+ );
+
/** open and close tags used for formatting */
- var $FORMAT_TAGS = array(
- 'strtoupper' => array('open' => 'strtoupper(',
- 'close'=> ')'),
- 'uc' => array('open' => 'strtoupper(',
- 'close'=> ')'),
- 'strtolower' => array('open' => 'strtolower(',
- 'close'=> ')'),
- 'lc' => array('open' => 'strtolower(',
- 'close'=> ')'),
- 'ucfirst' => array('open' => 'ucfirst(',
- 'close'=> ')'),
- 'lcucfirst' => array('open' => 'ucfirst(strtolower(',
- 'close'=> '))'),
- 'ucwords' => array('open' => 'ucwords(',
- 'close'=> ')'),
- 'lcucwords' => array('open' => 'ucwords(strtolower(',
- 'close'=> '))')
- );
+ private $FORMAT_TAGS = array(
+ 'strtoupper' => array('open' => 'strtoupper(', 'close'=> ')'),
+ 'uc' => array('open' => 'strtoupper(', 'close'=> ')'),
+ 'strtolower' => array('open' => 'strtolower(', 'close'=> ')'),
+ 'lc' => array('open' => 'strtolower(', 'close'=> ')'),
+ 'ucfirst' => array('open' => 'ucfirst(', 'close'=> ')'),
+ 'lcucfirst' => array('open' => 'ucfirst(strtolower(', 'close'=> '))'),
+ 'ucwords' => array('open' => 'ucwords(', 'close'=> ')'),
+ 'lcucwords' => array('open' => 'ucwords(strtolower(', 'close'=> '))')
+ );
/** operators allowed when using extended TMPL_IF syntax */
- var $allowed_if_ops = array('==','!=','<>','<','>','<=','>=');
-
+ private $allowed_if_ops = array('==','!=','<>','<','>','<=','>=');
+
/** dbs allowed by vlibTemplate::setDbLoop(). */
- var $allowed_loop_dbs = array('MYSQL','POSTGRESQL','INFORMIX','INTERBASE','INGRES',
- 'MSSQL','MSQL','OCI8','ORACLE','OVRIMOS','SYBASE');
-
+ private $allowed_loop_dbs = array('MYSQL','POSTGRESQL','INFORMIX','INTERBASE','INGRES',
+ 'MSSQL','MSQL','OCI8','ORACLE','OVRIMOS','SYBASE');
+
/** root directory of vlibTemplate automagically filled in */
- var $VLIBTEMPLATE_ROOT = null;
-
+ private $VLIBTEMPLATE_ROOT = null;
+
/** contains current directory used when doing recursive include */
- var $_currentincludedir = array();
-
+ private $_currentincludedir = array();
+
/** current depth of includes */
- var $_includedepth = 0;
-
+ private $_includedepth = 0;
+
/** full path to tmpl file */
- var $_tmplfilename = null;
-
+ private $_tmplfilename = null;
+
/** file data before it's parsed */
- var $_tmplfile = null;
-
+ private $_tmplfile = null;
+
/** parsed version of file, ready for eval()ing */
- var $_tmplfilep = null;
-
+ private $_tmplfilep = null;
+
/** eval()ed version ready for printing or whatever */
- var $_tmploutput = null;
-
+ private $_tmploutput = null;
+
/** array for variables to be kept */
- var $_vars = array();
-
+ private $_vars = array();
+
/** array where loop variables are kept */
- var $_arrvars = array();
+ private $_arrvars = array();
/** array which holds the current namespace during parse */
- var $_namespace = array();
-
+ private $_namespace = array();
+
/** variable is set to true once the template is parsed, to save re-parsing everything */
- var $_parsed = false;
-
+ private $_parsed = false;
+
/** array holds all unknowns vars */
- var $_unknowns = array();
-
+ private $_unknowns = array();
+
/** microtime when template parsing began */
- var $_firstparsetime = null;
-
+ private $_firstparsetime = null;
+
/** total time taken to parse template */
- var $_totalparsetime = null;
-
+ private $_totalparsetime = null;
+
/** name of current loop being passed in */
- var $_currloopname = null;
-
+ private $_currloopname = null;
+
/** rows with the above loop */
- var $_currloop = array();
-
+ private $_currloop = array();
+
/** define vars to avoid warnings */
- var $_debug = null;
- var $_cache = null;
+ private $_debug = null;
+ private $_cache = null;
/** array which holds the dynamic Includes */
- var $_dyninclude = array();
- /*-----------------------------------------------------------------------------\
- | public functions |
- \-----------------------------------------------------------------------------*/
-
+ private $_dyninclude = array();
+
+ /*-----------------------------------------------------------------------------\
+ | public functions |
+ \-----------------------------------------------------------------------------*/
+
/**
* FUNCTION: newTemplate
@@ -185,10 +158,11 @@
* @return boolean true
* @access public
*/
- function newTemplate ($tmplfile) {
+ public function newTemplate($tmplfile)
+ {
if (!$tfile = $this->_fileSearch($tmplfile)) vlibTemplateError::raiseError('VT_ERROR_NOFILE',KILL,$tmplfile);
- // make sure that any parsing vars are cleared for the new template
+ //* make sure that any parsing vars are cleared for the new template
$this->_tmplfile = null;
$this->_tmplfilep = null;
$this->_tmploutput = null;
@@ -197,7 +171,7 @@
$this->_firstparsetime = null;
$this->_totalparsetime = null;
- // reset debug module
+ //* reset debug module
if ($this->_debug) $this->_debugReset();
$this->_tmplfilename = $tfile;
@@ -216,7 +190,8 @@
* @return boolean true/false
* @access public
*/
- function setVar ($k,$v=null) {
+ public function setVar($k, $v = null)
+ {
if (is_array($k)) {
foreach($k as $key => $value){
$key = ($this->OPTIONS['CASELESS']) ? strtolower(trim($key)) : trim($key);
@@ -224,13 +199,11 @@
$this->_vars[$key] = $value;
}
}
- }
- else {
+ } else {
if (preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $k) && $v !== null) {
if ($this->OPTIONS['CASELESS']) $k = strtolower($k);
$this->_vars[trim($k)] = $v;
- }
- else {
+ } else {
return false;
}
}
@@ -249,8 +222,8 @@
* @return boolean true/false
* @access public
*/
-
- function setInclude($k, $v = null) {
+ public function setInclude($k, $v = null)
+ {
if(is_array($k)) {
foreach($k as $key => $val) {
$this->_dyninclude[$key] = $val;
@@ -258,7 +231,6 @@
} else {
$this->_dyninclude[$k] = $v;
}
-
return true;
}
@@ -272,7 +244,8 @@
* @return boolean true/false returns true unless called with 0 params
* @access public
*/
- function unsetVar () {
+ public function unsetVar()
+ {
$num_args = func_num_args();
if ($num_args < 1) return false;
@@ -293,7 +266,8 @@
* @return array
* @access public
*/
- function getVars () {
+ public function getVars()
+ {
if (empty($this->_vars)) return false;
return $this->_vars;
}
@@ -306,7 +280,8 @@
* @return var
* @access public
*/
- function getVar ($var) {
+ public function getVar($var)
+ {
if ($this->OPTIONS['CASELESS']) $var = strtolower($var);
if (empty($var) || !isset($this->_vars[$var])) return false;
return $this->_vars[$var];
@@ -320,13 +295,14 @@
* @return true
* @access public
*/
- function setContextVars () {
+ public function setContextVars()
+ {
$_phpself = @$GLOBALS['HTTP_SERVER_VARS']['PHP_SELF'];
$_pathinfo = @$GLOBALS['HTTP_SERVER_VARS']['PATH_INFO'];
$_request_uri = @$GLOBALS['HTTP_SERVER_VARS']['REQUEST_URI'];
$_qs = @$GLOBALS['HTTP_SERVER_VARS']['QUERY_STRING'];
- // the following fixes bug of $PHP_SELF on Win32 CGI and IIS.
+ //* the following fixes bug of $PHP_SELF on Win32 CGI and IIS.
$_self = (!empty($_pathinfo)) ? $_pathinfo : $_phpself;
$_uri = (!empty($_request_uri)) ? $_request_uri : $_self.'?'.$_qs;
@@ -345,7 +321,8 @@
* @return boolean true/false
* @access public
*/
- function setLoop ($k,$v) {
+ public function setLoop($k, $v)
+ {
if (is_array($v) && preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $k)) {
$k = ($this->OPTIONS['CASELESS']) ? strtolower(trim($k)) : trim($k);
$this->_arrvars[$k] = array();
@@ -368,7 +345,8 @@
* @return boolean true/false
* @access public
*/
- function setDbLoop ($loopname, $result, $db_type='MYSQL') {
+ public function setDbLoop($loopname, $result, $db_type = 'MYSQL')
+ {
$db_type = strtoupper($db_type);
if (!in_array($db_type, $this->allowed_loop_dbs)) {
vlibTemplateError::raiseError('VT_WARNING_INVALID_LOOP_DB',WARNING, $db_type);
@@ -386,7 +364,7 @@
while($r = mysql_fetch_assoc($result)) {
$loop_arr[] = $r;
}
- break;
+ break;
case 'POSTGRESQL':
if (get_resource_type($result) != 'pgsql result') {
@@ -399,7 +377,7 @@
for ($i=0; $i < $nr; $i++) {
$loop_arr[] = pg_fetch_array($result, $i, PGSQL_ASSOC);
}
- break;
+ break;
case 'INFORMIX':
if (!$result) {
@@ -409,7 +387,7 @@
while($r = ifx_fetch_row($result, 'NEXT')) {
$loop_arr[] = $r;
}
- break;
+ break;
case 'INTERBASE':
if (get_resource_type($result) != 'interbase result') {
@@ -419,7 +397,7 @@
while($r = ibase_fetch_row($result)) {
$loop_arr[] = $r;
}
- break;
+ break;
case 'INGRES':
if (!$result) {
@@ -429,7 +407,7 @@
while($r = ingres_fetch_array(INGRES_ASSOC, $result)) {
$loop_arr[] = $r;
}
- break;
+ break;
case 'MSSQL':
if (get_resource_type($result) != 'mssql result') {
@@ -439,7 +417,7 @@
while($r = mssql_fetch_array($result)) {
$loop_arr[] = $r;
}
- break;
+ break;
case 'MSQL':
if (get_resource_type($result) != 'msql result') {
@@ -449,7 +427,7 @@
while($r = msql_fetch_array($result, MSQL_ASSOC)) {
$loop_arr[] = $r;
}
- break;
+ break;
case 'OCI8':
if (get_resource_type($result) != 'oci8 statement') {
@@ -459,7 +437,7 @@
while(OCIFetchInto($result, &$r, OCI_ASSOC+OCI_RETURN_LOBS)) {
$loop_arr[] = $r;
}
- break;
+ break;
case 'ORACLE':
if (get_resource_type($result) != 'oracle Cursor') {
@@ -469,7 +447,7 @@
while(ora_fetch_into($result, &$r, ORA_FETCHINTO_ASSOC)) {
$loop_arr[] = $r;
}
- break;
+ break;
case 'OVRIMOS':
if (!$result) {
@@ -479,7 +457,7 @@
while(ovrimos_fetch_into($result, &$r, 'NEXT')) {
$loop_arr[] = $r;
}
- break;
+ break;
case 'SYBASE':
if (get_resource_type($result) != 'sybase-db result') {
@@ -490,7 +468,7 @@
while($r = sybase_fetch_array($result)) {
$loop_arr[] = $r;
}
- break;
+ break;
}
$this->setLoop($loopname, $loop_arr);
return true;
@@ -505,13 +483,13 @@
* @return boolean true/false
* @access public
*/
- function newLoop ($loopname) {
+ public function newLoop($loopname)
+ {
if (preg_match('/^[a-z_]+[a-z0-9_]*$/i', $loopname)) {
$this->_currloopname[$loopname] = $loopname;
$this->_currloop[$loopname] = array();
return true;
- }
- else {
+ } else {
return false;
}
}
@@ -526,7 +504,8 @@
* @return boolean true/false
* @access public
*/
- function addRow ($row, $loopname=null) {
+ public function addRow($row, $loopname = null)
+ {
if (!$loopname) $loopname = $this->_currloopname[(count($this->_currloopname)-1)];
if (!isset($this->_currloop[$loopname]) || empty($this->_currloopname)) {
@@ -536,8 +515,7 @@
if (is_array($row)) {
$this->_currloop[$loopname][] = $row;
return true;
- }
- else {
+ } else {
return false;
}
}
@@ -552,7 +530,8 @@
* @return boolean true/false
* @access public
*/
- function addLoop ($loopname=null) {
+ public function addLoop($loopname = null)
+ {
if ($loopname == null) { // add last loop used
if (!empty($this->_currloop)) {
foreach ($this->_currloop as $k => $v) {
@@ -561,16 +540,13 @@
}
$this->_currloopname = array();
return true;
- }
- else {
+ } else {
return false;
}
- }
- elseif (!isset($this->_currloop[$loopname]) || empty($this->_currloopname)) { // newLoop not yet envoked
- vlibTemplateError::raiseError('VT_WARNING_LOOP_NOT_SET',WARNING);
+ } elseif (!isset($this->_currloop[$loopname]) || empty($this->_currloopname)) { // newLoop not yet envoked
+ vlibTemplateError::raiseError('VT_WARNING_LOOP_NOT_SET', WARNING);
return false;
- }
- else { // add a specific loop
+ } else { // add a specific loop
$this->setLoop($loopname, $this->_currloop[$loopname]);
unset($this->_currloopname[$loopname], $this->_currloop[$loopname]);
}
@@ -587,7 +563,8 @@
* @return boolean true/false returns true unless called with 0 params
* @access public
*/
- function unsetLoop () {
+ public function unsetLoop()
+ {
$num_args = func_num_args();
if ($num_args < 1) return false;
@@ -600,7 +577,6 @@
return true;
}
-
/**
* FUNCTION: reset
*
@@ -610,7 +586,8 @@
* @return boolean true
* @access public
*/
- function reset () {
+ public function reset()
+ {
$this->clearVars();
$this->clearLoops();
$this->_tmplfilename = null;
@@ -634,7 +611,8 @@
* @return boolean true
* @access public
*/
- function clearVars () {
+ public function clearVars()
+ {
$this->_vars = array();
return true;
}
@@ -647,7 +625,8 @@
* @return boolean true
* @access public
*/
- function clearLoops () {
+ public function clearLoops()
+ {
$this->_arrvars = array();
$this->_currloopname = null;
$this->_currloop = array();
@@ -662,7 +641,8 @@
* @return boolean true
* @access public
*/
- function clearAll () {
+ public function clearAll()
+ {
$this->clearVars();
$this->clearLoops();
return true;
@@ -677,7 +657,8 @@
* @return boolean true/false
* @access public
*/
- function unknownsExist () {
+ public function unknownsExist()
+ {
return (!empty($this->_unknowns));
}
@@ -688,7 +669,8 @@
*
* @access public
*/
- function unknowns () {
+ public function unknowns()
+ {
return $this->unknownsExist();
}
@@ -701,7 +683,8 @@
* @return array
* @access public
*/
- function getUnknowns () {
+ public function getUnknowns()
+ {
return $this->_unknowns;
}
@@ -715,7 +698,8 @@
* @return boolean
* @access public
*/
- function setUnknowns ($arg) {
+ public function setUnknowns($arg)
+ {
$arg = strtolower(trim($arg));
if (preg_match('/^ignore|remove|print|leave|comment$/', $arg)) {
$this->OPTIONS['UNKNOWNS'] = $arg;
@@ -737,7 +721,8 @@
* @return bool success
* @access public
*/
- function setPath () {
+ public function setPath()
+ {
$num_args = func_num_args();
if ($num_args < 1) {
$this->OPTIONS['INCLUDE_PATHS'] = array();
@@ -760,7 +745,8 @@
* @return float time taken to parse template
* @access public
*/
- function getParseTime () {
+ public function getParseTime()
+ {
if ($this->OPTIONS['TIME_PARSE'] && $this->_parsed) {
return $this->_totalparsetime;
}
@@ -778,7 +764,8 @@
* @access public
* @return boolean true/false
*/
- function fastPrint () {
+ public function fastPrint()
+ {
$ret = $this->_parse('ob_gzhandler');
print($this->_tmploutput);
return $ret;
@@ -793,7 +780,8 @@
* @access public
* @return boolean true/false
*/
- function pparse () {
+ public function pparse()
+ {
if (!$this->_parsed) $this->_parse();
print($this->_tmploutput);
return true;
@@ -806,7 +794,8 @@
*
* @access public
*/
- function pprint () {
+ public function pprint()
+ {
return $this->pparse();
}
@@ -820,14 +809,15 @@
* @access public
* @return boolean true/false
*/
- function grab () {
+ public function grab()
+ {
if (!$this->_parsed) $this->_parse();
return $this->_tmploutput;
}
- /*-----------------------------------------------------------------------------\
- | private functions |
- \-----------------------------------------------------------------------------*/
+ /*-----------------------------------------------------------------------------\
+ | private functions |
+ \-----------------------------------------------------------------------------*/
/**
* FUNCTION: vlibTemplate
@@ -840,7 +830,8 @@
* @return boolean true/false
* @access private
*/
- function tpl ($tmplfile=null, $options=null) {
+ public function __construct($tmplfile = null, $options = null)
+ {
if (is_array($tmplfile) && $options == null) {
$options = $tmplfile;
unset($tmplfile);
@@ -859,8 +850,7 @@
$key = strtoupper($key);
if ($key == 'PATH') {
$this->setPath($val);
- }
- else {
+ } else {
$this->_setOption($key, strtolower($val));
}
}
@@ -879,12 +869,12 @@
* @access private
* @return mixed data/string or boolean
*/
- function _getData ($tmplfile, $do_eval=false) {
- //check the current file depth
+ private function _getData ($tmplfile, $do_eval=false)
+ {
+ //* check the current file depth
if ($this->_includedepth > $this->OPTIONS['MAX_INCLUDES'] || $tmplfile == false) {
return;
- }
- else {
+ } else {
if ($this->_debug) array_push ($this->_debugIncludedfiles, $tmplfile);
if ($do_eval) {
array_push($this->_currentincludedir, dirname($tmplfile));
@@ -893,11 +883,10 @@
}
- if($this->_cache && $this->_checkCache($tmplfile)) { // cache exists so lets use it
+ if($this->_cache && $this->_checkCache($tmplfile)) { //* cache exists so lets use it
$data = fread($fp = fopen($this->_cachefile, 'r'), filesize($this->_cachefile));
fclose($fp);
- }
- else { // no cache lets parse the file
+ } else { //* no cache lets parse the file
$data = fread($fp = fopen($tmplfile, 'r'), filesize($tmplfile));
fclose($fp);
@@ -942,7 +931,7 @@
}
}
- // now we must parse the $data and check for any <tmpl_include>'s
+ //* now we must parse the $data and check for any <tmpl_include>'s
if ($this->_debug) $this->doDebugWarnings(file($tmplfile), $tmplfile);
if ($do_eval) {
@@ -950,11 +939,9 @@
$this->_includedepth--;
array_pop($this->_currentincludedir);
return $success;
- }
- else {
+ } else {
return $data;
}
-
}
/**
@@ -966,15 +953,16 @@
* @access private
* @return mixed fullpath to file or boolean false
*/
- function _fileSearch ($file) {
+ private function _fileSearch($file)
+ {
$filename = basename($file);
$filepath = dirname($file);
- // check fullpath first..
+ //* check fullpath first..
$fullpath = $filepath.'/'.$filename;
if (is_file($fullpath)) return $fullpath;
- // ..then check for relative path for current directory..
+ //* ..then check for relative path for current directory..
if (!empty($this->_currentincludedir)) {
$currdir = $this->_currentincludedir[(count($this->_currentincludedir) -1)];
$relativepath = realpath($currdir.'/'.$filepath.'/'.$filename);
@@ -984,7 +972,7 @@
}
}
- // ..then check for relative path for all additional given paths..
+ //* ..then check for relative path for all additional given paths..
if (!empty($this->OPTIONS['INCLUDE_PATHS'])) {
foreach ($this->OPTIONS['INCLUDE_PATHS'] as $currdir) {
$relativepath = realpath($currdir.'/'.$filepath.'/'.$filename);
@@ -994,17 +982,17 @@
}
}
- // ..then check path from TEMPLATE_DIR..
+ //* ..then check path from TEMPLATE_DIR..
if (!empty($this->OPTIONS['TEMPLATE_DIR'])) {
$fullpath = realpath($this->OPTIONS['TEMPLATE_DIR'].'/'.$filepath.'/'.$filename);
if (is_file($fullpath)) return $fullpath;
}
- // ..then check relative path from executing php script..
+ //* ..then check relative path from executing php script..
$fullpath = realpath($filepath.'/'.$filename);
if (is_file($fullpath)) return $fullpath;
- // ..then check path from template file.
+ //* ..then check path from template file.
if (!empty($this->VLIBTEMPLATE_ROOT)) {
$fullpath = realpath($this->VLIBTEMPLATE_ROOT.'/'.$filepath.'/'.$filename);
if (is_file($fullpath)) return $fullpath;
@@ -1024,7 +1012,8 @@
* @return array new look array
* @access private
*/
- function _arrayBuild ($arr) {
+ private function _arrayBuild($arr)
+ {
if (is_array($arr) && !empty($arr)) {
$arr = array_values($arr); // to prevent problems w/ non sequential arrays
for ($i = 0; $i < count($arr); $i++) {
@@ -1036,8 +1025,7 @@
if (is_array($v)) {
if (($arr[$i][$k] = $this->_arrayBuild($v)) == false) return false;
- }
- else { // reinsert the var
+ } else { // reinsert the var
$arr[$i][$k] = $v;
}
}
@@ -1051,8 +1039,7 @@
}
}
return $arr;
- }
- elseif (empty($arr)) {
+ } elseif (empty($arr)) {
return true;
}
}
@@ -1068,7 +1055,8 @@
* @access private
* @return string used for eval'ing
*/
- function _parseIf ($varname, $value=null, $op=null, $namespace=null) {
+ private function _parseIf($varname, $value = null, $op = null, $namespace = null)
+ {
if (isset($namespace)) $namespace = substr($namespace, 0, -1);
$comp_str = ''; // used for extended if statements
@@ -1079,20 +1067,17 @@
if (!empty($op)) {
if (in_array($op, $this->allowed_if_ops)) {
$comp_str .= $op;
- }
- else {
+ } else {
vlibTemplateError::raiseError('VT_WARNING_INVALID_IF_OP', WARNING, $op);
}
- }
- else {
+ } else {
$comp_str .= '==';
}
// now we add the value, if it's numeric, then we leave the quotes off
if (is_numeric($value)) {
$comp_str .= $value;
- }
- else {
+ } else {
$comp_str .= '\''.$value.'\'';
}
}
@@ -1104,15 +1089,13 @@
if ($this->_namespace[$i] == $namespace || (($i + 1) == $numnamespaces && !empty($namespace))) {
$retstr .= "['".$namespace."'][\$_".$i."]";
break 1;
- }
- else {
+ } else {
$retstr .= "['".$this->_namespace[$i]."'][\$_".$i."]";
}
}
if ($this->OPTIONS['GLOBAL_VARS'] && empty($namespace)) {
return '(('.$retstr.'[\''.$varname.'\'] !== null) ? '.$retstr.'[\''.$varname.'\'] : $this->_vars[\''.$varname.'\'])'.$comp_str;
- }
- else {
+ } else {
return $retstr."['".$varname."']".$comp_str;
}
}
@@ -1126,7 +1109,8 @@
* @access private
* @return string used for eval'ing
*/
- function _parseLoop ($varname) {
+ private function _parseLoop ($varname)
+ {
array_push($this->_namespace, $varname);
$tempvar = count($this->_namespace) - 1;
$retstr = "for (\$_".$tempvar."=0 ; \$_".$tempvar." < count(\$this->_arrvars";
@@ -1151,22 +1135,21 @@
* @access private
* @return string used for eval'ing
*/
- function _parseVar ($wholetag, $tag, $varname, $escape, $format, $namespace) {
+ private function _parseVar ($wholetag, $tag, $varname, $escape, $format, $namespace)
+ {
if (!empty($namespace)) $namespace = substr($namespace, 0, -1);
$wholetag = stripslashes($wholetag);
if (count($this->_namespace) == 0 || $namespace == 'global') {
$var1 = '$this->_vars[\''.$varname.'\']';
- }
- else {
+ } else {
$var1build = "\$this->_arrvars";
$numnamespaces = count($this->_namespace);
for ($i=0; $i < $numnamespaces; $i++) {
if ($this->_namespace[$i] == $namespace || (($i + 1) == $numnamespaces && !empty($namespace))) {
$var1build .= "['".$namespace."'][\$_".$i."]";
break 1;
- }
- else {
+ } else {
$var1build .= "['".$this->_namespace[$i]."'][\$_".$i."]";
}
}
@@ -1188,7 +1171,7 @@
$aftervar = $this->FORMAT_TAGS[$format]['close'] . $aftervar;
}
- // build return values
+ //* build return values
$retstr = 'if ('.$var1.' !== null) { ';
$retstr .= 'print('.$beforevar.$var1.$aftervar.'); ';
$retstr .= '}';
@@ -1204,24 +1187,23 @@
$comment = addcslashes('<!-- unknown variable '.ereg_replace('<!--|-->', '', $wholetag).'//-->', '"');
$retstr .= ' else { print("'.$comment.'"); $this->_setUnknown("'.$varname.'"); }';
return $retstr;
- break;
+
case 'leave':
$retstr .= ' else { print("'.addcslashes($wholetag, '"').'"); $this->_setUnknown("'.$varname.'"); }';
return $retstr;
- break;
+
case 'print':
$retstr .= ' else { print("'.htmlspecialchars($wholetag, ENT_QUOTES).'"); $this->_setUnknown("'.$varname.'"); }';
return $retstr;
- break;
case 'ignore':
return $retstr;
- break;
+
case 'remove':
default:
$retstr .= ' else { $this->_setUnknown("'.$varname.'"); }';
return $retstr;
- break;
+
}
}
@@ -1234,7 +1216,8 @@
* @access private
* @return string replace values
*/
- function _parseTag ($args) {
+ private function _parseTag ($args)
+ {
$wholetag = $args[0];
$openclose = $args[1];
$tag = strtolower($args[2]);
@@ -1247,13 +1230,12 @@
if ($tag == 'loop' || $tag == 'endloop') array_pop($this->_namespace);
if ($tag == 'comment' || $tag == 'endcomment') {
return '<?php */ ?>'.$newline;
- }
- else {
+ } else {
return '<?php } ?>'.$newline;
}
}
- // arrange attributes
+ //* arrange attributes
for ($i=3; $i < 8; $i=($i+2)) {
if (empty($args[$i]) && empty($args[($i+1)])) break;
$key = (empty($args[$i])) ? 'name' : strtolower($args[$i]);
@@ -1276,53 +1258,43 @@
}
- // return correct string (tag dependent)
+ //* return correct string (tag dependent)
switch ($tag) {
case 'var':
if (empty($escape) && (!empty($this->OPTIONS['DEFAULT_ESCAPE']) && strtolower($this->OPTIONS['DEFAULT_ESCAPE']) != 'none')) {
$escape = strtolower($this->OPTIONS['DEFAULT_ESCAPE']);
}
return '<?php '.$this->_parseVar ($wholetag, $tag, $var, @$escape, @$format, @$namespace)." ?>$newline";
- break;
case 'if':
return '<?php if ('. $this->_parseIf($var, @$value, @$op, @$namespace) .') { ?>'.$newline;
- break;
case 'unless':
return '<?php if (!'. $this->_parseIf($var, @$value, @$op, @$namespace) .') { ?>'.$newline;
- break;
case 'elseif':
return '<?php } elseif ('. $this->_parseIf($var, @$value, @$op, @$namespace) .') { ?>'.$newline;
- break;
case 'loop':
return '<?php '. $this->_parseLoop($var) .'?>'.$newline;
- break;
case 'comment':
if (empty($var)) { // full open/close style comment
return '<?php /* ?>'.$newline;
- }
- else { // just ignore tag if it was a one line comment
+ } else { // just ignore tag if it was a one line comment
return;
}
- break;
case 'phpinclude':
if ($this->OPTIONS['ENABLE_PHPINCLUDE']) {
return '<?php include(\''.$file.'\'); ?>'.$newline;
}
- break;
case 'include':
return '<?php $this->_getData($this->_fileSearch(\''.$file.'\'), 1); ?>';
- break;
case 'dyninclude':
return '<?php $this->_getData($this->_fileSearch($this->_dyninclude[\''.$name.'\']), 1); ?>';
- break;
default:
if ($this->OPTIONS['STRICT']) vlibTemplateError::raiseError('VT_ERROR_INVALID_TAG', KILL, htmlspecialchars($wholetag, ENT_QUOTES));
@@ -1342,7 +1314,8 @@
* @access private
* @return boolean true/false
*/
- function _intParse () {
+ private function _intParse ()
+ {
$mqrt = get_magic_quotes_runtime();
set_magic_quotes_runtime(0);
$this->_tmplfilep = '?>'.$this->_getData($this->_tmplfilename).'<?php return true;';
@@ -1360,7 +1333,8 @@
* @access private
* @return boolean true/false
*/
- function _parse ($compress='') {
+ private function _parse ($compress = '')
+ {
if (!$this->_parsed) {
if ($this->OPTIONS['TIME_PARSE']) $this->_firstparsetime = $this->_getMicroTime();
@@ -1384,9 +1358,6 @@
if (!$success) vlibTemplateError::raiseError('VT_ERROR_PARSE', FATAL);
$this->_tmploutput .= ob_get_contents();
ob_end_clean();
-
-
-
return true;
}
@@ -1404,7 +1375,8 @@
* @return bool true/false
* @access private
*/
- function _setOption () {
+ private function _setOption()
+ {
$numargs = func_num_args();
if ($numargs < 1) {
vlibTemplateError::raiseError('VT_ERROR_WRONG_NO_PARAMS', null, '_setOption()');
@@ -1417,18 +1389,15 @@
foreach ($options as $k => $v) {
if ($v != null) {
if(in_array($k, array_keys($this->OPTIONS))) $this->OPTIONS[$k] = $v;
- }
- else {
+ } else {
continue;
}
}
- }
- else {
+ } else {
vlibTemplateError::raiseError('VT_ERROR_WRONG_NO_PARAMS', null, '_setOption()');
return false;
}
- }
- elseif (is_int($numargs / 2)) {
+ }elseif (is_int($numargs / 2)) {
for ($i = 0; $i < $numargs; $i=($i+2)) {
$k = func_get_arg($i);
$v = func_get_arg(($i+1));
@@ -1436,8 +1405,7 @@
if(in_array($k, array_keys($this->OPTIONS))) $this->OPTIONS[$k] = $v;
}
}
- }
- else {
+ } else {
vlibTemplateError::raiseError('VT_ERROR_WRONG_NO_PARAMS', null, '_setOption()');
return false;
}
@@ -1453,7 +1421,8 @@
* @param string var
* @access private
*/
- function _setUnknown ($var) {
+ private function _setUnknown($var)
+ {
if (!in_array($var, $this->_unknowns)) array_push($this->_unknowns, $var);
}
@@ -1464,8 +1433,9 @@
* @return float microtime
* @access private
*/
- function _getMicrotime () {
- list($msec, $sec) = explode(" ",microtime());
+ private function _getMicrotime()
+ {
+ list($msec, $sec) = explode(' ',microtime());
return ((float)$msec + (float)$sec);
}
@@ -1478,7 +1448,7 @@
* @return string encoded in hex
* @access private
*/
- function _escape_hex($str="", $entity=false) {
+ private function _escape_hex($str = '', $entity = false) {
$prestr = $entity ? '&#x' : '%';
$poststr= $entity ? ';' : '';
for ($i=0; $i < strlen($str); $i++) {
@@ -1496,7 +1466,7 @@
function recache() {vlibTemplateError::raiseError('VT_WARNING_NOT_CACHE_OBJ', WARNING, 'recache()');}
function setCacheLifeTime() {vlibTemplateError::raiseError('VT_WARNING_NOT_CACHE_OBJ', WARNING, 'setCacheLifeTime()');}
function setCacheExtension() {vlibTemplateError::raiseError('VT_WARNING_NOT_CACHE_OBJ', WARNING, 'setCacheExtension()');}
- }
+ } // << end class Def
//include_once ($conf['classpath'].'/vlibTemplate/debug.php');
include_once ($conf['classpath'].'/tpl_cache.inc.php');
--
Gitblit v1.9.1