mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-07 03:44:26 +02:00
- bugfix on changes of 05/02/2010
This commit is contained in:
@@ -220,6 +220,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
public $_dir_perms = 0771;
|
public $_dir_perms = 0771;
|
||||||
// smarty object reference
|
// smarty object reference
|
||||||
public $smarty = null;
|
public $smarty = null;
|
||||||
|
// block data at template inheritance
|
||||||
|
public $block_data = array();
|
||||||
// generate deprecated function call notices?
|
// generate deprecated function call notices?
|
||||||
public $deprecation_notices = true;
|
public $deprecation_notices = true;
|
||||||
|
|
||||||
@@ -428,6 +430,13 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable security
|
||||||
|
*/
|
||||||
|
public function disableSecurity() {
|
||||||
|
$this->security = true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set template directory
|
* Set template directory
|
||||||
*
|
*
|
||||||
@@ -449,13 +458,6 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Enable Caching
|
|
||||||
*/
|
|
||||||
public function enableCaching() {
|
|
||||||
$this->caching = SMARTY_CACHING_LIFETIME_CURRENT;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a template resource exists
|
* Check if a template resource exists
|
||||||
@@ -463,8 +465,7 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $resource_name template name
|
* @param string $resource_name template name
|
||||||
* @return boolean status
|
* @return boolean status
|
||||||
*/
|
*/
|
||||||
function templateExists($resource_name)
|
function templateExists($resource_name) {
|
||||||
{
|
|
||||||
// create template object
|
// create template object
|
||||||
$tpl = new $this->template_class($resource_name, $this);
|
$tpl = new $this->template_class($resource_name, $this);
|
||||||
// check if it does exists
|
// check if it does exists
|
||||||
@@ -526,8 +527,7 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $name filter name
|
* @param string $name filter name
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
function loadFilter($type, $name)
|
function loadFilter($type, $name) {
|
||||||
{
|
|
||||||
$_plugin = "smarty_{$type}filter_{$name}";
|
$_plugin = "smarty_{$type}filter_{$name}";
|
||||||
$_filter_name = $_plugin;
|
$_filter_name = $_plugin;
|
||||||
if ($this->loadPlugin($_plugin)) {
|
if ($this->loadPlugin($_plugin)) {
|
||||||
@@ -568,16 +568,15 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
*
|
*
|
||||||
* @param callback $function_name
|
* @param callback $function_name
|
||||||
*/
|
*/
|
||||||
public function _get_filter_name($function_name)
|
public function _get_filter_name($function_name) {
|
||||||
{
|
if (is_array($function_name)) {
|
||||||
if (is_array($function_name)) {
|
$_class_name = (is_object($function_name[0]) ?
|
||||||
$_class_name = (is_object($function_name[0]) ?
|
get_class($function_name[0]) : $function_name[0]);
|
||||||
get_class($function_name[0]) : $function_name[0]);
|
return $_class_name . '_' . $function_name[1];
|
||||||
return $_class_name . '_' . $function_name[1];
|
}
|
||||||
}
|
else {
|
||||||
else {
|
return $function_name;
|
||||||
return $function_name;
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -587,8 +586,7 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $ |array $ plugins folder
|
* @param string $ |array $ plugins folder
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
function addPluginsDir($plugins_dir)
|
function addPluginsDir($plugins_dir) {
|
||||||
{
|
|
||||||
$this->plugins_dir = array_merge((array)$this->plugins_dir, (array)$plugins_dir);
|
$this->plugins_dir = array_merge((array)$this->plugins_dir, (array)$plugins_dir);
|
||||||
$this->plugins_dir = array_unique($this->plugins_dir);
|
$this->plugins_dir = array_unique($this->plugins_dir);
|
||||||
return;
|
return;
|
||||||
@@ -601,15 +599,16 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $varname variable name or null
|
* @param string $varname variable name or null
|
||||||
* @return string variable value or or array of variables
|
* @return string variable value or or array of variables
|
||||||
*/
|
*/
|
||||||
function getGlobal($varname = null)
|
function getGlobal($varname = null) {
|
||||||
{
|
|
||||||
if (isset($varname)) {
|
if (isset($varname)) {
|
||||||
if (isset($this->global_tpl_vars[$varname])) {
|
if (isset($this->global_tpl_vars[$varname])) {
|
||||||
return $this->global_tpl_vars[$varname]->value;
|
return $this->global_tpl_vars[$varname]->value;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$_result = array();
|
$_result = array();
|
||||||
foreach ($this->global_tpl_vars AS $key => $var) {
|
foreach ($this->global_tpl_vars AS $key => $var) {
|
||||||
$_result[$key] = $var->value;
|
$_result[$key] = $var->value;
|
||||||
@@ -624,13 +623,12 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $name object name
|
* @param string $name object name
|
||||||
* @return object
|
* @return object
|
||||||
*/
|
*/
|
||||||
function getRegisteredObject($name)
|
function getRegisteredObject($name) {
|
||||||
{
|
|
||||||
if (!isset($this->registered_objects[$name]))
|
if (!isset($this->registered_objects[$name]))
|
||||||
throw new Exception("'$name' is not a registered object");
|
throw new Exception("'$name' is not a registered object");
|
||||||
|
|
||||||
if (!is_object($this->registered_objects[$name][0]))
|
if (!is_object($this->registered_objects[$name][0]))
|
||||||
throw new Exception("registered '$name' is not an object");
|
throw new Exception("registered '$name' is not an object");
|
||||||
|
|
||||||
return $this->registered_objects[$name][0];
|
return $this->registered_objects[$name][0];
|
||||||
}
|
}
|
||||||
@@ -640,8 +638,7 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function getDebugTemplate()
|
function getDebugTemplate() {
|
||||||
{
|
|
||||||
return $this->debug_tpl;
|
return $this->debug_tpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -651,8 +648,7 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $tpl_name
|
* @param string $tpl_name
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
function setDebugTemplate($tpl_name)
|
function setDebugTemplate($tpl_name) {
|
||||||
{
|
|
||||||
return $this->debug_tpl = $tpl_name;
|
return $this->debug_tpl = $tpl_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -662,8 +658,8 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
* @param string $name property name
|
* @param string $name property name
|
||||||
*/
|
*/
|
||||||
public function __get($name) {
|
public function __get($name) {
|
||||||
if(in_array($name,array('register','unregister','utility','cache'))) {
|
if(in_array($name, array('register', 'unregister', 'utility', 'cache'))) {
|
||||||
$class = "Smarty_Internal_".ucfirst($name);
|
$class = "Smarty_Internal_" . ucfirst($name);
|
||||||
return new $class($this);
|
return new $class($this);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -680,34 +676,32 @@ class Smarty extends Smarty_Internal_Data {
|
|||||||
public function __call($name, $args) {
|
public function __call($name, $args) {
|
||||||
static $camel_func;
|
static $camel_func;
|
||||||
if(!isset($camel_func))
|
if(!isset($camel_func))
|
||||||
$camel_func = create_function('$c', 'return "_" . strtolower($c[1]);');
|
$camel_func = create_function('$c', 'return "_" . strtolower($c[1]);');
|
||||||
// PHP4 call to constructor?
|
// PHP4 call to constructor?
|
||||||
if (strtolower($name) == 'smarty') {
|
if (strtolower($name) == 'smarty') {
|
||||||
throw new Exception('Please use parent::__construct() to call parent constuctor');
|
throw new Exception('Please use parent::__construct() to call parent constuctor');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// see if this is a set/get for a property
|
// see if this is a set/get for a property
|
||||||
$first3 = strtolower(substr($name,0,3));
|
$first3 = strtolower(substr($name, 0, 3));
|
||||||
if(in_array($first3,array('set','get')) && substr($name,3,1) !== '_') {
|
if(in_array($first3, array('set', 'get')) && substr($name, 3, 1) !== '_') {
|
||||||
// try to keep case correct for future PHP 6.0 case-sensitive class methods
|
// try to keep case correct for future PHP 6.0 case-sensitive class methods
|
||||||
// lcfirst() not available < PHP 5.3.0, so improvise
|
// lcfirst() not available < PHP 5.3.0, so improvise
|
||||||
$property_name = strtolower(substr($name,3,1)).substr($name,4);
|
$property_name = strtolower(substr($name, 3, 1)) . substr($name, 4);
|
||||||
// convert camel case to underscored name
|
// convert camel case to underscored name
|
||||||
$property_name = preg_replace_callback('/([A-Z])/', $camel_func, $property_name);
|
$property_name = preg_replace_callback('/([A-Z])/', $camel_func, $property_name);
|
||||||
if(!property_exists($this,$property_name)) {
|
if(!property_exists($this, $property_name)) {
|
||||||
throw new Exception("property '$property_name' does not exist.");
|
throw new Exception("property '$property_name' does not exist.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if($first3 == 'get')
|
if($first3 == 'get')
|
||||||
return $this->$property_name;
|
return $this->$property_name;
|
||||||
else
|
else
|
||||||
return $this->$property_name = $args[0];
|
return $this->$property_name = $args[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Smarty Backward Compatible wrapper
|
// Smarty Backward Compatible wrapper
|
||||||
if(!isset($this->wrapper)) {
|
if(!isset($this->wrapper)) {
|
||||||
$this->wrapper = new Smarty_Internal_Wrapper($this);
|
$this->wrapper = new Smarty_Internal_Wrapper($this);
|
||||||
}
|
}
|
||||||
return $this->wrapper->convert($name, $args);
|
return $this->wrapper->convert($name, $args);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user