Browse Source

added more hooks in options page for inline options
fixed bug that stripped slashes from body on reply

Luke Ehresman 25 years ago
parent
commit
83943d0b4e
7 changed files with 84 additions and 39 deletions
  1. 1 0
      ChangeLog
  2. 71 35
      doc/plugin.txt
  3. 4 4
      src/compose.php
  4. 5 0
      src/options.php
  5. 1 0
      src/options_display.php
  6. 1 0
      src/options_folder.php
  7. 1 0
      src/options_personal.php

+ 1 - 0
ChangeLog

@@ -1,5 +1,6 @@
 Version 0.5pre2 -- DEVELOPMENT
 Version 0.5pre2 -- DEVELOPMENT
 ------------------------------
 ------------------------------
+- Added more hooks for plugins, updated plugin.txt
 - Improved HTML address book
 - Improved HTML address book
 - Fixed bugs in parsing email addresses in smtp.php
 - Fixed bugs in parsing email addresses in smtp.php
 - Applied fixes for Courier IMAP server (by Andreas Dahl)
 - Applied fixes for Courier IMAP server (by Andreas Dahl)

+ 71 - 35
doc/plugin.txt

@@ -76,42 +76,78 @@ including any of the standard SquirrelMail files.
 
 
 List of hooks
 List of hooks
 -------------
 -------------
-  generic_header                 functions/page_header.php
-  menuline                       functions/page_header.php
-  compose_button_row             src/compose.php
-  compose_bottom                 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)
-  options_highlight_bottom       src/options_highlight.php
-  options_personal_bottom        src/options_personal.php
-  options_display_bottom         src/options_display.php
-  options_folders_bottom         src/options_folders.php
-  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
-  right_main_after_header        src/right_main.php
-  right_main_bottom              src/right_main.php
-  login_top                      src/login.php
-  login_bottom                   src/login.php
-  read_body_top                  src/read_body.php
-  read_body_bottom               src/read_body.php
-  search_before_form             src/search.php
-  search_after_form              src/search.php
-  search_bottom                  src/search.php
-  help_top                       src/help.php
-  help_bottom                    src/help.php
-  help_chapter                   src/help.php
-  abook_html_search_below        src/addrbook_search_html.php
-  addressbook_bottom		 src/addressbook.php
+  generic_header                  functions/page_header.php
+  menuline                        functions/page_header.php
+  compose_button_row              src/compose.php
+  compose_bottom                  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)
+  * options_highlight_bottom      src/options_highlight.php
+  * options_personal_bottom       src/options_personal.php
+  * options_personal_inside       src/options_personal.php
+  * options_personal_save         src/options_personal.php
+  * options_display_bottom        src/options_display.php
+  * options_display_inside        src/options_display.php
+  * options_display_sav           src/options_display.php
+  * options_folders_bottom        src/options_folders.php
+  * options_folders_inside        src/options_folders.php
+  * options_folders_save          src/options_folders.php
+  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
+  right_main_after_header         src/right_main.php
+  right_main_bottom               src/right_main.php
+  login_top                       src/login.php
+  login_bottom                    src/login.php
+  read_body_top                   src/read_body.php
+  read_body_bottom                src/read_body.php
+  search_before_form              src/search.php
+  search_after_form               src/search.php
+  search_bottom                   src/search.php
+  help_top                        src/help.php
+  help_bottom                     src/help.php
+  help_chapter                    src/help.php
+  abook_html_search_below         src/addrbook_search_html.php
+  addressbook_bottom              src/addressbook.php
    
    
-Options
--------
-
+(*) Options
+-----------
+There are two ways to do options for your plugin.  First, you can incorporate it
+into an existing section of the preferences (Display, Personal, or Folders).
+The second way, you create your own section that they can choose from and it 
+displays its own range of options.
+
+
+First:  Integrating into existing options
+-----------------------------------------
+There are two hooks you need to use for this one:
+
+1.  options_YOUCHOOSE_inside
+    This is the code that goes inside the table for the section you choose.  Since
+    it is going inside an existing table, it must be in this form:
+    ------cut here-------
+      <tr>
+         <td>
+            OPTION_NAME
+         </td>
+         <td>
+            OPTION_INPUT
+         </td>
+      </tr>   
+    ------cut here-------
+
+2.  options_YOUCHOOSE_save
+    This is the code that saves your preferences into the users' preference 
+    file.  For an example of how to do this, see src/options.php.
+
+    
+Second:  Create your own section
+-------------------------------
 It is possible to create your own options sections with plugins.  There are
 It is possible to create your own options sections with plugins.  There are
 three hooks you will need to use.
 three hooks you will need to use.
 
 

+ 4 - 4
src/compose.php

@@ -152,8 +152,8 @@
          echo "// --></SCRIPT>\n\n";
          echo "// --></SCRIPT>\n\n";
       }
       }
 
 
-      echo "\n<FORM name=compose action=\"compose.php\" METHOD=POST ENCTYPE=\"multipart/form-data\">\n";
-      //echo "\n<FORM name=compose action=\"compose.php\" METHOD=POST>\n";
+      //echo "\n<FORM name=compose action=\"compose.php\" METHOD=POST ENCTYPE=\"multipart/form-data\">\n";
+      echo "\n<FORM name=compose action=\"compose.php\" METHOD=POST>\n";
       if ($reply_id) {
       if ($reply_id) {
          echo "<input type=hidden name=reply_id value=$reply_id>\n";
          echo "<input type=hidden name=reply_id value=$reply_id>\n";
       }                 
       }                 
