Extras - Newsletter: Modul Newsletter-Archiv (V4.6,Alpha)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 3. Apr 2005, 19:50

Im Output im SQL-Statement für die Übersicht:
Vorher:

Code: Alles auswählen

$newsletters->select("idclient='$client' AND idlang='$lang'","","name");
Nachher:

Code: Alles auswählen

$newsletters->select("idclient='$client' AND idlang='$lang' AND name != 'Willkommen'","","name");
Und warum die Ergänzung des "AND name != 'Willkommen" nicht sinnvoll ist verstehe ich nicht ganz.
Du verstehst mich miss; die angegebene Ergänzung ist sinnvoll (warum auch nicht...). Ich würde den Namen nehmen, da man dann besser sieht, was erscheint (bei idnews != 3 vergisst man irgendwann, warum man das mal gemacht hat).

Aber das Ergänzen der Spalte welcome in der DB ist nicht sinnvoll (diese wird mit V4.5.x + Überarbeitung eingeführt), da sie nicht entsprechend gesetzt werden kann (keine Verwaltungsmäglichkeit unter Extras -> Newsletter).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

acquire
Beiträge: 194
Registriert: So 13. Jun 2004, 13:24
Kontaktdaten:

Beitrag von acquire » So 3. Apr 2005, 19:58

HerrB hat geschrieben:

Code: Alles auswählen

$newsletters->select("idclient='$client' AND idlang='$lang' AND name != 'Willkommen'","","name");
Ach, jetzt weiß ich was mein Fehler war: Ich ahbe es nach "name" eingefügt.

Danke!

Thomas
Beiträge: 295
Registriert: Di 8. Jul 2003, 13:25
Kontaktdaten:

weitere Version

Beitrag von Thomas » Fr 21. Okt 2005, 14:33

Habe den von acquire unter http://contenido.org/forum/viewtopic.php?p=45059#45059 abgeänderten code noch etwas verändert:

Der folgende Code produziert gültiges xhtml (die URLs werden nicht mehr mit & sondern als & geschrieben).
Als weiteres "Feature" wird jeweils eine Titelzeile ausgegeben. Bei der Übersichts-Ansicht muss der Titel selber noch angepasst werden. Bei der Einzelansicht eines Newsletters wird der Newsletter-Betreff als Titel markiert. Es wird dabei die css-Klasse Titel benutzt.
Bei der Übersichts-Ansicht werden nur Newsletter aufgelistet, die im Newsletternamen das Zeichen # haben. Somit kann man selber wählen, welche Newsletter aufgelistet werden: Es reicht, den entsprechenden Newsletter mit einem # im Namen abzuspeichern. Das # wird in der Übersichts-Anzeige natürlich rausgefiltert.

Code: Alles auswählen

