tra('Smarty function'),
'documentation' => 'PluginSmarty',
'description' => tra('Insert a Smarty function or variable'),
'prefs' => ['wikiplugin_smarty'],
'validate' => 'all',
'extraparams' => true,
'format' => 'html',
'tags' => [ 'experimental' ],
'iconname' => 'code',
'introduced' => 5,
'params' => [
'name' => [
'required' => true,
'name' => tra('Smarty function'),
'description' => tr(
'The name of the Smarty function that the plugin will activate. Available functions can be found at %0 and %1',
'lib/smarty_tiki/function.(name).php',
'vendor_bundled/vendor/smarty/smarty/libs/plugins/function.(name).php'
),
'since' => '7.0',
'filter' => 'word',
'default' => '',
],
],
];
}
function wikiplugin_smarty($data, $params)
{
$smarty = TikiLib::lib('smarty');
if (empty($params['name'])) {
return tra('Incorrect parameter');
}
if ($params['name'] == 'eval') {
$content = $smarty->fetch('string:' . $params['var']);
} else {
$path = 'lib/smarty_tiki/function.' . $params['name'] . '.php';
if (! file_exists($path)) {
$path = 'vendor_bundled/vendor/smarty/smarty/libs/plugins/function.' . $params['name'] . '.php';
if (! file_exists($path)) {
return tra('Incorrect parameter');
}
}
include_once($path);
$func = 'smarty_function_' . $params['name'];
$content = $func($params, $smarty);
}
return $content;
}