@@ -233,9 +233,9 @@
       echo "      <TD BGCOLOR=\"$color[4]\" COLSPAN=2>\n";
       echo "      <TD BGCOLOR=\"$color[4]\" COLSPAN=2>\n";
       echo "         &nbsp;&nbsp;<TEXTAREA NAME=body ROWS=20 COLS=\"$editor_size\" WRAP=HARD>";
       echo "         &nbsp;&nbsp;<TEXTAREA NAME=body ROWS=20 COLS=\"$editor_size\" WRAP=HARD>";
       if ($use_signature == true && $newmail == true && !isset($from_htmladdr_search)) {
       if ($use_signature == true && $newmail == true && !isset($from_htmladdr_search)) {
-         echo sqStripSlashes(htmlspecialchars($body)) . "\n\n-- \n" . htmlspecialchars($signature);
+         echo (htmlspecialchars($body)) . "\n\n-- \n" . htmlspecialchars($signature);
       } else {
       } else {
-         echo sqStripSlashes(htmlspecialchars($body));
+         echo (htmlspecialchars($body));
       }
       }
       echo "</TEXTAREA><BR>\n";
       echo "</TEXTAREA><BR>\n";
       echo "      </TD>\n";
       echo "      </TD>\n";

+ 5 - 0
src/options.php

@@ -54,6 +54,8 @@
       setPref($data_dir, $username, "use_signature", sqStripSlashes($usesignature));  
       setPref($data_dir, $username, "use_signature", sqStripSlashes($usesignature));  
       if (isset($signature_edit)) setSig($data_dir, $username, sqStripSlashes($signature_edit)); 
       if (isset($signature_edit)) setSig($data_dir, $username, sqStripSlashes($signature_edit)); 
       
       
+      do_hook("options_personal_save");
+      
       echo "<br><center><b>"._("Successfully saved personal information!")."</b></center><br>";
       echo "<br><center><b>"._("Successfully saved personal information!")."</b></center><br>";
    } else if ($submit_display) {  
    } else if ($submit_display) {  
       # Save display preferences
       # Save display preferences
@@ -66,6 +68,8 @@
       setPref($data_dir, $username, "left_size", $leftsize);
       setPref($data_dir, $username, "left_size", $leftsize);
       setPref($data_dir, $username, "use_javascript_addr_book", $javascript_abook);
       setPref($data_dir, $username, "use_javascript_addr_book", $javascript_abook);
     
     
+      do_hook("options_display_save");
+
       echo "<br><center><b>"._("Successfully saved display preferences!")."</b><br>";
       echo "<br><center><b>"._("Successfully saved display preferences!")."</b><br>";
       echo "<a href=\"webmail.php?right_frame=options.php\" target=_top>"._("Refresh Page")."</a></center><br>";
       echo "<a href=\"webmail.php?right_frame=options.php\" target=_top>"._("Refresh Page")."</a></center><br>";
    } else if ($submit_folder) { 
    } else if ($submit_folder) { 
@@ -87,6 +91,7 @@
       setPref($data_dir, $username, "folder_prefix", $folderprefix);
       setPref($data_dir, $username, "folder_prefix", $folderprefix);
       setPref($data_dir, $username, "unseen_notify", $unseennotify);
       setPref($data_dir, $username, "unseen_notify", $unseennotify);
       setPref($data_dir, $username, "unseen_type", $unseentype);
       setPref($data_dir, $username, "unseen_type", $unseentype);
+      do_hook("options_folders_save");
       echo "<br><center><b>"._("Successfully saved folder preferences!")."</b><br>";
       echo "<br><center><b>"._("Successfully saved folder preferences!")."</b><br>";
       echo "<a href=\"left_main.php\" target=left>"._("Refresh Folders")."</a></center><br>";
       echo "<a href=\"left_main.php\" target=left>"._("Refresh Folders")."</a></center><br>";
    } else {
    } else {

+ 1 - 0
src/options_display.php

@@ -260,6 +260,7 @@
 ?>
 ?>
             </td>
             </td>
          </tr>
          </tr>
+         <?php do_hook("options_display_inside"); ?>
          <tr>
          <tr>
             <td>&nbsp;
             <td>&nbsp;
             </td><td>
             </td><td>

+ 1 - 0
src/options_folder.php

@@ -133,6 +133,7 @@
                <input type=radio name=unseentype value=2<?php if ($unseen_type == 2) echo " checked"; ?>> <?php echo _("Unseen and Total"); ?> - (4/27)
                <input type=radio name=unseentype value=2<?php if ($unseen_type == 2) echo " checked"; ?>> <?php echo _("Unseen and Total"); ?> - (4/27)
             </td>
             </td>
          </tr>
          </tr>
+         <?php do_hook("options_folders_inside"); ?>
          <tr>
          <tr>
             <td>&nbsp;
             <td>&nbsp;
             </td><td>
             </td><td>

+ 1 - 0
src/options_personal.php

@@ -76,6 +76,7 @@
 ?>
 ?>
             </td>
             </td>
          </tr>
          </tr>
+         <?php do_hook("options_personal_inside"); ?>
          <tr>
          <tr>
             <td>&nbsp;
             <td>&nbsp;
             </td><td>
             </td><td>