Callback-Funktion bei Erstellung einer neuen Seite

Aus Contao Community Documentation

Version vom 4. Mai 2012, 16:22 Uhr von Tina (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Beim Erstellen einer neuen Seite im Backend soll automatisch eine Mail verschickt werden. Dafür werden die Callbacks oncreate_callback und onsubmit_callback verwendet.

oncreate_callback wird getriggert, sobald der Benutzer eine neue Seite anlegt. Die ID der Seite wird in der Session gespeichert. Beim Speichern wird onsubmit_callback getriggert. Die in der Session gespeicherte ID wird mit der ID des Datensatzes verglichen, um sicherzugehen, dass nicht lediglich eine bereits existierende Seite bearbeitet wird.

Hier ein Beispiel:

dcaconfig.php:

<?php
$GLOBALS['TL_DCA']['tl_page']['config']['oncreate_callback'][] = array('backendExtended','createPage');
$GLOBALS['TL_DCA']['tl_page']['config']['onsubmit_callback'][] = array('backendExtended','sendMail');
?>

Neu angelegte backendExtended.php unter system/modules/backendExtended:

<?php
if (!defined('TL_ROOT')) die('You can not access this file directly!');
 
class backendExtended extends Backend {
 
    public function createPage($table,$id) {
        $this->Session->set('newPageId',$id);
    }
 
    public function sendMail($dc) {
        if ($this->Session->get('newPageId') == $dc->activeRecord->id) {
            $objEmail = new Email();
            $objEmail->subject = 'neue Seite';
            $objEmail->from = $GLOBALS[TL_CONFIG][adminEmail];
            $objEmail->fromName = 'Admin';
            $objEmail->text = 'Auf der Website wurde eine neue Seite erstellt:'."\n";
            $objEmail->text .= $dc->activeRecord->title;
            $objEmail->sendTo($GLOBALS[TL_CONFIG][adminEmail]);
            $this->Session->set('newPageId',NULL);
        }
    }
}
?>
Ansichten
Meine Werkzeuge

Contao Community Documentation

Das hier ist eine abstrakte Konversation

Marc A. Harnos
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge