Datums-Check und Daten in umgangssprachlicher Form ausgeben
bernd

bernd commited on 2012-03-02 09:59:53
Zeige 6 geänderte Dateien mit 65 Einfügungen und 20 Löschungen.


git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@2215 87cf0b9e-d624-0410-a070-f6ee81989793
... ...
@@ -335,13 +335,20 @@ function html_datepicker($nameprefix, $timestamp)
335 335
   $valid_months = array( 1 =>  1,  2 =>  2,  3 =>  3,  4 =>  4,  5 =>  5,
336 336
                          6 =>  6,  7 =>  7,  8 =>  8,  9 =>  9, 10 => 10,
337 337
                         11 => 11, 12 => 12);
338
+  $current_year = (int) date('Y');
339
+  $valid_years = array($current_year => $current_year, 
340
+                       $current_year+1 => $current_year+1,
341
+                       $current_year+2 => $current_year+2,
342
+                       $current_year+3 => $current_year+3,
343
+                       $current_year+4 => $current_year+4);
344
+              
338 345
   $selected_day = date('d', $timestamp);
339 346
   $selected_month = date('m', $timestamp);
340 347
   $selected_year = date('Y', $timestamp);
341 348
   $ret = '';
342 349
   $ret .= html_select($nameprefix.'_day', $valid_days, $selected_day, 'style="text-align: right;"').". ";
343 350
   $ret .= html_select($nameprefix.'_month', $valid_months, $selected_month, 'style="text-align: right;"').". ";
344
-  $ret .= '<input type="text" name="'.$nameprefix.'_year" value="'.$selected_year.'" size="5" />';
351
+  $ret .= html_select($nameprefix.'_year', $valid_years, $selected_year);
345 352
   return $ret;
346 353
 }
347 354
 
