* Added several hooks
[squirrelmail.git] / src / options_identities.php
index 61fb481..f1677a1 100644 (file)
    
    displayPageHeader($color, 'None');
 
+   $Info = do_hook('options_identities_process', 0);
+   if ($Info[1])
+      SaveUpdateFunction();
+
    if (CheckAndDoDefault() || CheckAndDoPromote()) {
       SaveUpdateFunction();
    }
-   if (isset($update))
+   if (isset($update) || CheckForDelete())
       SaveUpdateFunction();
 
    LoadInfo($full_name, $email_address, $reply_to, '');
 </table>
 
 <form name=f action="options_identities.php" method=post>
-<p align=center><input type=submit name=return value="<?PHP
-echo _("Save and return to the Personal Options"); ?>"><br><?PHP
-$num = getPref($data_dir, $username, 'identities');
-echo htmlspecialchars($num) . ' ';
-if ($num > 1)
-   echo _("Identities Defined");
-else
-   echo _("Identity Defined");
-?></p>
-<table width=100% cellpadding=0 cellspacing=2 border=0>
+
+<?PHP do_hook('options_identities_top'); ?>
+
+<center>
+<table width=80% cellpadding=0 cellspacing=0 border=0>
   <tr bgcolor="<?PHP echo $color[9] ?>">
     <th colspan=2 align=center><?PHP echo _("Default Identity") ?></th>
   </tr>
@@ -76,6 +75,7 @@ else
    ShowTableInfo('', '', '', $num);
 ?>
 </table>   
+</center>
 </form>
 </body></html>
 <?PHP
@@ -95,6 +95,7 @@ function SaveUpdateFunction()
       if (isset($$name)) {
          $fakeI --;
       } else {
+         do_hook('options_identities_renumber', $i, $fakeI);
          $filled = 0;
         
          $name = 'full_name' . $i;
@@ -152,27 +153,50 @@ function CheckAndDoDefault()
       $name = 'make_default_' . $i;
       global $$name;
       if (isset($$name)) {
+          do_hook('options_identities_renumber', $i, 'default');
           global $full_name, $email_address, $reply_to;
          
-         $name = 'full_name' . $i;
-         global $$name;
-         $temp = $full_name;
-         $full_name = $$name;
-         $$name = $temp;
-         
-         $name = 'email_address' . $i;
-         global $$name;
-         $temp = $email_address;
-         $email_address = $$name;
-         $$name = $temp;
-         
-         $name = 'reply_to' . $i;
-         global $$name;
-         $temp = $reply_to;
-         $reply_to = $$name;
-         $$name = $temp;
-         
-         return true;
+          $name = 'full_name' . $i;
+          global $$name;
+          $temp = $full_name;
+          $full_name = $$name;
+          $$name = $temp;
+          
+          $name = 'email_address' . $i;
+          global $$name;
+          $temp = $email_address;
+          $email_address = $$name;
+          $$name = $temp;
+          
+          $name = 'reply_to' . $i;
+          global $$name;
+          $temp = $reply_to;
+          $reply_to = $$name;
+          $$name = $temp;
+          
+          return true;
+      }
+      
+      $i ++;
+      $name = 'form_for_' . $i;
+      global $$name;
+   }
+   return false;
+}
+
+function CheckForDelete()
+{
+   global $username, $data_dir, $full_name, $email_address, $reply_to;
+    
+   $i = 1;
+   $name = 'form_for_' . $i;
+   global $$name;
+   while (isset($$name))
+   {
+      $name = 'delete_' . $i;
+      global $$name;
+      if (isset($$name)) {
+          return true;
       }
       
       $i ++;
@@ -194,6 +218,8 @@ function CheckAndDoPromote()
       $name = 'promote_' . $i;
       global $$name;
       if (isset($$name) && $i > 1) {
+          do_hook('options_identities_renumber', $i, $i - 1);
+         
          $nameA = 'full_name' . $i;
          $nameB = 'full_name' . ($i - 1);
          global $$nameA, $$nameB;
@@ -208,8 +234,8 @@ function CheckAndDoPromote()
          $$nameA = $$nameB;
          $$nameB = $temp;
          
-         $nameA = 'email_address' . $i;
-         $nameB = 'email_address' . ($i - 1);
+         $nameA = 'reply_to' . $i;
+         $nameB = 'reply_to' . ($i - 1);
          global $$nameA, $$nameB;
          $temp = $$nameA;
          $$nameA = $$nameB;
@@ -241,10 +267,9 @@ function ShowTableInfo($full_name, $email_address, $reply_to, $post)
 {
    global $color;
    
-   $OtherBG = '';
-   
-   if ($post == '')
-      $OtherBG = ' bgcolor="' . $color[10] . '"';
+   $OtherBG = ' bgcolor="' . $color[0] . '"';
+   if ($full_name == '' && $email_address == '' && $reply_to == '')
+         $OtherBG = '';
 
    if ($full_name == '' && $email_address == '' && $reply_to == '')
       $isEmptySection = true;
@@ -279,31 +304,17 @@ function ShowTableInfo($full_name, $email_address, $reply_to, $post)
       ?>" name="reply_to<?PHP echo $post ?>"> 
     </td>
   </tr>
-<?PHP
-   if (! $isEmptySection && $post != '') {
-?>
-  <tr>
-    <td align=right>
-      <?PHP echo _("Delete") ?>:
-    </td>
-    <td>
-      <input type=checkbox name="delete_<?PHP echo $post ?>"> <?PHP
-      echo _("Delete this identity"); ?>
-    </td>
-  </tr>
-<?PHP
-   }
-?>
-  <tr>
-    <td colspan=2 align=center>
+<?PHP do_hook('options_identities_table', $OtherBG, $isEmptySection, $post); ?>
+  <tr<?PHP echo $OtherBG ?>>
+    <td>&nbsp;</td><td>
       <input type=hidden name="form_for_<?PHP echo $post ?>" value="1">
-      <input type=submit name="update" value="<?PHP
-         echo _("Save / Update") ?>">
+      <input type=submit name="update" value="<?PHP echo _("Save / Update") ?>">
 <?PHP 
    if (! $isEmptySection && $post != '') {
 ?>
       <input type=submit name="make_default_<?PHP echo $post ?>" value="<?PHP
          echo _("Make Default") ?>">
+      <input type=submit name="delete_<?PHP echo $post ?>" value="<?PHP echo _("Delete") ?>">
 <?PHP
    }
    if (! $isEmptySection && $post != '' && $post > 1) {
@@ -312,8 +323,12 @@ function ShowTableInfo($full_name, $email_address, $reply_to, $post)
          echo _("Move Up") ?>">
 <?PHP
    }
+   do_hook('options_identities_buttons', $isEmptySection, $post);
 ?>
     </td>
   </tr>
+  <tr>
+    <td colspan="2">&nbsp;</td>
+  </tr>
 <?PHP
 }