Merge branch 'v3.1.19'

This commit is contained in:
Uwe Tews
2014-10-31 02:29:14 +01:00
131 changed files with 7459 additions and 5510 deletions

View File

@@ -1,12 +1,31 @@
===== 3.1.19-dev ===== (xx.xx.2014)
===== 3.1.20-dev ===== (xx.xx.2014)
===== 3.1.19 ===== (30.06.2014)
20.06.2014
- bugfix template variables could not be passed as paramter in {include} when the include was in a {nocache} section (topic 25131)
17.06.2014
- bugfix large template text of some charsets could cause parsing errors (topic 24630)
08.06.2014
- bugfix registered objects did not work after spelling fixes of 06.06.2014
- bugfix {block} tags within {literal} .. {/literal} got not displayed correctly (topic 25024)
- bugfix UNC WINDOWS PATH like "\\psf\path\to\dir" did not work as template directory (Issue 192)
- bugfix {html_image} security check did fail on files relative to basedir (Issue 191)
06.06.2014
- fixed PHPUnit outputFilterTrimWhitespaceTests.php assertion of test result
- fixed spelling, PHPDoc , minor errors, code cleanup
02.06.2014
- using multiple cwd with relative template dirs could result in identical compiled file names. (issue 194 and topic 25099)
19.04.2014
- bugfix calling createTemplate(template, data) with empty data array caused notice of array to string conversion (Issue 189)
- bugfix clearCompiledTemplate() did not delete files on WINDOWS when a compile_id was specified
18.04.2014
- revert bugfix of 5.4.2015 because %-e date format is not supported on all operating systems
- revert bugfix of 5.4.2014 because %-e date format is not supported on all operating systems
===== 3.1.18 ===== (07.04.2014)
06.04.2014

View File

@@ -1,7 +1,7 @@
<?php
/**
* Example Application
*
* @package Example-application
*/

View File

@@ -2,10 +2,10 @@
/**
* APC CacheResource
*
* CacheResource Implementation based on the KeyValueStore API to use
* memcache as the storage resource for Smarty's output caching.
* *
*
* @package CacheResource-examples
* @author Uwe Tews
*/
@@ -23,6 +23,7 @@ class Smarty_CacheResource_Apc extends Smarty_CacheResource_KeyValueStore
* Read values for a set of keys from cache
*
* @param array $keys list of keys to fetch
*
* @return array list of values with the given keys used as indexes
* @return boolean true on success, false on failure
*/
@@ -42,6 +43,7 @@ class Smarty_CacheResource_Apc extends Smarty_CacheResource_KeyValueStore
*
* @param array $keys list of values to save
* @param int $expire expiration time
*
* @return boolean true on success, false on failure
*/
protected function write(array $keys, $expire = null)
@@ -57,6 +59,7 @@ class Smarty_CacheResource_Apc extends Smarty_CacheResource_KeyValueStore
* Remove values from cache
*
* @param array $keys list of keys to delete
*
* @return boolean true on success, false on failure
*/
protected function delete(array $keys)

View File

@@ -2,10 +2,8 @@
/**
* Memcache CacheResource
*
* CacheResource Implementation based on the KeyValueStore API to use
* memcache as the storage resource for Smarty's output caching.
*
* Note that memcache has a limitation of 256 characters per cache-key.
* To avoid complications all cache-keys are translated to a sha1 hash.
*
@@ -16,6 +14,7 @@ class Smarty_CacheResource_Memcache extends Smarty_CacheResource_KeyValueStore
{
/**
* memcache instance
*
* @var Memcache
*/
protected $memcache = null;
@@ -30,6 +29,7 @@ class Smarty_CacheResource_Memcache extends Smarty_CacheResource_KeyValueStore
* Read values for a set of keys from cache
*
* @param array $keys list of keys to fetch
*
* @return array list of values with the given keys used as indexes
* @return boolean true on success, false on failure
*/
@@ -55,6 +55,7 @@ class Smarty_CacheResource_Memcache extends Smarty_CacheResource_KeyValueStore
*
* @param array $keys list of values to save
* @param int $expire expiration time
*
* @return boolean true on success, false on failure
*/
protected function write(array $keys, $expire = null)
@@ -71,6 +72,7 @@ class Smarty_CacheResource_Memcache extends Smarty_CacheResource_KeyValueStore
* Remove values from cache
*
* @param array $keys list of keys to delete
*
* @return boolean true on success, false on failure
*/
protected function delete(array $keys)
@@ -90,6 +92,6 @@ class Smarty_CacheResource_Memcache extends Smarty_CacheResource_KeyValueStore
*/
protected function purge()
{
return $this->memcache->flush();
$this->memcache->flush();
}
}

View File

@@ -2,10 +2,8 @@
/**
* MySQL CacheResource
*
* CacheResource Implementation based on the Custom API to use
* MySQL as the storage resource for Smarty's output caching.
*
* Table definition:
* <pre>CREATE TABLE IF NOT EXISTS `output_cache` (
* `id` CHAR(40) NOT NULL COMMENT 'sha1 hash',
@@ -36,7 +34,8 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom
{
try {
$this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty");
} catch (PDOException $e) {
}
catch (PDOException $e) {
throw new SmartyException('Mysql Resource failed: ' . $e->getMessage());
}
$this->fetch = $this->db->prepare('SELECT modified, content FROM output_cache WHERE id = :id');
@@ -54,6 +53,7 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom
* @param string $compile_id compile id
* @param string $content cached content
* @param integer $mtime cache modification timestamp (epoch)
*
* @return void
*/
protected function fetch($id, $name, $cache_id, $compile_id, &$content, &$mtime)
@@ -74,10 +74,12 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom
* Fetch cached content's modification timestamp from data source
*
* @note implementing this method is optional. Only implement it if modification times can be accessed faster than loading the complete cached content.
*
* @param string $id unique cache content identifier
* @param string $name template name
* @param string $cache_id cache id
* @param string $compile_id compile id
*
* @return integer|boolean timestamp (epoch) the template was modified, or false if not found
*/
protected function fetchTimestamp($id, $name, $cache_id, $compile_id)
@@ -98,6 +100,7 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom
* @param string $compile_id compile id
* @param integer|null $exp_time seconds till expiration time in seconds or null
* @param string $content content to cache
*
* @return boolean success
*/
protected function save($id, $name, $cache_id, $compile_id, $exp_time, $content)
@@ -120,6 +123,7 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom
* @param string $cache_id cache id
* @param string $compile_id compile id
* @param integer|null $exp_time seconds till expiration or null
*
* @return integer number of deleted caches
*/
protected function delete($name, $cache_id, $compile_id, $exp_time)

View File

@@ -2,7 +2,6 @@
/**
* Extends All Resource
*
* Resource Implementation modifying the extends-Resource to walk
* through the template_dirs and inherit all templates of the same name
*
@@ -16,6 +15,7 @@ class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends
*
* @param Smarty_Template_Source $source source object
* @param Smarty_Internal_Template $_template template object
*
* @return void
*/
public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
@@ -31,7 +31,9 @@ class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends
}
$sources[$s->uid] = $s;
$uid .= $s->filepath;
} catch (SmartyException $e) {}
}
catch (SmartyException $e) {
}
}
if (!$sources) {

View File

@@ -2,10 +2,8 @@
/**
* MySQL Resource
*
* Resource Implementation based on the Custom API to use
* MySQL as the storage resource for Smarty's templates and configs.
*
* Table definition:
* <pre>CREATE TABLE IF NOT EXISTS `templates` (
* `name` varchar(100) NOT NULL,
@@ -13,7 +11,6 @@
* `source` text,
* PRIMARY KEY (`name`)
* ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre>
*
* Demo data:
* <pre>INSERT INTO `templates` (`name`, `modified`, `source`) VALUES ('test.tpl', "2010-12-25 22:00:00", '{$x="hello world"}{$x}');</pre>
*
@@ -33,7 +30,8 @@ class Smarty_Resource_Mysql extends Smarty_Resource_Custom
{
try {
$this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty");
} catch (PDOException $e) {
}
catch (PDOException $e) {
throw new SmartyException('Mysql Resource failed: ' . $e->getMessage());
}
$this->fetch = $this->db->prepare('SELECT modified, source FROM templates WHERE name = :name');
@@ -46,6 +44,7 @@ class Smarty_Resource_Mysql extends Smarty_Resource_Custom
* @param string $name template name
* @param string $source template source
* @param integer $mtime template modification timestamp (epoch)
*
* @return void
*/
protected function fetch($name, &$source, &$mtime)
@@ -66,7 +65,9 @@ class Smarty_Resource_Mysql extends Smarty_Resource_Custom
* Fetch a template's modification time from database
*
* @note implementing this method is optional. Only implement it if modification times can be accessed faster than loading the comple template source.
*
* @param string $name template name
*
* @return integer timestamp (epoch) the template was modified
*/
protected function fetchTimestamp($name)

View File

@@ -2,13 +2,10 @@
/**
* MySQL Resource
*
* Resource Implementation based on the Custom API to use
* MySQL as the storage resource for Smarty's templates and configs.
*
* Note that this MySQL implementation fetches the source and timestamps in
* a single database query, instead of two separate like resource.mysql.php does.
*
* Table definition:
* <pre>CREATE TABLE IF NOT EXISTS `templates` (
* `name` varchar(100) NOT NULL,
@@ -16,7 +13,6 @@
* `source` text,
* PRIMARY KEY (`name`)
* ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre>
*
* Demo data:
* <pre>INSERT INTO `templates` (`name`, `modified`, `source`) VALUES ('test.tpl', "2010-12-25 22:00:00", '{$x="hello world"}{$x}');</pre>
*
@@ -34,7 +30,8 @@ class Smarty_Resource_Mysqls extends Smarty_Resource_Custom
{
try {
$this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty");
} catch (PDOException $e) {
}
catch (PDOException $e) {
throw new SmartyException('Mysql Resource failed: ' . $e->getMessage());
}
$this->fetch = $this->db->prepare('SELECT modified, source FROM templates WHERE name = :name');
@@ -46,6 +43,7 @@ class Smarty_Resource_Mysqls extends Smarty_Resource_Custom
* @param string $name template name
* @param string $source template source
* @param integer $mtime template modification timestamp (epoch)
*
* @return void
*/
protected function fetch($name, &$source, &$mtime)

View File

@@ -38,9 +38,14 @@ loop=$FirstName}
An example of section looped key values:
{section name=sec1 loop=$contacts}
phone: {$contacts[sec1].phone}<br>
fax: {$contacts[sec1].fax}<br>
cell: {$contacts[sec1].cell}<br>
phone: {$contacts[sec1].phone}
<br>
fax: {$contacts[sec1].fax}
<br>
cell: {$contacts[sec1].cell}
<br>
{/section}
<p>

View File

