Das Modul zeigt eine Liste der verfügbaren Newsletter und bei Klick auf einen Newsletter den ganzen Newsletter an.
Das Ganze ist sehr Alpha und ich habe leider kaum Zeit für Unterstützung, ich bitte um Nachsicht (und Eigenaktivität).
Außerdem bestehen folgende Haken:
- Das Modul ist NUR für Contenido V4.6 nutzbar
- Nein, die Version ist nicht nutzbar, wenn Contenido in V4.4.x oder V4.5.x verwendet wird.
- Es zeigt alle Newsletter, mit Ausnahme des Welcome-Newsletters. D.h., wird ein Newsletter erzeugt, ist dieser über das Modul bzw. die Seite mit dem Modul sichtbar (auch wenn der Newsletter noch nicht versendet wurde)! Dieses Problem könnte man ggf. mit einer Kennung im Namen umgehen (hier noch nicht realisiert).
- Der Code ist sehr einfach gestrickt. Alle Angaben werden in Zeilen, von <br> getrennt, ausgegeben - da muss man selbst Hand anlegen.
- Ein Trenntext muss angegeben werden, sonst tritt eine Fehlermeldung mit Bezug auf strpos auf.
- Wird ein Newsletter in der Übersicht angeklickt, wird der Newsletter auf der gleichen Seite angezeigt
- Das Ganze wurde z.Z. nur mit dem aktuellen Snapshot getestet, z.Z. auch noch nicht mit der V4.6 Final - ihr seid also Versuchskaninchen einer Bananen-Software (reift beim Kunden...). Sorry.
Konfiguration:
- Die Anzahl Zeichen begrenzt den Auszug aus dem Newsletter in der Übersicht (0 = alles zeigen)
- Der Trenntext ermöglicht es, einen Bereich mit MAIL_STOP usw. abzutrennen. Dazu wird das ERSTE Vorkommen des Trenntextes im Newsletter gesucht und der Text AB DORT IGNORIERT (abgeschnitten). Nach dem Trennzeichen darf also nix relevantes mehr stehen (oder man setzt den Text auf eine Kombination, die nicht im Newsletter vorkommt - dann muss man halt mit MAIL_STOP usw. leben).
Beschreibung:
Code: Alles auswählen
Shows a newsletter archive (list) and the newsletter in detail
Author: HerrB
Version: 0.2
Code: Alles auswählen
if (!$chars)
$chars = 0;
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
<tr valign=\"top\">
<td>Angezeigte Zeichen (0 = alles):</td>
<td><input type=\"text\" name=\"CMS_VAR[0]\" value=\"" . $chars . "\"></td>
</tr>
<tr valign=\"top\">
<td>Trenntext:</td>
<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>
</tr>
</table>";
Code: Alles auswählen
<?php
cInclude("classes", "class.newsletter.php");
$chars = "CMS_VALUE[0]";
$cut = "CMS_VALUE[1]";
$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-Subject as Headline
echo $news_subject . ":<br />" . chr(10);
// Eliminating area with MAIL_STOP and so on
$cutpos = strpos($news_message, $cut);
if ($cutpos)
{
echo nl2br(substr($news_message, 0, $cutpos-1)) . chr(10);
} else {
echo nl2br($news_message) . chr(10);
}
}
$link = "front_content.php?client=$client&lang=$lang&idcatart=$idcatart";
echo "<br /><br /><a href=\"" . $link . "\">" . mi18n("< Back") . "</a><br />" . chr(10);
} else {
$newsletters->select("idclient='$client' AND idlang='$lang' AND welcome=0","","name");
while ($newsletter = $newsletters->next())
{
// Newsletter-Subject as Headline, incl. Link
$link = "front_content.php?client=$client&lang=$lang&idcatart=$idcatart&idnews=" . $newsletter->get("idnews");
echo "<a href=\"" . $link . "\">" . $newsletter->get("subject") . ":</a><br />" . chr(10);
// Getting newsletter content, showing first $chars characters
$news_message = $newsletter->get("message");
// 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);
$cutpos = strpos($news_message, $cut);
if ($cutpos)
{
if ($chars == 0 || $cutpos <= $chars)
{
echo nl2br(substr($news_message, 0, $cutpos-1)) . "<br /><br />" . chr(10);
} else {
echo nl2br(substr($news_message, 0, $chars)) . "<br /><br />" . chr(10);
}
} else {
if ($chars == 0)
{
echo nl2br($news_message) . "<br /><br />" . chr(10);
} else {
echo nl2br(substr($news_message, 0, $chars)) . "<br /><br />" . chr(10);
}
}
}
}
?>
Gruß
HerrB