Replacing tabs with spaces, trimming white space at EOL and newline at EOF
[squirrelmail.git] / src / options_identities.php
index 51eebb73c1400a4d4b5ba1435d38be124bbfff0c..a8cbbb67091794198ca995a7da62f00e935c6c15 100644 (file)
 /**
  * options_identities.php
  *
- * Copyright (c) 1999-2001 The SquirrelMail Development Team
+ * Copyright (c) 1999-2004 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * Display Identities Options
  *
- * $Id$
+ * @version $Id$
+ * @package squirrelmail
  */
 
-/*****************************************************************/
-/*** THIS FILE NEEDS TO HAVE ITS FORMATTING FIXED!!!           ***/
-/*** PLEASE DO SO AND REMOVE THIS COMMENT SECTION.             ***/
-/***    + Base level indent should begin at left margin, as    ***/
-/***      the require_once below looks.                        ***/
-/***    + All identation should consist of four space blocks   ***/
-/***    + Tab characters are evil.                             ***/
-/***    + all comments should use "slash-star ... star-slash"  ***/
-/***      style -- no pound characters, no slash-slash style   ***/
-/***    + FLOW CONTROL STATEMENTS (if, while, etc) SHOULD      ***/
-/***      ALWAYS USE { AND } CHARACTERS!!!                     ***/
-/***    + Please use ' instead of ", when possible. Note "     ***/
-/***      should always be used in _( ) function calls.        ***/
-/*** Thank you for your help making the SM code more readable. ***/
-/*****************************************************************/
-
-require_once('../src/validate.php');
-require_once('../functions/display_messages.php');
-
-   if (isset($return)) {
-      SaveUpdateFunction();
-      header('Location: options_personal.php');
-      exit();
-   }
-   
-   displayPageHeader($color, 'None');
-
-   $Info = do_hook('options_identities_process', 0);
-   if ($Info[1])
-      SaveUpdateFunction();
-
-   if (CheckAndDoDefault() || CheckAndDoPromote()) {
-      SaveUpdateFunction();
-   }
-   if (isset($update) || CheckForDelete())
-      SaveUpdateFunction();
-
-   LoadInfo($full_name, $email_address, $reply_to, '');
-
-?>
-<br>
-<table width=95% align=center border=0 cellpadding=2 cellspacing=0>
-<tr><td bgcolor="<?php echo $color[0] ?>" align="center">
-
-      <b><?php echo _("Options") . ' - ' . _("Advanced Identities"); ?></b>
-
-    <table width="100%" border="0" cellpadding="1" cellspacing="1">
-    <tr><td bgcolor="<?php echo $color[4] ?>" align="center">
-
-<form name=f action="options_identities.php" method=post><br>
-
-<?PHP do_hook('options_identities_top'); ?>
-
-<table width=80% cellpadding=2 cellspacing=0 border=0>
-  <tr bgcolor="<?PHP echo $color[9] ?>">
-    <th colspan=2 align=center><?PHP echo _("Default Identity") ?></th>
-  </tr>
-<?PHP
-
-   ShowTableInfo($full_name, $email_address, $reply_to, '');
-  
-   $num = 1;
-   while (LoadInfo($full_name, $email_address, $reply_to, $num))
-   {
-?>
-  <tr bgcolor="<?PHP echo $color[9] ?>">
-    <th colspan=2 align=center><?PHP printf (_("Alternate Identity %d"),
-    $num) ?></th>
-  </tr>
-<?PHP
-       ShowTableInfo($full_name, $email_address, $reply_to, $num);
-       $num ++;
-   }
-   
-?>
-  <tr bgcolor="<?PHP echo $color[9] ?>">
-    <th colspan=2 align=center><?PHP echo _("Add a New Identity") ?></th>
-  </tr>
-<?
+/**
+ * Path for SquirrelMail required files.
+ * @ignore
+ */
+define('SM_PATH','../');
+
+/* SquirrelMail required files. */
+require_once(SM_PATH . 'include/validate.php');
+require_once(SM_PATH . 'functions/global.php');
+require_once(SM_PATH . 'functions/display_messages.php');
+require_once(SM_PATH . 'functions/html.php');
+
+/* POST data var names are dynamic because
+   of the possible multiple idents so lets get
+   them all
+   FIXME! This circumvents the benefits of rg=0
+*/
+if (!empty($_POST)) {
+    extract($_POST);
+}
+/* got 'em all */
 
