Giter Site home page Giter Site logo

ynewsletter's People

Contributors

dergel avatar itworks-development avatar tbaddade avatar tyrant88 avatar ynamite avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ynewsletter's Issues

Cronjob

Hallo yakamara,
ynewsletter ist für mich eine gute Alternative zum Multinewsletter und ich würde ihn gerne nehmen für ein Projekt. Hier kann ich z.B. eine Mehrfach-Anmeldung auf eine eMail-Adresse selbst mit meinen Kenntnissen erreichen. Die Menge der ynewsletter-Dateien ist übersichtlich und ich fände es super, wenn ynewsletter weiter entwickelt würde.
Leider bin ich nur Redaxo-Anwender (das aber schon seit 15 Jahren), kein Entwickler, deshalb steige ich durch die Anbindung mit yform nicht durch. Was ich im Moment brauche, ist die Auslösung des Newsletter-Versands durch einen Cronjob, und das für mehrere Gruppen in einem Rutsch.
Ich habe diese Frage schon in Slack gestellt, doch dort werden leider auch präzise Fragen allzuoft mit Gegenfragen beantwortet. Ich habe Druck seitens des Kunden und muss hier bald eine Lösung finden.
Meine Frage: wo kann ich ansetzen?. Das Versendescript soll alle Gruppen mit einem Cronjob abschicken. Ein guter Hinweis, aus der Hüfte geschossen, würde mich ja vielleicht schon auf die Spur bringen.
Danke und viele Grüße v. Heinz

Namen der Tabellenspalten

Hey,

ich habe eben über den Umweg Watson festgestellt, dass der Spaltenname table in der Tabelle rex_ynewsletter_group etwas ungünstig ist, da table ebenfalls ein reserviertes Keyword für MySQL ist. Kurzum das Addon Watson wird dadurch untauglich.

Mein kurzer Fix bestand nur darin den Spaltennamen anzupassen und daraufhin funktionierte zumindest der Watson wieder.

Personalierte Newsletter ermöglichen

Ich würde gerne einen personalisierten Newsletter verschicken. Sprich mit Platzhaltern für Vorname/Nachname. Diese müsste man irgendwie definieren können, PR dafür steht bereit.

Doku verbessern.

Beschreiben was passiert.

  • Text und HTML Varianten
  • Wie ist der Ablauf
  • Wann Pakete versenden, wann alles
  • Abmeldung, Userlisten, Ycom?, Kompletter Ablauf

@tyrant88 Bock ? :)

REX_YNEWSLETTER_DATA : keine Übergabe der Userdaten - subject bleibt leer

Das wird im Modul genutzt

$salutation = 'REX_YNEWSLETTER_DATA[field="salutation" salutation=REX_VALUE[4] callback=Project\RexVar\Callback::newsletterSalutation]';

Das Callback sieht so aus

<?php declare(strict_types=1);

namespace Project\RexVar;

class Callback
{
    public static function newsletterSalutation($params)
    {
        dd($params);

        array:6 [▼
            "var" => "REX_YNEWSLETTER_DATA"
            "class" => "rex_var_ynewsletter_data"
            "subject" => ""
            "field" => "salutation"
            "salutation" => 1
            "callback" => "Project\RexVar\Callback::newsletterSalutation"
        ]
    }
}

das subject bleibt leer.

Platzhaler unsubscribe wird nicht ersetzt

Hallo,
ich nutze REX_YNEWSLETTER_UNSUBSCRIBE[groups="" redirectToID=5 output=html] im Newsletterartikel.
In der versendeten e-Mail kommt nur der Platzhalter {{ ynewsletter.unsubscribe }}
SPROG will nicht ersetzen.

Auch der eigene Outputfilter zeigt keine Wirkung:

rex_extension::register('OUTPUT_FILTER', "meineUpdateFunction", rex_extension::LATE);
function meineUpdateFunction($ep) {
    # dump($ep); // auskommentieren, um alle Informationen des EP-Objekts zu erhalten
    $subject = str_replace("{{ ynewsletter.unsubscribe }}","Newsletter abmelden",$ep->getSubject());
    return $subject;
}

Abmeldefunktion!?

Es wäre toll wenn es noch eine Abmeldefunktion in der Beschreibung gebe. ;-)

Gruß Christian :-)

Mehrsprachigkeit beim Newsletter

