Browse Source

adding missing identity hooks
removing duplicate generic_header hook call

tokul 20 years ago
parent
commit
353a90b378
4 changed files with 45 additions and 8 deletions
  1. 3 0
      ChangeLog
  2. 25 3
      doc/Development/plugin.txt
  3. 17 1
      functions/identity.php
  4. 0 4
      src/right_main.php

+ 3 - 0
ChangeLog

@@ -435,6 +435,9 @@ Version 1.5.1 -- CVS
     place form elements before login button (#1245070).
     place form elements before login button (#1245070).
   - Forwarding broken when not using compose in new window (#1222436).
   - Forwarding broken when not using compose in new window (#1222436).
   - Drop data/ dir from distributed tarball.
   - Drop data/ dir from distributed tarball.
+  - Readded options_identity_process and options_identity_renumber hooks
+    broken by CAN-2005-2095 fixes.
+  - Removed duplicate generic_header hook call in src/right_main.php (#1269189).
 
 
 Version 1.5.0 - 2 February 2004
 Version 1.5.0 - 2 February 2004
 -------------------------------
 -------------------------------

+ 25 - 3
doc/Development/plugin.txt

@@ -282,6 +282,8 @@ but may be out of date soon thereafter.  You never know.  ;-)
   error_box                      functions/display_messages.php  concat_hook
   error_box                      functions/display_messages.php  concat_hook
   get_pref_override              functions/file_prefs.php        hook_func
   get_pref_override              functions/file_prefs.php        hook_func
   get_pref                       functions/file_prefs.php        hook_func
   get_pref                       functions/file_prefs.php        hook_func
+& options_identities_process     functions/identity.php          do_hook
+&% options_identities_renumber   functions/identity.php          do_hook
   special_mailbox                functions/imap_mailbox.php      hook_func
   special_mailbox                functions/imap_mailbox.php      hook_func
 % rename_or_delete_folder        functions/imap_mailbox.php      hook_func
 % rename_or_delete_folder        functions/imap_mailbox.php      hook_func
   mailbox_index_before           functions/mailbox_display.php   do_hook
   mailbox_index_before           functions/mailbox_display.php   do_hook
@@ -340,9 +342,7 @@ but may be out of date soon thereafter.  You never know.  ;-)
 * options_folder_bottom          src/options.php                 do_hook
 * options_folder_bottom          src/options.php                 do_hook
 * options_order_bottom           src/options.php                 do_hook
 * options_order_bottom           src/options.php                 do_hook
 * options_highlight_bottom       src/options_highlight.php       do_hook
 * options_highlight_bottom       src/options_highlight.php       do_hook
-& options_identities_process     src/options_identities.php      do_hook
 & options_identities_top         src/options_identities.php      do_hook
 & options_identities_top         src/options_identities.php      do_hook
-&% options_identities_renumber   src/options_identities.php      do_hook
 & options_identities_table       src/options_identities.php      concat_hook
 & options_identities_table       src/options_identities.php      concat_hook
 & options_identities_buttons     src/options_identities.php      concat_hook
 & options_identities_buttons     src/options_identities.php      concat_hook
   message_body                   src/printer_friendly_bottom.php do_hook
   message_body                   src/printer_friendly_bottom.php do_hook
@@ -354,7 +354,6 @@ but may be out of date soon thereafter.  You never know.  ;-)
   read_body_bottom               src/read_body.php               do_hook
   read_body_bottom               src/read_body.php               do_hook
   login_before                   src/redirect.php                do_hook
   login_before                   src/redirect.php                do_hook
   login_verified                 src/redirect.php                do_hook
   login_verified                 src/redirect.php                do_hook
-  generic_header                 src/right_main.php              do_hook
   right_main_after_header        src/right_main.php              do_hook
   right_main_after_header        src/right_main.php              do_hook
   right_main_bottom              src/right_main.php              do_hook
   right_main_bottom              src/right_main.php              do_hook
   search_before_form             src/search.php                  do_hook
   search_before_form             src/search.php                  do_hook
@@ -394,6 +393,7 @@ options_identities_process
    for each identity or catch any custom submit buttons that you may
    for each identity or catch any custom submit buttons that you may
    have added to the identities page.  The arguments to this hook are:
    have added to the identities page.  The arguments to this hook are:
 
 
+    (SquirrelMail 1.4.4 or older and 1.5.0)
       [0] = hook name (always "options_identities_process")
       [0] = hook name (always "options_identities_process")
       [1] = should I run the SaveUpdateFunction() (alterable)
       [1] = should I run the SaveUpdateFunction() (alterable)
 
 
@@ -401,6 +401,15 @@ options_identities_process
    trigger SaveUpdateFunction() after the hook is finished - by default,
    trigger SaveUpdateFunction() after the hook is finished - by default,
    it will not be called.
    it will not be called.
 
 
+    (SquirrelMail 1.4.6+ or 1.5.1+)
+      [0] = hook name (always "options_identities_process")
+      [1] = action (hook is used only in 'update' action and any custom 
+            action added to form with option_identities_table and 
+            option_identities_buttons hooks)
+      [2] = processed identity number
+
+   Hook is not available in SquirrelMail 1.4.5.
+
 options_identities_renumber
 options_identities_renumber
 
 
    This hook is called when one of the identities is being renumbered,
    This hook is called when one of the identities is being renumbered,
@@ -413,6 +422,9 @@ options_identities_renumber
       [1] = being renumbered from ('default' or 1 through (# idents) - 1)
       [1] = being renumbered from ('default' or 1 through (# idents) - 1)
       [2] = being renumbered to ('default' or 1 through (# idents) - 1)
       [2] = being renumbered to ('default' or 1 through (# idents) - 1)
 
 
+   Hook is not available in SquirrelMail 1.4.5. Renumbering order differs
+   in 1.4.5+ and 1.5.1+.
+
 options_identities_table
 options_identities_table
 
 
    This hook allows you to insert additional rows into the table that
    This hook allows you to insert additional rows into the table that
@@ -454,6 +466,16 @@ options_identities_buttons
               . '" value="Press Me" />';
               . '" value="Press Me" />';
       }
       }
 
 
+   Input element should use 'smaction[action_name][identity_no]' value in 
+   'name' attribute, if you want to be process your button actions in
+   SquirrelMail 1.4.6+ and 1.5.1+ options_identity_process hook.
+
+
+See sample implementation of identity hooks in SquirrelMail demo plugin.
+
+  cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/squirrelmail \
+    co plugins/demo
+
 
 
 (^) Attachment Hooks
 (^) Attachment Hooks
 --------------------
 --------------------

+ 17 - 1
functions/identity.php

@@ -142,6 +142,10 @@ function sqfixidentities( $identities, $id, $action ) {
 
 
                 if ($key == $id) {
                 if ($key == $id) {
                     $fixed[0] = $ident;
                     $fixed[0] = $ident;
+
+                    // inform plugins about renumbering of ids
+                    do_hook('options_identities_renumber', $id, 'default');
+
                     continue 2;
                     continue 2;
                 } else {
                 } else {
                     $fixed[$i+1] = $ident;
                     $fixed[$i+1] = $ident;
@@ -152,6 +156,10 @@ function sqfixidentities( $identities, $id, $action ) {
 
 
                 if ($key == ($id - 1)) {
                 if ($key == ($id - 1)) {
                     $tmp_hold = $ident;
                     $tmp_hold = $ident;
+
+                    // inform plugins about renumbering of ids
+                    do_hook('options_identities_renumber', $id , $id - 1);
+
                     continue 2;
                     continue 2;
                 } else {
                 } else {
                     $fixed[$i] = $ident;
                     $fixed[$i] = $ident;
@@ -172,8 +180,16 @@ function sqfixidentities( $identities, $id, $action ) {
                 }
                 }
                 break;
                 break;
 
 
-            // we should never hit this but just in case //
+            // Process actions from plugins and save/update action //
             default:
             default:
+                /**
+                 * send action and id information. number of hook arguments 
+                 * differs from 1.4.4 or older and 1.5.0. count($args) can 
+                 * be used to detect modified hook. Older hook does not 
+                 * provide information that can be useful for plugins.
+                 */
+                do_hook('options_identities_process', $action, $id);
+
                 $fixed[$i] = $ident;
                 $fixed[$i] = $ident;
 
 
         }
         }

+ 0 - 4
src/right_main.php

@@ -122,10 +122,6 @@ if ($imap_server_type == 'uw' && (strstr($mailbox, '../') ||
  * preferences.
  * preferences.
  */
  */
 
 
-
-/* not sure if this hook should be capable to alter the global pref array */
-do_hook ('generic_header');
-
 $aMailboxPrefSer=getPref($data_dir, $username,'pref_'.$account.'_'.$mailbox);
 $aMailboxPrefSer=getPref($data_dir, $username,'pref_'.$account.'_'.$mailbox);
 if ($aMailboxPrefSer) {
 if ($aMailboxPrefSer) {
     $aMailboxPref = unserialize($aMailboxPrefSer);
     $aMailboxPref = unserialize($aMailboxPrefSer);