<?php 
   cInclude("classes", "class.newsletter.php"); 

   $newsletters = New NewsletterCollection; 

   if (is_numeric($idnews) && $idnews > 0) 
   { 
      $newsletters->select("idclient='$client' AND idlang='$lang' AND idnews=" . $idnews); 

      if ($newsletter = $newsletters->next()) 
      { 
         // Getting all date for your convenience, currently only $news_id, $news_subject and $news_message are used 
         $news_id = $newsletter->get("idnews"); 
         $news_subject = $newsletter->get("subject"); 
         $news_message = $newsletter->get("message"); 
         $news_name = $newsletter->get("name"); 
         $news_newsfrom = $newsletter->get("newsfrom"); 
         $news_newsdate = $newsletter->get("newsdate"); 
         $news_author = $newsletter->get("author"); 
         $news_created = $newsletter->get("created"); 
         $news_lastmodified = $newsletter->get("lastmodified"); 

         // Cleaning $message 
         $news_message = str_replace("MAIL_NAME", "", $news_message); 
         $news_message = str_replace("MAIL_NUMBER", "", $news_message); 
         $news_message = str_replace("MAIL_DATE", "", $news_message); 
         $news_message = str_replace("MAIL_TIME", "", $news_message); 
         $news_message = str_replace("MAIL_UNSUBSCRIBE", "", $news_message); 
         $news_message = str_replace("MAIL_CHANGE", "", $news_message); 
         $news_message = str_replace("MAIL_STOP", "", $news_message); 
         $news_message = str_replace("MAIL_GOON", "", $news_message); 

         // Newsletter Message 
		 echo '<p class="Titel">' . $news_subject . '</p>';
         echo nl2br($news_message) . chr(10); 
          
      } 

      $link = "front_content.php?client=$client&lang=$lang&idcatart=$idcatart"; 
      echo "<br /><br /><a href=\"" . $link . "\" class=\"navi\">Zur&uuml;ck</a><br />" . chr(10);
 
   } else { 
 
      $newsletters->select("idclient='$client' AND idlang='$lang'","","name"); 

      $zaehler = 0;

      while ($newsletter = $newsletters->next()) 
      { 
         // Getting all date for your convenience, currently only $news_id, $news_subject and $news_message are used 
         $news_name = $newsletter->get("name");
		 
		 // wenn der newsletter-name das zeichen # beinhaltet
		 if (preg_match("/#/",$news_name)) {
		 
		    // zähler, damit titel nur ein mal ausgegeben wird
            if ($zaehler == 0) {echo '<p class="Titel">Newsletter Archiv Titel</p>';}
		 
            // Newsletter-Name as Headline, incl. Link 
            $link = "front_content.php?client=$client&lang=$lang&idcatart=$idcatart&idnews=" . $newsletter->get("idnews"); 
 
            // Cleaning $message von trailing #
            $news_name = str_replace("#", "", $news_name);
		 
		    // Link ausgeben
            echo "<a href=\"" . $link . "\">" . $news_name . ":</a><br />" . chr(10); 
		 
            // Zähler hochzählen
		    $zaehler = $zaehler+1;
		} // preg_match ende
      }

   } 
?>

anjaka
Beiträge: 103
Registriert: Di 23. Nov 2004, 11:07
Kontaktdaten:

Beitrag von anjaka » So 1. Jul 2007, 23:11

Hallo,
wo muss ich denn eingreifen um eine Sortierung nach dem Datum oder der ID hinzubekommen?

Wie bekomme ich das Datum "created" oder "lastmodified", das spielt keine Rolle über dem Titel angezeigt?

Gruß anjaka
Zuletzt geändert von anjaka am Mo 2. Jul 2007, 01:11, insgesamt 1-mal geändert.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mo 2. Jul 2007, 01:05

Statt "name" andere Kriterien bei dieser Zeile festlegen:

Code: Alles auswählen

      $newsletters->select("idclient='$client' AND idlang='$lang'","","name"); 
z.B.

Code: Alles auswählen

      $newsletters->select("idclient='$client' AND idlang='$lang'","","created"); 
oder

Code: Alles auswählen

      $newsletters->select("idclient='$client' AND idlang='$lang'","","idnews"); 
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

anjaka
Beiträge: 103
Registriert: Di 23. Nov 2004, 11:07
Kontaktdaten:

Beitrag von anjaka » Mo 2. Jul 2007, 01:17

Hallo HerrB,
klasse und danke!

Jetzt fehlt mir noch die Sortierung in umgekehrter Reihenfolge.
Ich kenne das mit order by DESC, aber das funzt hier nicht.

Wie bekomme ich das Datum "created" oder "lastmodified", das spielt keine Rolle über dem Titel angezeigt?

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mo 2. Jul 2007, 12:53

Code: Alles auswählen

$newsletters->select("idclient='$client' AND idlang='$lang'","","created DESC");
Das andere ist von Deinen Wünschen abhängig, grundsätzlich wäre eso etwas denkbar:
Oberhalb von

Code: Alles auswählen

echo '<p class="Titel">' . $news_subject . '</p>';
diese Zeile einfügen:

Code: Alles auswählen

echo '<p class="Date">' . strftime("%D", strtotime($newsletter->get("created"))) . '</p>';
Anderes Datumsformat? Siehe http://de3.php.net/manual/en/function.strftime.php

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Gesperrt