Ergebnis 1 bis 5 von 5

Thema: (Gelöst) Insert-Tag in Hook bzw. Hook in Hook

  1. #1
    Contao-Nutzer Avatar von Transparenz
    Registriert seit
    27.06.2010.
    Ort
    Allgäu
    Beiträge
    29

    Standard (Gelöst) Insert-Tag in Hook bzw. Hook in Hook

    Hej ho,

    ich möchte eine E-Mail-Benachrichtigung versenden, sobald ein angemeldeter Frontend-User eine Datei heruntergeladen hat. Dazu habe ich ein eigenes Modul angelegt und nutze den Hook myPostDownload. Das funktioniert auch schon.

    Nun möchte ich die drei Insert-Tags {{user::firstname}} {{user::lastname}} {{user::username}} integrieren, hatte aber mit replaceInsertTags keinen Erfolg. Nach Recherche bin ich auf MemberModel::findByPk($objUser->id) gestoßen, trotzdem werden mir die Werte nicht in die E-Mail geschrieben.

    Wie löse ich das? Bin dankbar für jeden Tipp und für jeden Codeschnipsel. Hier der aktueller Stand von MyClass.php:

    PHP-Code:
    namespace Contao;

    class 
    MyClass {
        public function 
    myPostDownload($strFile) {
            
            
    $objMember MemberModel::findByPk($objUser->id);

            
    // Empfänger
            
    $empfaenger "xxx@xxx.de";

            
    // Betreff
            
    $betreff "Download-Benachrichtigung";

            
    // Inhalt
            
    $message .= "Datei:\n";
            
    $message .= "contao/".$strFile."\n";
            
    $message .= "\n";
            
    $message .= "Benutzer:\n";
            
    $message .= $objMember->firstname." ".$objMember->lastname." (".$objMember->username."@".basename($_SERVER["HTTP_REFERER"]).")"."\n";
            
    $message .= "\n";
            
    $message .= "IP-Adresse:\n";
            
    $message .= getenv("REMOTE_ADDR")."\n";
            
    $message .= "\n";
            
    $message .= "Browser:\n";
            
    $message .= $_SERVER["HTTP_USER_AGENT"]."\n";

            
    // Header
            
    $header "From: ".$_SERVER["SERVER_NAME"]."<notification@".$_SERVER["SERVER_NAME"].">\n";
            
    $header .= "Content-Type: text/plain";

            
    // Nachricht zusammenstellen und absenden
            
    @mail($empfaenger$betreff$message$header);

        }
      } 
    Geändert von Transparenz (12.02.2018 um 14:26 Uhr)

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.153
    Partner-ID
    10107

    Standard

    Woher kommt $objUser?

  3. #3
    Contao-Nutzer Avatar von Transparenz
    Registriert seit
    27.06.2010.
    Ort
    Allgäu
    Beiträge
    29

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Woher kommt $objUser?
    Ich vermute, das wird durch MemberModel::findByPk bereitgestellt – ist wohl nicht so...

    Hab es auch schon über replaceInsertTags('{{username}}') probiert.

    Sorry, falls ich inkompetent wirke – aber als Mediengestalter liegt mein Schwerpunkt eher auf Design als Programmierung...

    Muss ich irgendwas importieren?

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.153
    Partner-ID
    10107

    Standard

    Zitat Zitat von Transparenz Beitrag anzeigen
    Ich vermute, das wird durch MemberModel::findByPk bereitgestellt – ist wohl nicht so...
    Nein, du benutzt es ja dort .

    Wenn du einfach nur den eingeloggten Frontend User haben möchtest, könntest du stattdessen folgendes verwenden:
    PHP-Code:
    $objMember = \FrontendUser::getInstance(); 

  5. #5
    Contao-Nutzer Avatar von Transparenz
    Registriert seit
    27.06.2010.
    Ort
    Allgäu
    Beiträge
    29

    Standard

    Vielen Dank Spooky

    So sieht jetzt MyClass.php aus:

    PHP-Code:
    namespace Contao;

    class 
    MyClass {
        public function 
    myPostDownload($strFile) {
            
            
    $objUser = \FrontendUser::getInstance();

            
    // Empfänger
            
    $empfaenger "xxx@xxx.de";

            
    // Betreff
            
    $betreff "Download-Benachrichtigung";

            
    // Inhalt
            
    $message .= "Datei:\n";
            
    $message .= "contao/".$strFile."\n";
            
    $message .= "\n";
            
    $message .= "Benutzer:\n";
            
    $message .= $objUser->firstname." ".$objUser->lastname." (".$objUser->username."@".basename($_SERVER["HTTP_REFERER"]).")"."\n";
            
    $message .= "\n";
            
    $message .= "IP-Adresse:\n";
            
    $message .= getenv("REMOTE_ADDR")."\n";
            
    $message .= "\n";
            
    $message .= "Browser:\n";
            
    $message .= $_SERVER["HTTP_USER_AGENT"]."\n";

            
    // Header
            
    $header "From: ".$_SERVER["SERVER_NAME"]."<notification@".$_SERVER["SERVER_NAME"].">\n";
            
    $header .= "Content-Type: text/plain";

            
    // Nachricht zusammenstellen und absenden
            
    @mail($empfaenger$betreff$message$header);

        }
      } 
    Jetzt sind alle Informationen in der Download-Bestätigung:

    HTML-Code:
    Datei:
    contao/files/kunden/firma/downloads/archive1.zip
    
    Benutzer:
    Hans Wurst (test@firma)
    
    IP-Adresse:
    x.x.x.x
    
    Browser:
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0.3 Safari/604.5.6

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
  •