Callback-Funktion bei Erstellung einer neuen Seite

Aus Contao Community Documentation

Version vom 5. Mai 2012, 07:53 Uhr von Lucina (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
betrifft
Contao Version all versions

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

Nein, der Hangout ist noch nicht vorbei, wir schweigen nur. Es heisst ja auch hangout und nicht bryll out.

Christian Schiffler
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge