Ergebnis 1 bis 4 von 4

Thema: URL für ##view_online_link## modifizieren

  1. #1
    Contao-Fan Avatar von deerwood
    Registriert seit
    24.11.2009.
    Ort
    Hamburg
    Beiträge
    344

    Standard URL für ##view_online_link## modifizieren

    Moin,

    aus bestimmten Gründen (Einbettung von Contao in eine andere PHP Software) MUSS ich die URL für "view_online_link" modifizieren. Das könnte ich leicht machen, entweder mit einem preg_replace() oder etwas komplexerem PHP ...

    ... wenn ich denn wüsste, WO ich am besten eingreifen kann. Natürlich möglichst Update-sicher in einem Template, aber notfalls patche ich auch und wiederhole den Patch dann mit jedem Avisota Update.

    Ich gestehe, dass ich durch Avisota und dessen Template-System noch nicht wirklich durchblicke. Da sind ja diverse Frameworks beteiligt und noch kann ich nicht einschätzen, was zu ändern wäre. Im Moment kämen für mich in Frage:

    • die Twig Templates (bevorzugt, weil man die Update-sicher ändern kann)
    • die mailchimp Blueprints (?)
    • die config.php in system/modules/avisota-message-renderer-mailchimp/config/ (?)
    • den Avisota Code an 1 oder mehreren Stellen

    Die URL-Modifikation ist nur nötig, wenn ein Newsletter per Mail endgültig an die Empfänger rausgeht, das wäre dann ein Patch in system/modules/avisota-message/web/send_immediate.php ?

    Ich bin für jeden Tip dankbar.

    LG, Georg

  2. #2
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Hallo deerwood,

    aktuell ist das noch recht schwer, daher hab ich spontan ein Event dafür eingebaut.
    Das Event wird mit dem nächsten Update kommen, aktuell ist es noch nicht veröffentlicht.

    Und so benutzt du das neue Event:

    system/modules/my-module/config/config.php
    PHP-Code:
    <?php

    $GLOBALS
    ['TL_EVENT_SUBSCRIBERS'][] = 'MyNamespace\MyEventSubscriber';
    system/modules/my-module/src/MyNamespace/MyEventSubscriber.php
    PHP-Code:
    <?php

    use Symfony\Component\EventDispatcher\EventSubscriberInterface;
    use 
    Avisota\Contao\Message\Core\Event\GenerateViewOnlineUrlEvent;
    use 
    Avisota\Contao\Message\Core\MessageEvents;

    namespace 
    MyNamespace;

    class 
    MyEventSubscriber implements EventSubscriberInterface
    {
      public static function 
    getSubscribedEvents()
      {
        return array(
          
    MessageEvents::GENERATE_VIEW_ONLINE_URL => 'generateViewOnlineUrl',
        );
      }

      public function 
    generateViewOnlineUrl(GenerateViewOnlineUrlEvent $event)
      {
        
    $message $event->getMessage();
        
    $url $event->getUrl();

        
    // manipulate $url here

        
    $event->setUrl($url);
      }
    }
    Ich hoffe das war halbwegs verständlich.

    MfG Tristan

  3. #3
    Contao-Fan Avatar von deerwood
    Registriert seit
    24.11.2009.
    Ort
    Hamburg
    Beiträge
    344

    Standard

    Hallo Tristan,

    Zitat Zitat von tril Beitrag anzeigen
    Hallo deerwood,

    aktuell ist das noch recht schwer, daher hab ich spontan ein Event dafür eingebaut.
    Das Event wird mit dem nächsten Update kommen, aktuell ist es noch nicht veröffentlicht.

    Und so benutzt du das neue Event:
    Vielen Dank für das Einbauen. Ja, das ist verständlich und eine eigene Mini-Erweiterung dafür ist natürlich viel besser, als irgendwelche Patches.

    Leider hatte ich bei meiner Beschreibung noch nicht erkannt, dass wir auch noch andere Links in den Mails modifizieren müssen, z.B. den Link zur Bestätigung des Newsletter Abbonnements oder zum Abbstellen des Newsletters ... sämtliche Links, die direkt auf das Contao Frontend verweisen.

    Eventuell wäre ein besserer Ansatz, der dann auch für andere Leute nützlich sein könnte, einen Event zu schaffen, der dem Hook "parseFrontendTemplate" ähnelt, halt nur für die Mails. Und für unsere Zwecke würde es auch reichen, wenn dieser Event nur für die komplette Email ausgelöst werden würde, direkt bevor sie versendet wird (nicht für jedes einzelne beteiligte Template).

    Im Event müsste der komplette Mail-Text modifizierbar zur Verfügung stehen und eventuell noch Kontext-Info, also z.B. ob das ein Test-Versand oder ein echter endgültiger Versand ist.

    Oder deckt Dein neu geschaffener Event jetzt schon alle solche URLs ab?

    PS: bezüglich Deines Aufwands hast Du ja schon Kontakt zu rusty

    Danke, LG, Georg

  4. #4
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Wenn es darum geht, den ganzen NL zu modifizieren, dass geht schon, schau mal wie das bspw. die GoogleAnalytics integration macht

    https://bitbucket.org/avisota/contao...=develop#cl-50

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •