Callback-Funktion bei Erstellung einer neuen Seite: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(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…“)
 
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);
        }
    }
}
?>
Ansichten
Meine Werkzeuge

Contao Community Documentation

<Kellner> und einmal Filet?
<backbone87> Nein Olli, nicht Philip!

Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge