Hallo,
ich setze die Erweiterung contao-events_subscriptions mit Contao 4.6.x ein und möchte nun das Registrierungsformular um eigene Felder erweitern.
In der Dokumentation steht zwar, dass man etwas erweitern kann, allerdings nicht genau das, was ich vorhabe - wenigstens verstehe ich es so. Ich gehe davon aus, dass ich eigenes Modul erstellen muss und dieses auf die o.g. Erweiterung beziehen muss.
Weiß jemand, wie ich es umsetzen kann?
Momentan habe ich folgende Sachen gemacht
unter system/modules einen neuen Ordner calendar_reservation erstellt
im Ordner config ist config.php mit folgender Anweisung
PHP-Code:
<?php
// überschreiben der vorhandenen Funktion
\Codefog\EventsSubscriptions\Services::getSubscriptionFactory()->add('guest', 'Codefog\EventsSubscriptions\Subscription\GuestSubscription');
im Ordner dca ist tl_calendar_events_subscription.php und drinnen
PHP-Code:
<?php
//Anzeige im Backend
$GLOBALS['TL_DCA']['tl_calendar_events_subscription']['palettes'] = str_replace(
"email",
"email,number,discount",
$GLOBALS['TL_DCA']['tl_calendar_events_subscription']['palettes']);
//Felder
// Anzahl
$GLOBALS['TL_DCA']['tl_calendar_events_subscription']['fields']['number'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events_subscription']['number'],
'exclude' => true,
'inputType' => 'text',
'eval' => ['mandatory' => true, 'rgxp' => 'select', 'decodeEntities' => true, 'tl_class' => 'w50'],
'sql' => "varchar(255) NOT NULL default ''"
);
// Ermäßigung
$GLOBALS['TL_DCA']['tl_calendar_events_subscription']['discount'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_calendar_events_subscription']['discount'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => ['rgxp' => 'checkbox', 'decodeEntities' => true, 'tl_class' => 'w50'],
'sql' => "varchar(255) NOT NULL default ''"
);
im Ordner languages/de ist tl_calendar_events_subscription.php und folgender Code
PHP-Code:
<?php
$GLOBALS['TL_LANG']['tl_calendar_events_subscription']['number'] = 'Anzahl';
$GLOBALS['TL_LANG']['tl_calendar_events_subscription']['discount'] = 'Ermäßigung';
Ich habe einiges probiert und leider werden die Felder nicht in die Datenbank eingetragen.
Natürlich möchte ich auch sicher sein, dass die ausgefüllten Felder sowohl im Backend als auch Frontend vorkommen und dann auch für das Notification Center zur Verfügung stehen.
Über jeden Ratschlag würde ich mich freuen.
Lesezeichen