storeFormDate vs. storeFormData
storeFormDate vs. storeFormData
ARRRGGGGGHHHHH bevor ich einen PHP-Kurs mitmache, sollte ich mir wohl lieber eine Brille kaufen und das hat mich eine Nacht gekostet aber jetzt klappt es. Vielen Dank Spooky
Probier da gerade auch noche eine Lösung für mein Szenario zu finden:
Contao 3.4.5
EFG 2.2.1
InputVar 1.1.1
Eigenes Modul "specials":
config/config.php
modules/makeTimestamp.phpPHP-Code:
$GLOBALS['TL_HOOKS']['storeFormData'][] = array('makeTimestamp', 'storeFormData');
Erhalte jetzt aber nur noch eine komplett weisse Seite (ohne Fehlermeldung) bei Absenden des Formulars im Frontend... selbst dann noch wenn alle Datums- und Zeitfelder im Formular komplett deaktiviert sind...PHP-Code:
class makeTimestamp extends Frontend
{
public function storeFormData($arrSet)
{
$arrFields = array('date','time','startDate','startTime','endDate','endTime','dateFrom','dateTo');
foreach ($arrFields as $z)
{
if ($arrSet[$z] != "")
{
$objDate = new \Date($arrSet[$z]);
$arrSet[$z] = $objDate->tstamp;
}
}
return $arrSet;
}
}
Benötige ich hier auch eine autoload.php? Habe mal im Backend den Autoload-Creator auf meine "specials"-Modul laufen lassen... doch da kommt keine Bestätigung... Habe keinen FTP-Zugang zum Server. Schicke dem Kunden die Uploads immer zu...
Dann ist die alphabetische Reihenfolge des Modul-Ordners doch egal, oder? Muss also nicht unbedingt auf "zzz_" lauten...!?
Was könnte hier noch falsch laufen..?
Danke für jeden Tipp.
Geändert von Hendriks (14.09.2015 um 15:57 Uhr)
autoload.php brauchst du. Und in der autoload.ini sollte zumindestdrin stehen.Code:requires[] = "core"
Hi!
Also sollte es dann mit
autoload.ini
undCode:register_namespaces = true register_classes = true register_templates = true requires[] = "core"
autoload.php
klappen, oder!?PHP-Code:
<?php
ClassLoader::addClasses(array
(
'makeTimestamp' => 'system/modules/specials/modules/makeTimestamp.php'
));
(bevor ich den Kunden mit noch einem weiteren Upload-Versuch nerven muss..
Wenn du keinen FTP-Zugang zum Server hast, dann wäre vielleicht eine eigene lokale Testinstallation hilfreich. Da kannst du alles vorher ausprobieren - so musst du immer raten.
Wenn du Namespaces registrieren lassen willst, dann solltest du vielleicht auch einen definieren?
Für deine Funktion makeTimestamp gibst du aber keinen Namespace an.
Auch bin ich mir nicht sicher, ob es nicht 'extends \Frontend' heißen müsste - mag aber sein, dass das nur nötig ist, wenn sich deine neue Klasse tatsächlich in einem eigenen Namespace befindet.
Ach ja: wenn du den Autoload-Creator startest, dann wird die autoload.php für dein Modul überschrieben. Musst du also nicht unbedingt selbst schreiben
Hi @folkfreund
Ja, so hat es nun wunderbar geklappt!
Ich habe schon auch lokale "Test"-Installationen, aber in diesem Fall keine 1zu1 zu der Gesamtinstallation meines Kunden... Man denkt halt oft (Denken ist nicht Wissen , das es sich manchmal nur um eine Kleinigkeit handeln würde... Sind es ja auch meistens – aber der Fehler liegt im Detail, und auch wenn ich schon eine Weile mit Contao arbeite, so gelingt es mir nicht IMMER uptodate zu sein... Man hat als Freiberufler ja auch noch so manch andere Sachen im Alltag um die Ohren... ;/
Also DANKE, klappt!
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen