Seite 1 von 1

"Advanced" Newsletter

Verfasst: Di 31. Jan 2006, 11:35
von risibility
Hallo liebe Contenido-Gemeinde,

ich hab mich mal durch das Forum gewühlt, aber bin nicht fündig geworden. Ich frage mich nämlich, ob es eine Art "Advanced" Newsletter Modul gibt.

Folgende Features wären dabei ganz nett:
• Artikel aus dem Backend direkt als Newsletter senden
• Standardvorlagen für Newsletter

Kennt jemand sowas?

Grüße
Ris

Verfasst: Di 31. Jan 2006, 16:55
von HerrB
Nein, bzw. noch nicht.

Der erste Punkt ist geplant, wenn die eigentlichen Newsletter-Funktionen überarbeitet wurden.

Der zweite Punkt ist bereits heute möglich - man kann Newsletter kopieren...

Gruß
HerrB

Verfasst: Fr 3. Feb 2006, 10:24
von risibility
Ja, das mit dem kopieren ist ganz nett. Aber wenn man mal 200 Newsletter zusammen hat, dann muß man den richtigen immer suchen...

Der erste Punkt ist mir auch wichtiger, da ich einem Kunden mit Null Wissen das ganze Copy->Paste Verfahren sparen wollte...

Aber erst einmal Danke für die Antwort!

Verfasst: Fr 3. Feb 2006, 21:39
von HerrB
Na ja, dann nenne doch die Vorlage "___Vorlage" (oder AAA-Vorlage), dann sollte sie immer am Anfang der Liste stehen.

Gruß
HerrB

Verfasst: Mi 8. Feb 2006, 18:12
von markusheinzer
Ich stelle mir vor, dass man relativ einfach analog von z.B. MAIL_NAME eine Funktion nachträglich einbauen könnte, die etwa so aussehen würde:

Eingabe beim Newsletter-Schreiben:

Code: Alles auswählen

MAIL_ART(124)
Ausgabe im E-Mail:

Code: Alles auswählen

http://..../front_content.php?idart=124
Natürlich müsste man dann noch die richtige Sprache erwischen.

Mit so einer Funktion könnte man sehr einfach Links auf Artikel verschicken. Das wäre mindestens eine vorläufige Lösung, die erst noch sehr schlanke E-Mails zur Folge hätte.

Ich würde das Ding wahrscheinlich selber programmieren können, wenn mir nur jemand mitteilen würde, wo diese Funktionen zu finden sind: MAIL_NAME usw. Jedenfalls würde ich das gerne versuchen...

Verfasst: Do 9. Feb 2006, 00:28
von HerrB
Wie soll ich das sagen ... cleverle... :roll:

Einen Link in einem Newsletter zu versenden geht auch jetzt schon - das ist nicht das Problem. Auch muss man da nicht umständlich eine Ersetzung vornehmen, die Artikel-ID ändert sich ja nicht pro Empfänger.

Das Problem ist, dass die umgebene Mail einen ganz anderen Typ erhalten muss (nämlich HTML statt Text). D.h. da muss ein Header rein, andere Parameter beim Versand usw.

Außerdem ergibt sich das Problem (wenn man Artikel als Newsletter versenden möchte), dass die Links zur Steuerung (an- und abmelden usw.) zwar in der HTML-Mail, aber nicht im Artikel stehen dürfen.

Darüberhinaus gibt es vereinzelt Probleme im Versand von Newslettern bei einer größeren Anzahl von Empfängern. Auch das Schreiben des Logs in eine Datei, die von jederman gelesen werden kann, ist nicht die ideale Lösung (und auch nur für Fehlersuche gedacht).

D.h. folgende Dinge sind in Arbeit:
- Änderung der Versandkonfiguration pro Newsletter (Done)
- Möglichkeit, Text- oder HTML-Newsletter zu senden (Done 50%)
- Integration eines HTML-Editors für HTML-Nachrichten und eines Bereiches für den Text, der angezeigt werden soll, wenn kein HTML-fähiges E-Mail-Programm vorhanden ist (Done 80%)
- Protokollierung in die DB (Done 20%)
- Resume-Funktion zur Wiederaufnahme eines abgebrochenen versandts (Done 20%)
- Erweiterung Rechte, damit die zusätzlichen Funktionen gesteuert werden können (Done 0%)
- Berücksichtigung Plugin-Technik für alle Bereiche (Done 10%)
- Konzept für die Einbindung der Steuerlinks (Done 10% - die zündende Idee fehlt mir noch)
- Ergänzung der zusätzlichen Elemente in den Sprachdateien

Danach ist geplant:
- Überarbeitung von Christian's-HTML-Newsletter-Modul, damit man Artikel als Newsletter versenden kann
- Versand des Newsletters mit eingebundenen Objekten (CSS und Grafiken), Attachments

Wenn Du da trotzdem Hand anlegen möchtest, sage Bescheid, ich sende Dir dann gerne die Infos, wo Du was findest.

Gruß
HerrB

