/**
  * 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;
 }