Callback-Funktion bei Erstellung einer neuen Seite
Aus Contao Community Documentation
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); } } } ?>