From 2cb1563f63386b35a69e460051aa9b4a2851d104 Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Wed, 30 May 2012 07:30:44 -0400
Subject: [PATCH] - Added (clickable) placeholders to client messaging function. - Added check so that the client password isn't inserted into the message (for security reasons).

---
 interface/lib/classes/tpl.inc.php |  185 ++++++++++-----------------------------------
 1 files changed, 42 insertions(+), 143 deletions(-)

diff --git a/interface/lib/classes/tpl.inc.php b/interface/lib/classes/tpl.inc.php
index d76c48d..3bd310f 100644
--- a/interface/lib/classes/tpl.inc.php
+++ b/interface/lib/classes/tpl.inc.php
@@ -22,12 +22,12 @@
 //
 // $Id: class.tpl.inc.php,v 1.1 2003/07/08 12:31:10 platinum Exp $
 
-//** check to avoid multiple including of class
+//** check and avoid multiple loading 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');
+   	include_once (ISPC_CLASS_PATH.'/tpl_error.inc.php');
+   	include_once (ISPC_CLASS_PATH.'/tpl_ini.inc.php');
 
     class tpl{
     
@@ -148,19 +148,18 @@
 		    
 		
         /**
-         * FUNCTION: newTemplate
-         *
          * Usually called by the class constructor.
          * Stores the filename in $this->_tmplfilename.
          * Raises an error if the template file is not found.
-         *
          * @param string $tmplfile full path to template file
          * @return boolean true
          * @access public
          */
         public function newTemplate($tmplfile)
         {
-            if (!$tfile = $this->_fileSearch($tmplfile)) vlibTemplateError::raiseError('VT_ERROR_NOFILE',KILL,$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
             $this->_tmplfile = null;
@@ -172,19 +171,17 @@
             $this->_totalparsetime = null;
 
             //* reset debug module
-            if ($this->_debug) $this->_debugReset();
-
+            if ($this->_debug){
+                $this->_debugReset();
+            }
             $this->_tmplfilename = $tfile;
             return true;
         }
 
         /**
-         * FUNCTION: setVar
-         *
          * Sets variables to be used by the template
          * If $k is an array, then it will treat it as an associative array
          * using the keys as variable names and the values as variable values.
-         *
          * @param mixed $k key to define variable name
          * @param mixed $v variable to assign to $k
          * @return boolean true/false
@@ -211,12 +208,9 @@
         }
         
         /**
-         * FUNCTION: setInclude
-         *
          * Sets dynamic includes to be used by the template
          * If $k is an array, then it will treat it as an associative array
          * using the keys as variable names and the values as variable values.
-         *
          * @param mixed $k key to define variable name
          * @param mixed $v variable to assign to $k
          * @return boolean true/false
@@ -235,11 +229,8 @@
 		}
 
         /**
-         * FUNCTION: unsetVar
-         *
          * Unsets a variable which has already been set
          * Parse in all vars wanted for deletion in seperate parametres
-         *
          * @param string var name to remove use: vlibTemplate::unsetVar(var[, var..])
          * @return boolean true/false returns true unless called with 0 params
          * @access public
@@ -259,39 +250,28 @@
         }
 
         /**
-         * FUNCTION: getVars
-         *
          * Gets all vars currently set in global namespace.
-         *
          * @return array
          * @access public
          */
         public function getVars()
         {
-            if (empty($this->_vars)) return false;
-            return $this->_vars;
+            return empty($this->_vars) ? false : $this->_vars;
         }
 
         /**
-         * FUNCTION: getVar
-         *
          * Gets a single var from the global namespace
-         *
          * @return var
          * @access public
          */
         public function getVar($var)
         {
             if ($this->OPTIONS['CASELESS']) $var = strtolower($var);
-            if (empty($var) || !isset($this->_vars[$var])) return false;
-            return $this->_vars[$var];
+            return (empty($var) || !isset($this->_vars[$var])) ? false : $this->_vars[$var];
         }
 
         /**
-         * FUNCTION: setContextVars
-         *
          * sets the GLOBAL_CONTEXT_VARS
-         *
          * @return true
          * @access public
          */
@@ -312,10 +292,7 @@
         }
 
         /**
-         * FUNCTION: setLoop
-         *
          * Builds the loop construct for use with <TMPL_LOOP>.
-         *
          * @param string $k string to define loop name
          * @param array $v array to assign to $k
          * @return boolean true/false
@@ -328,17 +305,15 @@
                 $this->_arrvars[$k] = array();
                 if ($this->OPTIONS['SET_LOOP_VAR'] && !empty($v)) $this->setvar($k, 1);
                 if (($this->_arrvars[$k] = $this->_arrayBuild($v)) == false) {
-                    vlibTemplateError::raiseError('VT_WARNING_INVALID_ARR',WARNING,$k);
+                    vlibTemplateError::raiseError('VT_WARNING_INVALID_ARR', WARNING, $k);
                 }
             }
             return true;
         }
 
         /**
-         * FUNCTION: setDbLoop [** EXPERIMENTAL **]
-         *
+         * [** EXPERIMENTAL **]
          * Function to create a loop from a Db result resource link.
-         *
          * @param string $loopname to commit loop. If not set, will use last loopname set using newLoop()
          * @param string $result link to a Db result resource
          * @param string $db_type, type of db that the result resource belongs to.
@@ -347,18 +322,20 @@
          */
         public function setDbLoop($loopname, $result, $db_type = 'MYSQL')
         {
-            $db_type = strtoupper($db_type);
+            /*
+			$db_type = strtoupper($db_type);
             if (!in_array($db_type, $this->allowed_loop_dbs)) {
-                vlibTemplateError::raiseError('VT_WARNING_INVALID_LOOP_DB',WARNING, $db_type);
+                vlibTemplateError::raiseError('VT_WARNING_INVALID_LOOP_DB', WARNING, $db_type);
                 return false;
             }
 
             $loop_arr = array();
+            // TODO: Are all these necessary as were onyl using mysql and possible postgres ? - pedro
             switch ($db_type) {
 
                 case 'MYSQL':
                     if (get_resource_type($result) != 'mysql result') {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
                     while($r = mysql_fetch_assoc($result)) {
@@ -368,7 +345,7 @@
 
                 case 'POSTGRESQL':
                     if (get_resource_type($result) != 'pgsql result') {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
 
@@ -381,7 +358,7 @@
 
                 case 'INFORMIX':
                     if (!$result) {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
                     while($r = ifx_fetch_row($result, 'NEXT')) {
@@ -391,7 +368,7 @@
 
                 case 'INTERBASE':
                     if (get_resource_type($result) != 'interbase result') {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
                     while($r = ibase_fetch_row($result)) {
@@ -401,7 +378,7 @@
 
                 case 'INGRES':
                     if (!$result) {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
                     while($r = ingres_fetch_array(INGRES_ASSOC, $result)) {
@@ -411,7 +388,7 @@
 
                 case 'MSSQL':
                     if (get_resource_type($result) != 'mssql result') {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
                     while($r = mssql_fetch_array($result)) {
@@ -421,7 +398,7 @@
 
                 case 'MSQL':
                     if (get_resource_type($result) != 'msql result') {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
                     while($r = msql_fetch_array($result, MSQL_ASSOC)) {
@@ -431,7 +408,7 @@
 
                 case 'OCI8':
                     if (get_resource_type($result) != 'oci8 statement') {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
                     while(OCIFetchInto($result, &$r, OCI_ASSOC+OCI_RETURN_LOBS)) {
@@ -441,7 +418,7 @@
 
                 case 'ORACLE':
                     if (get_resource_type($result) != 'oracle Cursor') {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
                     while(ora_fetch_into($result, &$r, ORA_FETCHINTO_ASSOC)) {
@@ -451,7 +428,7 @@
 
                 case 'OVRIMOS':
                     if (!$result) {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
                     while(ovrimos_fetch_into($result, &$r, 'NEXT')) {
@@ -461,7 +438,7 @@
 
                 case 'SYBASE':
                     if (get_resource_type($result) != 'sybase-db result') {
-                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);
+                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type);
                         return false;
                     }
 
@@ -472,13 +449,11 @@
             }
             $this->setLoop($loopname, $loop_arr);
             return true;
+			*/
         }
 
         /**
-         * FUNCTION: newLoop
-         *
          * Sets the name for the curent loop in the 3 step loop process.
-         *
          * @param string $name string to define loop name
          * @return boolean true/false
          * @access public
@@ -495,10 +470,7 @@
         }
 
         /**
-         * FUNCTION: addRow
-         *
          * Adds a row to the current loop in the 3 step loop process.
-         *
          * @param array $row loop row to add to current loop
          * @param string $loopname loop to which you want to add row, if not set will use last loop set using newLoop().
          * @return boolean true/false
@@ -509,7 +481,7 @@
             if (!$loopname) $loopname = $this->_currloopname[(count($this->_currloopname)-1)];
 
             if (!isset($this->_currloop[$loopname]) || empty($this->_currloopname)) {
-                vlibTemplateError::raiseError('VT_WARNING_LOOP_NOT_SET',WARNING);
+                vlibTemplateError::raiseError('VT_WARNING_LOOP_NOT_SET', WARNING);
                 return false;
             }
             if (is_array($row)) {
@@ -521,11 +493,8 @@
         }
 
         /**
-         * FUNCTION: addLoop
-         *
          * Completes the 3 step loop process. This assigns the rows and resets
          * the variables used.
-         *
          * @param string $loopname to commit loop. If not set, will use last loopname set using newLoop()
          * @return boolean true/false
          * @access public
@@ -554,11 +523,8 @@
         }
 
         /**
-         * FUNCTION: unsetLoop
-         *
          * Unsets a loop which has already been set.
          * Can only unset top level loops.
-         *
          * @param string loop to remove use: vlibTemplate::unsetLoop(loop[, loop..])
          * @return boolean true/false returns true unless called with 0 params
          * @access public
@@ -578,11 +544,8 @@
         }
 
         /**
-         * FUNCTION: reset
-         *
          * Resets the vlibTemplate object. After using vlibTemplate::reset() you must
          * use vlibTemplate::newTemplate(tmpl) to reuse, not passing in the options array.
-         *
          * @return boolean true
          * @access public
          */
@@ -604,10 +567,7 @@
         }
 
         /**
-         * FUNCTION: clearVars
-         *
          * Unsets all variables in the template
-         *
          * @return boolean true
          * @access public
          */
