Callback-Funktion bei Erstellung einer neuen Seite: Unterschied zwischen den Versionen
Aus Contao Community Documentation
Tina (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Beim Erstellen einer neuen Seite im Backend soll automatisch eine Mail verschickt werden. Dafür werden die Callbacks oncreate_callback und onsubmit_callback verw…“) |
Lucina (Diskussion | Beiträge) K |
||
Zeile 1: | Zeile 1: | ||
+ | {{AppliesTo | ||
+ | | Version=all versions | ||
+ | }} | ||
+ | [[Category: Core]] | ||
+ | [[Category:Dev HOWTOS]] | ||
+ | |||
Beim Erstellen einer neuen Seite im Backend soll automatisch eine Mail verschickt werden. Dafür werden die Callbacks oncreate_callback und onsubmit_callback verwendet. | Beim Erstellen einer neuen Seite im Backend soll automatisch eine Mail verschickt werden. Dafür werden die Callbacks oncreate_callback und onsubmit_callback verwendet. | ||
Version vom 5. Mai 2012, 07:52 Uhr
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); } } } ?>