Seite 2 von 2
Verfasst: So 3. Apr 2005, 19:50
von HerrB
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
Verfasst: So 3. Apr 2005, 19:58
von acquire
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!
weitere Version
Verfasst: Fr 21. Okt 2005, 14:33
von kypta
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ü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
}
}
?>
Verfasst: So 1. Jul 2007, 23:11
von anjaka
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
Verfasst: Mo 2. Jul 2007, 01:05
von HerrB
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
Verfasst: Mo 2. Jul 2007, 01:17
von anjaka
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?
Verfasst: Mo 2. Jul 2007, 12:53
von HerrB
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
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