@@ -3,21 +3,17 @@
* Project: Smarty: the PHP compiling template engine
* File: Smarty.class.php
* SVN: $Id$
*
* 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.
*
* 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.
*
* 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
@@ -102,6 +98,7 @@ include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_cacheresource_file.php';
/**
* This is the main Smarty class
*
* @package Smarty
*/
class Smarty extends Smarty_Internal_TemplateBase
@@ -206,111 +203,133 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* auto literal on delimiters with whitspace
*
* @var boolean
*/
public $auto_literal = true;
/**
* display error on not assigned variables
*
* @var boolean
*/
public $error_unassigned = false;
/**
* look up relative filepaths in include_path
*
* @var boolean
*/
public $use_include_path = false;
/**
* template directory
*
* @var array
*/
private $template_dir = array();
/**
* joined template directory string used in cache keys
*
* @var string
*/
public $joined_template_dir = null;
/**
* joined config directory string used in cache keys
*
* @var string
*/
public $joined_config_dir = null;
/**
* default template handler
*
* @var callable
*/
public $default_template_handler_func = null;
/**
* default config handler
*
* @var callable
*/
public $default_config_handler_func = null;
/**
* default plugin handler
*
* @var callable
*/
public $default_plugin_handler_func = null;
/**
* compile directory
*
* @var string
*/
private $compile_dir = null;
/**
* plugins directory
*
* @var array
*/
private $plugins_dir = array();
/**
* cache directory
*
* @var string
*/
private $cache_dir = null;
/**
* config directory
*
* @var array
*/
private $config_dir = array();
/**
* force template compiling?
*
* @var boolean
*/
public $force_compile = false;
/**
* check template for modifications?
*
* @var boolean
*/
public $compile_check = true;
/**
* use sub dirs for compiled/cached files?
*
* @var boolean
*/
public $use_sub_dirs = false;
/**
* allow ambiguous resources (that are made unique by the resource handler)
*
* @var boolean
*/
public $allow_ambiguous_resources = false;
/**
* caching enabled
*
* @var boolean
*/
public $caching = false;
/**
* merge compiled includes
*
* @var boolean
*/
public $merge_compiled_includes = false;
/**
* template inheritance merge compiled includes
*
* @var boolean
*/
public $inheritance_merge_compiled_includes = true;
/**
* cache lifetime in seconds
*
* @var integer
*/
public $cache_lifetime = 3600;
/**
* force cache file creation
*
* @var boolean
*/
public $force_cache = false;
@@ -330,11 +349,13 @@ class Smarty extends Smarty_Internal_TemplateBase
public $compile_id = null;
/**
* template left-delimiter
*
* @var string
*/
public $left_delimiter = "{";
/**
* template right-delimiter
*
* @var string
*/
public $right_delimiter = "}";
@@ -343,7 +364,6 @@ class Smarty extends Smarty_Internal_TemplateBase
*/
/**
* class name
*
* This should be instance of Smarty_Security.
*
* @var string
@@ -370,7 +390,6 @@ class Smarty extends Smarty_Internal_TemplateBase
public $allow_php_templates = false;
/**
* Should compiled-templates be prevented from being called directly?
*
* {@internal
* Currently used by Smarty_Internal_Template only.
* }}
@@ -381,7 +400,6 @@ class Smarty extends Smarty_Internal_TemplateBase
/**#@-*/
/**
* debug mode
*
* Setting this to true enables the debug-console.
*
* @var boolean
@@ -393,12 +411,12 @@ class Smarty extends Smarty_Internal_TemplateBase
* <li>NONE => no debugging control allowed</li>
* <li>URL => enable debugging when SMARTY_DEBUG is found in the URL.</li>
* </ul>
*
* @var string
*/
public $debugging_ctrl = 'NONE';
/**
* Name of debugging URL-param.
*
* Only used when $debugging_ctrl is set to 'URL'.
* The name of the URL-parameter that activates debugging.
*
@@ -407,16 +425,19 @@ class Smarty extends Smarty_Internal_TemplateBase
public $smarty_debug_id = 'SMARTY_DEBUG';
/**
* Path of debug template.
*
* @var string
*/
public $debug_tpl = null;
/**
* When set, smarty uses this value as error_reporting-level.
*
* @var int
*/
public $error_reporting = null;
/**
* Internal flag for getTags()
*
* @var boolean
*/
public $get_used_tags = false;
@@ -427,16 +448,19 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* Controls whether variables with the same name overwrite each other.
*
* @var boolean
*/
public $config_overwrite = true;
/**
* Controls whether config values of on/true/yes and off/false/no get converted to boolean.
*
* @var boolean
*/
public $config_booleanize = true;
/**
* Controls whether hidden config sections/vars are read from the file.
*
* @var boolean
*/
public $config_read_hidden = false;
@@ -449,16 +473,19 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* locking concurrent compiles
*
* @var boolean
*/
public $compile_locking = true;
/**
* Controls whether cache resources should emply locking mechanism
*
* @var boolean
*/
public $cache_locking = false;
/**
* seconds to wait for acquiring a lock before ignoring the write lock
*
* @var float
*/
public $locking_timeout = 10;
@@ -467,19 +494,19 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* global template functions
*
* @var array
*/
public $template_functions = array();
/**
* resource type used if none given
*
* Must be an valid key of $registered_resources.
*
* @var string
*/
public $default_resource_type = 'file';
/**
* caching type
*
* Must be an element of $cache_resource_types.
*
* @var string
@@ -487,121 +514,145 @@ class Smarty extends Smarty_Internal_TemplateBase
public $caching_type = 'file';
/**
* internal config properties
*
* @var array
*/
public $properties = array();
/**
* config type
*
* @var string
*/
public $default_config_type = 'file';
/**
* cached template objects
*
* @var array
*/
public $template_objects = array();
/**
* check If-Modified-Since headers
*
* @var boolean
*/
public $cache_modified_check = false;
/**
* registered plugins
*
* @var array
*/
public $registered_plugins = array();
/**
* plugin search order
*
* @var array
*/
public $plugin_search_order = array('function', 'block', 'compiler', 'class');
/**
* registered objects
*
* @var array
*/
public $registered_objects = array();
/**
* registered classes
*
* @var array
*/
public $registered_classes = array();
/**
* registered filters
*
* @var array
*/
public $registered_filters = array();
/**
* registered resources
*
* @var array
*/
public $registered_resources = array();
/**
* resource handler cache
*
* @var array
*/
public $_resource_handlers = array();
/**
* registered cache resources
*
* @var array
*/
public $registered_cache_resources = array();
/**
* cache resource handler cache
*
* @var array
*/
public $_cacheresource_handlers = array();
/**
* autoload filter
*
* @var array
*/
public $autoload_filters = array();
/**
* default modifier
*
* @var array
*/
public $default_modifiers = array();
/**
* autoescape variable output
*
* @var boolean
*/
public $escape_html = false;
/**
* global internal smarty vars
*
* @var array
*/
public static $_smarty_vars = array();
/**
* start time for execution time calculation
*
* @var int
*/
public $start_time = 0;
/**
* default file permissions
*
* @var int
*/
public $_file_perms = 0644;
/**
* default dir permissions
*
* @var int
*/
public $_dir_perms = 0771;
/**
* block tag hierarchy
*
* @var array
*/
public $_tag_stack = array();
/**
* self pointer to Smarty object
*
* @var Smarty
*/
public $smarty;
/**
* required by the compiler for BC
*
* @var string
*/
public $_current_file = null;
/**
* internal flag to enable parser debugging
*
* @var bool
*/
public $_parserdebug = false;
@@ -615,7 +666,7 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* Initialize new Smarty object
*
*/
public function __construct()
{
@@ -656,11 +707,11 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* <<magic>> Generic getter.
*
* Calls the appropriate getter function.
* Issues an E_USER_NOTICE if no valid getter is found.
*
* @param string $name property name
*
* @return mixed
*/
public function __get($name)
@@ -682,7 +733,6 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* <<magic>> Generic setter.
*
* Calls the appropriate setter function.
* Issues an E_USER_NOTICE if no valid setter is found.
*
@@ -710,6 +760,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* Check if a template resource exists
*
* @param string $resource_name template name
*
* @return boolean status
*/
public function templateExists($resource_name)
@@ -727,8 +778,8 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* Returns a single or all global variables
*
* @param object $smarty
* @param string $varname variable name or null
*
* @return string variable value or or array of variables
*/
public function getGlobal($varname = null)
@@ -754,6 +805,7 @@ class Smarty extends Smarty_Internal_TemplateBase
*
* @param integer $exp_time expiration time
* @param string $type resource type
*
* @return integer number of cache files deleted
*/
public function clearAllCache($exp_time = null, $type = null)
@@ -773,6 +825,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* @param string $compile_id compile id
* @param integer $exp_time expiration time
* @param string $type resource type
*
* @return integer number of cache files deleted
*/
public function clearCache($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null)
@@ -788,6 +841,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* Loads security class and enables security
*
* @param string|Smarty_Security $security_class if a string is used, it must be class-name
*
* @return Smarty current Smarty instance for chaining
* @throws SmartyException when an invalid class name is provided
*/
@@ -816,6 +870,7 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* Disable security
*
* @return Smarty current Smarty instance for chaining
*/
public function disableSecurity()
@@ -829,13 +884,14 @@ class Smarty extends Smarty_Internal_TemplateBase
* Set template directory
*
* @param string|array $template_dir directory(s) of template sources
*
* @return Smarty current Smarty instance for chaining
*/
public function setTemplateDir($template_dir)
{
$this->template_dir = array();
foreach ((array) $template_dir as $k => $v) {
$this->template_dir[$k] = str_replace(array('//','\\\\'), DS, rtrim($v, '/\\')) . DS;
$this->template_dir[$k] = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS;
}
$this->joined_template_dir = join(DIRECTORY_SEPARATOR, $this->template_dir);
@@ -848,6 +904,7 @@ class Smarty extends Smarty_Internal_TemplateBase
*
* @param string|array $template_dir directory(s) of template sources
* @param string $key of the array element to assign the template dir to
*
* @return Smarty current Smarty instance for chaining
* @throws SmartyException when the given template directory is not valid
*/
@@ -858,7 +915,7 @@ class Smarty extends Smarty_Internal_TemplateBase
if (is_array($template_dir)) {
foreach ($template_dir as $k => $v) {
$v = str_replace(array('//','\\\\'), DS, rtrim($v, '/\\')) . DS;
$v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS;
if (is_int($k)) {
// indexes are not merged but appended
$this->template_dir[] = $v;
@@ -868,7 +925,7 @@ class Smarty extends Smarty_Internal_TemplateBase
}
}
} else {
$v = str_replace(array('//','\\\\'), DS, rtrim($template_dir, '/\\')) . DS;
$v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($template_dir, '/\\')) . DS;
if ($key !== null) {
// override directory at specified index
$this->template_dir[$key] = $v;
@@ -885,7 +942,8 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* Get template directories
*
* @param mixed index of directory to get, null to get all
* @param mixed $index index of directory to get, null to get all
*
* @return array|string list of template directories, or directory of $index
*/
public function getTemplateDir($index = null)
@@ -900,14 +958,15 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* Set config directory
*
* @param string|array $template_dir directory(s) of configuration sources
* @param $config_dir
*
* @return Smarty current Smarty instance for chaining
*/
public function setConfigDir($config_dir)
{
$this->config_dir = array();
foreach ((array) $config_dir as $k => $v) {
$this->config_dir[$k] = str_replace(array('//','\\\\'), DS, rtrim($v, '/\\')) . DS;
$this->config_dir[$k] = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS;
}
$this->joined_config_dir = join(DIRECTORY_SEPARATOR, $this->config_dir);
@@ -919,7 +978,8 @@ class Smarty extends Smarty_Internal_TemplateBase
* Add config directory(s)
*
* @param string|array $config_dir directory(s) of config sources
* @param string key of the array element to assign the config dir to
* @param mixed $key key of the array element to assign the config dir to
*
* @return Smarty current Smarty instance for chaining
*/
public function addConfigDir($config_dir, $key = null)
@@ -929,7 +989,7 @@ class Smarty extends Smarty_Internal_TemplateBase
if (is_array($config_dir)) {
foreach ($config_dir as $k => $v) {
$v = str_replace(array('//','\\\\'), DS, rtrim($v, '/\\')) . DS;
$v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS;
if (is_int($k)) {
// indexes are not merged but appended
$this->config_dir[] = $v;
@@ -939,7 +999,7 @@ class Smarty extends Smarty_Internal_TemplateBase
}
}
} else {
$v = str_replace(array('//','\\\\'), DS, rtrim($config_dir, '/\\')) . DS;
$v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($config_dir, '/\\')) . DS;
if ($key !== null) {
// override directory at specified index
$this->config_dir[$key] = rtrim($v, '/\\') . DS;
@@ -957,7 +1017,8 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* Get config directory
*
* @param mixed index of directory to get, null to get all
* @param mixed $index index of directory to get, null to get all
*
* @return array|string configuration directory
*/
public function getConfigDir($index = null)
@@ -973,6 +1034,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* Set plugins directory
*
* @param string|array $plugins_dir directory(s) of plugins
*
* @return Smarty current Smarty instance for chaining
*/
public function setPluginsDir($plugins_dir)
@@ -988,8 +1050,8 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* Adds directory of plugin files
*
* @param object $smarty
* @param string $ |array $ plugins folder
* @param $plugins_dir
*
* @return Smarty current Smarty instance for chaining
*/
public function addPluginsDir($plugins_dir)
@@ -1031,6 +1093,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* Set compile directory
*
* @param string $compile_dir directory to store compiled templates in
*
* @return Smarty current Smarty instance for chaining
*/
public function setCompileDir($compile_dir)
@@ -1057,6 +1120,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* Set cache directory
*
* @param string $cache_dir directory to store cached templates in
*
* @return Smarty current Smarty instance for chaining
*/
public function setCacheDir($cache_dir)
@@ -1083,6 +1147,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* Set default modifiers
*
* @param array|string $modifiers modifier or list of modifiers to set
*
* @return Smarty current Smarty instance for chaining
*/
public function setDefaultModifiers($modifiers)
@@ -1096,6 +1161,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* Add default modifiers
*
* @param array|string $modifiers modifier or list of modifiers to add
*
* @return Smarty current Smarty instance for chaining
*/
public function addDefaultModifiers($modifiers)
@@ -1119,12 +1185,12 @@ class Smarty extends Smarty_Internal_TemplateBase
return $this->default_modifiers;
}
/**
* Set autoload filters
*
* @param array $filters filters to load automatically
* @param string $type "pre", "output", … specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types
*
* @return Smarty current Smarty instance for chaining
*/
public function setAutoloadFilters($filters, $type = null)
@@ -1143,6 +1209,7 @@ class Smarty extends Smarty_Internal_TemplateBase
*
* @param array $filters filters to load automatically
* @param string $type "pre", "output", … specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types
*
* @return Smarty current Smarty instance for chaining
*/
public function addAutoloadFilters($filters, $type = null)
@@ -1170,6 +1237,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* Get autoload filters
*
* @param string $type type of filter to get autoloads for. Defaults to all autoload filters
*
* @return array array( 'type1' => array( 'filter1', 'filter2', … ) ) or array( 'filter1', 'filter2', …) if $type was specified
*/
public function getAutoloadFilters($type = null)
@@ -1195,6 +1263,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* set the debug template
*
* @param string $tpl_name
*
* @return Smarty current Smarty instance for chaining
* @throws SmartyException if file is not readable
*/
@@ -1216,6 +1285,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* @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
*
* @return object template object
*/
public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null, $do_clone = true)
@@ -1275,7 +1345,6 @@ class Smarty extends Smarty_Internal_TemplateBase
return $tpl;
}
/**
* Takes unknown classes and loads plugin files for them
* class name format: Smarty_PluginType_PluginName
@@ -1283,6 +1352,8 @@ class Smarty extends Smarty_Internal_TemplateBase
*
* @param string $plugin_name class plugin name to load
* @param bool $check check if already loaded
*
* @throws SmartyException
* @return string |boolean filepath of loaded file or false
*/
public function loadPlugin($plugin_name, $check = true)
@@ -1297,8 +1368,6 @@ class Smarty extends Smarty_Internal_TemplateBase
// count($_name_parts) < 3 === !isset($_name_parts[2])
if (!isset($_name_parts[2]) || strtolower($_name_parts[0]) !== 'smarty') {
throw new SmartyException("plugin {$plugin_name} is not a valid name format");
return false;
}
// if type is "internal", get plugin from sysplugins
if (strtolower($_name_parts[1]) == 'internal') {
@@ -1355,6 +1424,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* @param bool $force_compile force all to recompile
* @param int $time_limit
* @param int $max_errors
*
* @return integer number of template files recompiled
*/
public function compileAllTemplates($extension = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null)
@@ -1369,6 +1439,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* @param bool $force_compile force all to recompile
* @param int $time_limit
* @param int $max_errors
*
* @return integer number of template files recompiled
*/
public function compileAllConfig($extension = '.conf', $force_compile = false, $time_limit = 0, $max_errors = null)
@@ -1382,6 +1453,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* @param string $resource_name template name
* @param string $compile_id compile id
* @param integer $exp_time expiration time
*
* @return integer number of template files deleted
*/
public function clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null)
@@ -1389,11 +1461,11 @@ class Smarty extends Smarty_Internal_TemplateBase
return Smarty_Internal_Utility::clearCompiledTemplate($resource_name, $compile_id, $exp_time, $this);
}
/**
* Return array of tag/attributes of all tags used by an template
*
* @param object $templae template object
* @param Smarty_Internal_Template $template
*
* @return array of tag/attributes
*/
public function getTags(Smarty_Internal_Template $template)
@@ -1405,6 +1477,7 @@ class Smarty extends Smarty_Internal_TemplateBase
* Run installation test
*
* @param array $errors Array to write errors into, rather than outputting them
*
* @return boolean true if setup is fine, false if something is wrong
*/
public function testInstall(&$errors = null)
@@ -1416,7 +1489,13 @@ class Smarty extends Smarty_Internal_TemplateBase
* Error Handler to mute expected messages
*
* @link http://php.net/set_error_handler
*
* @param integer $errno Error level
* @param $errstr
* @param $errfile
* @param $errline
* @param $errcontext
*
* @return boolean
*/
public static function mutingErrorHandler($errno, $errstr, $errfile, $errline, $errcontext)
@@ -1519,6 +1598,7 @@ if (Smarty::$_CHARSET !== 'UTF-8') {
/**
* Smarty exception class
*
* @package Smarty
*/
class SmartyException extends Exception
@@ -1533,6 +1613,7 @@ class SmartyException extends Exception
/**
* Smarty compiler exception class
*
* @package Smarty
*/
class SmartyCompilerException extends SmartyException
@@ -1541,23 +1622,28 @@ class SmartyCompilerException extends SmartyException
{
return ' --> Smarty Compiler: ' . $this->message . ' <-- ';
}
/**
* The line number of the template error
*
* @type int|null
*/
public $line = null;
/**
* The template source snippet relating to the error
*
* @type string|null
*/
public $source = null;
/**
* The raw text of the error message
*
* @type string|null
*/
public $desc = null;
/**
* The resource identifier or template name
*
* @type string|null
*/
public $template = null;

View File

@@ -3,21 +3,17 @@
* Project: Smarty: the PHP compiling template engine
* File: SmartyBC.class.php
* SVN: $Id: $
*
* 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.
*
* 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.
*
* 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
@@ -43,6 +39,7 @@ class SmartyBC extends Smarty
{
/**
* Smarty 2 BC
*
* @var string
*/
public $_version = self::SMARTY_VERSION;
@@ -122,7 +119,10 @@ class SmartyBC extends Smarty
* @param object $object_impl the referenced PHP object to register
* @param array $allowed list of allowed methods (empty = all)
* @param boolean $smarty_args smarty argument format, else traditional
* @param array $block_functs list of methods that are block format
* @param array $block_methods list of methods that are block format
*
* @throws SmartyException
* @internal param array $block_functs list of methods that are block format
*/
public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
{
@@ -309,6 +309,7 @@ class SmartyBC extends Smarty
* @param string $cache_id name of cache_id
* @param string $compile_id name of compile_id
* @param string $exp_time expiration time
*
* @return boolean
*/
public function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)
@@ -320,6 +321,7 @@ class SmartyBC extends Smarty
* clear the entire contents of cache (all templates)
*
* @param string $exp_time expire time
*
* @return boolean
*/
public function clear_all_cache($exp_time = null)
@@ -333,6 +335,7 @@ class SmartyBC extends Smarty
* @param string $tpl_file name of template file
* @param string $cache_id
* @param string $compile_id
*
* @return boolean
*/
public function is_cached($tpl_file, $cache_id = null, $compile_id = null)
@@ -356,6 +359,7 @@ class SmartyBC extends Smarty
* @param string $tpl_file
* @param string $compile_id
* @param string $exp_time
*
* @return boolean results of {@link smarty_core_rm_auto()}
*/
public function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null)
@@ -367,6 +371,7 @@ class SmartyBC extends Smarty
* Checks whether requested template exists.
*
* @param string $tpl_file
*
* @return boolean
*/
public function template_exists($tpl_file)
@@ -378,6 +383,7 @@ class SmartyBC extends Smarty
* Returns an array containing template variables
*
* @param string $name
*
* @return array
*/
public function get_template_vars($name = null)
@@ -389,6 +395,7 @@ class SmartyBC extends Smarty
* Returns an array containing config variables
*
* @param string $name
*
* @return array
*/
public function get_config_vars($name = null)
@@ -412,6 +419,7 @@ class SmartyBC extends Smarty
* return a reference to a registered object
*
* @param string $name
*
* @return object
*/
public function get_registered_object($name)
@@ -439,7 +447,6 @@ class SmartyBC extends Smarty
{
trigger_error("Smarty error: $error_msg", $error_type);
}
}
/**
@@ -449,6 +456,7 @@ class SmartyBC extends Smarty
* @param string $content contents of the block
* @param object $template template object
* @param boolean &$repeat repeat flag
*
* @return string content re-formatted
*/
function smarty_php_tag($params, $content, $template, &$repeat)

View File

@@ -81,21 +81,23 @@ td {
#table_config_vars th {
color: maroon;
}
{/literal}
</style>
</head>
<body>
<h1>Smarty Debug Console - {if isset($template_name)}{$template_name|debug_print_var nofilter}{else}Total Time {$execution_time|string_format:"%.5f"}{/if}</h1>
<h1>Smarty Debug Console
- {if isset($template_name)}{$template_name|debug_print_var nofilter}{else}Total Time {$execution_time|string_format:"%.5f"}{/if}</h1>
{if !empty($template_data)}
<h2>included templates &amp; config files (load time in seconds)</h2>
<div>
{foreach $template_data as $template}
<font color=brown>{$template.name}</font>
<span class="exectime">
(compile {$template['compile_time']|string_format:"%.5f"}) (render {$template['render_time']|string_format:"%.5f"}) (cache {$template['cache_time']|string_format:"%.5f"})
(compile {$template['compile_time']|string_format:"%.5f"}) (render {$template['render_time']|string_format:"%.5f"}) (cache {$template['cache_time']|string_format:"%.5f"}
)
</span>
<br>
{/foreach}
@@ -108,7 +110,8 @@ td {
{foreach $assigned_vars as $vars}
<tr class="{if $vars@iteration % 2 eq 0}odd{else}even{/if}">
<th>${$vars@key|escape:'html'}</th>
<td>{$vars|debug_print_var nofilter}</td></tr>
<td>{$vars|debug_print_var nofilter}</td>
</tr>
{/foreach}
</table>
@@ -118,7 +121,8 @@ td {
{foreach $config_vars as $vars}
<tr class="{if $vars@iteration % 2 eq 0}odd{else}even{/if}">
<th>{$vars@key|escape:'html'}</th>
<td>{$vars|debug_print_var nofilter}</td></tr>
<td>{$vars|debug_print_var nofilter}</td>
</tr>
{/foreach}
</table>

View File

@@ -8,7 +8,6 @@
/**
* Smarty {textformat}{/textformat} block plugin
*
* Type: block function<br>
* Name: textformat<br>
* Purpose: format text a certain way with preset styles
@@ -25,10 +24,12 @@
*
* @link http://www.smarty.net/manual/en/language.function.textformat.php {textformat}
* (Smarty online manual)
*
* @param array $params parameters
* @param string $content contents of the block
* @param Smarty_Internal_Template $template template object
* @param boolean &$repeat repeat flag
*
* @return string content re-formatted
* @author Monte Ohrt <monte at ohrt dot com>
*/
@@ -76,7 +77,6 @@ function smarty_block_textformat($params, $content, $template, &$repeat)
}
// split into paragraphs
$_paragraphs = preg_split('![\r\n]{2}!', $content);
$_output = '';
foreach ($_paragraphs as &$_paragraph) {
if (!$_paragraph) {

View File

@@ -1,13 +1,13 @@
<?php
/**
* Smarty plugin
*
* @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {counter} function plugin
*
* Type: function<br>
* Name: counter<br>
* Purpose: print out a counter value
@@ -15,8 +15,10 @@
* @author Monte Ohrt <monte at ohrt dot com>
* @link http://www.smarty.net/manual/en/language.function.counter.php {counter}
* (Smarty online manual)
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @return string|null
*/
function smarty_function_counter($params, $template)
@@ -66,11 +68,11 @@ function smarty_function_counter($params, $template)
$counter['direction'] = $params['direction'];
}
if ($counter['direction'] == "down")
if ($counter['direction'] == "down") {
$counter['count'] -= $counter['skip'];
else
} else {
$counter['count'] += $counter['skip'];
}
return $retval;
}

View File

@@ -8,7 +8,6 @@
/**
* Smarty {cycle} function plugin
*
* Type: function<br>
* Name: cycle<br>
* Date: May 3, 2002<br>
@@ -38,8 +37,10 @@
* @author credit to Gerard <gerard@interfold.com>
* @author credit to Jason Sweat <jsweat_php@yahoo.com>
* @version 1.3
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @return string|null
*/
@@ -60,7 +61,8 @@ function smarty_function_cycle($params, $template)
}
} else {
if (isset($cycle_vars[$name]['values'])
&& $cycle_vars[$name]['values'] != $params['values'] ) {
&& $cycle_vars[$name]['values'] != $params['values']
) {
$cycle_vars[$name]['index'] = 0;
}
$cycle_vars[$name]['values'] = $params['values'];

View File

@@ -8,7 +8,6 @@
/**
* Smarty {fetch} plugin
*
* Type: function<br>
* Name: fetch<br>
* Purpose: fetch file, web or ftp data and display results
@@ -16,8 +15,11 @@
* @link http://www.smarty.net/manual/en/language.function.fetch.php {fetch}
* (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @throws SmartyException
* @return string|null if the assign parameter is passed, Smarty assigns the result to a template variable
*/
function smarty_function_fetch($params, $template)

View File

@@ -8,7 +8,6 @@
/**
* Smarty {html_checkboxes} function plugin
*
* File: function.html_checkboxes.php<br>
* Type: function<br>
* Name: html_checkboxes<br>
@@ -37,8 +36,10 @@
* @author Christopher Kvarme <christopher.kvarme@flashjab.com>
* @author credits to Monte Ohrt <monte at ohrt dot com>
* @version 1.0
*
* @param array $params parameters
* @param object $template template object
*
* @return string
* @uses smarty_function_escape_special_chars()
*/
@@ -116,7 +117,8 @@ function smarty_function_html_checkboxes($params, $template)
case 'assign':
break;
case 'strict': break;
case 'strict':
break;
case 'disabled':
case 'readonly':
@@ -143,8 +145,9 @@ function smarty_function_html_checkboxes($params, $template)
}
}
if (!isset($options) && !isset($values))
return ''; /* raise error here? */
if (!isset($options) && !isset($values)) {
return '';
} /* raise error here? */
$_html_result = array();
@@ -164,7 +167,6 @@ function smarty_function_html_checkboxes($params, $template)
} else {
return implode("\n", $_html_result);
}
}
function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids, $escape = true)