... ...
@@ -152,7 +152,7 @@ if ($ar['valid_until'] != NULL && $ar['valid_until'] < date('Y-m-d')) {
152 152
 $valid_from_now_checked = ($ar['valid_from'] <= date('Y-m-d H:i:s') || $ar['valid_from'] == NULL) ? ' checked="checked"' : '';
153 153
 $valid_from_future_checked = ($ar['valid_from'] > date('Y-m-d H:i:s')) ? ' checked="checked"' : '';
154 154
 $startdate = $ar['valid_from'];
155
-if (! $startdate) {
155
+if (! $startdate || $startdate <= date('Y-m-d')) {
156 156
   $startdate = date('Y-m-d', time() + 1*24*60*60);
157 157
 }
158 158
 $form .= "<p><input type=\"radio\" name=\"ar_valid_from\" value=\"now\" id=\"ar_valid_from_now\"{$valid_from_now_checked} /> <label for=\"ar_valid_from_now\">Ab sofort</label><br />".
... ...
@@ -27,7 +27,7 @@ function empty_account()
27 27
 function empty_autoresponder_config()
28 28
 {
29 29
   $ar = array(
30
-    'valid_from' => date( 'Y-m-d H:i:s' ),
30
+    'valid_from' => date( 'Y-m-d' ),
31 31
     'valid_until' => NULL,
32 32
     'fromname' => NULL,
33 33
     'fromaddr' => NULL,
... ...
@@ -75,7 +75,7 @@ function get_account_details($id, $checkuid = true)
75 75
 	  }
76 76
 	}
77 77
   if ($acc['autoresponder'] > 0) {
78
-    $result = db_query("SELECT id, IF(valid_from IS NULL OR valid_from > NOW() OR valid_until < NOW(), 0, 1) AS active, valid_from, valid_until, fromname, fromaddr, subject, message, quote FROM mail.vmail_autoresponder WHERE account={$acc['id']}");
78
+    $result = db_query("SELECT id, IF(valid_from IS NULL OR valid_from > NOW() OR valid_until < NOW(), 0, 1) AS active, DATE(valid_from) AS valid_from, DATE(valid_until) AS valid_until, fromname, fromaddr, subject, message, quote FROM mail.vmail_autoresponder WHERE account={$acc['id']}");
79 79
     $item = mysql_fetch_assoc($result);
80 80
     DEBUG($item);
81 81
     $acc['autoresponder'] = $item;
... ...
@@ -9,6 +9,8 @@ require_role(array(ROLE_SYSTEMUSER, ROLE_VMAIL_ACCOUNT));
9 9
 require_once("inc/debug.php");
10 10
 global $debugmode;
11 11
 
12
+$section = 'email_vmail';
13
+
12 14
 
13 15
 if ($_GET['action'] == 'edit')
14 16
 {
... ...
@@ -21,7 +23,7 @@ if ($_GET['action'] == 'edit')
21 23
     // Leere das, sonst werden die vervielfacht
22 24
     $account['forwards'] = array();
23 25
   } else {
24
-    $id = (int) $_GET['id'];
26
+    $id = isset($_GET['id']) ? (int) $_GET['id'] : NULL;
25 27
   
26 28
     $account = empty_account();
27 29
     $account['id'] = NULL;
... ...
@@ -55,21 +57,52 @@ if ($_GET['action'] == 'edit')
55 57
   $ar = empty_autoresponder_config();
56 58
   $valid_from_date = time();
57 59
   $valid_until_date = NULL;
60
+  if (isset($_POST['ar_valid_from']) && ($_POST['ar_valid_from'] == 'now')) {
61
+    $valid_from_date = time();
62
+  } else {
58 63
     if (isset($_POST['ar_valid_from_day']) && isset($_POST['ar_valid_from_month']) && isset($_POST['ar_valid_from_year'])) {
59
-    $valid_from_date = strtotime($_POST['ar_valid_from_year'].'-'.$_POST['ar_valid_from_month'].'-'.$_POST['ar_valid_from_day']);
64
+      $tmpdate = $_POST['ar_valid_from_year'].'-'.$_POST['ar_valid_from_month'].'-'.$_POST['ar_valid_from_day'];
65
+      if (date('Y-n-j', strtotime($tmpdate)) != $tmpdate) {
66
+        system_failure('Das Aktivierungs-Datum scheint ungültig zu sein.');
67
+      } else {
68
+        $valid_from_date = strtotime($tmpdate);
69
+      }
60 70
     }
61
-  if (isset($_POST['ar_valid_until_day']) && isset($_POST['ar_valid_until_month']) && isset($_POST['ar_valid_until_year'])) {
62
-    $valid_until_date = strtotime($_POST['ar_valid_until_year'].'-'.$_POST['ar_valid_until_month'].'-'.$_POST['ar_valid_until_day']);
63 71
   }
64
-  if (isset($_POST['ar_valid_from']) && ($_POST['ar_valid_from'] == 'now' || $valid_from_date < time())) {
72
+  if ($valid_from_date < time()) {
65 73
     $valid_from_date = time();
74
+    warning('Das Aktivierungs-Datum liegt in der Vergangenheit. Die Funktion wird ab sofort aktiviert.');
75
+  }
76
+  if ($valid_from_date > time() + 365*24*60*60) {
77
+    warning('Das Aktivierungs-Datum liegt mehr als ein Jahr in der Zukunft. Bitte prüfen Sie ob Sie das korrekte Jahr gewählt haben.');
78
+  }
79
+  if (isset($_POST['ar_valid_until']) && ($_POST['ar_valid_until'] == 'infinity')) {
80
+    $valid_until_date = NULL;
81
+  } else {
82
+    if (isset($_POST['ar_valid_until_day']) && isset($_POST['ar_valid_until_month']) && isset($_POST['ar_valid_until_year'])) {
83
+      $tmpdate = $_POST['ar_valid_until_year'].'-'.$_POST['ar_valid_until_month'].'-'.$_POST['ar_valid_until_day'];
84
+      if (date('Y-n-j', strtotime($tmpdate)) != $tmpdate) {
85
+        system_failure('Das Deaktivierungs-Datum scheint ungültig zu sein.');
86
+      } else {
87
+        $valid_until_date = strtotime($tmpdate);
88
+      }
89
+    }
66 90
   }
67
-  $ar['valid_from'] = date('Y-m-d', $valid_from_date);
68
-  $ar['valid_until'] = date('Y-m-d', $valid_until_date);
69 91
   if (!isset($_POST['autoresponder']) || $_POST['autoresponder'] != 'yes') {
92
+    $valid_from_date = NULL;
93
+  }
94
+  if ($valid_until_date && $valid_until_date < time()) {
95
+    warning('Das Deaktivierungs-Datum liegt in der Vergangenheit, eine automatische Deaktivierung wird nicht stattfinden.');
96
+    $valid_until_date = NULL;
97
+  }
98
+  if ($valid_from_date) {
99
+    $ar['valid_from'] = date('Y-m-d', $valid_from_date);
100
+  } else {
70 101
     $ar['valid_from'] = NULL;
71 102
   }
72
-  if (isset($_POST['ar_valid_until']) && ($_POST['ar_valid_until'] == 'infinity' || $valid_until_date < time())) {
103
+  if ($valid_until_date) {
104
+    $ar['valid_until'] = date('Y-m-d', $valid_until_date);
105
+  } else {
73 106
     $ar['valid_until'] = NULL;
74 107
   }
75 108
 
... ...
@@ -121,13 +154,14 @@ if ($_GET['action'] == 'edit')
121 154
 
122 155
   save_vmail_account($account);
123 156
 
124
-  if (! ($debugmode || we_have_an_error()))
157
+  if (! ($debugmode || we_have_an_error())) {
125 158
     if ($accountlogin) {
126 159
       header('Location: ../index/index');
127 160
     } else {
128 161
       header('Location: vmail');
129 162
     }
130 163
   }
164
+}
131 165
 elseif ($_GET['action'] == 'delete')
132 166
 {
133 167
   $title = "E-mail-Adresse löschen";
... ...
@@ -81,20 +81,22 @@ if (count($sorted_by_domains) > 0)
81 81
 	        array_push($actions, "Ablegen in Mailbox ({$spam})<br />".$quotachart);
82 82
 	      }
83 83
         if ($acc['autoresponder']) {
84
-            $now = date( 'Y-m-d H:i:s' );
84
+            $now = date( 'Y-m-d' );
85 85
             $valid_from = $acc['autoresponder']['valid_from'];
86
+            $valid_from_string = date('d.m.Y', strtotime($acc['autoresponder']['valid_from']));
86 87
             $valid_until = $acc['autoresponder']['valid_until'];
88
+            $valid_until_string = date('d.m.Y', strtotime($acc['autoresponder']['valid_until']));
87 89
             if ($valid_from == NULL) {
88 90
               // Autoresponder abgeschaltet
89 91
               //array_push($actions, "<strike>Automatische Antwort versenden</strike> (Abgeschaltet)");
90 92
             } elseif ($valid_from > $now) {
91
-              array_push($actions, "<strike>Automatische Antwort versenden</strike> (Wird aktiviert am {$valid_from})");
93
+              array_push($actions, "<strike>Automatische Antwort versenden</strike> (Wird aktiviert am {$valid_from_string})");
92 94
             } elseif ($valid_until == NULL) {
93 95
               array_push($actions, "Automatische Antwort versenden (Unbefristet)");
94 96
             } elseif ($valid_until > $now) {
95
-              array_push($actions, "Automatische Antwort versenden (Wird deaktiviert am {$valid_until})");
97
+              array_push($actions, "Automatische Antwort versenden (Wird deaktiviert am {$valid_until_string})");
96 98
             } elseif ($valid_until < $now) {
97
-              array_push($actions, "<strike>Automatische Antwort versenden</strike> (Automatisch abgeschaltet seit {$valid_until})");
99
+              array_push($actions, "<strike>Automatische Antwort versenden</strike> (Automatisch abgeschaltet seit {$valid_until_string})");
98 100
             }
99 101
         }
100 102
 	      foreach ($acc['forwards'] AS $fwd)
... ...
@@ -38,18 +38,20 @@ $content .= '<p>'.other_icon('go.png')." Ablegen in Ihrer Mailbox ({$spam})</p>"
38 38
 if ($acc['autoresponder']) {
39 39
   $now = date( 'Y-m-d H:i:s' );
40 40
   $valid_from = $acc['autoresponder']['valid_from'];
41
+  $valid_from_string = date('d.m.Y', strtotime($acc['autoresponder']['valid_from']));
41 42
   $valid_until = $acc['autoresponder']['valid_until'];
43
+  $valid_until_string = date('d.m.Y', strtotime($acc['autoresponder']['valid_until']));
42 44
   if ($valid_from == NULL) {
43 45
     // Autoresponder abgeschaltet
44 46
     //$content .= '<p>'.other_icon('go.png')." Es wird keine automatische Antwort versendet</p>"; 
45 47
   } elseif ($valid_from > $now) {
46
-    $content .= '<p>'.other_icon('go.png')." Es wird ab dem {$valid_from} eine automatische Antwort versendet</p>"; 
48
+    $content .= '<p>'.other_icon('go.png')." Es wird ab dem {$valid_from_string} eine automatische Antwort versendet</p>"; 
47 49
   } elseif ($valid_until == NULL) {
48 50
     $content .= '<p>'.other_icon('go.png')." Es wird eine automatische Antwort versendet</p>"; 
49 51
   } elseif ($valid_until > $now) {
50
-    $content .= '<p>'.other_icon('go.png')." Es wird eine automatische Antwort versendet, jedoch nicht mehr ab dem {$valid_until}</p>"; 
52
+    $content .= '<p>'.other_icon('go.png')." Es wird eine automatische Antwort versendet, jedoch nicht mehr ab dem {$valid_until_string}</p>"; 
51 53
   } elseif ($valid_until < $now) {
52
-    $content .= '<p>'.other_icon('go.png')." Es wird seit dem {$valid_until} keine automatische Antwort mehr versendet</p>"; 
54
+    $content .= '<p>'.other_icon('go.png')." Es wird seit dem {$valid_until_string} keine automatische Antwort mehr versendet</p>"; 
53 55
   }
54 56
 }
55 57
 
56 58