Browse code

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

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1964 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on 30/03/2011 16:59:34
Showing 5 changed files
1 1
new file mode 100644
... ...
@@ -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 38
new file mode 100644
... ...
@@ -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 13
new file mode 100644
... ...
@@ -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 40
new file mode 100644
... ...
@@ -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 22
new file mode 100644
... ...
@@ -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
+