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.
 
 
 
 
 
 

48 lines
1.7 KiB

<?php
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
if (basename($_SERVER['SCRIPT_NAME']) === basename(__FILE__)) {
die('This script may only be included.');
}
// Handle actions of plugins (smarty plugins, wiki-plugins, modules, ...)
$plugins_actions = [];
$matches = [];
foreach ($_REQUEST as $k => $v) {
if (preg_match('/^(\w_\w_)([a-zA-Z0-9_-]+)-(.*)$/', $k, $matches)) {
$plugin_type =& $matches[1];
$plugin_name =& $matches[2];
$plugin_argument =& $matches[3];
if (! isset($plugins_actions[$plugin_type])) {
$plugins_actions[$plugin_type] = [];
}
if (! isset($plugins_actions[$plugin_type][$plugin_name])) {
$plugins_actions[$plugin_type][$plugin_name] = [];
}
$plugins_actions[$plugin_type][$plugin_name][$plugin_argument] =& $_REQUEST[$k];
}
}
foreach ($plugins_actions as $plugin_type => $v) {
foreach ($v as $plugin_name => $params) {
switch ($plugin_type) {
case 's_f_': // Smarty Function
@include_once('lib/smarty_tiki/function.' . $plugin_name . '.php');
$func = 's_f_' . $plugin_name . '_actionshandler';
if (! function_exists($func) || ! call_user_func($func, $params)) {
TikiLib::lib('access')->display_error('', sprintf(tra('Handling actions of plugin "%s" failed.'), $plugin_name));
}
break;
}
}
}
unset($matches);
unset($plugins_actions);