forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
4.0 KiB
84 lines
4.0 KiB
<?php |
|
|
|
/** |
|
* Smarty Method RegisterObject |
|
* |
|
* Smarty::registerObject() method |
|
* |
|
* @package Smarty |
|
* @subpackage PluginsInternal |
|
* @author Uwe Tews |
|
*/ |
|
class Smarty_Internal_Method_RegisterObject |
|
{ |
|
/** |
|
* Valid for Smarty and template object |
|
* |
|
* @var int |
|
*/ |
|
public $objMap = 3; |
|
|
|
/** |
|
* Registers object to be used in templates |
|
* |
|
* @api Smarty::registerObject() |
|
* @link https://www.smarty.net/docs/en/api.register.object.tpl |
|
* |
|
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj |
|
* @param string $object_name |
|
* @param object $object the |
|
* referenced |
|
* PHP |
|
* object |
|
* to |
|
* register |
|
* |
|
* @param array $allowed_methods_properties list of |
|
* allowed |
|
* methods |
|
* (empty |
|
* = all) |
|
* |
|
* @param bool $format smarty |
|
* argument |
|
* format, |
|
* else |
|
* traditional |
|
* |
|
* @param array $block_methods list of |
|
* block-methods |
|
* |
|
* @return \Smarty|\Smarty_Internal_Template |
|
* @throws \SmartyException |
|
*/ |
|
public function registerObject( |
|
Smarty_Internal_TemplateBase $obj, |
|
$object_name, |
|
$object, |
|
$allowed_methods_properties = array(), |
|
$format = true, |
|
$block_methods = array() |
|
) { |
|
$smarty = $obj->_getSmartyObj(); |
|
// test if allowed methods callable |
|
if (!empty($allowed_methods_properties)) { |
|
foreach ((array)$allowed_methods_properties as $method) { |
|
if (!is_callable(array($object, $method)) && !property_exists($object, $method)) { |
|
throw new SmartyException("Undefined method or property '$method' in registered object"); |
|
} |
|
} |
|
} |
|
// test if block methods callable |
|
if (!empty($block_methods)) { |
|
foreach ((array)$block_methods as $method) { |
|
if (!is_callable(array($object, $method))) { |
|
throw new SmartyException("Undefined method '$method' in registered object"); |
|
} |
|
} |
|
} |
|
// register the object |
|
$smarty->registered_objects[ $object_name ] = |
|
array($object, (array)$allowed_methods_properties, (boolean)$format, (array)$block_methods); |
|
return $obj; |
|
} |
|
}
|
|
|