Ergebnis 1 bis 3 von 3

Thema: Text Template verwenden

  1. #1
    Jayster
    Gast

    Standard Text Template verwenden

    Contao hat ein schönes Template System für HTML content.

    Ich bräuchte nun aber auch ein Template für die Text-Version einer E-Mail.

    Den HTML Teil der Mail erzeuge ich mit
    PHP-Code:
    $templateHtml = new \FrontendTemplate('mail_confirmation_html');
    $templateHtml->data $data;
    $html $templateHtml->parse(); 
    Soweit so gut. Nun würde ich gerne in ähnlicher weise erzeugen
    PHP-Code:
    $templateText= new \FrontendTemplate('mail_confirmation_text');
    $templateText->data $data;
    $text $templateText->parse(); 
    Mein Text Template würde ich ungefähr so aufbauen wollen
    Code:
    Hallo <?= this->data['firstname']; => <?= $this->data['lastname']; =>
    
    Sie haben sich angemeldet zu "<?php $this->data['title']; ?>".
    
    Mit freundlichen Grüßen
    Max Mustermann
    Was ist der beste Weg, dies zu erreichen? Es wäre auch schön, wenn beim Zeilenumbruch automatisch "\r\n" eingefügt wird. Die Klasse FrontendTemplate scheint hier nicht ganz passend. Gibt es vielleicht etwas geeigneteres?

  2. #2
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Ich nutze jeweils einfach HTML und für die Textvariante, wandle ich HTML in Text um. Also alle Tags halt weg und <br> wird zu Newline etc.
    Die Resultate sind eigentlich sehr gut, ausser du willst was komplett anderes (also den Text woanders platziert oder so), dann musst du mit einem eigenen Template arbeiten.

    In haste haben wir mal so ein Helferlein eingebaut, da kannst du dir HTML ganz einfach zu Text umwandeln lassen:

    PHP-Code:
    <?php

    use \Haste\Util\StringUtil;

    ....

    $text StringUtil::convertToText($htmlStringUtil::NO_TAGS);
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  3. #3
    Jayster
    Gast

    Standard

    Danke, das ist genau, was ich brauche.

    Ich habe allerdings im HTML auch einen Link, von dem in der Text-Version die URL aus dem href-Attribut ausgegeben werden sollte. Gibt es dafür auch eine Möglichkeit?

    Als schnelle Lösung habe ich folgenden Absatz im HTML Template hinzugefügt:
    Code:
    Sollte der Link nicht angezeigt werden, rufen Sie bitte diese URL in Ihrem Browser auf:<br>
    http://www.test.de
    Ansonsten würde mir noch einfallen, im Template einen Platzhalter einzufügen, z.B. [LINK], und diesen dann per String replace in $html und $text zu ersetzen.

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
  •