diff options
author | mrjive <mrjive@mrjive.it> | 2016-01-03 09:52:37 +0100 |
---|---|---|
committer | mrjive <mrjive@mrjive.it> | 2016-01-03 09:52:37 +0100 |
commit | 07f5bdde60f55e3b217aee9e33c3175e90a5f0f1 (patch) | |
tree | 2b5988c7661c9a5a67f5da8797ca57381e2aad7a /library/Smarty/libs/sysplugins/smarty_internal_method_gettags.php | |
parent | 051346325609f5f2e78ef0deaf182c65d7823bbc (diff) | |
parent | 5b0a17359d6b5b3e27219c9e56117f1017996175 (diff) | |
download | volse-hubzilla-07f5bdde60f55e3b217aee9e33c3175e90a5f0f1.tar.gz volse-hubzilla-07f5bdde60f55e3b217aee9e33c3175e90a5f0f1.tar.bz2 volse-hubzilla-07f5bdde60f55e3b217aee9e33c3175e90a5f0f1.zip |
Merge pull request #10 from redmatrix/master
updating from original codebase
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_method_gettags.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_method_gettags.php | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_method_gettags.php b/library/Smarty/libs/sysplugins/smarty_internal_method_gettags.php new file mode 100644 index 000000000..dd9e8d1ca --- /dev/null +++ b/library/Smarty/libs/sysplugins/smarty_internal_method_gettags.php @@ -0,0 +1,62 @@ +<?php + +/** + * Smarty Method GetTags + * + * Smarty::getTags() method + * + * @package Smarty + * @subpackage PluginsInternal + * @author Uwe Tews + */ +class Smarty_Internal_Method_GetTags +{ + /** + * Valid for Smarty and template object + * + * @var int + */ + public $objMap = 3; + + /** + * Return array of tag/attributes of all tags used by an template + * + * @api Smarty::getTags() + * @link http://www.smarty.net/docs/en/api.get.tags.tpl + * + * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj + * @param null|string|Smarty_Internal_Template $template + * + * @return array of tag/attributes + * @throws \SmartyException + */ + public function getTags(Smarty_Internal_TemplateBase $obj, $template = null) + { + /* @var Smarty $smarty */ + $smarty = isset($this->smarty) ? $this->smarty : $obj; + if ($obj->_objType == 2 && !isset($template)) { + $tpl = clone $obj; + } elseif (isset($template) && $template->_objType == 2) { + $tpl = clone $template; + } elseif (isset($template) && is_string($template)) { + /* @var Smarty_Internal_Template $tpl */ + $tpl = new $smarty->template_class($template, $smarty); + // checks if template exists + if (!$tpl->source->exists) { + throw new SmartyException("Unable to load template {$tpl->source->type} '{$tpl->source->name}'"); + } + } + if (isset($tpl)) { + $tpl->smarty = clone $tpl->smarty; + $tpl->smarty->_cache['get_used_tags'] = true; + $tpl->_cache['used_tags'] = array(); + $tpl->smarty->merge_compiled_includes = false; + $tpl->smarty->disableSecurity(); + $tpl->caching = false; + $tpl->loadCompiler(); + $tpl->compiler->compileTemplate($tpl); + return $tpl->_cache['used_tags']; + } + throw new SmartyException("Missing template specification"); + } +}
\ No newline at end of file |