Hallo liebe Community,
ich habe mich schon in einige Themen eingeklingt, um das obengenannte zu realisieren, und auch im alten Forum gestöbert.
https://contao.org/board/message/62423.html
https://community.contao.org/de/show...=9445#post9445
https://community.contao.org/de/showthread.php?t=1329
Ich fasse hier jetzt alle meine Erkenntnisse zusammen.
Habe es auch mit folgendem code größstenteils hinbekommen:
Voraussetzungen:
Typolight 2.7.2
efg 1.12.0
PHP-Code:
/system/config/dcaconfig.php
$GLOBALS['TL_HOOKS']['processFormData']['event1'] = array('eventEfgFuncs', 'processFormDataEvent');
PHP-Code:
/system/modules/efg/eventEfgFuncs.php
<?php
class eventEfgFuncs extends Frontend
{
public function processFormDataEvent($arrPost, $arrForm, $arrFiles)
{
if ($arrForm['id'] == '4')
{
$startDate = strtotime($this->Input->post('startDate'));
$endDate = strtotime($this->Input->post('endDate'));
$this->import('FrontendUser');
$arrEvent = array
(
'pid' => $this->Input->post('pid'),
'tstamp' => time(),
'startDate' => $startDate,
'startTime' => $startDate,
'endDate' => $endDate,
'title' => $this->Input->post('title'),
'alias' => $this->Input->post('alias'),
'published' => $this->Input->post('published'),
'source' => $this->Input->post('source'),
'author' => $this->FrontendUser->id,
'details' => $this->Input->post('details')
);
$objInsert = $this->Database->prepare('INSERT INTO tl_calendar_events %s')->set($arrEvent)->execute();
return $arrEvent;
}
}
}
?>
Mit dem Formulargenerator ein Formular mit den entsprechenden Feldname erstellt.
Wenn ich das Formular ausfülle, werden die Daten auch in die Datenbank geschrieben. Und sie werden im Kalender angezeigt.
So jetzt kommen meine Probleme bzw. Fragen:
1. Sobald ich das Formular absende, kommt nur noch ein weißer Bildschirm!?
Das gleich gilt auch für alle anderen Formulare, da ja jedes Formular an processFormData übergeben wird,
auch wenn das Formular wegen der IF ID nicht die Funktion durchläuft.
Bei Formularen mit eMail-Funktion werden alle Mails doppelt versand.
2. bei mir funktioniert der Hook-Aufruf
$GLOBALS['TL_HOOKS']['processefgFormData']['event1'] = array('eventEfgFuncs', 'processFormDataEvent');
nicht. In den sonstigen Themen steht mal processefgFormData und mal processFormData. Was ist der Unterschied?
3. Dadurch das ich das Feld "Author" mit der ID der Frontend-Users fülle (was auch sauber in die Datenbank geschrieben wird) im Kalender aber die ID des Backend-Users angezogen wird, funktioniert das ganze mit der Anzeige nicht
(außer ich lege alle Frontenduser mit der gleichen ID im Backend an).
So, ich hoffe ich habe nichts vergessen, und das was ich geschrieben habe ist verständlich.
Wer kann mir helfen?
Gruß
Lesezeichen