You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
3.6 KiB
PHP
71 lines
3.6 KiB
PHP
<?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 http://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 = isset($obj->smarty) ? $obj->smarty : $obj;
|
|
// 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;
|
|
}
|
|
} |