- added more hooks
authorlkehresman <lkehresman@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 30 Jul 2000 15:06:26 +0000 (15:06 +0000)
committerlkehresman <lkehresman@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 30 Jul 2000 15:06:26 +0000 (15:06 +0000)
- updated documentation on plugins to include a list of hooks
- added info in plugin.txt on how to use "options" in your plugins

git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@651 7612ce4b-ef26-0410-bec9-ea0150e637f0

config/conf.pl
doc/plugin.txt
functions/mailbox_display.php
functions/plugin.php
src/left_main.php
src/load_prefs.php
src/options.php

index 1808c2b..6cb6038 100755 (executable)
@@ -38,11 +38,11 @@ if ( -e "config.php") {
    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/)) {
@@ -1335,9 +1335,10 @@ sub save_data {
    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";
index 574e106..99e5998 100644 (file)
@@ -72,3 +72,66 @@ Note that the SquirrelMail files assume that all other SquirrelMail
 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
index 638529a..e302545 100644 (file)
       $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");
    }
 ?>
index 696cab5..cb845ea 100644 (file)
 
    // 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
index 91d2bcc..112ad87 100644 (file)
       }
       echo "\n$line<BR>\n";
    }
-
    sqimap_logout($imapConnection);
+   do_hook("left_main_after");
 ?>
 </BODY></HTML>
index 94b05e3..0cceee3 100644 (file)
@@ -14,6 +14,8 @@
       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");
 ?>
index df5ed33..e32ef0d 100644 (file)
       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>