include ("../functions/prefs.php");
if (!isset($i18n_php))
include ("../functions/i18n.php");
+ if (!isset($plugin_php))
+ include ("../functions/plugin.php");
// Check to see if gettext is installed
if (function_exists("_")) {
$theme_css);
echo "\n";
}
+
+ do_hook ("generic_header");
+
echo "<TITLE>$title</TITLE>";
echo "</HEAD>\n\n";
}
echo " <A HREF=\"folders.php\">" . _("Folders") . "</A> \n";
echo " <A HREF=\"options.php\">" . _("Options") . "</A> \n";
echo " <A HREF=\"webmail.php?right_frame=help.php\" TARGET=\"Help Me!\">" . _("Help") . "</A>  ";
+
+ do_hook("menuline");
+
echo " </TD><TD ALIGN=right WIDTH=\"30%\">\n";
echo " <A HREF=\"http://squirrelmail.sourceforge.net/index.php3?from=1\" TARGET=\"_top\">SquirrelMail</A>\n";
echo " </TD>\n";
--- /dev/null
+<?php
+
+/**
+ ** plugin.php
+ **
+ ** This file provides the framework for a plugin architecture.
+ **
+ ** Plugins will eventually be a way to provide added functionality
+ ** without having to patch the SquirrelMail source code. Have some
+ ** patients, though, as the these funtions might change in the near
+ ** future.
+ **
+ ** Documentation on how to write plugins might show up some time.
+ **
+ **/
+
+
+ $plugin_php = true;
+
+ // This function adds a plugin
+ function use_plugin ($name) {
+ include ('../plugins/'.$name.'/setup.php');
+ $function = 'squirrelmail_plugin_init_'.$name;
+ $function();
+ }
+
+ // This function executes a hook
+ function do_hook ($name) {
+ global $squirrelmail_plugin_hooks;
+ if (is_array($squirrelmail_plugin_hooks[$name])) {
+ reset($squirrelmail_plugin_hooks[$name]);
+
+ while (list ($id, $function) =
+ each ($squirrelmail_plugin_hooks[$name])) {
+ // Add something to set correct gettext domain for plugin
+ $function();
+ }
+ }
+ }
+
+ // On startup, register all plugins configured for use
+ if (is_array($plugins))
+ while (list ($id, $name) = each ($plugins))
+ use_plugin($name);
+
+?>