@@ -618,10 +578,7 @@
         }
 
         /**
-         * FUNCTION: clearLoops
-         *
          * Unsets all loops in the template
-         *
          * @return boolean true
          * @access public
          */
@@ -634,10 +591,7 @@
         }
 
         /**
-         * FUNCTION: clearAll
-         *
          * Unsets all variables and loops set using setVar/Loop()
-         *
          * @return boolean true
          * @access public
          */
@@ -649,11 +603,8 @@
         }
 
         /**
-         * FUNCTION: unknownsExist
-         *
          * Returns true if unknowns were found after parsing.
          * Function MUST be called AFTER one of the parsing functions to have any relevance.
-         *
          * @return boolean true/false
          * @access public
          */
@@ -663,10 +614,7 @@
         }
 
         /**
-         * FUNCTION: unknowns
-         *
          * Alias for unknownsExist.
-         *
          * @access public
          */
         public function unknowns()
@@ -675,11 +623,8 @@
         }
 
         /**
-         * FUNCTION: getUnknowns
-         *
          * Returns an array of all unknown vars found when parsing.
          * This function is only relevant after parsing a document.
-         *
          * @return array
          * @access public
          */
@@ -689,11 +634,8 @@
         }
 
         /**
-         * FUNCTION: setUnknowns
-         *
-         * Sets how you want to handle variables that were found in the
+          * Sets how you want to handle variables that were found in the
          * template but not set in vlibTemplate using vlibTemplate::setVar().
-         *
          * @param  string $arg ignore, remove, print, leave or comment
          * @return boolean
          * @access public
@@ -709,8 +651,6 @@
         }
 
         /**
-         * FUNCTION: setPath
-         *
          * function sets the paths to use when including files.
          * Use of this function: vlibTemplate::setPath(string path [, string path, ..]);
          * i.e. if $tmpl is your template object do: $tmpl->setPath('/web/htdocs/templates','/web/htdocs/www');
@@ -736,8 +676,6 @@
         }
 
         /**
-         * FUNCTION: getParseTime
-         *
          * After using one of the parse functions, this will allow you
          * access the time taken to parse the template.
          * see OPTION 'TIME_PARSE'.
@@ -755,8 +693,6 @@
 
 
         /**
-         * FUNCTION: fastPrint
-         *
          * Identical to pparse() except that it uses output buffering w/ gz compression thus
          * printing the output directly and compressed if poss.
          * Will possibly if parsing a huge template.
@@ -773,10 +709,7 @@
 
 
         /**
-         * FUNCTION: pparse
-         *
          * Calls parse, and then prints out $this->_tmploutput
-         *
          * @access public
          * @return boolean true/false
          */