-   ShowTableInfo('', '', '', $num);
-?>
-</table>
-</form>
+    if (isset($return)) {
+       SaveUpdateFunction();
+       header('Location: '.get_location().'/options_personal.php');
+       exit();
+    }
 
-    </td></tr>
-    </table>
+    displayPageHeader($color, 'None');
 
-</td></tr>
-</table>
-</body></html>
+    $Info = do_hook('options_identities_process', 0);
+    if ($Info[1]) {
+        SaveUpdateFunction();
+    }
 
-<?PHP
+    if (CheckAndDoDefault() || CheckAndDoPromote()) {
+       SaveUpdateFunction();
+    }
+    if (isset($update) || CheckForDelete()) {
+        SaveUpdateFunction();
+    }
+
+   do_hook('options_identities_top');
+   LoadInfo($full_name, $email_address, $reply_to, $signature, '');
+   $td_str = '';
+   $td_str .= '<form name="f" action="options_identities.php" method="post"><br />';
+   $td_str .= ShowTableInfo($full_name, $email_address, $reply_to, $signature, '');
+
+   $num = 1;
+   while (LoadInfo($full_name, $email_address, $reply_to, $signature, $num)) {
+       $td_str .= html_tag( 'tr',
+                          html_tag( 'th', sprintf (_("Alternate Identity %d"), $num), 'center', '', 'colspan="2"' ) ,
+                      '', $color[9]);
+       $td_str .= ShowTableInfo($full_name, $email_address, $reply_to, $signature, $num);
+       $num ++;
+       }
+
+   echo '<br />' .
+   html_tag( 'table', "\n" .
+       html_tag( 'tr', "\n" .
+           html_tag( 'td', "\n" .
+               '<b>'. _("Options") . ' - ' . _("Advanced Identities") .'</b><br />' .
+               html_tag( 'table', "\n" .
+                   html_tag( 'tr', "\n" .
+                       html_tag( 'td', "\n" .
+                           html_tag( 'table', "\n" .
+                               html_tag( 'tr', "\n" .
+                                   html_tag( 'th', _("Default Identity"), 'center', '', 'colspan="2"' ) ,
+                                   '', $color[9]) . "\n" .
+                                   $td_str . "\n" .
+                               html_tag( 'tr',
+                                   html_tag( 'th', _("Add a New Identity") . ShowTableInfo('', '', '', '', $num), 'center', '', 'colspan="2"' ) ,
+                               '', $color[9]) ,
+                            '', '', 'width="80%" cellpadding="2" cellspacing="0" border="0"' ) ,
+                       'center', $color[4] )
+                   ) ,
+               '', '', 'width="100%" border="0" cellpadding="1" cellspacing="1"' ) ,
+           'center', $color[0] )
+       ) ,
+   'center', '', 'width="95%" border="0" cellpadding="2" cellspacing="0"' ) .
+
+   '</body></html>';
 
     function SaveUpdateFunction() {
-        global $username, $data_dir, $full_name, $email_address, $reply_to;
+        global $username, $data_dir, $full_name, $email_address, $reply_to, $signature;
 
         $i = 1;
         $fakeI = 1;
@@ -140,6 +130,12 @@ require_once('../functions/display_messages.php');
                 $filled ++;
                 setPref($data_dir, $username, 'reply_to' . $fakeI, $$name);
 
+                $name = 'signature' . $i;
+                global $$name;
+            if ($$name != '')
+                $filled ++;
+                setSig($data_dir, $username, $fakeI, $$name);
+
             if ($filled == 0)
                 $fakeI --;
             }
@@ -157,16 +153,19 @@ require_once('../functions/display_messages.php');
             removePref($data_dir, $username, 'full_name' . $fakeI);
             removePref($data_dir, $username, 'email_address' . $fakeI);
             removePref($data_dir, $username, 'reply_to' . $fakeI);
+            setSig($data_dir, $username, $fakeI, "");
             $fakeI ++;
         }
 
         setPref($data_dir, $username, 'full_name', $full_name);
         setPref($data_dir, $username, 'email_address', $email_address);
         setPref($data_dir, $username, 'reply_to', $reply_to);