Ich habe einen mehrsprachigen Newsletter. Im NL-Template frage ich die Sprache ab, um in der Zeile "Zur Online-Version" z.B. auf die entsprechende URL der Website in der entsprechenden Sprache zu kommen. Wenn ich mir die Sprache ausgeben lasse in der Vorschau des Redaxo-Artikels, der mit dem NL-Template bestückt ist, dann klappt das gut. Doch bei Testversand und Versand des NL wird nur die Clang 1 genommen wie es scheint. Sprog geht hier scheinbar auch nicht, {{url.sprache}} wird nicht umgesetzt, sondern erscheint in Klarschrift.
LG Heinz

Auszug Template:

<!DOCTYPE html>
<html lang="<?php print rex_clang::getCurrent()->getCode(); ?>" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta name="viewport" content="width=device-width"> 
usw.
<?php

$dieseseite = rex_getUrl($this->getValue('article_id'), rex_clang::getCurrentId());
$thislang = rex_clang::getCurrent()->getCode();
switch ($thislang) {
    case 'en':
        $online_lang = 'Go to online version of the newsletter.';
        $abbestell_lang = 'Unsubscribe newsletter';
        $impress_lang = 'Imprint';
        break;
    case 'it':
        $online_lang = 'Per la versione online della newsletter.';
        $abbestell_lang = 'Annullamento della newsletter';
        $impress_lang = 'Impronta';
        break;
    default:
        $online_lang = 'Zur Onlineversion des Newsletter.';
        $abbestell_lang = 'Newsletter abbestellen';
        $impress_lang = 'Impressum';
}

?>    
<style>
usw.
</style>
</head>
<body class="">

<table border="0" cellpadding="0" cellspacing="0" class="onlinelink">
<tr>
<td class="container" align="center">
<a href="<?php echo $dieseseite; ?>"><?php echo $online_lang; ?></a></td>
</tr>
</table>

REX_ARTICLE[]
usw.
<?php
$impressumlink = rex_getUrl(9);
$unsubscribelink = rex_getUrl(297).'?activationkey=REX_YNEWSLETTER_DATA[field="activationkey"]&email=REX_YNEWSLETTER_DATA[field="email"]';
?>
<table align="center" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="right">
<p><a href="<?php echo $unsubscribelink; ?>"><?php echo $abbestell_lang; ?></a></p>
<p><a href="<?php echo $impressumlink; ?>"><?php echo $impress_lang; ?></a></p>
</td>
</tr>
</table>

Versendete Newsletter können nicht nochmal benutzt werden ...

... das wissen die Kunden nicht und stellen die bereits verschickten NL wieder auf "offen", wechseln den Newsletter-Artikel und wundern sich, dass der NL nicht ankommt. Mein Vorschlag wäre: mindestens eine farbliche Kennzeichnung, dass die fertig verschickten NL ausgegraut werden (die noch nicht ganz verschickten vielleicht solange in orange), oder, dass es nicht mehr möglich ist, die NL erneut auf "offen" zu stellen, solange das LogFile den erneuten Versand verhindern würde.
Merci
Heinz

Testversand - ID des Testusers via List Widget?

Hintergrund:
Kunde wollte den Testversand an mehrere User schicken. Er ging den Umweg über Tabelle leeren und reduziert importieren (4 Adressen).

Da fände ich es sinnvoller, wenn beim Testversand ein List Widget erscheint mit Auswahl der User. So muss man auch nicht zwingend erst die Id des Users aus der Datentabelle suchen.

REX_YNEWSLETTER_DATA - Context anpassen

Bisher wird das Var nur im ynewsletter_template Context geparst wird jedoch zumeist aber auch auf der Website dargestellt, sodass die Var dort direkt ausgegeben wird.

Zur Veranschaulichung

Beispiel Screenshot von der Website

Bildschirmfoto 2021-09-27 um 10 31 35

Im versendeten Newsletter selbst steht dort

Sehr geehrter Herr Jan Kristinus,

Entweder REX_YNEWSLETTER_DATA würde den Context erweitern und über einen zusätzlichen Key Standardwerte ausgeben lassen oder was ich sinnvoller finde, aber eher in den Core gehört, dass man im Template/Modul den Context abfragt und selbst reagieren kann.

User in mehreren Gruppen

Kennt jemand eine Lösung für folgendes Problem: wenn ein User mehr als einer (Newsletter-) Gruppe zugewiesen wird, wird er (z.B. beim Testversand) nicht gefunden... Danke - Snoopen

Mailjet trigger einbauen

Mailjet kann events triggern, z.B. Bounces. Um das entgegenzunehmen könnte man mit einem API Key das entsrepchend bereitstellen, so dass die Ausschlussliste z.B. Hardbounces mit aufnimmt.

GitHub Adresse falsch, Fehlermeldung

