/** * Diese Methode zeigt die Liste aller vorhandenen Newsletter, den Button zum * Erstellen eines neuen Newsletters und ggf. auch die Liste der in einem * Newsletter vorhandenen Eintraege an. * @param string $error eine ggf. mit anzuzeigende Meldung (z.B. Fehler aus * der Verarbeitung der Eingaben im letzten Schritt) * @return string die fertige Anzeige */ protected function show_overview() { $rueckgabe = ""; $params = array(); $params['newsletters'] = $this->db->query("SELECT id, date, sent FROM " . PREFIX . "newsletterCont ORDER BY date DESC"); // alle Entries zu allen Newslettern auslesen for ($i = 0; $i < sizeof($params['newsletters']); $i++) { $sql = "SELECT id FROM " . PREFIX . "newsletterEntries WHERE newsletterContId='" . $params['newsletters'][$i]['id'] . "'"; $params['newsletters'][$i]['entries'] = $this->db->query($sql); } // alle vorhandenen Templates ermitteln $params['templates'] = NewsletterTemplate::read_existing_templates(); // Anzeige zur Erzeugung eines neuen Newsletters bauen if (!array_key_exists("edit", $_GET) || strlen($_GET['edit']) == 0) { $rueckgabe .= $this->execute_view(ROOT_PATH . "admin/add_newsletter.view.php", $params); } // Anzeige der existierenden Newsletters bauen $rueckgabe .= $this->execute_view(ROOT_PATH . "admin/show_newsletters.view.php", $params); // einen Newsletter bearbeiten: Eintraege des Newsletters als Tabelle anzeigen if (array_key_exists("edit", $_GET) && strlen($_GET['edit']) > 0) { $newsletter_id = $this->db->prepare_for_db($_GET['edit']); $sql = "SELECT date,id FROM " . PREFIX . "newsletterCont WHERE id='" . $newsletter_id . "'"; $params['newsletter'] = $this->db->query($sql); $sql = "SELECT id, headline, content, ordering FROM " . PREFIX . "newsletterEntries WHERE newsletterContId='" . $newsletter_id . "' ORDER BY ordering ASC"; $params['entries'] = $this->db->query($sql); $rueckgabe .= $this->execute_view(ROOT_PATH . "admin/edit_newsletter.view.php", $params); } return $rueckgabe; }
/** * Diese Methode erstellt einen neuen Newsletter in der Datenbank. * @return int den Primaerschluessel (die ID) des neuen Newsletters in der * Datenbank */ public static function create() { // existierende Templates holen $tpls = NewsletterTemplate::read_existing_templates(); // Wahl des Users auslesen $postman = new Postman(); $candidate = $postman->get_plaintext("template"); if (!is_null($candidate) && in_array($candidate, $tpls)) { $value = $candidate; } else { $value = $tpls[0][0]; } $db = new DbPdo(); $db->prepare_and_execute("INSERT INTO " . PREFIX . "newsletterCont SET date=:date, templatefile=:templatefile;", array("date" => time(), "templatefile" => $value)); $rueckgabe = $db->get_last_insert_id(); return $rueckgabe; }