+        setSig($data_dir, $username, "g", $signature);
+
     }
 
     function CheckAndDoDefault() {
-        global $username, $data_dir, $full_name, $email_address, $reply_to;
+        global $username, $data_dir, $full_name, $email_address, $reply_to, $signature;
 
         $i = 1;
         $name = 'form_for_' . $i;
@@ -177,7 +176,7 @@ require_once('../functions/display_messages.php');
             global $$name;
             if (isset($$name)) {
                 do_hook('options_identities_renumber', $i, 'default');
-                global $full_name, $email_address, $reply_to;
+                global $full_name, $email_address, $reply_to, $signature;
 
                 $name = 'full_name' . $i;
                 global $$name;
@@ -197,6 +196,13 @@ require_once('../functions/display_messages.php');
                 $reply_to = $$name;
                 $$name = $temp;
 
+                $name = 'signature' . $i;
+                global $$name;
+                $temp = $signature;
+                $signature = $$name;
+                $$name = $temp;
+
+
                 return true;
             }
 
@@ -208,7 +214,7 @@ require_once('../functions/display_messages.php');
     }
 
     function CheckForDelete() {
-        global $username, $data_dir, $full_name, $email_address, $reply_to;
+        global $username, $data_dir, $full_name, $email_address, $reply_to, $signature;
 
         $i = 1;
         $name = 'form_for_' . $i;
@@ -240,28 +246,35 @@ require_once('../functions/display_messages.php');
             if (isset($$name) && $i > 1) {
                 do_hook('options_identities_renumber', $i, $i - 1);
 
-            $nameA = 'full_name' . $i;
-            $nameB = 'full_name' . ($i - 1);
+                $nameA = 'full_name' . $i;
+                $nameB = 'full_name' . ($i - 1);
+                global $$nameA, $$nameB;
+                $temp = $$nameA;
+                $$nameA = $$nameB;
+                $$nameB = $temp;
+
+                $nameA = 'email_address' . $i;
+                $nameB = 'email_address' . ($i - 1);
+                global $$nameA, $$nameB;
+                $temp = $$nameA;
+                $$nameA = $$nameB;
+                $$nameB = $temp;
+
+                $nameA = 'reply_to' . $i;
+                $nameB = 'reply_to' . ($i - 1);
+                global $$nameA, $$nameB;
+                $temp = $$nameA;
+                $$nameA = $$nameB;
+                $$nameB = $temp;
+
+            $nameA = 'signature' . $i;
+            $nameB = 'signature' . ($i - 1);
             global $$nameA, $$nameB;
             $temp = $$nameA;
             $$nameA = $$nameB;
             $$nameB = $temp;
 
-            $nameA = 'email_address' . $i;
-            $nameB = 'email_address' . ($i - 1);
-            global $$nameA, $$nameB;
-            $temp = $$nameA;
-            $$nameA = $$nameB;
-            $$nameB = $temp;
-
-            $nameA = 'reply_to' . $i;
-            $nameB = 'reply_to' . ($i - 1);
-            global $$nameA, $$nameB;
-            $temp = $$nameA;
-            $$nameA = $$nameB;
-            $$nameB = $temp;
-
-            return true;
+                return true;
             }
 
             $i ++;
@@ -271,60 +284,76 @@ require_once('../functions/display_messages.php');
         return false;
     }
 