@@ -788,10 +721,7 @@
         }
 
         /**
-         * FUNCTION: pprint
-         *
          * Alias for pparse()
-         *
          * @access public
          */
         public function pprint()
@@ -801,8 +731,6 @@
 
 
         /**
-         * FUNCTION: grab
-         *
          * Returns the parsed output, ready for printing, passing to mail() ...etc.
          * Invokes $this->_parse() if template has not yet been parsed.
          *
@@ -820,11 +748,8 @@
         \-----------------------------------------------------------------------------*/
 
         /**
-         * FUNCTION: vlibTemplate
-         *
          * vlibTemplate constructor.
          * if $tmplfile has been passed to it, it will send to $this->newTemplate()
-         *
          * @param string $tmplfile full path to template file
          * @param array $options see above
          * @return boolean true/false
@@ -860,8 +785,7 @@
             return true;
         }
 
-        /** FUNCTION: _getData
-         *
+        /**
          * function returns the text from the file, or if we're using cache, the text
          * from the cache file. MUST RETURN DATA.
          * @param string tmplfile contains path to template file
@@ -875,7 +799,9 @@
             if ($this->_includedepth > $this->OPTIONS['MAX_INCLUDES'] || $tmplfile == false) {
                 return;
             } else {
-                if ($this->_debug) array_push ($this->_debugIncludedfiles, $tmplfile);
+                if ($this->_debug){
+                    array_push ($this->_debugIncludedfiles, $tmplfile);
+                }
                 if ($do_eval) {
                     array_push($this->_currentincludedir, dirname($tmplfile));
                     $this->_includedepth++;
@@ -945,10 +871,7 @@
         }
 
         /**
-         * FUNCTION: _fileSearch
-         *
          * Searches for all possible instances of file { $file }
-         *
          * @param string $file path of file we're looking for
          * @access private
          * @return mixed fullpath to file or boolean false
@@ -1002,12 +925,9 @@
         }
 
         /**
-         * FUNCTION: _arrayBuild
-         *
          * Modifies the array $arr to add Template variables, __FIRST__, __LAST__ ..etc
          * if $this->OPTIONS['LOOP_CONTEXT_VARS'] is true.
          * Used by $this->setloop().
-         *
          * @param array $arr
          * @return array new look array
          * @access private
@@ -1045,9 +965,7 @@
         }
 
         /**
-         * FUNCTION: _parseIf
          * returns a string used for parsing in tmpl_if statements.
-         *
          * @param string $varname
          * @param string $value
          * @param string $op
@@ -1102,9 +1020,7 @@
 
 
         /**
-         * FUNCTION: _parseLoop
          * returns a string used for parsing in tmpl_loop statements.
-         *
          * @param string $varname
          * @access private
          * @return string used for eval'ing
@@ -1122,10 +1038,7 @@
         }
 
         /**
-         * FUNCTION: _parseVar
-         *
          * returns a string used for parsing in tmpl_var statements.
-         *
          * @param string $wholetag
          * @param string $tag
          * @param string $varname
@@ -1184,7 +1097,7 @@
 
             switch (strtolower($this->OPTIONS['UNKNOWNS'])) {
                 case 'comment':
-                    $comment = addcslashes('<!-- unknown variable '.ereg_replace('<!--|-->', '', $wholetag).'//-->', '"');
+                    $comment = addcslashes('<!-- unknown variable '.preg_replace('/<!--|-->/', '', $wholetag).'//-->', '"');
                     $retstr .= ' else { print("'.$comment.'"); $this->_setUnknown("'.$varname.'"); }';
                     return $retstr;
 
@@ -1208,7 +1121,6 @@
         }
 
         /**
-         * FUNCTION: _parseTag
          * takes values from preg_replace in $this->_intparse() and determines
          * the replace string.
          *
@@ -1304,8 +1216,6 @@
         }
 
         /**
-         * FUNCTION: _intParse
-         *
          * Parses $this->_tmplfile into correct format for eval() to work
          * Called by $this->_parse(), or $this->fastPrint, this replaces all <tmpl_*> references
          * with their correct php representation, i.e. <tmpl_var title> becomes $this->vars['title']
@@ -1316,16 +1226,14 @@
          */
         private function _intParse ()
         {
-            $mqrt = get_magic_quotes_runtime();
-            set_magic_quotes_runtime(0);
+            //$mqrt = get_magic_quotes_runtime();
+            //set_magic_quotes_runtime(0);
             $this->_tmplfilep = '?>'.$this->_getData($this->_tmplfilename).'<?php return true;';
-            set_magic_quotes_runtime($mqrt);
+            //set_magic_quotes_runtime($mqrt);
             return true;
         }
 
         /**
-         * FUNCTION: _parse
-         *
          * Calls _intParse, and eval()s $this->tmplfilep
          * and outputs the results to $this->tmploutput
          *
@@ -1362,8 +1270,6 @@
         }
 
         /**
-         * FUNCTION: _setOption
-         *
          * Sets one or more of the boolean options 1/0, that control certain actions in the template.
          * Use of this function:
          * either: vlibTemplate::_setOptions(string option_name, bool option_val [, string option_name, bool option_val ..]);
@@ -1413,11 +1319,8 @@
         }
 
         /**
-         * FUNCTION: _setUnknown
-         *
          * Used during parsing, this function sets an unknown var checking to see if it
          * has been previously set.
-         *
          * @param string var
          * @access private
          */
@@ -1427,9 +1330,7 @@
         }
 
         /**
-         * FUNCTION: _getMicrotime
          * Returns microtime as a float number
-         *
          * @return float microtime
          * @access private
          */
@@ -1440,9 +1341,7 @@
         }
 
         /**
-         * FUNCTION: _escape_hex
          * Returns str encoded to hex code.
-         *
          * @param string str to be encoded
          * @param bool true/false specify whether to use hex_entity
          * @return string encoded in hex
@@ -1468,8 +1367,8 @@
         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');
+    //include_once (ISPC_CLASS_PATH.'/vlibTemplate/debug.php');
+    include_once (ISPC_CLASS_PATH.'/tpl_cache.inc.php');
 
 } // << end if(!defined())..
 ?>
\ No newline at end of file

--
Gitblit v1.9.1