\n"; include_once('../plugins/'.$name.'/setup.php'); $function = 'squirrelmail_plugin_init_'.$name; if (function_exists($function)) { if ($plugin_general_debug) echo "plugin: ---- Executing $function to init plugin
\n"; $function($plugin_general_debug); } elseif ($plugin_general_debug) echo "plugin: -- Init function $function doesn't exist.
\n"; } elseif ($plugin_general_debug) echo "plugin: Couldn't find $name/setup.php
\n"; } // This function executes a hook function do_hook ($name) { global $squirrelmail_plugin_hooks; $Data = func_get_args(); if (isset($squirrelmail_plugin_hooks[$name]) && is_array($squirrelmail_plugin_hooks[$name])) { foreach ($squirrelmail_plugin_hooks[$name] as $id => $function) { // Add something to set correct gettext domain for plugin if (function_exists($function)) { $function($Data); } } } // Variable-length argument lists have a slight problem when // passing values by reference. Pity. This is a workaround. return $Data; } // On startup, register all plugins configured for use if (isset($plugins) && is_array($plugins)) foreach ($plugins as $id => $name) { if ($plugin_general_debug) echo "plugin: Attempting load of plugin $name
\n"; use_plugin($name); } if ($plugin_general_debug) { echo "plugin: Hook list
\n"; foreach ($squirrelmail_plugin_hooks as $Hook => $Plugins) { foreach ($Plugins as $Name => $Func) { echo "[$Hook][$Name] = $Func
\n"; } } } ?>