View File

@@ -8,7 +8,6 @@
/**
* Smarty {html_image} function plugin
*
* Type: function<br>
* Name: html_image<br>
* Date: Feb 24, 2003<br>
@@ -29,8 +28,11 @@
* @author Monte Ohrt <monte at ohrt dot com>
* @author credits to Duda <duda@big.hu>
* @version 1.0
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @throws SmartyException
* @return string
* @uses smarty_function_escape_special_chars()
*/
@@ -112,7 +114,7 @@ function smarty_function_html_image($params, $template)
}
} else {
// local file
if (!$template->smarty->security_policy->isTrustedResourceDir($params['file'])) {
if (!$template->smarty->security_policy->isTrustedResourceDir($_image_path)) {
return;
}
}

View File

@@ -8,7 +8,6 @@
/**
* Smarty {html_options} function plugin
*
* Type: function<br>
* Name: html_options<br>
* Purpose: Prints the list of <option> tags generated from
@@ -28,12 +27,13 @@
* (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
* @author Ralf Strehle (minor optimization) <ralf dot strehle at yahoo dot de>
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @return string
* @uses smarty_function_escape_special_chars()
*/
function smarty_function_html_options($params, $template)
function smarty_function_html_options($params)
{
require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
@@ -91,7 +91,8 @@ function smarty_function_html_options($params, $template)
}
break;
case 'strict': break;
case 'strict':
break;
case 'disabled':
case 'readonly':

View File

@@ -8,7 +8,6 @@
/**
* Smarty {html_radios} function plugin
*
* File: function.html_radios.php<br>
* Type: function<br>
* Name: html_radios<br>
@@ -37,8 +36,10 @@
* @author Christopher Kvarme <christopher.kvarme@flashjab.com>
* @author credits to Monte Ohrt <monte at ohrt dot com>
* @version 1.0
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @return string
* @uses smarty_function_escape_special_chars()
*/
@@ -102,7 +103,8 @@ function smarty_function_html_radios($params, $template)
case 'assign':
break;
case 'strict': break;
case 'strict':
break;
case 'disabled':
case 'readonly':

View File

@@ -17,11 +17,9 @@ require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
/**
* Smarty {html_select_date} plugin
*
* Type: function<br>
* Name: html_select_date<br>
* Purpose: Prints the dropdowns for date selection.
*
* ChangeLog:
* <pre>
* - 1.0 initial release
@@ -47,11 +45,12 @@ require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
* @author Andrei Zmievski
* @author Monte Ohrt <monte at ohrt dot com>
* @author Rodney Rehm
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @return string
*/
function smarty_function_html_select_date($params, $template)
function smarty_function_html_select_date($params)
{
// generate timestamps used for month names only
static $_month_timestamps = null;
@@ -187,7 +186,6 @@ function smarty_function_html_select_date($params, $template)
? $params['time'][$prefix . $_elementName]
: date($_elementKey);
}
$time = mktime(0, 0, 0, $_month, $_day, $_year);
} elseif (isset($params['time'][$field_array][$prefix . 'Year'])) {
// $_REQUEST given
foreach (array('Y' => 'Year', 'm' => 'Month', 'd' => 'Day') as $_elementKey => $_elementName) {
@@ -196,7 +194,6 @@ function smarty_function_html_select_date($params, $template)
? $params['time'][$field_array][$prefix . $_elementName]
: date($_elementKey);
}
$time = mktime(0, 0, 0, $_month, $_day, $_year);
} else {
// no date found, use NOW
list($_year, $_month, $_day) = $time = explode('-', date('Y-m-d'));
@@ -219,9 +216,9 @@ function smarty_function_html_select_date($params, $template)
if ($t === null) {
$$key = (int) $_current_year;
} elseif ($t[0] == '+') {
$$key = (int) ($_current_year + trim(substr($t, 1)));
$$key = (int) ($_current_year + (int)trim(substr($t, 1)));
} elseif ($t[0] == '-') {
$$key = (int) ($_current_year - trim(substr($t, 1)));
$$key = (int) ($_current_year - (int)trim(substr($t, 1)));
} else {
$$key = (int) $$key;
}
@@ -236,7 +233,6 @@ function smarty_function_html_select_date($params, $template)
// generate year <select> or <input>
if ($display_years) {
$_html_years = '';
$_extra = '';
$_name = $field_array ? ($field_array . '[' . $prefix . 'Year]') : ($prefix . 'Year');
if ($all_extra) {
@@ -277,7 +273,6 @@ function smarty_function_html_select_date($params, $template)
// generate month <select> or <input>
if ($display_months) {
$_html_month = '';
$_extra = '';
$_name = $field_array ? ($field_array . '[' . $prefix . 'Month]') : ($prefix . 'Month');
if ($all_extra) {
@@ -316,7 +311,6 @@ function smarty_function_html_select_date($params, $template)
// generate day <select> or <input>
if ($display_days) {
$_html_day = '';
$_extra = '';
$_name = $field_array ? ($field_array . '[' . $prefix . 'Day]') : ($prefix . 'Day');
if ($all_extra) {

View File

@@ -17,7 +17,6 @@ require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
/**
* Smarty {html_select_time} function plugin
*
* Type: function<br>
* Name: html_select_time<br>
* Purpose: Prints the dropdowns for time selection
@@ -26,12 +25,13 @@ require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
* (Smarty online manual)
* @author Roberto Berto <roberto@berto.net>
* @author Monte Ohrt <monte AT ohrt DOT com>
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @return string
* @uses smarty_make_timestamp()
*/
function smarty_function_html_select_time($params, $template)
function smarty_function_html_select_time($params)
{
$prefix = "Time_";
$field_array = null;

View File

@@ -8,7 +8,6 @@
/**
* Smarty {html_table} function plugin
*
* Type: function<br>
* Name: html_table<br>
* Date: Feb 17, 2003<br>
@@ -43,11 +42,12 @@
* @version 1.1
* @link http://www.smarty.net/manual/en/language.function.html.table.php {html_table}
* (Smarty online manual)
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @return string
*/
function smarty_function_html_table($params, $template)
function smarty_function_html_table($params)
{
$table_attr = 'border="1"';
$tr_attr = '';

View File

@@ -8,7 +8,6 @@
/**
* Smarty {mailto} function plugin
*
* Type: function<br>
* Name: mailto<br>
* Date: May 21, 2002
@@ -44,11 +43,12 @@
* @version 1.2
* @author Monte Ohrt <monte at ohrt dot com>
* @author credits to Jason Sweat (added cc, bcc and subject functionality)
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @return string
*/
function smarty_function_mailto($params, $template)
function smarty_function_mailto($params)
{
static $_allowed_encoding = array('javascript' => true, 'javascript_charcode' => true, 'hex' => true, 'none' => true);
$extra = '';
@@ -72,8 +72,9 @@ function smarty_function_mailto($params, $template)
case 'cc':
case 'bcc':
case 'followupto':
if (!empty($value))
if (!empty($value)) {
$mail_parms[] = $var . '=' . str_replace($search, $replace, rawurlencode($value));
}
break;
case 'subject':

View File

@@ -1,15 +1,14 @@
<?php
/**
* Smarty plugin
*
* This plugin is only for Smarty2 BC
*
* @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {math} function plugin
*
* Type: function<br>
* Name: math<br>
* Purpose: handle math computations in template
@@ -17,8 +16,10 @@
* @link http://www.smarty.net/manual/en/language.function.math.php {math}
* (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
*
* @return string|null
*/
function smarty_function_math($params, $template)

View File

@@ -8,16 +8,15 @@
/**
* Smarty capitalize modifier plugin
*
* Type: modifier<br>
* Name: capitalize<br>
* Purpose: capitalize words in the string
*
* {@internal {$string|capitalize:true:true} is the fastest option for MBString enabled systems }}
*
* @param string $string string to capitalize
* @param boolean $uc_digits also capitalize "x123" to "X123"
* @param boolean $lc_rest capitalize first letters, lowercase all following letters "aAa" to "Aaa"
*
* @return string capitalized string
* @author Monte Ohrt <monte at ohrt dot com>
* @author Rodney Rehm
@@ -70,18 +69,22 @@ function smarty_modifier_capitalize($string, $uc_digits = false, $lc_rest = fals
*
* @author Kyle Renfrow
*/
function smarty_mod_cap_mbconvert_cb($matches){
function smarty_mod_cap_mbconvert_cb($matches)
{
return stripslashes($matches[1]) . mb_convert_case(stripslashes($matches[2]), MB_CASE_UPPER, Smarty::$_CHARSET);
}
function smarty_mod_cap_mbconvert2_cb($matches){
function smarty_mod_cap_mbconvert2_cb($matches)
{
return stripslashes($matches[1]) . mb_convert_case(stripslashes($matches[3]), MB_CASE_UPPER, Smarty::$_CHARSET);
}
function smarty_mod_cap_ucfirst_cb($matches){
function smarty_mod_cap_ucfirst_cb($matches)
{
return stripslashes($matches[1]) . ucfirst(stripslashes($matches[2]));
}
function smarty_mod_cap_ucfirst2_cb($matches){
function smarty_mod_cap_ucfirst2_cb($matches)
{
return stripslashes($matches[1]) . ucfirst(stripslashes($matches[3]));
}

View File

@@ -8,7 +8,6 @@
/**
* Smarty date_format modifier plugin
*
* Type: modifier<br>
* Name: date_format<br>
* Purpose: format datestamps via strftime<br>
@@ -19,10 +18,12 @@
*
* @link http://www.smarty.net/manual/en/language.modifier.date.format.php date_format (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string input date string
* @param string $format strftime format for output
* @param string $default_date default date if $string is empty
* @param string $formatter either 'strftime' or 'auto'
*
* @return string |void
* @uses smarty_make_timestamp()
*/

View File

@@ -8,15 +8,16 @@
/**
* Smarty debug_print_var modifier plugin
*
* Type: modifier<br>
* Name: debug_print_var<br>
* Purpose: formats variable contents for display in the console
*
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param array|object $var variable to be formatted
* @param integer $depth maximum recursion depth if $var is an array
* @param integer $length maximum string length if $var is a string
*
* @return string
*/
function smarty_modifier_debug_print_var($var, $depth = 0, $length = 40)

View File

@@ -8,17 +8,18 @@
/**
* Smarty escape modifier plugin
*
* Type: modifier<br>
* Name: escape<br>
* Purpose: escape string for output
*
* @link http://www.smarty.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string input string
* @param string $esc_type escape type
* @param string $char_set character set, used for htmlspecialchars() or htmlentities()
* @param boolean $double_encode encode already encoded entitites again, used for htmlspecialchars() or htmlentities()
*
* @return string escaped input string
*/
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $double_encode = true)

View File

@@ -8,7 +8,6 @@
/**
* Smarty regex_replace modifier plugin
*
* Type: modifier<br>
* Name: regex_replace<br>
* Purpose: regular expression search/replace
@@ -16,9 +15,11 @@
* @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php
* regex_replace (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string input string
* @param string|array $search regular expression(s) to search for
* @param string|array $replace string(s) that should be replaced
*
* @return string
*/
function smarty_modifier_regex_replace($string, $search, $replace)
@@ -36,6 +37,7 @@ function smarty_modifier_regex_replace($string, $search, $replace)
/**
* @param string $search string(s) that should be replaced
*
* @return string
* @ignore
*/

View File

@@ -1,13 +1,13 @@
<?php
/**
* Smarty plugin
*
* @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty replace modifier plugin
*
* Type: modifier<br>
* Name: replace<br>
* Purpose: simple search/replace
@@ -15,9 +15,11 @@
* @link http://smarty.php.net/manual/en/language.modifier.replace.php replace (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
* @author Uwe Tews
*
* @param string $string input string
* @param string $search text to search for
* @param string $replace replacement text
*
* @return string
*/
function smarty_modifier_replace($string, $search, $replace)

View File

@@ -1,21 +1,23 @@
<?php
/**
* Smarty plugin
*
* @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty spacify modifier plugin
*
* Type: modifier<br>
* Name: spacify<br>
* Purpose: add spaces between characters in a string
*
* @link http://smarty.php.net/manual/en/language.modifier.spacify.php spacify (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string input string
* @param string $spacify_char string to insert between characters.
*
* @return string
*/
function smarty_modifier_spacify($string, $spacify_char = ' ')

View File

@@ -8,7 +8,6 @@
/**
* Smarty truncate modifier plugin
*
* Type: modifier<br>
* Name: truncate<br>
* Purpose: Truncate a string to a certain length if necessary,
@@ -17,17 +16,20 @@
*
* @link http://smarty.php.net/manual/en/language.modifier.truncate.php truncate (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string input string
* @param integer $length length of truncated text
* @param string $etc end string
* @param boolean $break_words truncate at word boundary
* @param boolean $middle truncate in the middle of text
*
* @return string truncated string
*/
function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false)
{
if ($length == 0)
if ($length == 0) {
return '';
}
if (Smarty::$_MBSTRING) {
if (mb_strlen($string, Smarty::$_CHARSET) > $length) {

View File

@@ -8,7 +8,6 @@
/**
* Smarty cat modifier plugin
*
* Type: modifier<br>
* Name: cat<br>
* Date: Feb 24, 2003<br>
@@ -19,10 +18,12 @@
* @link http://smarty.php.net/manual/en/language.modifier.cat.php cat
* (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_cat($params, $compiler)
function smarty_modifiercompiler_cat($params)
{
return '(' . implode(').(', $params) . ')';
}

View File

@@ -8,17 +8,18 @@
/**
* Smarty count_characters modifier plugin
*
* Type: modifier<br>
* Name: count_characteres<br>
* Purpose: count the number of characters in a text
*
* @link http://www.smarty.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_count_characters($params, $compiler)
function smarty_modifiercompiler_count_characters($params)
{
if (!isset($params[1]) || $params[1] != 'true') {
return 'preg_match_all(\'/[^\s]/' . Smarty::$_UTF8_MODIFIER . '\',' . $params[0] . ', $tmp)';

View File

@@ -8,7 +8,6 @@
/**
* Smarty count_paragraphs modifier plugin
*
* Type: modifier<br>
* Name: count_paragraphs<br>
* Purpose: count the number of paragraphs in a text
@@ -16,10 +15,12 @@
* @link http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
* count_paragraphs (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_count_paragraphs($params, $compiler)
function smarty_modifiercompiler_count_paragraphs($params)
{
// count \r or \n characters
return '(preg_match_all(\'#[\r\n]+#\', ' . $params[0] . ', $tmp)+1)';

View File

@@ -8,7 +8,6 @@
/**
* Smarty count_sentences modifier plugin
*
* Type: modifier<br>
* Name: count_sentences
* Purpose: count the number of sentences in a text
@@ -16,10 +15,12 @@
* @link http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
* count_sentences (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_count_sentences($params, $compiler)
function smarty_modifiercompiler_count_sentences($params)
{
// find periods, question marks, exclamation marks with a word before but not after.
return 'preg_match_all("#\w[\.\?\!](\W|$)#S' . Smarty::$_UTF8_MODIFIER . '", ' . $params[0] . ', $tmp)';

View File

@@ -8,17 +8,18 @@
/**
* Smarty count_words modifier plugin
*
* Type: modifier<br>
* Name: count_words<br>
* Purpose: count the number of words in a text
*
* @link http://www.smarty.net/manual/en/language.modifier.count.words.php count_words (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_count_words($params, $compiler)
function smarty_modifiercompiler_count_words($params)
{
if (Smarty::$_MBSTRING) {
// return 'preg_match_all(\'#[\w\pL]+#' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)';

View File

@@ -8,17 +8,18 @@
/**
* Smarty default modifier plugin
*
* Type: modifier<br>
* Name: default<br>
* Purpose: designate default value for empty variables
*
* @link http://www.smarty.net/manual/en/language.modifier.default.php default (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_default ($params, $compiler)
function smarty_modifiercompiler_default($params)
{
$output = $params[0];
if (!isset($params[1])) {

View File

@@ -13,14 +13,16 @@ require_once( SMARTY_PLUGINS_DIR .'shared.literal_compiler_param.php' );
/**
* Smarty escape modifier plugin
*
* Type: modifier<br>
* Name: escape<br>
* Purpose: escape string for output
*
* @link http://www.smarty.net/docsv2/en/language.modifier.escape count_characters (Smarty online manual)
* @author Rodney Rehm
*
* @param array $params parameters
* @param $compiler
*
* @return string with compiled code
*/
function smarty_modifiercompiler_escape($params, $compiler)
@@ -105,9 +107,9 @@ function smarty_modifiercompiler_escape($params, $compiler)
case 'javascript':
// escape quotes and backslashes, newlines, etc.
return 'strtr(' . $params[0] . ', array("\\\\" => "\\\\\\\\", "\'" => "\\\\\'", "\"" => "\\\\\"", "\\r" => "\\\\r", "\\n" => "\\\n", "</" => "<\/" ))';
}
} catch (SmartyException $e) {
}
catch (SmartyException $e) {
// pass through to regular plugin fallback
}

View File

@@ -8,16 +8,17 @@
/**
* Smarty from_charset modifier plugin
*
* Type: modifier<br>
* Name: from_charset<br>
* Purpose: convert character encoding from $charset to internal encoding
*
* @author Rodney Rehm
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_from_charset($params, $compiler)
function smarty_modifiercompiler_from_charset($params)
{
if (!Smarty::$_MBSTRING) {
// FIXME: (rodneyrehm) shouldn't this throw an error?

View File

@@ -1,24 +1,26 @@
<?php
/**
* Smarty plugin
*
* @package Smarty
* @subpackage PluginsModifierCompiler
*/
/**
* Smarty indent modifier plugin
*
* Type: modifier<br>
* Name: indent<br>
* Purpose: indent lines of text
*
* @link http://www.smarty.net/manual/en/language.modifier.indent.php indent (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_indent($params, $compiler)
function smarty_modifiercompiler_indent($params)
{
if (!isset($params[1])) {
$params[1] = 4;

View File

@@ -1,13 +1,13 @@
<?php
/**
* Smarty plugin
*
* @package Smarty
* @subpackage PluginsModifierCompiler
*/
/**
* Smarty lower modifier plugin
*
* Type: modifier<br>
* Name: lower<br>
* Purpose: convert string to lowercase
@@ -15,11 +15,13 @@
* @link http://www.smarty.net/manual/en/language.modifier.lower.php lower (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_lower($params, $compiler)
function smarty_modifiercompiler_lower($params)
{
if (Smarty::$_MBSTRING) {
return 'mb_strtolower(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';

View File

@@ -8,16 +8,14 @@
/**
* Smarty noprint modifier plugin
*
* Type: modifier<br>
* Name: noprint<br>
* Purpose: return an empty string
*
* @author Uwe Tews
* @param array $params parameters
* @return string with compiled code
*/
function smarty_modifiercompiler_noprint($params, $compiler)
function smarty_modifiercompiler_noprint()
{
return "''";
}

View File

@@ -8,17 +8,18 @@
/**
* Smarty string_format modifier plugin
*
* Type: modifier<br>
* Name: string_format<br>
* Purpose: format strings via sprintf
*
* @link http://www.smarty.net/manual/en/language.modifier.string.format.php string_format (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_string_format($params, $compiler)
function smarty_modifiercompiler_string_format($params)
{
return 'sprintf(' . $params[1] . ',' . $params[0] . ')';
}

View File

@@ -8,7 +8,6 @@
/**
* Smarty strip modifier plugin
*
* Type: modifier<br>
* Name: strip<br>
* Purpose: Replace all repeated spaces, newlines, tabs
@@ -18,11 +17,13 @@
*
* @link http://www.smarty.net/manual/en/language.modifier.strip.php strip (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_strip($params, $compiler)
function smarty_modifiercompiler_strip($params)
{
if (!isset($params[1])) {
$params[1] = "' '";

View File

@@ -8,17 +8,18 @@
/**
* Smarty strip_tags modifier plugin
*
* Type: modifier<br>
* Name: strip_tags<br>
* Purpose: strip html tags from text
*
* @link http://www.smarty.net/manual/en/language.modifier.strip.tags.php strip_tags (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_strip_tags($params, $compiler)
function smarty_modifiercompiler_strip_tags($params)
{
if (!isset($params[1]) || $params[1] === true || trim($params[1], '"') == 'true') {
return "preg_replace('!<[^>]*?>!', ' ', {$params[0]})";

View File

@@ -8,16 +8,17 @@
/**
* Smarty to_charset modifier plugin
*
* Type: modifier<br>
* Name: to_charset<br>
* Purpose: convert character encoding from internal encoding to $charset
*
* @author Rodney Rehm
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_to_charset($params, $compiler)
function smarty_modifiercompiler_to_charset($params)
{
if (!Smarty::$_MBSTRING) {
// FIXME: (rodneyrehm) shouldn't this throw an error?

View File

@@ -8,16 +8,17 @@
/**
* Smarty unescape modifier plugin
*
* Type: modifier<br>
* Name: unescape<br>
* Purpose: unescape html entities
*
* @author Rodney Rehm
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_unescape($params, $compiler)
function smarty_modifiercompiler_unescape($params)
{
if (!isset($params[1])) {
$params[1] = 'html';

View File

@@ -8,17 +8,18 @@
/**
* Smarty upper modifier plugin
*
* Type: modifier<br>
* Name: lower<br>
* Purpose: convert string to uppercase
*
* @link http://smarty.php.net/manual/en/language.modifier.upper.php lower (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
*
* @return string with compiled code
*/
function smarty_modifiercompiler_upper($params, $compiler)
function smarty_modifiercompiler_upper($params)
{
if (Smarty::$_MBSTRING) {
return 'mb_strtoupper(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';

View File

@@ -8,14 +8,16 @@
/**
* Smarty wordwrap modifier plugin
*
* Type: modifier<br>
* Name: wordwrap<br>
* Purpose: wrap a string of text at a given length
*
* @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php wordwrap (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
* @param $compiler
*
* @return string with compiled code
*/
function smarty_modifiercompiler_wordwrap($params, $compiler)

View File

@@ -8,16 +8,16 @@
/**
* Smarty trimwhitespace outputfilter plugin
*
* Trim unnecessary whitespace from HTML markup.
*
* @author Rodney Rehm
*
* @param string $source input string
* @param Smarty_Internal_Template $smarty Smarty object
*
* @return string filtered output
* @todo substr_replace() is not overloaded by mbstring.func_overload - so this function might fail!
*/
function smarty_outputfilter_trimwhitespace($source, Smarty_Internal_Template $smarty)
function smarty_outputfilter_trimwhitespace($source)
{
$store = array();
$_store = 0;

View File

@@ -9,13 +9,14 @@
if (version_compare(PHP_VERSION, '5.2.3', '>=')) {
/**
* escape_special_chars common function
*
* Function: smarty_function_escape_special_chars<br>
* Purpose: used by other smarty functions to escape
* special chars except for already escaped ones
*
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string text that should by escaped
*
* @return string
*/
function smarty_function_escape_special_chars($string)
@@ -29,13 +30,14 @@ if (version_compare(PHP_VERSION, '5.2.3', '>=')) {
} else {
/**
* escape_special_chars common function
*
* Function: smarty_function_escape_special_chars<br>
* Purpose: used by other smarty functions to escape
* special chars except for already escaped ones
*
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string text that should by escaped
*
* @return string
*/
function smarty_function_escape_special_chars($string)

View File

@@ -12,6 +12,7 @@
* @param array $params parameter array as given to the compiler function
* @param integer $index array index of the parameter to convert
* @param mixed $default value to be returned if the parameter is not present
*
* @return mixed evaluated value of parameter or $default
* @throws SmartyException if parameter is not a literal (but an expression, variable, …)
* @author Rodney Rehm

View File

@@ -11,7 +11,9 @@
* Purpose: used by other smarty functions to make a timestamp from a string.
*
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param DateTime|int|string $string date object, timestamp or string that can be converted using strtotime()
*
* @return int
*/
function smarty_make_timestamp($string)

View File

@@ -14,6 +14,7 @@ if (!function_exists('smarty_mb_str_replace')) {
* @param string $replace the replacement string
* @param string $subject the source string
* @param int &$count number of matches found
*
* @return string replaced string
* @author Rodney Rehm
*/
@@ -51,5 +52,4 @@ if (!function_exists('smarty_mb_str_replace')) {
return $subject;
}
}

View File

@@ -10,8 +10,10 @@
* convert characters to their decimal unicode equivalents
*
* @link http://www.ibm.com/developerworks/library/os-php-unicode/index.html#listing3 for inspiration
*
* @param string $string characters to calculate unicode of
* @param string $encoding encoding of $string, if null mb_internal_encoding() is used
*
* @return array sequence of unicodes
* @author Rodney Rehm
*/
@@ -30,8 +32,10 @@ function smarty_mb_to_unicode($string, $encoding=null)
* convert unicodes to the character of given encoding
*
* @link http://www.ibm.com/developerworks/library/os-php-unicode/index.html#listing3 for inspiration
*
* @param integer|array $unicode single unicode or list of unicodes to convert
* @param string $encoding encoding of returned string, if null mb_internal_encoding() is used
*
* @return string unicode as character sequence in given $encoding
* @author Rodney Rehm
*/

View File

@@ -12,10 +12,12 @@ if (!function_exists('smarty_mb_wordwrap')) {
* Wrap a string to a given number of characters
*
* @link http://php.net/manual/en/function.wordwrap.php for similarity
*
* @param string $str the string to wrap
* @param int $width the width of the output
* @param string $break the character used to break the line
* @param boolean $cut ignored parameter, just for the sake of
*
* @return string wrapped string
* @author Rodney Rehm
*/
@@ -78,5 +80,4 @@ if (!function_exists('smarty_mb_wordwrap')) {
return $t;
}
}

View File

@@ -10,10 +10,10 @@
* Smarty htmlspecialchars variablefilter plugin
*
* @param string $source input string
* @param Smarty_Internal_Template $smarty Smarty object
*
* @return string filtered output
*/
function smarty_variablefilter_htmlspecialchars($source, $smarty)
function smarty_variablefilter_htmlspecialchars($source)
{
return htmlspecialchars($source, ENT_QUOTES, Smarty::$_CHARSET);
}

View File

@@ -17,12 +17,14 @@ abstract class Smarty_CacheResource
{
/**
* cache for Smarty_CacheResource instances
*
* @var array
*/
public static $resources = array();
/**
* resource types provided by the core
*
* @var array
*/
protected static $sysplugins = array(
@@ -34,6 +36,7 @@ abstract class Smarty_CacheResource
*
* @param Smarty_Template_Cached $cached cached object
* @param Smarty_Internal_Template $_template template object
*
* @return void
*/
abstract public function populate(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template);
@@ -41,7 +44,8 @@ abstract class Smarty_CacheResource
/**
* populate Cached Object with timestamp and exists from Resource
*
* @param Smarty_Template_Cached $source cached object
* @param Smarty_Template_Cached $cached
*
* @return void
*/
abstract public function populateTimestamp(Smarty_Template_Cached $cached);
@@ -51,7 +55,8 @@ abstract class Smarty_CacheResource
*
* @param Smarty_Internal_Template $_template template object
* @param Smarty_Template_Cached $cached cached object
* @return booelan true or false if the cached content does not exist
*
* @return boolean true or false if the cached content does not exist
*/
abstract public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached = null);
@@ -60,6 +65,7 @@ abstract class Smarty_CacheResource
*
* @param Smarty_Internal_Template $_template template object
* @param string $content content to cache
*
* @return boolean success
*/
abstract public function writeCachedContent(Smarty_Internal_Template $_template, $content);
@@ -68,7 +74,8 @@ abstract class Smarty_CacheResource
* Return cached content
*
* @param Smarty_Internal_Template $_template template object
* @param string $content content of cache
*
* @return null|string
*/
public function getCachedContent(Smarty_Internal_Template $_template)
{
@@ -87,6 +94,7 @@ abstract class Smarty_CacheResource
*
* @param Smarty $smarty Smarty object
* @param integer $exp_time expiration time (number of seconds, not timestamp)
*
* @return integer number of cache files deleted
*/
abstract public function clearAll(Smarty $smarty, $exp_time = null);
@@ -99,10 +107,17 @@ abstract class Smarty_CacheResource
* @param string $cache_id cache id
* @param string $compile_id compile id
* @param integer $exp_time expiration time (number of seconds, not timestamp)
*
* @return integer number of cache files deleted
*/
abstract public function clear(Smarty $smarty, $resource_name, $cache_id, $compile_id, $exp_time);
/**
* @param Smarty $smarty
* @param Smarty_Template_Cached $cached
*
* @return bool|null
*/
public function locked(Smarty $smarty, Smarty_Template_Cached $cached)
{
// theoretically locking_timeout should be checked against time_limit (max_execution_time)
@@ -120,18 +135,42 @@ abstract class Smarty_CacheResource
return $hadLock;
}
/**
* Check is cache is locked for this template
*
* @param Smarty $smarty
* @param Smarty_Template_Cached $cached
*
* @return bool
*/
public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
// check if lock exists
return false;
}
/**
* Lock cache for this template
*
* @param Smarty $smarty
* @param Smarty_Template_Cached $cached
*
* @return bool
*/
public function acquireLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
// create lock
return true;
}
/**
* Unlock cache for this template
*
* @param Smarty $smarty
* @param Smarty_Template_Cached $cached
*
* @return bool
*/
public function releaseLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
// release lock
@@ -143,6 +182,8 @@ abstract class Smarty_CacheResource
*
* @param Smarty $smarty Smarty object
* @param string $type name of the cache resource
*
* @throws SmartyException
* @return Smarty_CacheResource Cache Resource Handler
*/
public static function load(Smarty $smarty, $type = null)
@@ -201,7 +242,6 @@ abstract class Smarty_CacheResource
/**
* Smarty Resource Data Object
*
* Cache Data Container for Template Files
*
* @package Smarty
@@ -212,72 +252,84 @@ class Smarty_Template_Cached
{
/**
* Source Filepath
*
* @var string
*/
public $filepath = false;
/**
* Source Content
*
* @var string
*/
public $content = null;
/**
* Source Timestamp
*
* @var integer
*/
public $timestamp = false;
/**
* Source Existence
*
* @var boolean
*/
public $exists = false;
/**
* Cache Is Valid
*
* @var boolean
*/
public $valid = false;
/**
* Cache was processed
*
* @var boolean
*/
public $processed = false;
/**
* CacheResource Handler
*
* @var Smarty_CacheResource
*/
public $handler = null;
/**
* Template Compile Id (Smarty_Internal_Template::$compile_id)
*
* @var string
*/
public $compile_id = null;
/**
* Template Cache Id (Smarty_Internal_Template::$cache_id)
*
* @var string
*/
public $cache_id = null;
/**
* Id for cache locking
*
* @var string
*/
public $lock_id = null;
/**
* flag that cache is locked by this instance
*
* @var bool
*/
public $is_locked = false;
/**
* Source Object
*
* @var Smarty_Template_Source
*/
public $source = null;
@@ -366,6 +418,7 @@ class Smarty_Template_Cached
*
* @param Smarty_Internal_Template $_template template object
* @param string $content content to cache
*
* @return boolean success
*/
public function write(Smarty_Internal_Template $_template, $content)
@@ -386,5 +439,4 @@ class Smarty_Template_Cached
return false;
}
}

View File

@@ -24,13 +24,13 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
* @param string $compile_id compile id
* @param string $content cached content
* @param integer $mtime cache modification timestamp (epoch)
*
* @return void
*/
abstract protected function fetch($id, $name, $cache_id, $compile_id, &$content, &$mtime);
/**
* Fetch cached content's modification timestamp from data source
*
* {@internal implementing this method is optional.
* Only implement it if modification times can be accessed faster than loading the complete cached content.}}
*
@@ -38,6 +38,7 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
* @param string $name template name
* @param string $cache_id cache id
* @param string $compile_id compile id
*
* @return integer|boolean timestamp (epoch) the template was modified, or false if not found
*/
protected function fetchTimestamp($id, $name, $cache_id, $compile_id)
@@ -54,6 +55,7 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
* @param string $compile_id compile id
* @param integer|null $exp_time seconds till expiration or null
* @param string $content content to cache
*
* @return boolean success
*/
abstract protected function save($id, $name, $cache_id, $compile_id, $exp_time, $content);
@@ -65,6 +67,7 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
* @param string $cache_id cache id
* @param string $compile_id compile id
* @param integer|null $exp_time seconds till expiration time in seconds or null
*
* @return integer number of deleted caches
*/
abstract protected function delete($name, $cache_id, $compile_id, $exp_time);
@@ -74,6 +77,7 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
*
* @param Smarty_Template_Cached $cached cached object
* @param Smarty_Internal_Template $_template template object
*
* @return void
*/
public function populate(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template)
@@ -88,7 +92,8 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
/**
* populate Cached Object with timestamp and exists from Resource
*
* @param Smarty_Template_Cached $source cached object
* @param Smarty_Template_Cached $cached
*
* @return void
*/
public function populateTimestamp(Smarty_Template_Cached $cached)
@@ -111,7 +116,8 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
*
* @param Smarty_Internal_Template $_template template object
* @param Smarty_Template_Cached $cached cached object
* @return booelan true or false if the cached content does not exist
*
* @return boolean true or false if the cached content does not exist
*/
public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached = null)
{
@@ -131,6 +137,9 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
);
}
if (isset($content)) {
/** @var Smarty_Internal_Template $_smarty_tpl
* used in evaluated code
*/
$_smarty_tpl = $_template;
eval("?>" . $content);
@@ -145,6 +154,7 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
*
* @param Smarty_Internal_Template $_template template object
* @param string $content content to cache
*
* @return boolean success
*/
public function writeCachedContent(Smarty_Internal_Template $_template, $content)
@@ -164,6 +174,7 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
*
* @param Smarty $smarty Smarty object
* @param integer $exp_time expiration time (number of seconds, not timestamp)
*
* @return integer number of cache files deleted
*/
public function clearAll(Smarty $smarty, $exp_time = null)
@@ -181,6 +192,7 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
* @param string $cache_id cache id
* @param string $compile_id compile id
* @param integer $exp_time expiration time (number of seconds, not timestamp)
*
* @return integer number of cache files deleted
*/
public function clear(Smarty $smarty, $resource_name, $cache_id, $compile_id, $exp_time)
@@ -221,7 +233,8 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
*
* @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
* @return booelan true or false if cache is locked
*
* @return boolean true or false if cache is locked
*/
public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -241,6 +254,8 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
*
* @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
*
* @return bool|void
*/
public function acquireLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -256,6 +271,8 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
*
* @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
*
* @return bool|void
*/
public function releaseLock(Smarty $smarty, Smarty_Template_Cached $cached)
{

View File

@@ -8,19 +8,16 @@
/**
* Smarty Cache Handler Base for Key/Value Storage Implementations
*
* This class implements the functionality required to use simple key/value stores
* for hierarchical cache groups. key/value stores like memcache or APC do not support
* wildcards in keys, therefore a cache group cannot be cleared like "a|*" - which
* is no problem to filesystem and RDBMS implementations.
*
* This implementation is based on the concept of invalidation. While one specific cache
* can be identified and cleared, any range of caches cannot be identified. For this reason
* each level of the cache group hierarchy can have its own value in the store. These values
* are nothing but microtimes, telling us when a particular cache group was cleared for the
* last time. These keys are evaluated for every cache read to determine if the cache has
* been invalidated since it was created and should hence be treated as inexistent.
*
* Although deep hierarchies are possible, they are not recommended. Try to keep your
* cache groups as shallow as possible. Anything up 3-5 parents should be ok. So
* »a|b|c« is a good depth where »a|b|c|d|e|f|g|h|i|j|k« isn't. Try to join correlating
@@ -35,11 +32,13 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
{
/**
* cache for contents
*
* @var array
*/
protected $contents = array();
/**
* cache for timestamps
*
* @var array
*/
protected $timestamps = array();
@@ -49,6 +48,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
*
* @param Smarty_Template_Cached $cached cached object
* @param Smarty_Internal_Template $_template template object
*
* @return void
*/
public function populate(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template)
@@ -65,6 +65,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* populate Cached Object with timestamp and exists from Resource
*
* @param Smarty_Template_Cached $cached cached object
*
* @return void
*/
public function populateTimestamp(Smarty_Template_Cached $cached)
@@ -82,7 +83,8 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
*
* @param Smarty_Internal_Template $_template template object
* @param Smarty_Template_Cached $cached cached object
* @return booelan true or false if the cached content does not exist
*
* @return boolean true or false if the cached content does not exist
*/
public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached = null)
{
@@ -97,6 +99,9 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
}
}
if (isset($content)) {
/** @var Smarty_Internal_Template $_smarty_tpl
* used in evaluated code
*/
$_smarty_tpl = $_template;
eval("?>" . $content);
@@ -111,6 +116,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
*
* @param Smarty_Internal_Template $_template template object
* @param string $content content to cache
*
* @return boolean success
*/
public function writeCachedContent(Smarty_Internal_Template $_template, $content)
@@ -122,11 +128,11 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
/**
* Empty cache
*
* {@internal the $exp_time argument is ignored altogether }}
*
* @param Smarty $smarty Smarty object
* @param integer $exp_time expiration time [being ignored]
*
* @return integer number of cache files deleted [always -1]
* @uses purge() to clear the whole store
* @uses invalidate() to mark everything outdated if purge() is inapplicable
@@ -142,7 +148,6 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
/**
* Empty cache for a specific template
*
* {@internal the $exp_time argument is ignored altogether}}
*
* @param Smarty $smarty Smarty object
@@ -150,6 +155,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* @param string $cache_id cache id
* @param string $compile_id compile id
* @param integer $exp_time expiration time [being ignored]
*
* @return integer number of cache files deleted [always -1]
* @uses buildCachedFilepath() to generate the CacheID
* @uses invalidate() to mark CacheIDs parent chain as outdated
@@ -164,6 +170,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
return - 1;
}
/**
* Get template's unique ID
*
@@ -171,6 +178,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* @param string $resource_name template name
* @param string $cache_id cache id
* @param string $compile_id compile id
*
* @return string filepath of cache file
*/
protected function getTemplateUid(Smarty $smarty, $resource_name, $cache_id, $compile_id)
@@ -201,6 +209,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* Sanitize CacheID components
*
* @param string $string CacheID component to sanitize
*
* @return string sanitized CacheID component
*/
protected function sanitize($string)
@@ -224,6 +233,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* @param string $content cached content
* @param integer &$timestamp cached timestamp (epoch)
* @param string $resource_uid resource's uid
*
* @return boolean success
*/
protected function fetch($cid, $resource_name = null, $cache_id = null, $compile_id = null, &$content = null, &$timestamp = null, $resource_uid = null)
@@ -245,7 +255,6 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
/**
* Add current microtime to the beginning of $cache_content
*
* {@internal the header uses 8 Bytes, the first 4 Bytes are the seconds, the second 4 Bytes are the microseconds}}
*
* @param string &$content the content to be cached
@@ -261,6 +270,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* Extract the timestamp the $content was cached
*
* @param string &$content the cached content
*
* @return float the microtime the content was cached
*/
protected function getMetaTimestamp(&$content)
@@ -280,6 +290,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* @param string $cache_id cache id
* @param string $compile_id compile id
* @param string $resource_uid source's uid
*
* @return void
*/
protected function invalidate($cid = null, $resource_name = null, $cache_id = null, $compile_id = null, $resource_uid = null)
@@ -289,23 +300,25 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
// invalidate everything
if (!$resource_name && !$cache_id && !$compile_id) {
$key = 'IVK#ALL';
}
// invalidate all caches by template
else if ($resource_name && !$cache_id && !$compile_id) {
} // invalidate all caches by template
else {
if ($resource_name && !$cache_id && !$compile_id) {
$key = 'IVK#TEMPLATE#' . $resource_uid . '#' . $this->sanitize($resource_name);
}
// invalidate all caches by cache group
else if (!$resource_name && $cache_id && !$compile_id) {
} // invalidate all caches by cache group
else {
if (!$resource_name && $cache_id && !$compile_id) {
$key = 'IVK#CACHE#' . $this->sanitize($cache_id);
}
// invalidate all caches by compile id
else if (!$resource_name && !$cache_id && $compile_id) {
} // invalidate all caches by compile id
else {
if (!$resource_name && !$cache_id && $compile_id) {
$key = 'IVK#COMPILE#' . $this->sanitize($compile_id);
}
// invalidate by combination
} // invalidate by combination
else {
$key = 'IVK#CID#' . $cid;
}
}
}
}
$this->write(array($key => $now));
}
@@ -317,6 +330,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* @param string $cache_id cache id
* @param string $compile_id compile id
* @param string $resource_uid source's filepath
*
* @return float the microtime the CacheID was invalidated
*/
protected function getLatestInvalidationTimestamp($cid, $resource_name = null, $cache_id = null, $compile_id = null, $resource_uid = null)
@@ -342,7 +356,6 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
/**
* Translate a CacheID into the list of applicable InvalidationKeys.
*
* Splits "some|chain|into|an|array" into array( '#clearAll#', 'some', 'some|chain', 'some|chain|into', ... )
*
* @param string $cid CacheID to translate
@@ -350,6 +363,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* @param string $cache_id cache id
* @param string $compile_id compile id
* @param string $resource_uid source's filepath
*
* @return array list of InvalidationKeys
* @uses $invalidationKeyPrefix to prepend to each InvalidationKey
*/
@@ -398,7 +412,8 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
*
* @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
* @return booelan true or false if cache is locked
*
* @return boolean true or false if cache is locked
*/
public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -413,6 +428,8 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
*
* @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
*
* @return bool|void
*/
public function acquireLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -426,6 +443,8 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
*
* @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
*
* @return bool|void
*/
public function releaseLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -438,6 +457,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* Read values for a set of keys from cache
*
* @param array $keys list of keys to fetch
*
* @return array list of values with the given keys used as indexes
*/
abstract protected function read(array $keys);
@@ -447,6 +467,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
*
* @param array $keys list of values to save
* @param int $expire expiration time
*
* @return boolean true on success, false on failure
*/
abstract protected function write(array $keys, $expire = null);
@@ -455,6 +476,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
* Remove values from cache
*
* @param array $keys list of keys to delete
*
* @return boolean true on success, false on failure
*/
abstract protected function delete(array $keys);
@@ -468,5 +490,4 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
{
return false;
}
}

View File

@@ -8,13 +8,11 @@
/**
* Smarty Resource Data Object
*
* Meta Data Container for Config Files
*
* @package Smarty
* @subpackage TemplateResources
* @author Rodney Rehm
*
* @property string $content
* @property int $timestamp
* @property bool $exists
@@ -52,6 +50,7 @@ class Smarty_Config_Source extends Smarty_Template_Source
*
* @param string $property_name valid: content, timestamp, exists
* @param mixed $value newly assigned value (not check for correct type)
*
* @throws SmartyException when the given property name is not valid
*/
public function __set($property_name, $value)
@@ -72,6 +71,8 @@ class Smarty_Config_Source extends Smarty_Template_Source
* <<magic>> Generic getter.
*
* @param string $property_name valid: content, timestamp, exists
*
* @return mixed|void
* @throws SmartyException when the given property name is not valid
*/
public function __get($property_name)
@@ -90,5 +91,4 @@ class Smarty_Config_Source extends Smarty_Template_Source
throw new SmartyException("config property '$property_name' does not exist.");
}
}
}

View File

@@ -10,7 +10,6 @@
/**
* This class does contain all necessary methods for the HTML cache on file system
*
* Implements the file system as resource for the HTML cache Version ussing nocache inserts.
*
* @package Smarty
@@ -23,6 +22,7 @@
*
* @param Smarty_Template_Cached $cached cached object
* @param Smarty_Internal_Template $_template template object
*
* @return void
*/
public function populate(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template)
@@ -69,6 +69,7 @@
* populate Cached Object with timestamp and exists from Resource
*
* @param Smarty_Template_Cached $cached cached object
*
* @return void
*/
public function populateTimestamp(Smarty_Template_Cached $cached)
@@ -82,10 +83,14 @@
*
* @param Smarty_Internal_Template $_template template object
* @param Smarty_Template_Cached $cached cached object
* @return booelan true or false if the cached content does not exist
*
* @return booleantrue or false if the cached content does not exist
*/
public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached = null)
{
/** @var Smarty_Internal_Template $_smarty_tpl
* used in included file
*/
$_smarty_tpl = $_template;
return @include $_template->cached->filepath;
@@ -96,6 +101,7 @@
*
* @param Smarty_Internal_Template $_template template object
* @param string $content content to cache
*
* @return boolean success
*/
public function writeCachedContent(Smarty_Internal_Template $_template, $content)
@@ -114,8 +120,9 @@
/**
* Empty cache
*
* @param Smarty_Internal_Template $_template template object
* @param Smarty $smarty
* @param integer $exp_time expiration time (number of seconds, not timestamp)
*
* @return integer number of cache files deleted
*/
public function clearAll(Smarty $smarty, $exp_time = null)
@@ -126,11 +133,12 @@
/**
* Empty cache for a specific template
*
* @param Smarty $_template template object
* @param Smarty $smarty
* @param string $resource_name template name
* @param string $cache_id cache id
* @param string $compile_id compile id
* @param integer $exp_time expiration time (number of seconds, not timestamp)
*
* @return integer number of cache files deleted
*/
public function clear(Smarty $smarty, $resource_name, $cache_id, $compile_id, $exp_time)
@@ -180,7 +188,9 @@
$_cacheDirs = new RecursiveDirectoryIterator($_dir);
$_cache = new RecursiveIteratorIterator($_cacheDirs, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($_cache as $_file) {
if (substr(basename($_file->getPathname()),0,1) == '.' || strpos($_file, '.svn') !== false) continue;
if (substr(basename($_file->getPathname()), 0, 1) == '.' || strpos($_file, '.svn') !== false) {
continue;
}
// directory ?
if ($_file->isDir()) {
if (!$_cache->isDot()) {
@@ -208,7 +218,9 @@
continue;
}
for ($i = 0; $i < $_cache_id_parts_count; $i ++) {
if ($_parts[$i] != $_cache_id_parts[$i]) continue 2;
if ($_parts[$i] != $_cache_id_parts[$i]) {
continue 2;
}
}
}
// expired ?
@@ -237,7 +249,8 @@
*
* @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
* @return booelan true or false if cache is locked
*
* @return boolean true or false if cache is locked
*/
public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -256,6 +269,8 @@
*
* @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
*
* @return bool|void
*/
public function acquireLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -268,6 +283,8 @@
*
* @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
*
* @return bool|void
*/
public function releaseLock(Smarty $smarty, Smarty_Template_Cached $cached)
{

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Append
*
* Compiles the {append} tag
*
* @package Smarty
@@ -23,6 +22,7 @@ class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -47,5 +47,4 @@ class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign
// call compile assign
return parent::compile($_new_attr, $compiler, $_params);
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Assign
*
* Compiles the {assign} tag
*
* @package Smarty
@@ -23,6 +22,7 @@ class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -83,5 +83,4 @@ class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase
return $output;
}
}

View File

@@ -2,7 +2,6 @@
/**
* Smarty Internal Plugin Compile Block
*
* Compiles the {block}{/block} tags
*
* @package Smarty
@@ -70,6 +69,7 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return boolean true
*/
public function compile($args, $compiler)
@@ -81,7 +81,6 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase
// check if we process an inheritance child template
if ($compiler->inheritance_child) {
array_unshift(self::$nested_block_names, $_name);
$this->template->block_data[$_name]['source'] = '';
// build {block} for child block
self::$block_data[$_name]['source'] =
"{$compiler->smarty->left_delimiter}private_child_block name={$_attr['name']} file='{$compiler->template->source->filepath}' type='{$compiler->template->source->type}' resource='{$compiler->template->template_resource}'" .
@@ -114,12 +113,12 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase
return true;
}
/**
* Compile saved child block source
*
* @param object $compiler compiler object
* @param string $_name optional name of child block
*
* @return string compiled code of child block
*/
static function compileChildBlock($compiler, $_name = null)
@@ -208,7 +207,8 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase
*
* @param object $compiler compiler object
* @param string $_name optional name of child block
* @return string compiled code of schild block
*
* @return string compiled code of child block
*/
static function compileParentBlock($compiler, $_name = null)
{
@@ -237,17 +237,16 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase
/**
* Process block source
*
* @param $compiler
* @param string $source source text
* @return ''
*
*/
static function blockSource($compiler, $source)
{
Smarty_Internal_Compile_Block::$block_data[Smarty_Internal_Compile_Block::$nested_block_names[0]]['source'] .= $source;
}
}
/**
* Smarty Internal Plugin Compile BlockClose Class
*
@@ -261,6 +260,7 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -276,7 +276,6 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase
if ($compiler->inheritance_child) {
$name1 = Smarty_Internal_Compile_Block::$nested_block_names[0];
Smarty_Internal_Compile_Block::$block_data[$name1]['source'] .= "{$compiler->smarty->left_delimiter}/private_child_block{$compiler->smarty->right_delimiter}";
$level = count(Smarty_Internal_Compile_Block::$nested_block_names);
array_shift(Smarty_Internal_Compile_Block::$nested_block_names);
if (!empty(Smarty_Internal_Compile_Block::$nested_block_names)) {
$name2 = Smarty_Internal_Compile_Block::$nested_block_names[0];
@@ -363,12 +362,12 @@ class Smarty_Internal_Compile_Private_Child_Block extends Smarty_Internal_Compil
*/
public $required_attributes = array('name', 'file', 'uid', 'line', 'type', 'resource');
/**
* Compiles code for the {private_child_block} tag
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return boolean true
*/
public function compile($args, $compiler)
@@ -386,7 +385,6 @@ class Smarty_Internal_Compile_Private_Child_Block extends Smarty_Internal_Compil
unset ($compiler->template->source);
$exists = $compiler->template->source->exists;
// must merge includes
if ($_attr['nocache'] == true) {
$compiler->tag_nocache = true;
@@ -414,12 +412,12 @@ class Smarty_Internal_Compile_Private_Child_Block extends Smarty_Internal_Compil
class Smarty_Internal_Compile_Private_Child_Blockclose extends Smarty_Internal_CompileBase
{
/**
* Compiles code for the {/private_child_block} tag
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return boolean true
*/
public function compile($args, $compiler)

View File

@@ -1,13 +1,13 @@
<?php
/**
* Smarty Internal Plugin Compile Break
*
* Compiles the {break} tag
*
* @package Smarty
* @subpackage Compiler
* @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Break Class
*
@@ -37,6 +37,7 @@ class Smarty_Internal_Compile_Break extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -71,5 +72,4 @@ class Smarty_Internal_Compile_Break extends Smarty_Internal_CompileBase
return "<?php break {$_levels}?>";
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Function_Call
*
* Compiles the calls of user defined tags defined by {function}
*
* @package Smarty
@@ -44,7 +43,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -53,7 +52,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase
$_attr = $this->getAttributes($compiler, $args);
// save possible attributes
if (isset($_attr['assign'])) {
// output will be stored in a smarty variable instead of beind displayed
// output will be stored in a smarty variable instead of being displayed
$_assign = $_attr['assign'];
}
$_name = $_attr['name'];
@@ -96,7 +95,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase
}
}
}
//varibale name?
//variable name?
if (!(strpos($_name, '$') === false)) {
$call_cache = $_name;
$call_function = '$tmp = "smarty_template_function_".' . $_name . '; $tmp';
@@ -125,5 +124,4 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase
return $_output;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Capture
*
* Compiles the {capture} tag
*
* @package Smarty
@@ -37,6 +36,7 @@ class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -55,7 +55,6 @@ class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase
return $_output;
}
}
/**
@@ -71,6 +70,7 @@ class Smarty_Internal_Compile_CaptureClose extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -93,5 +93,4 @@ class Smarty_Internal_Compile_CaptureClose extends Smarty_Internal_CompileBase
return $_output;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Config Load
*
* Compiles the {config load} tag
*
* @package Smarty
@@ -44,6 +43,7 @@ class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -56,7 +56,7 @@ class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase
$compiler->trigger_template_error('nocache option not allowed', $compiler->lex->taglineno);
}
// save posible attributes
// save possible attributes
$conf_file = $_attr['file'];
if (isset($_attr['section'])) {
$section = $_attr['section'];
@@ -79,5 +79,4 @@ class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase
return $_output;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Continue
*
* Compiles the {continue} tag
*
* @package Smarty
@@ -38,6 +37,7 @@ class Smarty_Internal_Compile_Continue extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -72,5 +72,4 @@ class Smarty_Internal_Compile_Continue extends Smarty_Internal_CompileBase
return "<?php continue {$_levels}?>";
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Debug
*
* Compiles the {debug} tag.
* It opens a window the the Smarty Debugging Console.
*
@@ -23,6 +22,7 @@ class Smarty_Internal_Compile_Debug extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -38,5 +38,4 @@ class Smarty_Internal_Compile_Debug extends Smarty_Internal_CompileBase
return $_output;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Eval
*
* Compiles the {eval} tag.
*
* @package Smarty
@@ -44,6 +43,7 @@ class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -53,7 +53,7 @@ class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
if (isset($_attr['assign'])) {
// output will be stored in a smarty variable instead of beind displayed
// output will be stored in a smarty variable instead of being displayed
$_assign = $_attr['assign'];
}
@@ -68,5 +68,4 @@ class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase
return "<?php $_output ?>";
}
}

View File

@@ -2,7 +2,6 @@
/**
* Smarty Internal Plugin Compile extend
*
* Compiles the {extends} tag
*
* @package Smarty
@@ -38,6 +37,7 @@ class Smarty_Internal_Compile_Extends extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -52,6 +52,9 @@ class Smarty_Internal_Compile_Extends extends Smarty_Internal_CompileBase
}
$name = $_attr['file'];
/** @var Smarty_Internal_Template $_smarty_tpl
* used in evaluated code
*/
$_smarty_tpl = $compiler->template;
eval("\$tpl_name = $name;");
// create template object
@@ -59,7 +62,7 @@ class Smarty_Internal_Compile_Extends extends Smarty_Internal_CompileBase
// check for recursion
$uid = $_template->source->uid;
if (isset($compiler->extends_uid[$uid])) {
$compiler->trigger_template_error("illegal recursive call of \"$include_file\"", $this->lex->line - 1);
$compiler->trigger_template_error("illegal recursive call of \"$include_file\"", $compiler->lex->line - 1);
}
$compiler->extends_uid[$uid] = true;
if (empty($_template->source->components)) {
@@ -69,7 +72,7 @@ class Smarty_Internal_Compile_Extends extends Smarty_Internal_CompileBase
array_unshift($compiler->sources, $source);
$uid = $source->uid;
if (isset($compiler->extends_uid[$uid])) {
$compiler->trigger_template_error("illegal recursive call of \"{$sorce->filepath}\"", $this->lex->line - 1);
$compiler->trigger_template_error("illegal recursive call of \"{$source->filepath}\"", $compiler->lex->line - 1);
}
$compiler->extends_uid[$uid] = true;
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile For
*
* Compiles the {for} {forelse} {/for} tags
*
* @package Smarty
@@ -19,21 +18,18 @@ class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase
{
/**
* Compiles code for the {for} tag
*
* Smarty 3 does implement two different sytaxes:
*
* Smarty 3 does implement two different syntax's:
* - {for $var in $array}
* For looping over arrays or iterators
*
* - {for $x=0; $x<$y; $x++}
* For general loops
*
* The parser is gereration different sets of attribute by which this compiler can
* determin which syntax is used.
* The parser is generating different sets of attribute by which this compiler can
* determine which syntax is used.
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -81,7 +77,6 @@ class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase
// return compiled code
return $output;
}
}
/**
@@ -98,6 +93,7 @@ class Smarty_Internal_Compile_Forelse extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -110,7 +106,6 @@ class Smarty_Internal_Compile_Forelse extends Smarty_Internal_CompileBase
return "<?php }} else { ?>";
}
}
/**
@@ -127,6 +122,7 @@ class Smarty_Internal_Compile_Forclose extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -146,5 +142,4 @@ class Smarty_Internal_Compile_Forclose extends Smarty_Internal_CompileBase
return "<?php }} ?>";
}
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Foreach
*
* Compiles the {foreach} {foreachelse} {/foreach} tags
*
* @package Smarty
@@ -45,6 +44,7 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -181,6 +181,7 @@ class Smarty_Internal_Compile_Foreachelse extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -193,7 +194,6 @@ class Smarty_Internal_Compile_Foreachelse extends Smarty_Internal_CompileBase
return "<?php }\nif (!\$_smarty_tpl->tpl_vars[$item]->_loop) {\n?>";
}
}
/**
@@ -210,6 +210,7 @@ class Smarty_Internal_Compile_Foreachclose extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -225,5 +226,4 @@ class Smarty_Internal_Compile_Foreachclose extends Smarty_Internal_CompileBase
return "<?php } ?>";
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Function
*
* Compiles the {function} {/function} tags
*
* @package Smarty
@@ -45,6 +44,7 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return boolean true
*/
public function compile($args, $compiler, $parameter)
@@ -64,6 +64,9 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
// set flag that we are compiling a template function
$compiler->compiles_template_function = true;
$compiler->template->properties['function'][$_name]['parameter'] = array();
/** @var Smarty_Internal_Template $_smarty_tpl
* used in evaluated code
*/
$_smarty_tpl = $compiler->template;
foreach ($_attr as $_key => $_data) {
eval ('$tmp=' . $_data . ';');
@@ -79,7 +82,7 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
foreach (\$_smarty_tpl->smarty->template_functions['{$_name}']['parameter'] as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);};
foreach (\$params as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);}?>";
}
// Init temporay context
// Init temporary context
$compiler->template->required_plugins = array('compiled' => array(), 'nocache' => array());
$compiler->parser->current_buffer = new _smarty_template_buffer($compiler->parser);
$compiler->parser->current_buffer->append_subtree(new _smarty_tag($compiler->parser, $output));
@@ -88,7 +91,6 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
$compiler->template->properties['function'][$_name]['compiled'] = '';
return true;
}
}
/**
@@ -105,6 +107,7 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return boolean true
*/
public function compile($args, $compiler, $parameter)
@@ -161,5 +164,4 @@ foreach (Smarty::\$global_tpl_vars as \$key => \$value) if(!isset(\$_smarty_tpl-
return $output;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile If
*
* Compiles the {if} {else} {elseif} {/if} tags
*
* @package Smarty
@@ -23,6 +22,7 @@ class Smarty_Internal_Compile_If extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -62,7 +62,6 @@ class Smarty_Internal_Compile_If extends Smarty_Internal_CompileBase
return "<?php if ({$parameter['if condition']}) {?>";
}
}
}
/**
@@ -79,6 +78,7 @@ class Smarty_Internal_Compile_Else extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -88,7 +88,6 @@ class Smarty_Internal_Compile_Else extends Smarty_Internal_CompileBase
return "<?php } else { ?>";
}
}
/**
@@ -105,6 +104,7 @@ class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -154,8 +154,9 @@ class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase
}
} else {
$tmp = '';
foreach ($compiler->prefix_code as $code)
foreach ($compiler->prefix_code as $code) {
$tmp .= $code;
}
$compiler->prefix_code = array();
$this->openTag($compiler, 'elseif', array($nesting + 1, $compiler->tag_nocache));
if ($condition_by_assign) {
@@ -173,7 +174,6 @@ class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase
}
}
}
}
/**
@@ -190,6 +190,7 @@ class Smarty_Internal_Compile_Ifclose extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -206,5 +207,4 @@ class Smarty_Internal_Compile_Ifclose extends Smarty_Internal_CompileBase
return "<?php {$tmp}?>";
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Include
*
* Compiles the {include} tag
*
* @package Smarty
@@ -56,17 +55,18 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
{
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
// save posible attributes
// save possible attributes
$include_file = $_attr['file'];
if (isset($_attr['assign'])) {
// output will be stored in a smarty variable instead of beind displayed
// output will be stored in a smarty variable instead of being displayed
$_assign = $_attr['assign'];
}
@@ -164,6 +164,9 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
$uid = sha1($_compile_id);
$tpl_name = null;
$nocache = false;
/** @var Smarty_Internal_Template $_smarty_tpl
* used in evaluated code
*/
$_smarty_tpl = $compiler->template;
eval("\$tpl_name = $include_file;");
if (!isset($compiler->smarty->merged_templates_func[$tpl_name][$uid])) {
@@ -183,7 +186,6 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
$tpl->mustCompile = true;
if (!($tpl->source->uncompiled) && $tpl->source->exists) {
// get compiled code
$compiled_code = $tpl->compiler->compileTemplate($tpl, $nocache);
// release compiler object to free memory
@@ -214,17 +216,17 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
if (!empty($_attr)) {
if ($_parent_scope == Smarty::SCOPE_LOCAL) {
// create variables
$nccode = '';
foreach ($_attr as $key => $value) {
$_pairs[] = "'$key'=>$value";
$nccode .= "\$_smarty_tpl->tpl_vars['$key'] = new Smarty_variable($value);\n";
}
$_vars = 'array(' . join(',', $_pairs) . ')';
$_has_vars = true;
} else {
$compiler->trigger_template_error('variable passing not allowed in parent/global scope', $compiler->lex->taglineno);
}
} else {
$_vars = 'array()';
$_has_vars = false;
}
if ($has_compiled_template) {
// never call inline templates in nocache mode
@@ -232,6 +234,11 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
$_hash = $compiler->smarty->merged_templates_func[$tpl_name][$uid]['nocache_hash'];
$_output = "<?php /* Call merged included template \"" . $tpl_name . "\" */\n";
$_output .= "\$_tpl_stack[] = \$_smarty_tpl;\n";
if (!empty($nccode) && $_caching == 9999 && $_smarty_tpl->caching) {
$compiler->suppressNocacheProcessing = false;
$_output .= substr($compiler->processNocacheCode('<?php ' .$nccode . "?>\n", true), 6, -3);
$compiler->suppressNocacheProcessing = true;
}
$_output .= " \$_smarty_tpl = \$_smarty_tpl->setupInlineSubTemplate($include_file, $_cache_id, $_compile_id, $_caching, $_cache_lifetime, $_vars, $_parent_scope, '$_hash');\n";
if (isset($_assign)) {
$_output .= 'ob_start(); ';

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Include PHP
*
* Compiles the {include_php} tag
*
* @package Smarty
@@ -44,6 +43,8 @@ class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @throws SmartyException
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -54,8 +55,9 @@ class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
$_output = '<?php ';
/** @var Smarty_Internal_Template $_smarty_tpl
* used in evaluated code
*/
$_smarty_tpl = $compiler->template;
$_filepath = false;
eval('$_file = ' . $_attr['file'] . ';');
@@ -102,5 +104,4 @@ class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase
return "<?php include{$_once} ('{$_filepath}');?>\n";
}
}
}

View File

@@ -2,7 +2,6 @@
/**
* Smarty Internal Plugin Compile Insert
*
* Compiles the {insert} tag
*
* @package Smarty
@@ -45,6 +44,7 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -59,12 +59,12 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
$_script = null;
$_output = '<?php ';
// save posible attributes
// save possible attributes
eval('$_name = ' . $_attr['name'] . ';');
if (isset($_attr['assign'])) {
// output will be stored in a smarty variable instead of being displayed
$_assign = $_attr['assign'];
// create variable to make shure that the compiler knows about its nocache status
// create variable to make sure that the compiler knows about its nocache status
$compiler->template->tpl_vars[trim($_attr['assign'], "'")] = new Smarty_Variable(null, true);
}
if (isset($_attr['script'])) {
@@ -137,5 +137,4 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
return $_output;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Ldelim
*
* Compiles the {ldelim} tag
*
* @package Smarty
@@ -19,10 +18,11 @@ class Smarty_Internal_Compile_Ldelim extends Smarty_Internal_CompileBase
{
/**
* Compiles code for the {ldelim} tag
*
* This tag does output the left delimiter
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -36,5 +36,4 @@ class Smarty_Internal_Compile_Ldelim extends Smarty_Internal_CompileBase
return $compiler->smarty->left_delimiter;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Nocache
*
* Compiles the {nocache} {/nocache} tags.
*
* @package Smarty
@@ -10,7 +9,7 @@
*/
/**
* Smarty Internal Plugin Compile Nocache Classv
* Smarty Internal Plugin Compile Nocache Class
*
* @package Smarty
* @subpackage Compiler
@@ -19,11 +18,11 @@ class Smarty_Internal_Compile_Nocache extends Smarty_Internal_CompileBase
{
/**
* Compiles code for the {nocache} tag
*
* This tag does not generate compiled output. It only sets a compiler flag.
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return bool
*/
public function compile($args, $compiler)
@@ -39,7 +38,6 @@ class Smarty_Internal_Compile_Nocache extends Smarty_Internal_CompileBase
return true;
}
}
/**
@@ -52,11 +50,11 @@ class Smarty_Internal_Compile_Nocacheclose extends Smarty_Internal_CompileBase
{
/**
* Compiles code for the {/nocache} tag
*
* This tag does not generate compiled output. It only sets a compiler flag.
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return bool
*/
public function compile($args, $compiler)
@@ -69,5 +67,4 @@ class Smarty_Internal_Compile_Nocacheclose extends Smarty_Internal_CompileBase
return true;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Block Plugin
*
* Compiles code for the execution of block plugin
*
* @package Smarty
@@ -33,6 +32,7 @@ class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_Compi
* @param array $parameter array with compilation parameter
* @param string $tag name of block plugin
* @param string $function PHP function name
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter, $tag, $function)
@@ -82,5 +82,4 @@ class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_Compi
return $output . "\n";
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Function Plugin
*
* Compiles code for the execution of function plugin
*
* @package Smarty
@@ -40,6 +39,7 @@ class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_Co
* @param array $parameter array with compilation parameter
* @param string $tag name of function plugin
* @param string $function PHP function name
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter, $tag, $function)
@@ -68,5 +68,4 @@ class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_Co
return $output;
}
}

View File

@@ -2,7 +2,6 @@
/**
* Smarty Internal Plugin Compile Modifier
*
* Compiles code for modifier execution
*
* @package Smarty
@@ -24,6 +23,7 @@ class Smarty_Internal_Compile_Private_Modifier extends Smarty_Internal_CompileBa
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -136,5 +136,4 @@ class Smarty_Internal_Compile_Private_Modifier extends Smarty_Internal_CompileBa
return $output;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Object Block Function
*
* Compiles code for registered objects as block function
*
* @package Smarty
@@ -33,6 +32,7 @@ class Smarty_Internal_Compile_Private_Object_Block_Function extends Smarty_Inter
* @param array $parameter array with compilation parameter
* @param string $tag name of block object
* @param string $method name of method to call
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter, $tag, $method)
@@ -83,5 +83,4 @@ class Smarty_Internal_Compile_Private_Object_Block_Function extends Smarty_Inter
return $output . "\n";
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Object Funtion
*
* Smarty Internal Plugin Compile Object Function
* Compiles code for registered objects as function
*
* @package Smarty
@@ -33,6 +32,7 @@ class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_Co
* @param array $parameter array with compilation parameter
* @param string $tag name of function
* @param string $method name of method to call
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter, $tag, $method)
@@ -81,5 +81,4 @@ class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_Co
return $output;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Print Expression
*
* Compiles any tag which will output an expression or variable
*
* @package Smarty
@@ -33,11 +32,13 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
public $option_flags = array('nocache', 'nofilter');
/**
* Compiles code for gererting output from any expression
* Compiles code for generating output from any expression
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @throws SmartyException
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -48,12 +49,6 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
if ($_attr['nocache'] === true) {
$compiler->tag_nocache = true;
}
// filter handling
if ($_attr['nofilter'] === true) {
$_filter = 'false';
} else {
$_filter = 'true';
}
if (isset($_attr['assign'])) {
// assign output to variable
$output = "<?php \$_smarty_tpl->assign({$_attr['assign']},{$parameter['value']});?>";
@@ -85,7 +80,7 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
if ($compiler->template->smarty->escape_html) {
$output = "htmlspecialchars({$output}, ENT_QUOTES, '" . addslashes(Smarty::$_CHARSET) . "')";
}
// loop over registerd filters
// loop over registered filters
if (!empty($compiler->template->smarty->registered_filters[Smarty::FILTER_VARIABLE])) {
foreach ($compiler->template->smarty->registered_filters[Smarty::FILTER_VARIABLE] as $key => $function) {
if (!is_array($function)) {
@@ -130,7 +125,8 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
/**
* @param object $compiler compiler object
* @param string $name name of variable filter
* @param type $output embedded output
* @param string $output embedded output
*
* @return string
*/
private function compile_output_filter($compiler, $name, $output)
@@ -152,5 +148,4 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
return "{$plugin_name}({$output},\$_smarty_tpl)";
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Registered Block
*
* Compiles code for the execution of a registered block function
*
* @package Smarty
@@ -32,6 +31,7 @@ class Smarty_Internal_Compile_Private_Registered_Block extends Smarty_Internal_C
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
* @param string $tag name of block function
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter, $tag)
@@ -108,5 +108,4 @@ class Smarty_Internal_Compile_Private_Registered_Block extends Smarty_Internal_C
return $output . "\n";
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Registered Function
*
* Compiles code for the execution of a registered function
*
* @package Smarty
@@ -32,6 +31,7 @@ class Smarty_Internal_Compile_Private_Registered_Function extends Smarty_Interna
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
* @param string $tag name of function
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter, $tag)
@@ -76,5 +76,4 @@ class Smarty_Internal_Compile_Private_Registered_Function extends Smarty_Interna
return $output;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Special Smarty Variable
*
* Compiles the special $smarty variables
*
* @package Smarty
@@ -18,10 +17,12 @@
class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_CompileBase
{
/**
* Compiles code for the speical $smarty variables
* Compiles code for the special $smarty variables
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param $parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -110,5 +111,4 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
return $compiled_ref;
}
}

View File

@@ -1,8 +1,8 @@
<?php
/**
* Smarty Internal Plugin Compile Rdelim
*
* Compiles the {rdelim} tag
*
* @package Smarty
* @subpackage Compiler
* @author Uwe Tews
@@ -18,11 +18,11 @@ class Smarty_Internal_Compile_Rdelim extends Smarty_Internal_CompileBase
{
/**
* Compiles code for the {rdelim} tag
*
* This tag does output the right delimiter.
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -36,5 +36,4 @@ class Smarty_Internal_Compile_Rdelim extends Smarty_Internal_CompileBase
return $compiler->smarty->right_delimiter;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Section
*
* Compiles the {section} {sectionelse} {/section} tags
*
* @package Smarty
@@ -44,6 +43,7 @@ class Smarty_Internal_Compile_Section extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -69,10 +69,11 @@ class Smarty_Internal_Compile_Section extends Smarty_Internal_CompileBase
break;
case 'show':
if (is_bool($attr_value))
if (is_bool($attr_value)) {
$show_attr_value = $attr_value ? 'true' : 'false';
else
} else {
$show_attr_value = "(bool) $attr_value";
}
$output .= "{$section_props}['show'] = $show_attr_value;\n";
break;
@@ -91,23 +92,27 @@ class Smarty_Internal_Compile_Section extends Smarty_Internal_CompileBase
}
}
if (!isset($_attr['show']))
if (!isset($_attr['show'])) {
$output .= "{$section_props}['show'] = true;\n";
}
if (!isset($_attr['loop']))
if (!isset($_attr['loop'])) {
$output .= "{$section_props}['loop'] = 1;\n";
}
if (!isset($_attr['max']))
if (!isset($_attr['max'])) {
$output .= "{$section_props}['max'] = {$section_props}['loop'];\n";
else
} else {
$output .= "if ({$section_props}['max'] < 0)\n" . " {$section_props}['max'] = {$section_props}['loop'];\n";
}
if (!isset($_attr['step']))
if (!isset($_attr['step'])) {
$output .= "{$section_props}['step'] = 1;\n";
}
if (!isset($_attr['start']))
if (!isset($_attr['start'])) {
$output .= "{$section_props}['start'] = {$section_props}['step'] > 0 ? 0 : {$section_props}['loop']-1;\n";
else {
} else {
$output .= "if ({$section_props}['start'] < 0)\n" . " {$section_props}['start'] = max({$section_props}['step'] > 0 ? 0 : -1, {$section_props}['loop'] + {$section_props}['start']);\n" . "else\n" . " {$section_props}['start'] = min({$section_props}['start'], {$section_props}['step'] > 0 ? {$section_props}['loop'] : {$section_props}['loop']-1);\n";
}
@@ -134,7 +139,6 @@ class Smarty_Internal_Compile_Section extends Smarty_Internal_CompileBase
return $output;
}
}
/**
@@ -150,6 +154,7 @@ class Smarty_Internal_Compile_Sectionelse extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -162,7 +167,6 @@ class Smarty_Internal_Compile_Sectionelse extends Smarty_Internal_CompileBase
return "<?php endfor; else: ?>";
}
}
/**
@@ -178,6 +182,7 @@ class Smarty_Internal_Compile_Sectionclose extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -198,5 +203,4 @@ class Smarty_Internal_Compile_Sectionclose extends Smarty_Internal_CompileBase
return "<?php endfor; endif; ?>";
}
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile Setfilter
*
* Compiles code for setfilter tag
*
* @package Smarty
@@ -23,6 +22,7 @@ class Smarty_Internal_Compile_Setfilter extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -34,7 +34,6 @@ class Smarty_Internal_Compile_Setfilter extends Smarty_Internal_CompileBase
return true;
}
}
/**
@@ -47,11 +46,11 @@ class Smarty_Internal_Compile_Setfilterclose extends Smarty_Internal_CompileBase
{
/**
* Compiles code for the {/setfilter} tag
*
* This tag does not generate compiled output. It resets variable filter.
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -68,5 +67,4 @@ class Smarty_Internal_Compile_Setfilterclose extends Smarty_Internal_CompileBase
return true;
}
}

View File

@@ -1,7 +1,6 @@
<?php
/**
* Smarty Internal Plugin Compile While
*
* Compiles the {while} tag
*
* @package Smarty
@@ -23,6 +22,7 @@ class Smarty_Internal_Compile_While extends Smarty_Internal_CompileBase
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @param array $parameter array with compilation parameter
*
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -62,7 +62,6 @@ class Smarty_Internal_Compile_While extends Smarty_Internal_CompileBase
return "<?php while ({$parameter['if condition']}) {?>";
}
}
}
/**
@@ -78,6 +77,7 @@ class Smarty_Internal_Compile_Whileclose extends Smarty_Internal_CompileBase
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
*
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -90,5 +90,4 @@ class Smarty_Internal_Compile_Whileclose extends Smarty_Internal_CompileBase
return "<?php }?>";
}
}

View File

@@ -43,7 +43,6 @@ abstract class Smarty_Internal_CompileBase
/**
* This function checks if the attributes passed are valid
*
* The attributes passed for the tag to compile are checked against the list of required and
* optional attributes. Required attributes must be present. Optional attributes are check against
* the corresponding list. The keyword '_any' specifies that any attribute will be accepted
@@ -51,6 +50,7 @@ abstract class Smarty_Internal_CompileBase
*
* @param object $compiler compiler object
* @param array $attributes attributes applied to the tag
*
* @return array of mapped attributes for further processing
*/
public function getAttributes($compiler, $attributes)
@@ -105,7 +105,7 @@ abstract class Smarty_Internal_CompileBase
$compiler->trigger_template_error("missing \"" . $attr . "\" attribute", $compiler->lex->taglineno);
}
}
// check for unallowed attributes
// check for not allowed attributes
if ($this->optional_attributes != array('_any')) {
$tmp_array = array_merge($this->required_attributes, $this->optional_attributes, $this->option_flags);
foreach ($_indexed_attr as $key => $dummy) {
@@ -126,7 +126,6 @@ abstract class Smarty_Internal_CompileBase
/**
* Push opening tag name on stack
*
* Optionally additional data can be saved on stack
*
* @param object $compiler compiler object
@@ -140,11 +139,11 @@ abstract class Smarty_Internal_CompileBase
/**
* Pop closing tag
*
* Raise an error if this stack-top doesn't match with expected opening tags
*
* @param object $compiler compiler object
* @param array|string $expectedTag the expected opening tag names
*
* @return mixed any type the opening tag's name or saved data
*/
public function closeTag($compiler, $expectedTag)
@@ -172,5 +171,4 @@ abstract class Smarty_Internal_CompileBase
return;
}
}

View File

@@ -9,20 +9,16 @@
/**
* Smarty Internal Plugin Config
*
* Main class for config variables
*
* @package Smarty
* @subpackage Config
*
* @property Smarty_Config_Source $source
* @property Smarty_Config_Compiled $compiled
* @ignore
*/
class Smarty_Internal_Config
{
/**
* Samrty instance
* Smarty instance
*
* @var Smarty object
*/
@@ -35,6 +31,7 @@ class Smarty_Internal_Config
public $data = null;
/**
* Config resource
*
* @var string
*/
public $config_resource = null;
@@ -58,6 +55,7 @@ class Smarty_Internal_Config
public $compiled_timestamp = null;
/**
* flag if compiled config file is invalid and must be (re)compiled
*
* @var bool
*/
public $mustCompile = null;
@@ -104,7 +102,7 @@ class Smarty_Internal_Config
$_compile_id = isset($this->smarty->compile_id) ? preg_replace('![^\w\|]+!', '_', $this->smarty->compile_id) : null;
$_flag = (int) $this->smarty->config_read_hidden + (int) $this->smarty->config_booleanize * 2
+ (int) $this->smarty->config_overwrite * 4;
$_filepath = sha1($this->source->filepath . $_flag);
$_filepath = sha1(realpath($this->source->filepath) . $_flag);
// if use_sub_dirs, break file into directories
if ($this->smarty->use_sub_dirs) {
$_filepath = substr($_filepath, 0, 2) . DS
@@ -122,7 +120,7 @@ class Smarty_Internal_Config
}
/**
* Returns the timpestamp of the compiled file
* Returns the timestamp of the compiled file
*
* @return integer the file timestamp
*/
@@ -135,7 +133,6 @@ class Smarty_Internal_Config
/**
* Returns if the current config file must be compiled
*
* It does compare the timestamps of config source and the compiled config and checks the force compile configuration
*
* @return boolean true if the file must be compiled
@@ -149,7 +146,6 @@ class Smarty_Internal_Config
/**
* Returns the compiled config file
*
* It checks if the config file must be compiled or just read the compiled version
*
* @return string the compiled config file
@@ -189,14 +185,15 @@ class Smarty_Internal_Config
// call compiler
try {
$this->compiler_object->compileSource($this);
} catch (Exception $e) {
}
catch (Exception $e) {
// restore old timestamp in case of error
if ($this->smarty->compile_locking && $saved_timestamp) {
touch($this->getCompiledFilepath(), $saved_timestamp);
}
throw $e;
}
// compiling succeded
// compiling succeeded
// write compiled template
Smarty_Internal_Write_File::writeFile($this->getCompiledFilepath(), $this->getCompiledConfig(), $this->smarty);
}
@@ -205,7 +202,9 @@ class Smarty_Internal_Config
* load config variables
*
* @param mixed $sections array of section names, single section or null
* @param object $scope global,parent or local
* @param string $scope global,parent or local
*
* @throws Exception
*/
public function loadConfigVars($sections = null, $scope = 'local')
{
@@ -261,6 +260,7 @@ class Smarty_Internal_Config
*
* @param string $property_name property name
* @param mixed $value value
*
* @throws SmartyException if $property_name is not valid
*/
public function __set($property_name, $value)
@@ -280,6 +280,8 @@ class Smarty_Internal_Config
* get Smarty property in template context
*
* @param string $property_name property name
*
* @return \Smarty_Config_Source|\Smarty_Template_Compiled
* @throws SmartyException if $property_name is not valid
*/
public function __get($property_name)
@@ -301,5 +303,4 @@ class Smarty_Internal_Config
throw new SmartyException("config attribute '$property_name' does not exist.");
}
}

Some files were not shown because too many files have changed in this diff Show More