7b086a80 |
1 | <?php |
2 | |
3 | /** |
4 | ** plugin.php |
5 | ** |
6 | ** This file provides the framework for a plugin architecture. |
7 | ** |
8 | ** Plugins will eventually be a way to provide added functionality |
9 | ** without having to patch the SquirrelMail source code. Have some |
c27d5a49 |
10 | ** patience, though, as the these funtions might change in the near |
7b086a80 |
11 | ** future. |
12 | ** |
13 | ** Documentation on how to write plugins might show up some time. |
14 | ** |
15 | **/ |
16 | |
17 | |
18 | $plugin_php = true; |
19 | |
20 | // This function adds a plugin |
21 | function use_plugin ($name) { |
22 | include ('../plugins/'.$name.'/setup.php'); |
23 | $function = 'squirrelmail_plugin_init_'.$name; |
24 | $function(); |
25 | } |
26 | |
27 | // This function executes a hook |
28 | function do_hook ($name) { |
29 | global $squirrelmail_plugin_hooks; |
30 | if (is_array($squirrelmail_plugin_hooks[$name])) { |
31 | reset($squirrelmail_plugin_hooks[$name]); |
32 | |
33 | while (list ($id, $function) = |
34 | each ($squirrelmail_plugin_hooks[$name])) { |
35 | // Add something to set correct gettext domain for plugin |
36 | $function(); |
37 | } |
38 | } |
39 | } |
40 | |
41 | // On startup, register all plugins configured for use |
c27d5a49 |
42 | if (is_array($plugins)) |
43 | while (list ($id, $name) = each ($plugins)) |
44 | use_plugin($name); |
7b086a80 |
45 | |
46 | ?> |