if ($config_version ne $conf_pl_version) {
system "clear";
print $WHT."WARNING:\n".$NRM;
- print " The file \"config.php\" was found, but it is for an older version of\n";
+ print " The file \"config/config.php\" was found, but it is for an older version of\n";
print " SquirrelMail. It is possible to still read the defaults from this file\n";
print " but be warned that many preferences change between versions. It is\n";
print " recommended that you start with a clean config.php for each upgrade that\n";
- print " you do. To do this, just move config.php out of the way.\n\n";
+ print " you do. To do this, just move config/config.php out of the way.\n\n";
print "Continue loading with the old config.php [y/n]? ";
$ctu = <STDIN>;
if (($ctu =~ /^n\n/i) || ($ctu =~ /^\n/)) {
print FILE "<?php\n\t/** SquirrelMail configuration\n";
print FILE "\t ** Created using the configure script, conf.pl\n\t **/\n\n";
- print FILE "\t\$config_version = \"$print_config_version\";\n";
-
- print FILE "\n";
+ if ($print_config_version) {
+ print FILE "\t\$config_version = \"$print_config_version\";\n";
+ print FILE "\n";
+ }
print FILE "\t\$org_name = \"$org_name\";\n";
print FILE "\t\$org_logo = \"$org_logo\";\n";
files are available as ../directory/file. This means that if some file
in the plugin directory is requested, it must do a chdir("..") before
including any of the standard SquirrelMail files.
+
+
+List of hooks
+-------------
+ generic_header functions/page_header.php
+ menuline functions/page_header.php
+ compose_button_row src/compose.php
+ left_main_before src/left_main.php
+ left_main_after src/left_main.php
+ options_save src/options.php (see note on options)
+ options_link_and_description src/options.php (see note on options)
+ logout src/signout.php
+ login_before src/webmail.php
+ login_verified src/webmail.php
+ loading_prefs src/load_prefs.php
+ mailbox_index_before functions/mailbox_display.php
+ mailbox_index_after functions/mailbox_display.php
+
+
+Options
+-------
+
+It is possible to create your own options sections with plugins. There are
+three hooks you will need to use.
+
+1. options_link_and_description
+ This creates the link and has a description that are shown on the options
+ page. This should output HTML that looks like this:
+
+ -----cut here-----
+ function my_function() {
+ global $color
+ ?>
+ <table width=50% cellpadding=3 cellspacing=0 border=0 align=center>
+ <tr>
+ <td bgcolor="<? echo $color[9] ?>">
+ <a href="../plugins/YOUR_PLUGIN/YOUR_OPTIONS.php">YOUR OPTIONS NAME</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="<? echo $color[0] ?>">
+ YOUR DESCRIPTION
+ </td>
+ </tr>
+ </table>
+ <?php
+ }
+ -----cut here-----
+
+2. options_save
+ Here is the code that you need to do to save your options in the
+ preference files or manipulate whatever data you are trying to change
+ through the options section. You can look at options.php for details
+ on how this is to be done.
+
+3. loading_prefs (optional)
+ If you are wanting to save preferences to the preference files, then
+ you need to do this step as well. Otherwise if you are manipulating
+ other data, ignore this step.
+
+ You should put the code in here that loads your preferences back
+ into usable variables. Examples of this can be found in the file
+ src/load_prefs.php
$prevGroup = $startMessage - $show_num;
$urlMailbox = urlencode($mailbox);
+ do_hook("mailbox_index_before");
/** This is the beginning of the message list table. It wraps around all messages */
echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>";
echo "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$nextGroup&mailbox=$urlMailbox\" TARGET=\"right\">" . _("Next") . "</A>\n";
}
echo "</TD></TR></table>"; /** End of message-list table */
+
+ do_hook("mailbox_index_after");
}
?>
// This function adds a plugin
function use_plugin ($name) {
- include ('../plugins/'.$name.'/setup.php');
- $function = 'squirrelmail_plugin_init_'.$name;
- $function();
+ if (file_exists('../plugins/'.$name.'/setup.php')) {
+ include ('../plugins/'.$name.'/setup.php');
+ $function = 'squirrelmail_plugin_init_'.$name;
+ $function();
+ }
}
// This function executes a hook
}
echo "\n$line<BR>\n";
}
-
sqimap_logout($imapConnection);
+ do_hook("left_main_after");
?>
</BODY></HTML>
include("../config/config.php");
if (!isset($prefs_php))
include("../functions/prefs.php");
+ if (!isset($plugin_php))
+ include("../functions/plugin.php");
$load_prefs_php = true;
checkForPrefs($data_dir, $username);
$message_highlight_list[$i]["match_type"] = $ary[3];
}
+ do_hook("loading_prefs");
?>
setPref($data_dir, $username, "unseen_type", $unseentype);
echo "<br><center><b>"._("Successfully saved folder preferences!")."</b><br>";
echo "<a href=\"left_main.php\" target=left>"._("Refresh Folders")."</a></center><br>";
+ } else {
+ do_hook("options_save");
}
+
?>
</td>
</tr>
</table>
+ <?
+ do_hook("options_link_and_description")
+ ?>
</body></html>