| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  * Project:     Smarty: the PHP compiling template engine | 
					
						
							|  |  |  |  * File:        Smarty.class.php | 
					
						
							| 
									
										
										
										
											2015-02-11 06:57:17 +01:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  * This library is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License as published by the Free Software Foundation; either | 
					
						
							|  |  |  |  * version 2.1 of the License, or (at your option) any later version. | 
					
						
							| 
									
										
										
										
											2015-02-11 06:57:17 +01:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  * This library is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
					
						
							|  |  |  |  * Lesser General Public License for more details. | 
					
						
							| 
									
										
										
										
											2015-02-11 06:57:17 +01:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  * You should have received a copy of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License along with this library; if not, write to the Free Software | 
					
						
							|  |  |  |  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
					
						
							|  |  |  |  * For questions, help, comments, discussion, etc., please join the | 
					
						
							|  |  |  |  * Smarty mailing list. Send a blank e-mail to | 
					
						
							|  |  |  |  * smarty-discussion-subscribe@googlegroups.com | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |  * @link      http://www.smarty.net/ | 
					
						
							| 
									
										
										
										
											2018-04-24 16:14:10 +02:00
										 |  |  |  * @copyright 2018 New Digital Group, Inc. | 
					
						
							|  |  |  |  * @copyright 2018 Uwe Tews | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |  * @author    Monte Ohrt <monte at ohrt dot com> | 
					
						
							| 
									
										
										
										
											2018-04-24 16:14:10 +02:00
										 |  |  |  * @author    Uwe Tews   <uwe dot tews at gmail dot com> | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |  * @author    Rodney Rehm | 
					
						
							|  |  |  |  * @package   Smarty | 
					
						
							| 
									
										
										
										
											2018-09-12 22:54:16 +02:00
										 |  |  |  * @version   3.1.33 | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  * set SMARTY_DIR to absolute path to Smarty library files. | 
					
						
							|  |  |  |  * Sets SMARTY_DIR only if user application has not already defined it. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  | if (!defined('SMARTY_DIR')) { | 
					
						
							| 
									
										
										
										
											2017-10-26 10:25:41 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-08-23 08:03:39 +02:00
										 |  |  |     define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR); | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2009-08-30 18:10:01 +00:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  * set SMARTY_SYSPLUGINS_DIR to absolute path to Smarty internal plugins. | 
					
						
							|  |  |  |  * Sets SMARTY_SYSPLUGINS_DIR only if user application has not already defined it. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2009-08-30 18:10:01 +00:00
										 |  |  | if (!defined('SMARTY_SYSPLUGINS_DIR')) { | 
					
						
							| 
									
										
										
										
											2017-10-26 10:25:41 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-08-23 08:03:39 +02:00
										 |  |  |     define('SMARTY_SYSPLUGINS_DIR', SMARTY_DIR . 'sysplugins' . DIRECTORY_SEPARATOR); | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2009-09-19 13:22:32 +00:00
										 |  |  | if (!defined('SMARTY_PLUGINS_DIR')) { | 
					
						
							| 
									
										
										
										
											2017-10-26 10:25:41 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-08-23 08:03:39 +02:00
										 |  |  |     define('SMARTY_PLUGINS_DIR', SMARTY_DIR . 'plugins' . DIRECTORY_SEPARATOR); | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  | if (!defined('SMARTY_MBSTRING')) { | 
					
						
							| 
									
										
										
										
											2017-10-26 10:25:41 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2014-12-31 06:07:17 +01:00
										 |  |  |     define('SMARTY_MBSTRING', function_exists('mb_get_info')); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2009-09-19 13:22:32 +00:00
										 |  |  | if (!defined('SMARTY_RESOURCE_CHAR_SET')) { | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     // UTF-8 can only be done properly when mbstring is available!
 | 
					
						
							| 
									
										
										
										
											2011-12-18 18:48:07 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * @deprecated in favor of Smarty::$_CHARSET | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     define('SMARTY_RESOURCE_CHAR_SET', SMARTY_MBSTRING ? 'UTF-8' : 'ISO-8859-1'); | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2009-11-17 17:46:03 +00:00
										 |  |  | if (!defined('SMARTY_RESOURCE_DATE_FORMAT')) { | 
					
						
							| 
									
										
										
										
											2011-12-18 18:48:07 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * @deprecated in favor of Smarty::$_DATE_FORMAT | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2014-04-18 08:09:38 +00:00
										 |  |  |     define('SMARTY_RESOURCE_DATE_FORMAT', '%b %e, %Y'); | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2016-11-08 17:48:25 +01:00
										 |  |  |  * Load Smarty_Autoloader | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2016-11-08 17:48:25 +01:00
										 |  |  | if (!class_exists('Smarty_Autoloader')) { | 
					
						
							| 
									
										
										
										
											2017-05-21 18:19:52 +02:00
										 |  |  |     include dirname(__FILE__) . '/bootstrap.php'; | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  * Load always needed external class files | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2016-11-08 17:48:25 +01:00
										 |  |  | require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_data.php'; | 
					
						
							| 
									
										
										
										
											2015-10-29 22:17:35 +01:00
										 |  |  | require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_extension_handler.php'; | 
					
						
							|  |  |  | require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_templatebase.php'; | 
					
						
							|  |  |  | require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_template.php'; | 
					
						
							|  |  |  | require_once SMARTY_SYSPLUGINS_DIR . 'smarty_resource.php'; | 
					
						
							|  |  |  | require_once SMARTY_SYSPLUGINS_DIR . 'smarty_variable.php'; | 
					
						
							|  |  |  | require_once SMARTY_SYSPLUGINS_DIR . 'smarty_template_source.php'; | 
					
						
							|  |  |  | require_once SMARTY_SYSPLUGINS_DIR . 'smarty_template_resource_base.php'; | 
					
						
							| 
									
										
										
										
											2016-11-08 17:48:25 +01:00
										 |  |  | require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_resource_file.php'; | 
					
						
							| 
									
										
										
										
											2014-11-13 19:42:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  * This is the main Smarty class | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  * @package Smarty | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2015-12-27 07:18:35 +01:00
										 |  |  |  * The following methods will be dynamically loaded by the extension handler when they are called. | 
					
						
							|  |  |  |  * They are located in a corresponding Smarty_Internal_Method_xxxx class | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  |  * @method int clearAllCache(int $exp_time = null, string $type = null) | 
					
						
							|  |  |  |  * @method int clearCache(string $template_name, string $cache_id = null, string $compile_id = null, int $exp_time = null, string $type = null) | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |  * @method int compileAllTemplates(string $extension = '.tpl', bool $force_compile = false, int $time_limit = 0, $max_errors = null) | 
					
						
							|  |  |  |  * @method int compileAllConfig(string $extension = '.conf', bool $force_compile = false, int $time_limit = 0, $max_errors = null) | 
					
						
							| 
									
										
										
										
											2015-12-27 07:18:35 +01:00
										 |  |  |  * @method int clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null) | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  | class Smarty extends Smarty_Internal_TemplateBase | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * smarty version | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2018-09-12 22:54:16 +02:00
										 |  |  |     const SMARTY_VERSION = '3.1.33'; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * define variable scopes | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     const SCOPE_LOCAL    = 1; | 
					
						
							|  |  |  |     const SCOPE_PARENT   = 2; | 
					
						
							| 
									
										
										
										
											2015-10-29 22:17:35 +01:00
										 |  |  |     const SCOPE_TPL_ROOT = 4; | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     const SCOPE_ROOT     = 8; | 
					
						
							|  |  |  |     const SCOPE_SMARTY   = 16; | 
					
						
							|  |  |  |     const SCOPE_GLOBAL   = 32; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * define caching modes | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     const CACHING_OFF              = 0; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     const CACHING_LIFETIME_CURRENT = 1; | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     const CACHING_LIFETIME_SAVED   = 2; | 
					
						
							| 
									
										
										
										
											2013-06-17 13:30:49 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |      * define constant for clearing cache files be saved expiration dates | 
					
						
							| 
									
										
										
										
											2013-06-17 13:30:49 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     const CLEAR_EXPIRED = -1; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * define compile check modes | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     const COMPILECHECK_OFF       = 0; | 
					
						
							|  |  |  |     const COMPILECHECK_ON        = 1; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     const COMPILECHECK_CACHEMISS = 2; | 
					
						
							| 
									
										
										
										
											2015-05-07 04:36:49 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * define debug modes | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     const DEBUG_OFF        = 0; | 
					
						
							|  |  |  |     const DEBUG_ON         = 1; | 
					
						
							| 
									
										
										
										
											2015-05-07 04:36:49 +02:00
										 |  |  |     const DEBUG_INDIVIDUAL = 2; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * modes for handling of "<?php ... ?>" tags in templates. | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     const PHP_PASSTHRU = 0; //-> print tags as plain text
 | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     const PHP_QUOTE    = 1; //-> escape tags as entities
 | 
					
						
							|  |  |  |     const PHP_REMOVE   = 2; //-> escape tags as entities
 | 
					
						
							|  |  |  |     const PHP_ALLOW    = 3; //-> escape tags as entities
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * filter types | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     const FILTER_POST     = 'post'; | 
					
						
							|  |  |  |     const FILTER_PRE      = 'pre'; | 
					
						
							|  |  |  |     const FILTER_OUTPUT   = 'output'; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     const FILTER_VARIABLE = 'variable'; | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * plugin types | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     const PLUGIN_FUNCTION         = 'function'; | 
					
						
							|  |  |  |     const PLUGIN_BLOCK            = 'block'; | 
					
						
							|  |  |  |     const PLUGIN_COMPILER         = 'compiler'; | 
					
						
							|  |  |  |     const PLUGIN_MODIFIER         = 'modifier'; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     const PLUGIN_MODIFIERCOMPILER = 'modifiercompiler'; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * assigned global tpl vars | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2013-07-15 18:18:28 +00:00
										 |  |  |     public static $global_tpl_vars = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-18 18:48:07 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Flag denoting if Multibyte String functions are available | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2013-07-15 18:18:28 +00:00
										 |  |  |     public static $_MBSTRING = SMARTY_MBSTRING; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-18 18:48:07 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * The character set to adhere to (e.g. "UTF-8") | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2013-07-15 18:18:28 +00:00
										 |  |  |     public static $_CHARSET = SMARTY_RESOURCE_CHAR_SET; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-18 18:48:07 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * The date format to be used internally | 
					
						
							|  |  |  |      * (accepts date() and strftime()) | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2013-07-15 18:18:28 +00:00
										 |  |  |     public static $_DATE_FORMAT = SMARTY_RESOURCE_DATE_FORMAT; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-18 18:48:07 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Flag denoting if PCRE should run in UTF-8 mode | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2013-07-15 18:18:28 +00:00
										 |  |  |     public static $_UTF8_MODIFIER = 'u'; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-24 15:13:19 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Flag denoting if operating system is windows | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2013-07-15 18:18:28 +00:00
										 |  |  |     public static $_IS_WINDOWS = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2015-10-29 22:17:35 +01:00
										 |  |  |      * auto literal on delimiters with whitespace | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $auto_literal = true; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * display error on not assigned variables | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $error_unassigned = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2015-10-29 22:17:35 +01:00
										 |  |  |      * look up relative file path in include_path | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $use_include_path = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * flag if template_dir is normalized | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var bool | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $_templateDirNormalized = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-03 19:02:44 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * joined template directory string used in cache keys | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-08-17 21:56:55 +02:00
										 |  |  |     public $_joined_template_dir = null; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * flag if config_dir is normalized | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var bool | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $_configDirNormalized = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * joined config directory string used in cache keys | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-08-17 21:56:55 +02:00
										 |  |  |     public $_joined_config_dir = null; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-13 09:50:55 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * default template handler | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var callable | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $default_template_handler_func = null; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * default config handler | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var callable | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $default_config_handler_func = null; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * default plugin handler | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var callable | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $default_plugin_handler_func = null; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * flag if template_dir is normalized | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var bool | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $_compileDirNormalized = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * flag if plugins_dir is normalized | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var bool | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $_pluginsDirNormalized = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |      * flag if template_dir is normalized | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |      * @var bool | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |     public $_cacheDirNormalized = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * force template compiling? | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $force_compile = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * use sub dirs for compiled/cached files? | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $use_sub_dirs = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-21 18:40:16 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * allow ambiguous resources (that are made unique by the resource handler) | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-10-21 18:40:16 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $allow_ambiguous_resources = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * merge compiled includes | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $merge_compiled_includes = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-29 04:22:20 +02:00
										 |  |  |     /* | 
					
						
							|  |  |  |     * flag for behaviour when extends: resource  and {extends} tag are used simultaneous | 
					
						
							|  |  |  |     *   if false disable execution of {extends} in templates called by extends resource. | 
					
						
							|  |  |  |     *   (behaviour as versions < 3.1.28) | 
					
						
							|  |  |  |     * | 
					
						
							|  |  |  |     * @var boolean | 
					
						
							|  |  |  |     */ | 
					
						
							|  |  |  |     public $extends_recursion = true; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * force cache file creation | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $force_cache = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * template left-delimiter | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  |     public $left_delimiter = "{"; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * template right-delimiter | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $right_delimiter = "}"; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-07 08:20:18 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * array of strings which shall be treated as literal by compiler | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var array string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $literals = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * class name | 
					
						
							|  |  |  |      * This should be instance of Smarty_Security. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var string | 
					
						
							|  |  |  |      * @see Smarty_Security | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2009-11-03 20:38:38 +00:00
										 |  |  |     public $security_class = 'Smarty_Security'; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * implementation of security class | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var Smarty_Security | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |     public $security_policy = null; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * controls handling of PHP-blocks | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var integer | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |     public $php_handling = self::PHP_PASSTHRU; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * controls if the php template file resource is allowed | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var bool | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2009-09-30 22:03:41 +00:00
										 |  |  |     public $allow_php_templates = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * debug mode | 
					
						
							|  |  |  |      * Setting this to true enables the debug-console. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  |     public $debugging = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * This determines if debugging is enable-able from the browser. | 
					
						
							|  |  |  |      * <ul> | 
					
						
							|  |  |  |      *  <li>NONE => no debugging control allowed</li> | 
					
						
							|  |  |  |      *  <li>URL => enable debugging when SMARTY_DEBUG is found in the URL.</li> | 
					
						
							|  |  |  |      * </ul> | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2010-04-28 20:30:27 +00:00
										 |  |  |     public $debugging_ctrl = 'NONE'; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Name of debugging URL-param. | 
					
						
							|  |  |  |      * Only used when $debugging_ctrl is set to 'URL'. | 
					
						
							|  |  |  |      * The name of the URL-parameter that activates debugging. | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2015-02-11 06:57:17 +01:00
										 |  |  |      * @var string | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  |     public $smarty_debug_id = 'SMARTY_DEBUG'; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Path of debug template. | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $debug_tpl = null; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * When set, smarty uses this value as error_reporting-level. | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var int | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $error_reporting = null; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Controls whether variables with the same name overwrite each other. | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $config_overwrite = true; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Controls whether config values of on/true/yes and off/false/no get converted to boolean. | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $config_booleanize = true; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Controls whether hidden config sections/vars are read from the file. | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $config_read_hidden = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * locking concurrent compiles | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $compile_locking = true; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |      * Controls whether cache resources should use locking mechanism | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $cache_locking = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * seconds to wait for acquiring a lock before ignoring the write lock | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |      * @var float | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $locking_timeout = 10; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * resource type used if none given | 
					
						
							|  |  |  |      * Must be an valid key of $registered_resources. | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $default_resource_type = 'file'; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * caching type | 
					
						
							|  |  |  |      * Must be an element of $cache_resource_types. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $caching_type = 'file'; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * config type | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $default_config_type = 'file'; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * check If-Modified-Since headers | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $cache_modified_check = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * registered plugins | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $registered_plugins = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * registered objects | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $registered_objects = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * registered classes | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $registered_classes = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * registered filters | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $registered_filters = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * registered resources | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $registered_resources = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-15 10:46:03 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * registered cache resources | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $registered_cache_resources = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-15 10:46:03 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * autoload filter | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $autoload_filters = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * default modifier | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $default_modifiers = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * autoescape variable output | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var boolean | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $escape_html = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * start time for execution time calculation | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var int | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     public $start_time = 0; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * required by the compiler for BC | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $_current_file = null; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * internal flag to enable parser debugging | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @var bool | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public $_parserdebug = false; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * This object type (Smarty = 1, template = 2, data = 4) | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var int | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $_objType = 1; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-19 00:58:47 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Debug object | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var Smarty_Internal_Debug | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $_debug = null; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * template directory | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $template_dir = array('./templates/'); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * flags for normalized template directory entries | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $_processedTemplateDir = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * config directory | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $config_dir = array('./configs/'); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * flags for normalized template directory entries | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $_processedConfigDir = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * compile directory | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $compile_dir = './templates_c/'; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * plugins directory | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $plugins_dir = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * cache directory | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $cache_dir = './cache/'; | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-10 21:57:06 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * removed properties | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2015-12-16 22:32:07 +01:00
										 |  |  |      * @var string[] | 
					
						
							| 
									
										
										
										
											2015-08-10 21:57:06 +02:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2018-08-31 16:45:09 +02:00
										 |  |  |     protected $obsoleteProperties = array( | 
					
						
							|  |  |  |         'resource_caching', 'template_resource_caching', 'direct_access_security', | 
					
						
							|  |  |  |         '_dir_perms', '_file_perms', 'plugin_search_order', | 
					
						
							|  |  |  |         'inheritance_merge_compiled_includes', 'resource_cache_mode', | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-16 22:32:07 +01:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2015-12-22 23:49:25 +01:00
										 |  |  |      * List of private properties which will call getter/setter on a direct access | 
					
						
							| 
									
										
										
										
											2015-12-16 22:32:07 +01:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2015-12-22 23:49:25 +01:00
										 |  |  |      * @var string[] | 
					
						
							| 
									
										
										
										
											2015-12-16 22:32:07 +01:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2018-08-31 16:45:09 +02:00
										 |  |  |     protected $accessMap = array( | 
					
						
							|  |  |  |         'template_dir' => 'TemplateDir', 'config_dir' => 'ConfigDir', | 
					
						
							|  |  |  |         'plugins_dir'  => 'PluginsDir', 'compile_dir' => 'CompileDir', | 
					
						
							|  |  |  |         'cache_dir'    => 'CacheDir', | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2009-10-31 00:44:58 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Initialize new Smarty object | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2010-02-26 12:58:36 +00:00
										 |  |  |     public function __construct() | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-11-23 17:12:38 +01:00
										 |  |  |         $this->_clearTemplateCache(); | 
					
						
							| 
									
										
										
										
											2015-10-24 05:02:24 +02:00
										 |  |  |         parent::__construct(); | 
					
						
							| 
									
										
										
										
											2009-04-10 15:52:59 +00:00
										 |  |  |         if (is_callable('mb_internal_encoding')) { | 
					
						
							| 
									
										
										
										
											2011-12-18 18:20:09 +00:00
										 |  |  |             mb_internal_encoding(Smarty::$_CHARSET); | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |         } | 
					
						
							|  |  |  |         $this->start_time = microtime(true); | 
					
						
							| 
									
										
										
										
											2015-12-21 17:19:39 +01:00
										 |  |  |         if (isset($_SERVER[ 'SCRIPT_NAME' ])) { | 
					
						
							|  |  |  |             Smarty::$global_tpl_vars[ 'SCRIPT_NAME' ] = new Smarty_Variable($_SERVER[ 'SCRIPT_NAME' ]); | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2014-11-09 10:15:16 +01:00
										 |  |  |         // Check if we're running on windows
 | 
					
						
							|  |  |  |         Smarty::$_IS_WINDOWS = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'; | 
					
						
							|  |  |  |         // let PCRE (preg_*) treat strings as ISO-8859-1 if we're not dealing with UTF-8
 | 
					
						
							|  |  |  |         if (Smarty::$_CHARSET !== 'UTF-8') { | 
					
						
							|  |  |  |             Smarty::$_UTF8_MODIFIER = ''; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-11-18 15:32:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Enable error handler to mute expected messages | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @return     boolean | 
					
						
							| 
									
										
										
										
											2017-10-26 06:00:40 +02:00
										 |  |  |      * @deprecated | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |      */ | 
					
						
							|  |  |  |     public static function muteExpectedErrors() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-26 06:00:40 +02:00
										 |  |  |         return Smarty_Internal_ErrorHandler::muteExpectedErrors(); | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Disable error handler muting expected messages | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-26 06:00:40 +02:00
										 |  |  |      * @deprecated | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |      */ | 
					
						
							|  |  |  |     public static function unmuteExpectedErrors() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         restore_error_handler(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-30 17:05:37 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Check if a template resource exists | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @param string $resource_name template name | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-26 10:25:41 +02:00
										 |  |  |      * @return bool status | 
					
						
							|  |  |  |      * @throws \SmartyException | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public function templateExists($resource_name) | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-08-23 05:15:05 +02:00
										 |  |  |         // create source object
 | 
					
						
							|  |  |  |         $source = Smarty_Template_Source::load(null, $this, $resource_name); | 
					
						
							|  |  |  |         return $source->exists; | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-02-06 22:11:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Loads security class and enables security | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @param string|Smarty_Security $security_class if a string is used, it must be class-name | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  |      * @return Smarty                 current Smarty instance for chaining | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  |      * @throws \SmartyException | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |     public function enableSecurity($security_class = null) | 
					
						
							| 
									
										
										
										
											2010-02-26 12:58:36 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-06-28 01:38:52 +02:00
										 |  |  |         Smarty_Security::enableSecurity($this, $security_class); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         return $this; | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-02-07 22:21:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Disable security | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @return Smarty current Smarty instance for chaining | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  |     public function disableSecurity() | 
					
						
							| 
									
										
										
										
											2010-02-26 12:58:36 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         $this->security_policy = null; | 
					
						
							|  |  |  |         return $this; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Add template directory(s) | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @param string|array $template_dir directory(s) of template sources | 
					
						
							|  |  |  |      * @param string       $key          of the array element to assign the template dir to | 
					
						
							|  |  |  |      * @param bool         $isConfig     true for config_dir | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  |      * @return Smarty          current Smarty instance for chaining | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |     public function addTemplateDir($template_dir, $key = null, $isConfig = false) | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |         if ($isConfig) { | 
					
						
							|  |  |  |             $processed = &$this->_processedConfigDir; | 
					
						
							|  |  |  |             $dir = &$this->config_dir; | 
					
						
							|  |  |  |             $this->_configDirNormalized = false; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $processed = &$this->_processedTemplateDir; | 
					
						
							|  |  |  |             $dir = &$this->template_dir; | 
					
						
							|  |  |  |             $this->_templateDirNormalized = false; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (is_array($template_dir)) { | 
					
						
							|  |  |  |             foreach ($template_dir as $k => $v) { | 
					
						
							|  |  |  |                 if (is_int($k)) { | 
					
						
							|  |  |  |                     // indexes are not merged but appended
 | 
					
						
							|  |  |  |                     $dir[] = $v; | 
					
						
							|  |  |  |                 } else { | 
					
						
							|  |  |  |                     // string indexes are overridden
 | 
					
						
							|  |  |  |                     $dir[ $k ] = $v; | 
					
						
							|  |  |  |                     unset($processed[ $key ]); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             if ($key !== null) { | 
					
						
							|  |  |  |                 // override directory at specified index
 | 
					
						
							|  |  |  |                 $dir[ $key ] = $template_dir; | 
					
						
							|  |  |  |                 unset($processed[ $key ]); | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 // append new directory
 | 
					
						
							|  |  |  |                 $dir[] = $template_dir; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         return $this; | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Get template directories | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2015-06-29 02:41:42 +02:00
										 |  |  |      * @param mixed $index    index of directory to get, null to get all | 
					
						
							|  |  |  |      * @param bool  $isConfig true for config_dir | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |      * @return array list of template directories, or directory of $index | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |     public function getTemplateDir($index = null, $isConfig = false) | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |         if ($isConfig) { | 
					
						
							|  |  |  |             $dir = &$this->config_dir; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $dir = &$this->template_dir; | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |         if ($isConfig ? !$this->_configDirNormalized : !$this->_templateDirNormalized) { | 
					
						
							| 
									
										
										
										
											2017-10-12 08:21:12 +02:00
										 |  |  |             $this->_normalizeTemplateConfig($isConfig); | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         if ($index !== null) { | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |             return isset($dir[ $index ]) ? $dir[ $index ] : null; | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |         return $dir; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * Set template directory | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @param string|array $template_dir directory(s) of template sources | 
					
						
							|  |  |  |      * @param bool         $isConfig     true for config_dir | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * @return \Smarty current Smarty instance for chaining | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |     public function setTemplateDir($template_dir, $isConfig = false) | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |         if ($isConfig) { | 
					
						
							|  |  |  |             $this->config_dir = array(); | 
					
						
							|  |  |  |             $this->_processedConfigDir = array(); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $this->template_dir = array(); | 
					
						
							|  |  |  |             $this->_processedTemplateDir = array(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         $this->addTemplateDir($template_dir, null, $isConfig); | 
					
						
							|  |  |  |         return $this; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Add config directory(s) | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2014-11-01 22:42:34 +01:00
										 |  |  |      * @param string|array $config_dir directory(s) of config sources | 
					
						
							|  |  |  |      * @param mixed        $key        key of the array element to assign the config dir to | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @return Smarty current Smarty instance for chaining | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |     public function addConfigDir($config_dir, $key = null) | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |         return $this->addTemplateDir($config_dir, $key, true); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Get config directory | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * @param mixed $index index of directory to get, null to get all | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |      * @return array configuration directory | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |     public function getConfigDir($index = null) | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |         return $this->getTemplateDir($index, true); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * Set config directory | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * @param $config_dir | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2013-07-14 22:15:45 +00:00
										 |  |  |      * @return Smarty       current Smarty instance for chaining | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |     public function setConfigDir($config_dir) | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |         return $this->setTemplateDir($config_dir, true); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Adds directory of plugin files | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2016-12-29 14:52:35 +01:00
										 |  |  |      * @param null|array|string $plugins_dir | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @return Smarty current Smarty instance for chaining | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public function addPluginsDir($plugins_dir) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |         if (empty($this->plugins_dir)) { | 
					
						
							|  |  |  |             $this->plugins_dir[] = SMARTY_PLUGINS_DIR; | 
					
						
							| 
									
										
										
										
											2015-06-14 03:30:31 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |         $this->plugins_dir = array_merge($this->plugins_dir, (array)$plugins_dir); | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |         $this->_pluginsDirNormalized = false; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         return $this; | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-03-22 16:09:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Get plugin directories | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return array list of plugin directories | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public function getPluginsDir() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |         if (empty($this->plugins_dir)) { | 
					
						
							|  |  |  |             $this->plugins_dir[] = SMARTY_PLUGINS_DIR; | 
					
						
							|  |  |  |             $this->_pluginsDirNormalized = false; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (!$this->_pluginsDirNormalized) { | 
					
						
							|  |  |  |             if (!is_array($this->plugins_dir)) { | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |                 $this->plugins_dir = (array)$this->plugins_dir; | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |             } | 
					
						
							|  |  |  |             foreach ($this->plugins_dir as $k => $v) { | 
					
						
							| 
									
										
										
										
											2018-04-26 13:02:51 +02:00
										 |  |  |                 $this->plugins_dir[ $k ] = $this->_realpath(rtrim($v, '/\\') . DIRECTORY_SEPARATOR, true); | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2015-12-21 17:19:39 +01:00
										 |  |  |             $this->_cache[ 'plugin_files' ] = array(); | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |             $this->_pluginsDirNormalized = true; | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |         return $this->plugins_dir; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-11-11 21:34:36 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-27 20:46:56 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * Set plugins directory | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @param string|array $plugins_dir directory(s) of plugins | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * @return Smarty       current Smarty instance for chaining | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |     public function setPluginsDir($plugins_dir) | 
					
						
							| 
									
										
										
										
											2010-02-26 12:58:36 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |         $this->plugins_dir = (array)$plugins_dir; | 
					
						
							|  |  |  |         $this->_pluginsDirNormalized = false; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         return $this; | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-02-06 22:11:10 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Get compiled directory | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return string path to compiled templates | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public function getCompileDir() | 
					
						
							| 
									
										
										
										
											2010-02-26 12:58:36 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |         if (!$this->_compileDirNormalized) { | 
					
						
							| 
									
										
										
										
											2015-12-22 23:49:25 +01:00
										 |  |  |             $this->_normalizeDir('compile_dir', $this->compile_dir); | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |             $this->_compileDirNormalized = true; | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         return $this->compile_dir; | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 22:11:10 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * @param  string $compile_dir directory to store compiled templates in | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @return Smarty current Smarty instance for chaining | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |     public function setCompileDir($compile_dir) | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |         $this->_normalizeDir('compile_dir', $compile_dir); | 
					
						
							|  |  |  |         $this->_compileDirNormalized = true; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         return $this; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Get cache directory | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return string path of cache directory | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public function getCacheDir() | 
					
						
							| 
									
										
										
										
											2010-02-26 12:58:36 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |         if (!$this->_cacheDirNormalized) { | 
					
						
							| 
									
										
										
										
											2015-12-22 23:49:25 +01:00
										 |  |  |             $this->_normalizeDir('cache_dir', $this->cache_dir); | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |             $this->_cacheDirNormalized = true; | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         return $this->cache_dir; | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-02-07 22:21:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Set cache directory | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @param string $cache_dir directory to store cached templates in | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * | 
					
						
							|  |  |  |      * @return Smarty current Smarty instance for chaining | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setCacheDir($cache_dir) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->_normalizeDir('cache_dir', $cache_dir); | 
					
						
							|  |  |  |         $this->_cacheDirNormalized = true; | 
					
						
							|  |  |  |         return $this; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-13 04:10:52 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * creates a template object | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @param string  $template   the resource handle of the template file | 
					
						
							|  |  |  |      * @param mixed   $cache_id   cache id to be used with this template | 
					
						
							|  |  |  |      * @param mixed   $compile_id compile id to be used with this template | 
					
						
							|  |  |  |      * @param object  $parent     next higher level of Smarty variables | 
					
						
							|  |  |  |      * @param boolean $do_clone   flag is Smarty object shall be cloned | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-11-20 04:07:51 +01:00
										 |  |  |      * @return \Smarty_Internal_Template template object | 
					
						
							| 
									
										
										
										
											2017-10-26 10:25:41 +02:00
										 |  |  |      * @throws \SmartyException | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null, $do_clone = true) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2014-04-19 11:42:11 +00:00
										 |  |  |         if ($cache_id !== null && (is_object($cache_id) || is_array($cache_id))) { | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |             $parent = $cache_id; | 
					
						
							|  |  |  |             $cache_id = null; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2014-04-19 11:42:11 +00:00
										 |  |  |         if ($parent !== null && is_array($parent)) { | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |             $data = $parent; | 
					
						
							|  |  |  |             $parent = null; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $data = null; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-09-15 06:43:36 +02:00
										 |  |  |         if (!$this->_templateDirNormalized) { | 
					
						
							| 
									
										
										
										
											2017-10-12 08:21:12 +02:00
										 |  |  |             $this->_normalizeTemplateConfig(false); | 
					
						
							| 
									
										
										
										
											2016-09-15 06:43:36 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-03-01 00:54:33 +01:00
										 |  |  |         $_templateId = $this->_getTemplateId($template, $cache_id, $compile_id); | 
					
						
							|  |  |  |         $tpl = null; | 
					
						
							| 
									
										
										
										
											2016-11-23 17:12:38 +01:00
										 |  |  |         if ($this->caching && isset(Smarty_Internal_Template::$isCacheTplObj[ $_templateId ])) { | 
					
						
							|  |  |  |             $tpl = $do_clone ? clone Smarty_Internal_Template::$isCacheTplObj[ $_templateId ] : | 
					
						
							|  |  |  |                 Smarty_Internal_Template::$isCacheTplObj[ $_templateId ]; | 
					
						
							| 
									
										
										
										
											2016-11-11 20:13:40 +01:00
										 |  |  |             $tpl->inheritance = null; | 
					
						
							| 
									
										
										
										
											2016-03-04 17:54:10 +01:00
										 |  |  |             $tpl->tpl_vars = $tpl->config_vars = array(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  |         } elseif (!$do_clone && isset(Smarty_Internal_Template::$tplObjCache[ $_templateId ])) { | 
					
						
							| 
									
										
										
										
											2016-11-23 17:12:38 +01:00
										 |  |  |             $tpl = clone Smarty_Internal_Template::$tplObjCache[ $_templateId ]; | 
					
						
							| 
									
										
										
										
											2016-11-11 20:13:40 +01:00
										 |  |  |             $tpl->inheritance = null; | 
					
						
							| 
									
										
										
										
											2016-09-27 23:19:56 +02:00
										 |  |  |             $tpl->tpl_vars = $tpl->config_vars = array(); | 
					
						
							| 
									
										
										
										
											2015-08-23 01:25:57 +02:00
										 |  |  |         } else { | 
					
						
							|  |  |  |             /* @var Smarty_Internal_Template $tpl */ | 
					
						
							| 
									
										
										
										
											2016-03-01 00:54:33 +01:00
										 |  |  |             $tpl = new $this->template_class($template, $this, null, $cache_id, $compile_id, null, null); | 
					
						
							|  |  |  |             $tpl->templateId = $_templateId; | 
					
						
							| 
									
										
										
										
											2015-08-23 01:25:57 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2015-08-06 19:25:00 +02:00
										 |  |  |         if ($do_clone) { | 
					
						
							|  |  |  |             $tpl->smarty = clone $tpl->smarty; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-03-01 00:54:33 +01:00
										 |  |  |         $tpl->parent = $parent ? $parent : $this; | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         // fill data if present
 | 
					
						
							|  |  |  |         if (!empty($data) && is_array($data)) { | 
					
						
							|  |  |  |             // set up variable values
 | 
					
						
							|  |  |  |             foreach ($data as $_key => $_val) { | 
					
						
							| 
									
										
										
										
											2015-12-21 17:19:39 +01:00
										 |  |  |                 $tpl->tpl_vars[ $_key ] = new Smarty_Variable($_val); | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2017-11-06 01:02:56 +01:00
										 |  |  |         if ($this->debugging || $this->debugging_ctrl === 'URL') { | 
					
						
							| 
									
										
										
										
											2015-08-19 00:58:47 +02:00
										 |  |  |             $tpl->smarty->_debug = new Smarty_Internal_Debug(); | 
					
						
							| 
									
										
										
										
											2015-12-13 10:16:10 +01:00
										 |  |  |             // check URL debugging control
 | 
					
						
							| 
									
										
										
										
											2017-11-06 01:02:56 +01:00
										 |  |  |             if (!$this->debugging && $this->debugging_ctrl === 'URL') { | 
					
						
							| 
									
										
										
										
											2015-12-13 10:16:10 +01:00
										 |  |  |                 $tpl->smarty->_debug->debugUrl($tpl->smarty); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2014-11-03 22:27:32 +01:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |         return $tpl; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * Takes unknown classes and loads plugin files for them | 
					
						
							|  |  |  |      * class name format: Smarty_PluginType_PluginName | 
					
						
							|  |  |  |      * plugin filename format: plugintype.pluginname.php | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @param string $plugin_name class plugin name to load | 
					
						
							|  |  |  |      * @param bool   $check       check if already loaded | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      * @return string |boolean filepath of loaded file or false | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  |      * @throws \SmartyException | 
					
						
							| 
									
										
										
										
											2011-12-18 16:55:28 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2010-11-13 04:10:52 +00:00
										 |  |  |     public function loadPlugin($plugin_name, $check = true) | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-10-24 05:02:24 +02:00
										 |  |  |         return $this->ext->loadPlugin->loadPlugin($this, $plugin_name, $check); | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-11-13 04:10:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-23 01:25:57 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Get unique template id | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2016-05-01 23:53:38 +02:00
										 |  |  |      * @param string                    $template_name | 
					
						
							|  |  |  |      * @param null|mixed                $cache_id | 
					
						
							|  |  |  |      * @param null|mixed                $compile_id | 
					
						
							|  |  |  |      * @param null                      $caching | 
					
						
							|  |  |  |      * @param \Smarty_Internal_Template $template | 
					
						
							| 
									
										
										
										
											2015-08-23 01:25:57 +02:00
										 |  |  |      * | 
					
						
							|  |  |  |      * @return string | 
					
						
							| 
									
										
										
										
											2017-10-26 10:25:41 +02:00
										 |  |  |      * @throws \SmartyException | 
					
						
							| 
									
										
										
										
											2015-08-23 01:25:57 +02:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2018-08-31 16:45:09 +02:00
										 |  |  |     public function _getTemplateId( | 
					
						
							|  |  |  |         $template_name, | 
					
						
							|  |  |  |         $cache_id = null, | 
					
						
							|  |  |  |         $compile_id = null, | 
					
						
							|  |  |  |         $caching = null, | 
					
						
							|  |  |  |         Smarty_Internal_Template $template = null | 
					
						
							|  |  |  |     ) { | 
					
						
							| 
									
										
										
										
											2016-02-25 02:53:55 +01:00
										 |  |  |         $template_name = (strpos($template_name, ':') === false) ? "{$this->default_resource_type}:{$template_name}" : | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  |             $template_name; | 
					
						
							| 
									
										
										
										
											2015-08-23 01:25:57 +02:00
										 |  |  |         $cache_id = $cache_id === null ? $this->cache_id : $cache_id; | 
					
						
							|  |  |  |         $compile_id = $compile_id === null ? $this->compile_id : $compile_id; | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |         $caching = (int)($caching === null ? $this->caching : $caching); | 
					
						
							| 
									
										
										
										
											2016-05-01 23:53:38 +02:00
										 |  |  |         if ((isset($template) && strpos($template_name, ':.') !== false) || $this->allow_ambiguous_resources) { | 
					
						
							| 
									
										
										
										
											2015-10-29 22:17:35 +01:00
										 |  |  |             $_templateId = | 
					
						
							| 
									
										
										
										
											2016-07-23 22:21:14 +02:00
										 |  |  |                 Smarty_Resource::getUniqueTemplateName((isset($template) ? $template : $this), $template_name) . | 
					
						
							|  |  |  |                 "#{$cache_id}#{$compile_id}#{$caching}"; | 
					
						
							| 
									
										
										
										
											2015-08-23 01:25:57 +02:00
										 |  |  |         } else { | 
					
						
							| 
									
										
										
										
											2015-10-24 22:43:19 +02:00
										 |  |  |             $_templateId = $this->_joined_template_dir . "#{$template_name}#{$cache_id}#{$compile_id}#{$caching}"; | 
					
						
							| 
									
										
										
										
											2015-08-23 01:25:57 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2015-12-21 17:19:39 +01:00
										 |  |  |         if (isset($_templateId[ 150 ])) { | 
					
						
							| 
									
										
										
										
											2015-08-23 01:25:57 +02:00
										 |  |  |             $_templateId = sha1($_templateId); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return $_templateId; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Normalize path | 
					
						
							|  |  |  |      *  - remove /./ and /../ | 
					
						
							| 
									
										
										
										
											2015-07-07 17:56:50 +02:00
										 |  |  |      *  - make it absolute if required | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @param string $path     file path | 
					
						
							|  |  |  |      * @param bool   $realpath if true - convert to absolute | 
					
						
							|  |  |  |      *                         false - convert to relative | 
					
						
							|  |  |  |      *                         null - keep as it is but | 
					
						
							|  |  |  |      *                         remove /./ /../ | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |      * | 
					
						
							|  |  |  |      * @return string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-07-07 17:56:50 +02:00
										 |  |  |     public function _realpath($path, $realpath = null) | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2018-04-26 18:06:45 +02:00
										 |  |  |         $nds = array('/' => '\\', '\\' => '/'); | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |         preg_match( | 
					
						
							| 
									
										
										
										
											2018-08-31 16:07:47 +02:00
										 |  |  |             '%^(?<root>(?:[[:alpha:]]:[\\\\/]|/|[\\\\]{2}[[:alpha:]]+|[[:print:]]{2,}:[/]{2}|[\\\\])?)(?<path>(.*))$%u', | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |             $path, | 
					
						
							|  |  |  |             $parts | 
					
						
							|  |  |  |         ); | 
					
						
							| 
									
										
										
										
											2016-02-09 01:27:15 +01:00
										 |  |  |         $path = $parts[ 'path' ]; | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |         if ($parts[ 'root' ] === '\\') { | 
					
						
							| 
									
										
										
										
											2016-02-09 01:27:15 +01:00
										 |  |  |             $parts[ 'root' ] = substr(getcwd(), 0, 2) . $parts[ 'root' ]; | 
					
						
							| 
									
										
										
										
											2015-12-21 17:19:39 +01:00
										 |  |  |         } else { | 
					
						
							| 
									
										
										
										
											2016-02-09 01:27:15 +01:00
										 |  |  |             if ($realpath !== null && !$parts[ 'root' ]) { | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |                 $path = getcwd() . DIRECTORY_SEPARATOR . $path; | 
					
						
							| 
									
										
										
										
											2015-12-21 17:19:39 +01:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  |         // normalize DIRECTORY_SEPARATOR
 | 
					
						
							| 
									
										
										
										
											2018-08-31 16:45:09 +02:00
										 |  |  |         $path = str_replace($nds[ DIRECTORY_SEPARATOR ], DIRECTORY_SEPARATOR, $path); | 
					
						
							|  |  |  |         $parts[ 'root' ] = str_replace($nds[ DIRECTORY_SEPARATOR ], DIRECTORY_SEPARATOR, $parts[ 'root' ]); | 
					
						
							| 
									
										
										
										
											2018-04-26 18:06:45 +02:00
										 |  |  |         do { | 
					
						
							|  |  |  |             $path = preg_replace( | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |                 array('#[\\\\/]{2}#', '#[\\\\/][.][\\\\/]#', '#[\\\\/]([^\\\\/.]+)[\\\\/][.][.][\\\\/]#'), | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  |                 DIRECTORY_SEPARATOR, | 
					
						
							|  |  |  |                 $path, | 
					
						
							|  |  |  |                 -1, | 
					
						
							|  |  |  |                 $count | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |             ); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  |         } while ($count > 0); | 
					
						
							| 
									
										
										
										
											2018-04-24 10:38:18 +02:00
										 |  |  |         return $realpath !== false ? $parts[ 'root' ] . $path : str_ireplace(getcwd(), '.', $parts[ 'root' ] . $path); | 
					
						
							| 
									
										
										
										
											2015-06-21 13:11:52 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-27 03:28:26 +01:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Empty template objects cache | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-02-09 01:27:15 +01:00
										 |  |  |     public function _clearTemplateCache() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-11-23 17:12:38 +01:00
										 |  |  |         Smarty_Internal_Template::$isCacheTplObj = array(); | 
					
						
							|  |  |  |         Smarty_Internal_Template::$tplObjCache = array(); | 
					
						
							| 
									
										
										
										
											2015-12-27 03:28:26 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-31 15:56:59 +01:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * @param boolean $use_sub_dirs | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setUseSubDirs($use_sub_dirs) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->use_sub_dirs = $use_sub_dirs; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @param int $error_reporting | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setErrorReporting($error_reporting) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->error_reporting = $error_reporting; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-01-01 22:27:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-31 15:56:59 +01:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * @param boolean $escape_html | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setEscapeHtml($escape_html) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->escape_html = $escape_html; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * Return auto_literal flag | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * @return boolean | 
					
						
							| 
									
										
										
										
											2014-12-31 15:56:59 +01:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |     public function getAutoLiteral() | 
					
						
							| 
									
										
										
										
											2014-12-31 15:56:59 +01:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |         return $this->auto_literal; | 
					
						
							| 
									
										
										
										
											2014-12-31 15:56:59 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * Set auto_literal flag | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * @param boolean $auto_literal | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |     public function setAutoLiteral($auto_literal = true) | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |         $this->auto_literal = $auto_literal; | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-15 16:58:42 +01:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * @param boolean $force_compile | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setForceCompile($force_compile) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->force_compile = $force_compile; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-31 15:56:59 +01:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * @param boolean $merge_compiled_includes | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setMergeCompiledIncludes($merge_compiled_includes) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->merge_compiled_includes = $merge_compiled_includes; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-26 04:18:28 +02:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2017-10-26 04:37:05 +02:00
										 |  |  |      * Get left delimiter | 
					
						
							| 
									
										
										
										
											2017-10-26 04:18:28 +02:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-26 04:37:05 +02:00
										 |  |  |      * @return string | 
					
						
							| 
									
										
										
										
											2017-10-26 04:18:28 +02:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-26 04:37:05 +02:00
										 |  |  |     public function getLeftDelimiter() | 
					
						
							| 
									
										
										
										
											2017-10-26 04:18:28 +02:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-26 04:37:05 +02:00
										 |  |  |         return $this->left_delimiter; | 
					
						
							| 
									
										
										
										
											2017-10-26 04:18:28 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-26 04:36:41 +02:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * Set left delimiter | 
					
						
							| 
									
										
										
										
											2017-10-26 04:36:41 +02:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |      * @param string $left_delimiter | 
					
						
							| 
									
										
										
										
											2017-10-26 04:36:41 +02:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |     public function setLeftDelimiter($left_delimiter) | 
					
						
							| 
									
										
										
										
											2017-10-26 04:36:41 +02:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |         $this->left_delimiter = $left_delimiter; | 
					
						
							| 
									
										
										
										
											2017-10-26 04:36:41 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-26 04:37:05 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Get right delimiter | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return string $right_delimiter | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function getRightDelimiter() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return $this->right_delimiter; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Set right delimiter | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setRightDelimiter($right_delimiter) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->right_delimiter = $right_delimiter; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-31 15:56:59 +01:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * @param boolean $debugging | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setDebugging($debugging) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->debugging = $debugging; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @param boolean $config_overwrite | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setConfigOverwrite($config_overwrite) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->config_overwrite = $config_overwrite; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @param boolean $config_booleanize | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setConfigBooleanize($config_booleanize) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->config_booleanize = $config_booleanize; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @param boolean $config_read_hidden | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setConfigReadHidden($config_read_hidden) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->config_read_hidden = $config_read_hidden; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @param boolean $compile_locking | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setCompileLocking($compile_locking) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->compile_locking = $compile_locking; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-17 21:52:32 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * @param string $default_resource_type | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setDefaultResourceType($default_resource_type) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->default_resource_type = $default_resource_type; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @param string $caching_type | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function setCachingType($caching_type) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->caching_type = $caching_type; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Test install | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param null $errors | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function testInstall(&$errors = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         Smarty_Internal_TestInstall::testInstall($this, $errors); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-26 10:25:41 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Get Smarty object | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return Smarty | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function _getSmartyObj() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return $this; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-02 09:12:01 +01:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * <<magic>> Generic getter. | 
					
						
							|  |  |  |      * Calls the appropriate getter function. | 
					
						
							|  |  |  |      * Issues an E_USER_NOTICE if no valid getter is found. | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |      * @param string $name property name | 
					
						
							| 
									
										
										
										
											2015-01-02 09:12:01 +01:00
										 |  |  |      * | 
					
						
							|  |  |  |      * @return mixed | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function __get($name) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-12-22 23:49:25 +01:00
										 |  |  |         if (isset($this->accessMap[ $name ])) { | 
					
						
							|  |  |  |             $method = 'get' . $this->accessMap[ $name ]; | 
					
						
							| 
									
										
										
										
											2015-12-16 22:32:07 +01:00
										 |  |  |             return $this->{$method}(); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  |         } elseif (isset($this->_cache[ $name ])) { | 
					
						
							|  |  |  |             return $this->_cache[ $name ]; | 
					
						
							|  |  |  |         } elseif (in_array($name, $this->obsoleteProperties)) { | 
					
						
							|  |  |  |             return null; | 
					
						
							| 
									
										
										
										
											2015-01-02 09:12:01 +01:00
										 |  |  |         } else { | 
					
						
							|  |  |  |             trigger_error('Undefined property: ' . get_class($this) . '::$' . $name, E_USER_NOTICE); | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2015-12-27 07:18:35 +01:00
										 |  |  |         return null; | 
					
						
							| 
									
										
										
										
											2015-01-02 09:12:01 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * <<magic>> Generic setter. | 
					
						
							|  |  |  |      * Calls the appropriate setter function. | 
					
						
							|  |  |  |      * Issues an E_USER_NOTICE if no valid setter is found. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param string $name  property name | 
					
						
							|  |  |  |      * @param mixed  $value parameter passed to setter | 
					
						
							| 
									
										
										
										
											2018-03-16 18:44:47 +01:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2015-01-02 09:12:01 +01:00
										 |  |  |      */ | 
					
						
							|  |  |  |     public function __set($name, $value) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-12-22 23:49:25 +01:00
										 |  |  |         if (isset($this->accessMap[ $name ])) { | 
					
						
							| 
									
										
										
										
											2015-12-23 00:57:52 +01:00
										 |  |  |             $method = 'set' . $this->accessMap[ $name ]; | 
					
						
							|  |  |  |             $this->{$method}($value); | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  |         } elseif (in_array($name, $this->obsoleteProperties)) { | 
					
						
							|  |  |  |             return; | 
					
						
							|  |  |  |         } elseif (is_object($value) && method_exists($value, $name)) { | 
					
						
							|  |  |  |             $this->$name = $value; | 
					
						
							| 
									
										
										
										
											2015-01-02 09:12:01 +01:00
										 |  |  |         } else { | 
					
						
							| 
									
										
										
										
											2018-08-19 02:35:46 +02:00
										 |  |  |             trigger_error('Undefined property: ' . get_class($this) . '::$' . $name, E_USER_NOTICE); | 
					
						
							| 
									
										
										
										
											2018-06-12 09:58:15 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2015-01-02 09:12:01 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-21 22:02:54 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |      * Normalize and set directory string | 
					
						
							| 
									
										
										
										
											2014-06-06 02:40:04 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |      * @param string $dirName cache_dir or compile_dir | 
					
						
							|  |  |  |      * @param string $dir     filepath of folder | 
					
						
							| 
									
										
										
										
											2011-09-21 22:02:54 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     private function _normalizeDir($dirName, $dir) | 
					
						
							| 
									
										
										
										
											2011-09-21 22:02:54 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |         $this->{$dirName} = $this->_realpath(rtrim($dir, "/\\") . DIRECTORY_SEPARATOR, true); | 
					
						
							|  |  |  |         if (class_exists('Smarty_Internal_ErrorHandler', false)) { | 
					
						
							|  |  |  |             if (!isset(Smarty_Internal_ErrorHandler::$mutedDirectories[ $this->{$dirName} ])) { | 
					
						
							|  |  |  |                 Smarty_Internal_ErrorHandler::$mutedDirectories[ $this->{$dirName} ] = null; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2011-09-24 12:56:52 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2011-09-21 22:02:54 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-09-23 20:21:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-21 22:02:54 +00:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |      * Normalize template_dir or config_dir | 
					
						
							| 
									
										
										
										
											2011-09-21 22:02:54 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |      * @param bool $isConfig true for config_dir | 
					
						
							| 
									
										
										
										
											2011-09-21 22:02:54 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |     private function _normalizeTemplateConfig($isConfig) | 
					
						
							| 
									
										
										
										
											2011-09-21 22:02:54 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |         if ($isConfig) { | 
					
						
							|  |  |  |             $processed = &$this->_processedConfigDir; | 
					
						
							|  |  |  |             $dir = &$this->config_dir; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $processed = &$this->_processedTemplateDir; | 
					
						
							|  |  |  |             $dir = &$this->template_dir; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (!is_array($dir)) { | 
					
						
							|  |  |  |             $dir = (array)$dir; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         foreach ($dir as $k => $v) { | 
					
						
							|  |  |  |             if (!isset($processed[ $k ])) { | 
					
						
							| 
									
										
										
										
											2017-10-26 05:27:25 +02:00
										 |  |  |                 $dir[ $k ] = $v = $this->_realpath(rtrim($v, "/\\") . DIRECTORY_SEPARATOR, true); | 
					
						
							| 
									
										
										
										
											2017-10-21 13:14:14 +02:00
										 |  |  |                 $processed[ $k ] = true; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         $isConfig ? $this->_configDirNormalized = true : $this->_templateDirNormalized = true; | 
					
						
							|  |  |  |         $isConfig ? $this->_joined_config_dir = join('#', $this->config_dir) : | 
					
						
							|  |  |  |             $this->_joined_template_dir = join('#', $this->template_dir); | 
					
						
							| 
									
										
										
										
											2011-09-21 22:02:54 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-04-22 02:19:14 +00:00
										 |  |  | } |