Verfasst: Do 9. Feb 2006, 09:21
von markusheinzer
klingt alles sehr gut.
Ich habe mir das mit dem Link auf Artikel einfach als workaround gedacht, bis zur nächsten Version deines Newsletter-Plugins.
Wenn ich dich richtig verstanden habe, schlägst du in meinem Fall eher vor, dass man in den Artikeleigenschaften sich den Link anzeigen lässt und den dann copy-paste in den Newsletter packt. Man muss ja eh die Id-Nummer irgendwo nachschauen gehen.
Ich dachte einfach, für den Redaktor wäre es natürlich einfacher mit einem Platzhalter arbeiten zu können.
aber eben, das war nur als kurzfristige Lösung dafür gedacht, dass man sehr einfach Links mitschicken kann (z.B. "what's new on the site" und dann zehn Links anhängen). An der Umsetzung wäre ich also immer noch interessiert. Auch wenn ich natürlich sehe, dass da eine Überarbeitung im Gange ist, die den Newsletter wirklich zu einem advanced-Newsletter machen wird.
Ich habe nebenbei eh etwas gegen HTML-Mails und würde wahrscheinlich nie eine HTML-Mail als Newsletter verschicken wollen. Bin da eher Purist. :wink:

Verfasst: Do 9. Feb 2006, 22:25
von HerrB
Bin da eher Purist.
Isch auch.

Gruß
HerrB

Verfasst: Fr 10. Feb 2006, 09:10
von markusheinzer
schön.
also dann würde ich nun gerne versuchen, meinen workaround zu basteln. Kannst Du mir sagen, wo ich was finde?
Grüsse

Verfasst: Fr 10. Feb 2006, 20:13
von HerrB
Ich sehe zwar noch nicht so ganz den Vorteil gegenüber "Pfad aus den Artikeleigenschaften kopieren", aber ich will Dich nicht aufhalten:

Die Ersetzung findet in der contenido/classes/class.newsletter.php statt. Der Hinweis auf die Variablen findet sich in contenido/includes/include.newsletter_edit.php - hier bleibt die Beschreibung ggf. englisch (oder Du machst es gleich deutsch), da die Einarbeitung in die Sprachübersetzung zu aufwendig ist...

Gruß
HerrB

Verfasst: Mo 13. Feb 2006, 14:12
von markusheinzer
also, ich habe das nun eingebaut. Falls es jemand auch machen möchte:

1. Schritt:
Die Datei contenido/classes/class.newsletter.php wie folgt ändern:

unter dieser Zeile:

Code: Alles auswählen

$message = str_replace("MAIL_TIME", "$time", $message);
folgende zwei Zeilen einfügen (korrigiert gemäss HerrB's Antwort):

Code: Alles auswählen

$artikelpfad = $cfgClient[$client]["htmlpath"]["frontend"].'front_content.php?changelang='.$lang.'&idart='; 
$message = str_replace("MAIL_ARTICLE", $artikelpfad, $message);
2. Schritt:
Die Datei contenido/includes/include.newsletter_edit.php wie folgt ändern:

unter dieser Zeile:

Code: Alles auswählen

"MAIL_GOON: ".i18n("Link to resume the subscription")."<br>".
folgende Zeile einfügen:

Code: Alles auswählen

"MAIL_ARTICLE: ".i18n("Link to an article. Must be immediately followed by the plain idart.")."<br>";
Man kann nun in den Newsletter-Text so einen Link auf den Artikel 135 einfügen: MAIL_ARTICLE135

Ich glaube, das ist schon eine Erleichterung. Für mich jedenfalls.
Grüsse
Markus

Verfasst: Mo 13. Feb 2006, 21:12
von HerrB
Verwende statt 'http://yourdomain/contenido/cms/ lieber $cfg[$client]["frontend"].

Kann sein, dass es nicht ganz stimmt, siehe contenido/includes/functions.general.php Funktion rereadClients.

Gruß
HerrB

Verfasst: Di 14. Feb 2006, 12:37
von markusheinzer
hast natürlich völlig recht. ist mir gestern Nacht auch plötzlich eingefallen. Ich habe es nun genau nachgeschaut und oben im Code verbessert.

Und dann habe ich mir auch noch ein kleines Modul gebastelt, das ich in einen Artikel einbaue, der natürlich nicht online ist. Damit kann ich mir eine Liste von Artikel-Titeln und dazugehörigen Links generieren lassen, die ich dann als ganzes in den Newsletter reinkopieren kann.

Nur Output:

Code: Alles auswählen

<?php

echo '<h2>Code für Hinweise auf Portal-Artikel generieren</h2><br><br>
      <span class="normal">Artikel-IDs mit Komma getrennt eingeben (123,234,2,...)<br><br></span>';
echo '<form action="'.$REQUEST_URI.'" method="post">
      <input class="eingabefeld" name="nummern" value="'.$nummern.'"><br>
      <br><input type="submit" class="button" value="generieren">
      </form>';


if ($nummern <> '')
{
    $nummer = explode (",", trim($nummern));

    foreach ($nummer as $k => $wert)
    {
        $sql = "SELECT ART.title
                  FROM {$cfg['tab']['art_lang']} AS ART
                 WHERE ART.idart = $wert";
        $db = new DB_Contenido;
        $db->query($sql);
        $db->next_record();

        $kode .= $db->f("title").':
'.$cfgClient[$client]['htmlpath']['frontend'].'front_content.php?changelang='.$lang.'&idart='.$wert.'

';
    }

echo '<textarea cols="70" rows="20">'.$kode.'</textarea>';
}

?>
So, und jetzt lass ich es sein.
Danke für die Hilfe
Markus