-    function LoadInfo(&$n, &$e, &$r, $post) {
+    function LoadInfo(&$n, &$e, &$r, &$s, $post) {
         global $username, $data_dir;
 
         $n = getPref($data_dir, $username, 'full_name' . $post);
         $e = getPref($data_dir, $username, 'email_address' . $post);
         $r = getPref($data_dir, $username, 'reply_to' . $post);
+        if ($post == '')
+           $post = 'g';
+        $s = getSig($data_dir,$username,$post);
 
-        if ($n != '' || $e != '' || $r != '')
+        if ($n != '' || $e != '' || $r != '' || $s != '')
             return true;
     }
 
 function sti_input( $title, $hd, $data, $post, $bg ) {
+    $return_val = html_tag( 'tr',
+                           html_tag( 'td', $title . ':', 'right', '', 'nowrap' ) .
+                           html_tag( 'td', '<input size="50" type="text" value="' . htmlspecialchars($data) . '" name="' . $hd . $post . '" />' , 'left' ) ,
+                       '', $bg );
+     return ($return_val);
+}
 
-    echo "<tr$bg><td align=right nowrap>$title:".
-         '</td><td>'.
-         '<input size=50 type=text value="' . htmlspecialchars($data) .
-         "\" name=\"$hd$post\"></td></tr>";
-
+function sti_textarea( $title, $hd, $data, $post, $bg ) {
+    $return_val = html_tag( 'tr',
+                           html_tag( 'td', $title . ':', 'right', '', 'nowrap' ) .
+                           html_tag( 'td', '<textarea cols="50" rows="5" name="' . $hd . $post . '">' . htmlspecialchars($data) . '</textarea>' , 'left' ) ,
+                       '', $bg );
+     return ($return_val);
 }
 
-function ShowTableInfo($full_name, $email_address, $reply_to, $post) {
+function ShowTableInfo($full_name, $email_address, $reply_to, $signature, $post) {
     global $color;
 
-    $OtherBG = ' bgcolor="' . $color[0] . '"';
-    if ($full_name == '' && $email_address == '' && $reply_to == '')
+    $OtherBG = $color[0];
+    if ($full_name == '' && $email_address == '' && $reply_to == '' && $signature == '')
         $OtherBG = '';
 
-    if ($full_name == '' && $email_address == '' && $reply_to == '')
+    if ($full_name == '' && $email_address == '' && $reply_to == '' && $signature == '')
         $isEmptySection = true;
     else
         $isEmptySection = false;
 
-    sti_input( _("Full Name"), 'full_name', $full_name, $post, $OtherBG );
-    sti_input( _("E-Mail Address"), 'email_address', $email_address, $post, $OtherBG );
-    sti_input( _("Reply To"), 'reply_to', $reply_to, $post, $OtherBG );
+    $return_val = '';
+    $return_val .= sti_input( _("Full Name"), 'full_name', $full_name, $post, $OtherBG );
+    $return_val .= sti_input( _("E-Mail Address"), 'email_address', $email_address, $post, $OtherBG );
+    $return_val .= sti_input( _("Reply To"), 'reply_to', $reply_to, $post, $OtherBG );
+    $return_val .= sti_textarea( _("Signature"), 'signature', $signature, $post, $OtherBG );
+
+    $return_val .= concat_hook_function('options_identities_table', array($OtherBG, $isEmptySection, $post));
+    $return_val .= html_tag( 'tr', '', '', $OtherBG);
+    $return_val .= html_tag( 'td', '&nbsp;', 'left' );
+    $return_val .= html_tag( 'td', '', 'left' );
+    $return_val .= '<input type="hidden" name="form_for_'. $post .'" value="1" />';
+    $return_val .= '<input type="submit" name="update" value="' . _("Save / Update") . '" />';
+
 
-    do_hook('options_identities_table', $OtherBG, $isEmptySection, $post);
-    echo "<tr$OtherBG>".
-         '<td>&nbsp;</td><td>'.
-         "<input type=hidden name=\"form_for_$post\" value=\"1\">".
-         '<input type=submit name="update" value="'.
-         _("Save / Update") . '">';
     if (! $isEmptySection && $post != '') {
-        echo "<input type=submit name=\"make_default_$post\" value=\"".
-             _("Make Default") . '">'.
-             "<input type=submit name=\"delete_$post\" value=\"".
-             _("Delete") . '">';
+        $return_val .= '<input type="submit" name="make_default_' . $post . '" value="'.
+             _("Make Default") . '" />'.
+             '<input type="submit" name="delete_' . $post . '" value="'.
+             _("Delete") . '" />';
     }
     if (! $isEmptySection && $post != '' && $post > 1) {
-        echo '<input type=submit name="promote_' . $post . '" value="'.
-             _("Move Up") . '">';
+        $return_val .= '<input type="submit" name="promote_' . $post . '" value="'.
+             _("Move Up") . '" />';
     }
-    do_hook('options_identities_buttons', $isEmptySection, $post);
-    echo '</td></tr>'.
-         '<tr><td colspan="2">&nbsp;</td></tr>';
+    $return_val .= concat_hook_function('options_identities_buttons', array($isEmptySection, $post));
+    $return_val .=  '</td></tr>'.
+         html_tag( 'tr', html_tag( 'td', '&nbsp;', 'left', '', 'colspan="2"' ));
+
+    return ($return_val);
 }
-?>
+?>
\ No newline at end of file