Rudimentäres Newsletter-Archiv-Modul. Versand des Newsletters fehlt komplett.
bernd

bernd commited on 2011-03-30 16:59:34
Zeige 5 geänderte Dateien mit 144 Einfügungen und 0 Löschungen.


git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1964 87cf0b9e-d624-0410-a070-f6ee81989793
... ...
@@ -0,0 +1,37 @@
1
+<?php
2
+
3
+function set_newsletter_address($address) {
4
+  $cid = $_SESSION['customerinfo']['customerno'];
5
+  $address = maybe_null(mysql_real_escape_string($address));
6
+  db_query("UPDATE kundendaten.kunden SET email_newsletter={$address} WHERE id={$cid}");
7
+}
8
+
9
+function get_newsletter_address() {
10
+  $cid = $_SESSION['customerinfo']['customerno'];
11
+  $result = db_query("SELECT email_newsletter FROM kundendaten.kunden WHERE id={$cid}");
12
+  $r = mysql_fetch_assoc($result);
13
+  return $r['email_newsletter'];
14
+}
15
+
16
+
17
+function get_latest_news() {
18
+  $today = strftime('%Y-%m-%d');
19
+  $result = db_query("SELECT id, date, subject, content FROM misc.news WHERE date > '{$today}' - INTERVAL 1 YEAR ORDER BY date DESC");
20
+  $ret = array();
21
+  while ($item = mysql_fetch_assoc($result)) {
22
+    $ret[] = $item;
23
+  }
24
+  DEBUG($ret);
25
+  return $ret;
26
+}
27
+
28
+
29
+function get_news_item($id) {
30
+  $id = (int) $id;
31
+  $result = db_query("SELECT date, subject, content FROM misc.news WHERE id={$id}");
32
+  $ret = mysql_fetch_assoc($result);
33
+  DEBUG($ret);
34
+  return $ret;
35
+}
36
+
37
+
... ...
@@ -0,0 +1,12 @@
1
+<?php
2
+
3
+$role = $_SESSION['role'];
4
+
5
+if ($role & ROLE_CUSTOMER)
6
+{
7
+  $menu["newsletter_newsletter"] = array("label" => "Newsletter", "file" => "newsletter", "weight" => 5, "submenu" => "index_index");
8
+
9
+    
10
+}
11
+
12
+?>
... ...
@@ -0,0 +1,39 @@
1
+<?php
2
+require_once("includes/newsletter.php");
3
+require_once("inc/base.php");
4
+
5
+title("Newsletter");
6
+
7
+output("<p>Mit unserem Newsletter informieren wir Sie unregelmäßig (typischer Weise maximal einmal im Monat) über Änderungen und neue Möglichkeiten bei schokokeks.org. Es handelt sich in der Regel um techniche Änderungen, geplante Wartungsarbeiten oder neue Möglichkeiten, die Ihren Benutzeraccount bei schokokeks.org betreffen.</p>");
8
+output("<p>Mehrere Adressen trennen Sie bitte durch Kommata voneinander.</p>");
9
+
10
+$oldaddr = get_newsletter_address();
11
+
12
+$yes = ' checked="checked" ';
13
+$no = '';
14
+if (! $oldaddr) {
15
+  $yes = '';
16
+  $no = ' checked="checked" ';
17
+}
18
+
19
+$form = '<p><input type="radio" id="newsletter_yes" name="newsletter" value="yes" '.$yes.' /> <label for="newsletter_yes">Newsletter soll gesendet werden an:</label> <input type="text" name="recipient" id="recipient" value="'.filter_input_general($oldaddr).'" maxlength="255" /></p>
20
+<p><input type="radio" id="newsletter_no" name="newsletter" value="no" '.$no.' /> <label for="newsletter_no">Ich möchte gar keinen Newsletter erhalten.</label></p>
21
+
22
+<p><input type="submit" value="Speichern" /></p>';
23
+
24
+
25
+
26
+output(html_form("newsletter", "save.php", "", $form));
27
+
28
+output("<h3>Vergangene Newsletter</h3>
29
+<p>Hier sehen Sie die Newsletter des vergangenen Jahres zum Nachlesen.</p>");
30
+
31
+output("<ul>");
32
+$news = get_latest_news();
33
+foreach ($news as $item) {
34
+  output("<li>".internal_link("read", $item['date'].': '.$item['subject'], "id=".$item['id'])."</li>");
35
+}
36
+output("</ul>");
37
+
38
+
39
+
... ...
@@ -0,0 +1,21 @@
1
+<?php
2
+require_once("includes/newsletter.php");
3
+require_once("inc/base.php");
4
+
5
+if (! isset($_REQUEST['id'])) {
6
+  system_failure("Keine ID!");
7
+}
8
+
9
+$item = get_news_item($_REQUEST['id']);
10
+
11
+$section = 'newsletter_newsletter';
12
+title("Newsletter vom ".$item ['date']);
13
+
14
+output("<h4>".$item['subject']."</h4>");
15
+
16
+output("<p>".internal_link("newsletter", "<em>Zurück zur Übersicht</em>")."</p>");
17
+
18
+output("<pre style=\"margin-left: 2em;\">".$item['content']."</pre>");
19
+
20
+output("<p>".internal_link("newsletter", "<em>Zurück zur Übersicht</em>")."</p>");
21
+
... ...
@@ -0,0 +1,35 @@
1
+<?php
2
+require_once("includes/newsletter.php");
3
+require_once("inc/security.php");
4
+require_once("inc/base.php");
5
+
6
+
7
+if ($_POST['newsletter'] == 'no' || $_POST['recipient'] == "") {
8
+  $sure = user_is_sure();
9
+  if ($sure === NULL)
10
+  {
11
+    check_form_token('newsletter');
12
+    are_you_sure("newsletter=no", "Wenn Sie keinen Newsletter abonnieren, erhalten Sie von uns keine Informationen zu laufenden Änderungen bei schokokeks.org. Beachten Sie bitte dennoch regelmäßig die Einträge auf dieser Website, unser Weblog und unsere Status-Seite. Möchten Sie den Newsletter wirklich abbestellen?");
13
+  }
14
+  elseif ($sure === true)
15
+  {
16
+    set_newsletter_address(NULL);
17
+    if (! $debugmode)
18
+      header('Location: newsletter');
19
+  }
20
+  elseif ($sure === false)
21
+  {
22
+    if (! $debugmode)
23
+      header('Location: newsletter');
24
+  }
25
+} else {
26
+  check_form_token('newsletter');
27
+  if (! check_emailaddr($_POST['recipient']) || filter_input_general($_POST['recipient']) != $_POST['recipient']) {
28
+    system_failure("Keine gültige E-Mail-Adresse!");
29
+  }
30
+  set_newsletter_address($_POST['recipient']);
31
+  if (! $debugmode)
32
+    header('Location: newsletter');
33
+}
34
+
35
+
0 36