$val)
if (! isset($GLOBALS[$name]))
$GLOBALS[$name] = $val;
}
// Check plugin '$name' is here
function exist_plugin($name)
{
global $vars;
static $exist = array(), $count = array();
$name = strtolower($name);
if(isset($exist[$name])) {
if (++$count[$name] > PKWK_PLUGIN_CALL_TIME_LIMIT)
die('Alert: plugin "' . htmlsc($name) .
'" was called over ' . PKWK_PLUGIN_CALL_TIME_LIMIT .
' times. SPAM or someting?
' . "\n" .
'Try to edit this page
' . "\n" .
'Return to frontpage');
return $exist[$name];
}
if (preg_match('/^\w{1,64}$/', $name) &&
file_exists(PLUGIN_DIR . $name . '.inc.php')) {
$exist[$name] = TRUE;
$count[$name] = 1;
require_once(PLUGIN_DIR . $name . '.inc.php');
return TRUE;
} else {
$exist[$name] = FALSE;
$count[$name] = 1;
return FALSE;
}
}
// Check if plugin API 'action' exists
function exist_plugin_action($name) {
return function_exists('plugin_' . $name . '_action') ? TRUE : exist_plugin($name) ?
function_exists('plugin_' . $name . '_action') : FALSE;
}
// Check if plugin API 'convert' exists
function exist_plugin_convert($name) {
return function_exists('plugin_' . $name . '_convert') ? TRUE : exist_plugin($name) ?
function_exists('plugin_' . $name . '_convert') : FALSE;
}
// Check if plugin API 'inline' exists
function exist_plugin_inline($name) {
return function_exists('plugin_' . $name . '_inline') ? TRUE : exist_plugin($name) ?
function_exists('plugin_' . $name . '_inline') : FALSE;
}
// Call 'init' function for the plugin
// NOTE: Returning FALSE means "An erorr occurerd"
function do_plugin_init($name)
{
static $done = array();
if (! isset($done[$name])) {
$func = 'plugin_' . $name . '_init';
$done[$name] = (! function_exists($func) || call_user_func($func) !== FALSE);
}
return $done[$name];
}
// Call API 'action' of the plugin
function do_plugin_action($name)
{
if (! exist_plugin_action($name)) return array();
if (do_plugin_init($name) === FALSE) {
die_message('Plugin init failed: ' . htmlsc($name));
}
$retvar = call_user_func('plugin_' . $name . '_action');
// Insert a hidden field, supports idenrtifying text enconding
if (PKWK_ENCODING_HINT != '')
$retvar = preg_replace('/(