Wenn noch kein Hook benutzt wird, dann einfach unter system/modules einen Ordner dafür anlegen, z.B. meine_hooks. Darin legt ihr folgende Dateien an:
config/config.php
PHP-Code:
<?php if (!defined('TL_ROOT')) die('You cannot access this file directly!');
// Weitere E-Mails versenden bei neuem Kommentar
$GLOBALS['TL_HOOKS']['addComment'][] = array('Kommentar', 'sendMail');
config/autoload.php
PHP-Code:
<?php
/**
* Register the classes
*/
ClassLoader::addClasses(array
(
'Kommentar' => 'system/modules/meine-hooks/classes/Kommentar.php'
));
config/autoload.ini
PHP-Code:
;;
; Configure what you want the autoload creator to register
;;
register_namespaces = true
register_classes = true
register_templates = true
classes/Kommentar.php
PHP-Code:
<?php if (!defined('TL_ROOT')) die('You cannot access this file directly!');
class Kommentar extends \Frontend
{
// Zuweisung von Adressen der Moderatoren zu den Seiten-ID's
var $empfaenger = array
(
2 => array
(
'webmaster@schachbund.de',
'webmaster@berlinerschachverband.de'
),
4 => array
(
'webmaster@schachbund.de'
)
);
/**
* sendMail
*
* Versendet E-Mails bei neuen Kommentaren
*/
public function sendMail($intId, $arrSet)
{
// Prüfung, ob Seite moderiert wird
if($this->empfaenger[$arrSet['parent']])
{
// Seite wird moderiert, Email erstellen und abschicken
$email = new Email();
$email->from = 'no-reply@domain.com';
$email->fromName = 'Automailer';
$email->subject = 'Ein neuer Kommentar muß moderiert werden';
$email->text = 'Name: ' . $arrSet['name'] . "\n";
$email->text .= 'E-Mail: ' . $arrSet['email'] . "\n";
$email->text .= 'IP-Adresse: ' . $arrSet['ip'] . "\n";
$email->text .= 'Datum: ' . date('d.m.Y H:s', $arrSet['date']) . "\n";
$email->text .= 'Website: ' . $arrSet['website'] . "\n";
$email->text .= 'Veröffentlicht: ' . $arrSet['published'] . "\n";
$email->text .= 'Text: ' . $arrSet['comment'] . "\n";
$email->text .= "\n\nKommentar moderieren: ";
$email->text .= \Idna::decode(\Environment::get('base')) . 'contao/main.php?do=comments&act=edit&id=' . $intId;
$email->sendTo(implode(',',$this->empfaenger[$arrSet['parent']]));
}
else
{
// Seite wird nicht moderiert
}
return;
}
}
?>
Ich hoffe ich habe nichts falsch gemacht. Da ich nur lokal getestet habe, ging keine Email raus.
Im Beispiel wurden für die Seite mit der ID 2 zwei Empfängeradressen konfiguriert, für die Seite mit der ID 4 eine.
Lesezeichen