diff options
author | Wave <wave72@users.noreply.github.com> | 2015-12-20 10:20:36 +0100 |
---|---|---|
committer | Wave <wave72@users.noreply.github.com> | 2015-12-20 10:20:36 +0100 |
commit | 2aad4c2cf9c17a7532089aadfcc5feff6505ec74 (patch) | |
tree | 2082c8dc7ba090f610874b6e33b0f1092a2ff00c /library/Smarty/libs/sysplugins/smarty_internal_method_gettags.php | |
parent | 474a1267d73c1dcf00678dd15ed4e0e37496473d (diff) | |
parent | e2692a4baaf031bd0d9c0893c3762637b1f6b201 (diff) | |
download | volse-hubzilla-2aad4c2cf9c17a7532089aadfcc5feff6505ec74.tar.gz volse-hubzilla-2aad4c2cf9c17a7532089aadfcc5feff6505ec74.tar.bz2 volse-hubzilla-2aad4c2cf9c17a7532089aadfcc5feff6505ec74.zip |
Merge pull request #4 from redmatrix/master
Merge master into dev branch
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 |