Individuelle Bestätigungsseite für Aktivierungslink (Avisota 1.7.0)

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Daniel Eicher
    Contao-Nutzer
    • 20.04.2011
    • 43

    #1

    Individuelle Bestätigungsseite für Aktivierungslink (Avisota 1.7.0)

    Hallo

    Ich möchte eine frei definierbare Seite als Ziel für den Link im Bestätigungsmail eingeben.

    Folgendes Vorgehen (nach https://community.contao.org/de/show...%E4tigungsmail) ausprobiert, aber leider ohne Erfolg. Müsste doch klappen, oder?

    PHP-Code:
    
    //config.php
    $GLOBALS['TL_HOOKS']['avisotaActivateSubscribtion'][] = array('MyClass', 'hookAvisotaActivateSubscribtion'); 
    
    //MyClass.php
    class MyClass.php extends ModuleAvisotaSubscription 
    { 
        public function __construct() 
        { 
            $this->import('DomainLink'); 
            $this->import('FrontendUser', 'User'); 
        }  
        
        function hookAvisotaActivateSubscribtion($arrRecipient, $arrTokens) 
        { 
            foreach ($_SESSION['avisota_subscription'] as $strMessage)  
            {  
                // break on error  
                if (preg_match('#|error$#', $strMessage))  
                {  
                    return;  
                }  
            }  
            // remove the messages, alternative show this messages on the confirmation page  
            unset($_SESSION['avisota_subscription']);  
            // everythink is allright, redirect to confirmation page 
            $this->import('Database'); 
            $this->import('Environment');  
            $this->Environment->request = $this->generateFrontendUrl($this->getPageDetails(71)->row());
        } 
    
    } 
    
    Was ich gemerkt habe: Offenbar wird die Funktion immer über

    PHP-Code:
                if (preg_match('#|error$#', $strMessage))  
                {  
                    return;  
                } 
    
    beendet. Auch wenn kein Fehler drin ist.
    Zuletzt geändert von Daniel Eicher; 28.05.2013, 20:08.
  • tril
    Contao-Urgestein
    • 07.01.2010
    • 2939

    #2
    Zitat von Daniel Eicher Beitrag anzeigen
    PHP-Code:
                if (preg_match('#|error$#', $strMessage))  
                {  
                    return;  
                } 
    
    Es müsste wohl eher so lauten:
    PHP-Code:
                if (preg_match('#\\|error$#', $strMessage))  
                {  
                    return;  
                } 
    

    Kommentar

    • Daniel Eicher
      Contao-Nutzer
      • 20.04.2011
      • 43

      #3
      Danke dir für die schnelle Antwort. Werde es asap testen.

      Checke aber immer noch nicht, weshalb er mit der anderen Lösung immer TRUE lieferte...

      Kommentar

      • tril
        Contao-Urgestein
        • 07.01.2010
        • 2939

        #4
        Der Reguläre Ausdruck '#|error$#' bedeutet so viel wie '' (leerer String => immer true) OR 'error$'

        Kommentar

        • Daniel Eicher
          Contao-Nutzer
          • 20.04.2011
          • 43

          #5
          Ah, natürlich! Blöd, ich habe | in meinem Beispiel als Stringteil und nicht als Oder interpretiert. Aber deshalb die Maskierung.

          Besten Dank und Gruss

          Kommentar

          Lädt...