bedingte Textblöcke nach Gruppenzugehörigkeit
Moderator: mirko
Re: bedingte Textblöcke nach Gruppenzugehörigkeit
andere Möglichkeit gibt es nicht, die Regeln für die Gruppennamen gibt es seit Ewigkeiten, damit sind Leerzeichen und Sonderzeichen erlaubt, Leerzeichen sind aber die Trennzeichen zwischen den Zielgruppen, Sonderzeichen sind verboten.
Man muss, wenn man das so will, ein bestehendes Feld aus der Empfängerliste zur Speicherung der Empfängergruppe verwenden. Schwierig wird es bei Zuordnung zu mehreren Empfängergruppen, braucht man mehrere Felder oder in einem Feld mit Trennzeichen speichern, bei den Zielgruppen "enthält" verwenden.
JOINs sollte man immer vermeiden, die erzeugen viel mehr Last als simple Abfragen. Bei einem eigenen Server spielt das keine Rolle, auf einem einfachen Webspace mit 1000ten Empfängern aber schon.
Man muss, wenn man das so will, ein bestehendes Feld aus der Empfängerliste zur Speicherung der Empfängergruppe verwenden. Schwierig wird es bei Zuordnung zu mehreren Empfängergruppen, braucht man mehrere Felder oder in einem Feld mit Trennzeichen speichern, bei den Zielgruppen "enthält" verwenden.
JOINs sollte man immer vermeiden, die erzeugen viel mehr Last als simple Abfragen. Bei einem eigenen Server spielt das keine Rolle, auf einem einfachen Webspace mit 1000ten Empfängern aber schon.
Re: bedingte Textblöcke nach Gruppenzugehörigkeit
Danke für deine Antwort.
Wenn die Empfängergruppen, wie du schreibst, für unterschiedliche Zielgruppen vorgesehen sind, sollte die Zielgruppenfunktion auch auf diese Informationen zugreifen können.
Das Argument gegen einen Join kann ich nicht ganz nachvollziehen. SQL-Datenbanken sind für Joins optimiert. Wenn die Indizes korrekt gesetzt sind – insbesondere bei Joins über Schlüsselspalten –, sollte der zusätzliche Aufwand kaum ins Gewicht fallen. Der eigentliche Versand dauert um ein Vielfaches länger als der Join in der Datenbank, die lediglich die Newsletterdaten zurückgibt.
Sollte der Join trotz korrekter Indizierung tatsächlich zu einem Performanceproblem führen, ließe sich alternativ eine denormalisierte Zeichenkette erzeugen. Darin könnten beispielsweise die Gruppennamen oder Gruppen-IDs mit einem Trennzeichen wie Pipe, Komma oder Leerzeichen gespeichert werden. Dieses Feld „Empfängergruppen“ könnte gemeinsam mit den übrigen Daten ausgegeben werden, sodass bei der Abfrage kein zusätzlicher Join erforderlich wäre.
Bei einer Änderung der Empfängergruppen würde die Zeichenkette einfach neu berechnet und in das Feld geschrieben. Die Datenhoheit bliebe weiterhin bei der Gruppentabelle; das zusätzliche Feld wäre lediglich ein Lese-Cache.
Ohne Zugriff auf die ausgewählten Empfängergruppen bleibt mir nur, diese Projektion selbst umzusetzen und bei jeder Änderung der Gruppenzuordnung die entsprechenden Informationen in ein Zeichenkettenfeld zu schreiben.
Aus meiner Sicht wäre es ein wichtiges Feature, statt mehrerer separater E-Mails an die einzelnen Gruppen eine einzige E-Mail versenden zu können, die abhängig von den zugeordneten Empfängergruppen die jeweils relevanten Inhalte enthält.
Falls mein Lösungsvorschlag für dich nicht infrage kommt, freue ich mich auch über eine andere sinnvolle Möglichkeit, dieses Ziel zu erreichen.
Wenn die Empfängergruppen, wie du schreibst, für unterschiedliche Zielgruppen vorgesehen sind, sollte die Zielgruppenfunktion auch auf diese Informationen zugreifen können.
Das Argument gegen einen Join kann ich nicht ganz nachvollziehen. SQL-Datenbanken sind für Joins optimiert. Wenn die Indizes korrekt gesetzt sind – insbesondere bei Joins über Schlüsselspalten –, sollte der zusätzliche Aufwand kaum ins Gewicht fallen. Der eigentliche Versand dauert um ein Vielfaches länger als der Join in der Datenbank, die lediglich die Newsletterdaten zurückgibt.
Sollte der Join trotz korrekter Indizierung tatsächlich zu einem Performanceproblem führen, ließe sich alternativ eine denormalisierte Zeichenkette erzeugen. Darin könnten beispielsweise die Gruppennamen oder Gruppen-IDs mit einem Trennzeichen wie Pipe, Komma oder Leerzeichen gespeichert werden. Dieses Feld „Empfängergruppen“ könnte gemeinsam mit den übrigen Daten ausgegeben werden, sodass bei der Abfrage kein zusätzlicher Join erforderlich wäre.
Bei einer Änderung der Empfängergruppen würde die Zeichenkette einfach neu berechnet und in das Feld geschrieben. Die Datenhoheit bliebe weiterhin bei der Gruppentabelle; das zusätzliche Feld wäre lediglich ein Lese-Cache.
Ohne Zugriff auf die ausgewählten Empfängergruppen bleibt mir nur, diese Projektion selbst umzusetzen und bei jeder Änderung der Gruppenzuordnung die entsprechenden Informationen in ein Zeichenkettenfeld zu schreiben.
Aus meiner Sicht wäre es ein wichtiges Feature, statt mehrerer separater E-Mails an die einzelnen Gruppen eine einzige E-Mail versenden zu können, die abhängig von den zugeordneten Empfängergruppen die jeweils relevanten Inhalte enthält.
Falls mein Lösungsvorschlag für dich nicht infrage kommt, freue ich mich auch über eine andere sinnvolle Möglichkeit, dieses Ziel zu erreichen.
Re: bedingte Textblöcke nach Gruppenzugehörigkeit
Nein die Bezeichnungen der Gruppen wird nicht aufgenommen, dazu ist ein weiteres JOIN notwendig, das belastet die Datenbank bei vielen Empfängern noch mehr. In den Bezeichnungen der Gruppen sind ebenfalls Leerzeichen/Sonderzeichen erlaubt, in den Zielgruppen niemals, weil das Leerzeichen der "Trenner" zwischen verschiedenen Zielgruppen, wie bei CSS-Klassen, ist.
Die Empfängergruppen sind für unterschiedliche Zielgruppen gedacht, die unterschiedliche E-Mailings erhalten sollen. z.B. Weihnachten kann man auch an alle mal eine E-Mail schicken, wählt man beim E-Mailing nicht die Gruppen aus.
Die Empfängergruppen sind für unterschiedliche Zielgruppen gedacht, die unterschiedliche E-Mailings erhalten sollen. z.B. Weihnachten kann man auch an alle mal eine E-Mail schicken, wählt man beim E-Mailing nicht die Gruppen aus.
Re: bedingte Textblöcke nach Gruppenzugehörigkeit
Die Zielgruppe wäre ja genau das Richtige, aber da kann ich nicht auf die Empfängergruppen des Empfängers zugreifen, da es das Feld in der Auswahl nicht gibt. Ich sehe dann nur die Option die Empfängergruppen über ein Userfeld wie "Zeichenkette 1" abzubilden. Dann sind die eingebauten Empfängergruppen dafür aber nutzlos und ich muss die Formulare manuell programmieren.
Kannst du ein Feld "Empfängergruppen" in die Liste der Felder mit aufnehmen? Das würde ein wichtiges Feature ermöglichen. Der Inhalt des Feldes kann eine Liste der Ids oder der Namen sein. Beides liese sich als Zielgruppe filtern.
Kannst du ein Feld "Empfängergruppen" in die Liste der Felder mit aufnehmen? Das würde ein wichtiges Feature ermöglichen. Der Inhalt des Feldes kann eine Liste der Ids oder der Namen sein. Beides liese sich als Zielgruppe filtern.
Re: bedingte Textblöcke nach Gruppenzugehörigkeit
Nein gibt es nicht, mit IF sowieso nicht, das versteht der Normalnutzer nicht. Nur mit Feldern der Empfängerliste kann man vergleichen lassen und damit Funktionen, (bedingte) Textblöcke und Zielgruppen definieren. Der Name der Empfängergruppe ist nur für den Nutzer, damit er eine Bezeichnung sieht, verwendet wird diese niemals, nur die ID im Hintergrund.
Funktionen: https://newsletter-software-php-script. ... onedit.htm
empfehlenswert für diesen Fall:
Zielgruppen: https://newsletter-software-php-script. ... psedit.htm
Textblöcke: https://newsletter-software-php-script. ... ksedit.htm
Funktionen: https://newsletter-software-php-script. ... onedit.htm
empfehlenswert für diesen Fall:
Zielgruppen: https://newsletter-software-php-script. ... psedit.htm
Textblöcke: https://newsletter-software-php-script. ... ksedit.htm
bedingte Textblöcke nach Gruppenzugehörigkeit
Gibt es eine Möglichkeit, Textblöcke in einer E-Mail je nach Gruppenzugehörigkeit einzublenden? Z.B.:
<!-- [IF Empfängergruppe LIKE "%Gruppenname%"] -->
<p>Dieser Text wird nur angezeigt, wenn der Empfänger in der Gruppe ist.</p>
<!-- [ENDIF] -->
Ich möchte eine E-Mail an alle Empfänger schicken. Jeder Empfänger erhält dann die Abschnitte die zur Gruppenauswahl passen Z.B. Infos zu Workshops, Parties, Kursen, Festivals.
<!-- [IF Empfängergruppe LIKE "%Gruppenname%"] -->
<p>Dieser Text wird nur angezeigt, wenn der Empfänger in der Gruppe ist.</p>
<!-- [ENDIF] -->
Ich möchte eine E-Mail an alle Empfänger schicken. Jeder Empfänger erhält dann die Abschnitte die zur Gruppenauswahl passen Z.B. Infos zu Workshops, Parties, Kursen, Festivals.