Auch hier ist die GitHub-Adresse falsch in der add-on-Hilfe: Es steht dort github.org anstatt github.com

Ich kann ynewsletter mit yform 4.0.0 nicht installieren (Versionsfehlermeldung). Daraufhin habe ich im packages.yml die Version manuell auf 4 gesetzt. Die Installation geht, aber wenn ich dann im Modul bspw. auf den Tab "Versand" klicke, kommt dies:

Error while executing statement "SELECT rex_ynewsletter.* FROM rex_ynewsletter WHERE status = :p1 ORDER BY id desc" using params {"p1":0}! SQLSTATE[42S22]: Column not found: 1054 Unknown column 'status' in 'where clause'

Funktioniert es?

An sich ein tolles Addon und ich freu mich drauf. Ich wollte es aber gerade mal einsetzen/testen und musste feststellen, dass es irgendwie nicht funktioniert oder ich zu blöd bin :).

Ich habe schon länger eine yform-Tabelle 'rex_newsletter_subscribers' und nun das Addon installiert. Dann habe ich eine Gruppe angelegt. Tabellenname ist 'rex_newsletter_subscribers'; E-Mail Feld ist 'email'.

Anschliessend bin ich auf Newsletter gegangen und habe dort einen angelegt. Beim Versand kommt aber lediglich die Meldung Error while executing statement "select * from ``"! SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name '' ... und das obwohl beim Newsletter eine Gruppe hinterlegt ist.

Aktuelle Version nicht im Installer

Die Version 1.5.1 im Installer hat noch keine Return types. Das führt zu
Declaration of rex_yform_validate_ynewsletter_auth::getDescription() must be compatible with rex_yform_base_abstract::getDescription(): string

Der aktuelle GitHub-Stand funktioniert.

Fehler bei ynewsletter mit yform?

Einen Fehler bekomme ich, wenn ich nach der Installation des ynewsletter bei yform in das SetUp gehe:
Declaration of rex_yform_validate_ynewsletter_auth::getDescription() must be compatible with rex_yform_base_abstract::getDescription(): string. Erzeugt wird der Fehler laut Logfile in
redaxo/src/addons/ynewsletter/lib/yform/validate/ynewsletter_auth.php, Zeile 52.
Wenn ich ynewsletter deaktiviere funktioniert der SetUp Link bei yform wieder.
LG Heinz

Readme mit einfacher Schritt für Schritt Anleitung ergänzen

Die Readme ist recht verwirrend und imo genau verkehrt beschrieben, wie man vorgehen soll.

So was in der Art fände ich besser:

  1. zuerst in yform eine Tabelle für Newsletter-Empfänger erstellen, zBsp. rex_newsletter_verteiler
  2. diese Tabelle weist du in ynewsletter einer Gruppe zu (soweit bist du glaube ich schon)
  3. erstelle die Artikel “Anmeldung” und einen Artikel “Anmeldung bestätigen”
  4. im Artikel “Anmeldung bestätigen” fügst du den Block yform formbuilder hinzu. In der Eingabemaske fügst du den Code aus der Readme unter “Anmeldung bestätigen” ein und ersetzt den Platzhalter %TABLE% mit deinem Tabellennamen, bzw. rex_newsletter_verteiler. Notiere dir die Artikel ID dieses Artikels.
  5. nun erstellst du unter yform ein E-Mail-Template und fügst dort den Code aus der Readme unter “Anmeldung per E-Mail versenden” ein und ersetzt den Platzhalter %ARTICLE_ID_CONFIRM% mit der zuvor notierten Artikel ID. Im Feld “Key” einen eindeutigen Key eingeben, zBsp. mail_newsletter_anmeldung
  6. zu guter Letzt im Artikel “Anmeldung” den Block yform formbuilder hinzufügen. In der Eingabemaske dann den Code aus dem Abschnitt “Anmeldung” aus der Readme einfügen und die Platzhalter %TABLE% und %EMAIL_TEMPLATE_KEY% mit deinem Tabellennamen und E-Mail-Template-Key ersetzen; dem Beispiel folgend rex_newsletter_verteiler und mail_newsletter_anmeldung einsetzen
  7. Fertich.

Wichtig: falls der Block yform formbuilder fehlt, in der yform Übersicht über den enstprechenden Button nachinstallieren.

--

REX_YNEWSLETTER_DATA erweitern

wenn z.B. im Frontend ausgegeben, dann sollte der REX_VAR Context auch verwendet werden und ein Plkatzhalter gesetzt werden. z.B. Statt Vornamen, Nachnamen -> sehr geehrte Damen ..

prüfen ob das möglich ist.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.