fixed warning and improved url () filtering
[squirrelmail.git] / functions / identity.php
index 62bcf3b5fb8f7cae0aebbd626f1c56fd1e6c8207..bce928b540cc23e4e9839b3a37a1f39957ca4bb1 100644 (file)
@@ -3,18 +3,18 @@
 /**
  * identity.php
  *
- * Copyright (c) 1999-2005 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
  * This contains utility functions for dealing with multiple identities
  *
+ * @copyright © 1999-2005 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  * @version $Id$
  * @package squirrelmail
  * @since 1.4.2
  */
 
-/** @ignore
- * Used to simplify includes */
+/** Used to simplify includes
+ * @ignore
+ */
 if (!defined('SM_PATH')) {
     define('SM_PATH','../');
 }
@@ -141,6 +141,10 @@ function sqfixidentities( $identities, $id, $action ) {
 
                 if ($key == $id) {
                     $fixed[0] = $ident;
+
+                    // inform plugins about renumbering of ids
+                    do_hook('options_identities_renumber', $id, 'default');
+
                     continue 2;
                 } else {
                     $fixed[$i+1] = $ident;
@@ -151,6 +155,10 @@ function sqfixidentities( $identities, $id, $action ) {
 
                 if ($key == ($id - 1)) {
                     $tmp_hold = $ident;
+
+                    // inform plugins about renumbering of ids
+                    do_hook('options_identities_renumber', $id , $id - 1);
+
                     continue 2;
                 } else {
                     $fixed[$i] = $ident;
@@ -165,14 +173,25 @@ function sqfixidentities( $identities, $id, $action ) {
             case 'delete':
 
                 if ($key == $id) {
+                    // inform plugins about deleted id
+                    do_hook('options_identities_process', $action, $id);
+
                     continue 2;
                 } else {
                     $fixed[$i] = $ident;
                 }
                 break;
 
-            // we should never hit this but just in case //
+            // Process actions from plugins and save/update action //
             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;
 
         }