Contao-Camp 2024
Ergebnis 1 bis 18 von 18

Thema: [calendar-event-booking-bundle] - Voreinstellungen via DCA-Anpassung

  1. #1
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard [calendar-event-booking-bundle] - Voreinstellungen via DCA-Anpassung

    Hallo,

    PHP-Code:
    <?php
    // contao/dca/tl_calendar_events.php

    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['addBookingForm'] = [
        
    'default' => true,
    ];
    funktioniert nicht.

    Soll heissen, dass sich der Bereich 'Buchungseinstellungen' öffnet, aber hierin keine Inhalte, also keine Auswahlfelder mehr zu sehen sind


    Ziel wäre es, dass der Haken bei 'Buchungsformular aktivieren' automatisch gesetzt ist und einige Felder mit Werten vorausgefüllt sind.

    Zweite Frage dazu:
    Wie spreche ich das Feld für 'Mehrfachbuchung mit gleicher E-Mailadresse ermöglichen' an? Hierzu habe ich kein field in der calendar-event-booking-bundle/src/Resources/contao/dca/tl_calendar_events.php gefunden.


    meine tl_calendar_events.php
    PHP-Code:
    // add some defaults
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['addBookingForm'] = [
        
    'default' => true,
    ];
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['minMembers'] = [
        
    'default' => '2',
    ];
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['maxMembers'] = [
        
    'default' => '8',
    ];
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['maxEscortsPerMember'] = [
        
    'default' => '8',
    ]; 

    Ich bitte um Hilfestellung hierzu - vielen Dank.

    events-buchunseinstellung_soll.png
    events-buchunseinstellung.png
    Grüsse
    Bernhard


  2. #2
    Contao-Fan Avatar von markocupic
    Registriert seit
    06.12.2010.
    Ort
    Oberkirch (Schweiz)
    Beiträge
    660

    Standard

    Edit...
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['enableMultiBookingWithSameAddress']['sql'] = "char(1) NOT NULL default '1'"
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['addBookingForm']['sql'] = "char(1) NOT NULL default '1'"
    Hallo Bernhard
    Das hier hast du schon ausprobiert?
    LG Marko
    Geändert von markocupic (16.11.2021 um 15:25 Uhr)
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

  3. #3
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von markocupic Beitrag anzeigen
    [

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['addBookingForm'] = array(
        
    'sql'       => "char(1) NOT NULL default '1'",
    ); 
    soeben probiert - bringt aber leider gleiches Ergebnis

    Und danke auch für das field 'enableMultiBookingWithSameAddress' ... konnte (noch) nicht gestestet werden, da dies ja innerhalb der 'addBookingForm' Sektion steckt
    Grüsse
    Bernhard


  4. #4
    Contao-Fan Avatar von markocupic
    Registriert seit
    06.12.2010.
    Ort
    Oberkirch (Schweiz)
    Beiträge
    660

    Standard

    Bist du sicher, dass das nicht funktioniert. Natürlich musst du den Cache leeren und es funktioniert auch nur, wenn du einen neuen Datensatz anlegst.

    Zitat Zitat von derRenner Beitrag anzeigen
    soeben probiert - bringt aber leider gleiches Ergebnis

    Und danke auch für das field 'enableMultiBookingWithSameAddress' ... konnte (noch) nicht gestestet werden, da dies ja innerhalb der 'addBookingForm' Sektion steckt
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

  5. #5
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard

    ja, ich bin mir sicher dass es nicht funktioniert - siehe auch screenshots

    - cache geleert via Contao Manager
    - auch im DebugMode getestet
    - ja, und jeweils mit neuem Datensatz, sprich neuem Event getestet
    Grüsse
    Bernhard


  6. #6
    Contao-Fan Avatar von markocupic
    Registriert seit
    06.12.2010.
    Ort
    Oberkirch (Schweiz)
    Beiträge
    660

    Standard

    Wo hast du die Anpassungen abgespeichert?
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

  7. #7
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard

    abgespeichert unter contao/dca/tl_calendar_events.php

    Ich habe in der gleichen Datei auch noch PaletteManipulator in Verwendung, damit ich ein zusätzliches Feld mit einfüge. Kann es sein, dass es deshalb zu einem Problem kommt?
    Die komplette Datei sieht somit so aus:
    PHP-Code:
    <?php
    // contao/dca/tl_calendar_events.php

    // add some defaults
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['addBookingForm'] = array(
        
    'sql'       => "char(1) NOT NULL default '1'",
    );


    use 
    Contao\CoreBundle\DataContainer\PaletteManipulator;

    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['tour'] = [
        
    'label' => ['Tour','Tour, zu welcher dieser Termin erstellt wird.'],
        
    'inputType' => 'select',
        
    'options' => [
            
    '-',
            
    'horn-nord',
            
    'horn-ost',
            
    'horn-sued',
            
    'horn-west',
            
    'horn-gallien',
            
    'horn-poigen',
        ],
        
    'reference' => $GLOBALS['TL_LANG']['MSC']['tour'],
        
    'eval' => [
            
    'tl_class' => 'w50',
        ],
        
    'sql' => [
            
    'type' => 'string',
            
    'length' => 32,
            
    'default' => '',
        ],
    ];

    PaletteManipulator::create()
        ->
    addField('tour''title_legend'PaletteManipulator::POSITION_APPEND)
        ->
    applyToPalette('default''tl_calendar_events')
        ->
    applyToPalette('internal''tl_calendar_events')
        ->
    applyToPalette('article''tl_calendar_events')
        ->
    applyToPalette('external''tl_calendar_events')
    ;
    Grüsse
    Bernhard


  8. #8
    Contao-Fan Avatar von markocupic
    Registriert seit
    06.12.2010.
    Ort
    Oberkirch (Schweiz)
    Beiträge
    660

    Standard

    Hallo

    Datenbank aktualisiert hast du auch?
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

  9. #9
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard

    ja

    soeben nochmals durchgeführte Schritte:
    • Prod.Cache erneuern via CM
    • Installtool aufgerufen (es wird nun keine Aktualisierung mehr vorgeschlagen, da bereits in einem vorherigen Schritt aktualiseriert wurde)
    • Systemwartung alles angehakt und durchgeführt

    » Ergebnis unverändert
    Grüsse
    Bernhard


  10. #10
    Contao-Fan Avatar von markocupic
    Registriert seit
    06.12.2010.
    Ort
    Oberkirch (Schweiz)
    Beiträge
    660

    Standard

    Mist! Ging zu schnell vorher...

    Das hier ist natürlich richtig! Bin schon etwas müde ;-)
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['addBookingForm']['sql'] = "char(1) NOT NULL default '1'"
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['enableMultiBookingWithSameAddress']['sql'] = "char(1) NOT NULL default '1'"
    Abspeichern in contao/dca/tl_calendar_events.php
    Cache leeren und dann geht es!

    LG MArko
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

  11. #11
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Jawohllllll!
    vielen herzlichen DANK
    Grüsse
    Bernhard


  12. #12
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard

    für Nachleser die aktuellen Voreinstellungen
    PHP-Code:
    <?php
    // contao/dca/tl_calendar_events.php
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['addBookingForm']['sql'] = "char(1) NOT NULL default '1'";  
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['minMembers']['default'] = "2";
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['maxMembers']['default'] = "8";
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['maxEscortsPerMember']['default'] = "8";
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['enableMultiBookingWithSameAddress']['sql'] = "char(1) NOT NULL default '1'";
    Prod.Cache leeren und Datenbank aktualisieren (Aufruf Installool)
    Grüsse
    Bernhard


  13. #13
    Contao-Nutzer Avatar von mandrael
    Registriert seit
    29.06.2009.
    Ort
    Salzburg, Austria
    Beiträge
    224

    Standard

    Hallo!
    Ich bräuchte als Voreinstellung für "bookingEndDate" das Startdatum des Events (startDate).
    Kurz: Das Buchungsformular soll standardmäßig ausgeblendet werden, wenn das Event in der Vergangenheit liegt, aber es soll dennoch möglich sein, ein eigenes bookingEndDate festzulegen (falls Anmeldeschluss früher oder bei mehrteiligem Event später sein soll).

    Ich würde das aber am liebsten direkt im Template umsetzen:
    PHP-Code:
    <?php if ($this->bookingEndDate): ?>
      {nichts machen}
    <?php else: ?>
      <?php $this->startDate $this->bookingEndDate;  ?>
    <?php 
    endif; ?>
    Der Code oben ist fehlerhaft. Ich hoffe es ist aber verständlich, was ich meine :-)

    Ausblenden falls Startdatum in Vergangenheit funktioniert soweit, aber es wäre natürlich besser, wenn ich bookingEndDate automatisch den Wert des Startdatums zuweisen könnte, falls es im Event nicht festgelegt wurde.
    PHP-Code:
    <?php if (date('Y-m-d'$this->startDate) <= date('Y-m-d')): ?>
      <style type="text/css">
        .mod_calendar_event_booking_event_booking_module {display: none;}
      </style>
    <?php endif; ?>
    Vielen Dank für die Hilfe!
    Michael
    Geändert von mandrael (07.12.2021 um 01:45 Uhr)

  14. #14
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.942

    Standard

    ÜDu könntest probieren, im Save-Callback (https://docs.contao.org/dev/referenc...lds-field-save und https://docs.contao.org/dev/framewor...ring-callbacks) zu prüfen, ob das Feld leer ist und falls ja, den Wert von startDate einzusetzen. Dann hättest Du die Daten bereits nach Deinen Vorstellungen vorliegen und müsstest nicht im Template anpassen.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  15. #15
    Contao-Nutzer Avatar von mandrael
    Registriert seit
    29.06.2009.
    Ort
    Salzburg, Austria
    Beiträge
    224

    Standard

    Vielen Dank fiedsch!
    Ich habe es erst einmal mit einer einfachen Template php/css Variante gelöst, werde aber die Variante mit den Callbacks später noch genauer ansehen.
    PHP-Code:
    <!-- Hide booking form if startDate in past and if bookingEndDate not defined -->
    <?php if ($this->bookingEndDate): ?>
    <?php 
    else: ?>
      <?php if (date('Y-m-d'$this->startDate) <= date('Y-m-d')): ?>
         <style type="text/css">
           .postversand {display: none;}
           .mod_calendar_event_booking_event_booking_module {display: none;}
         </style>
       <?php endif; ?>
    <?php 
    endif; ?>
    Liebe Grüße, Michael

  16. #16
    Contao-Nutzer
    Registriert seit
    29.03.2012.
    Beiträge
    62

    Standard activateBookingForm um weiteres Feld erweitern?

    Hallo zusammen,

    ist es möglich die Erweiterung um ein eigenes Feld zu erweitern?
    ich würde gerne hinter den Feld "bookingEndDate" ein weiteres Feld hinzufügen, dass bei Aktivierung des Buchungsformulars ein Pflichtfeld sein soll.

    Folgender Code funktioniert leider nicht.

    PHP-Code:
    <?php
    // contao/dca/tl_calendar_events.php

    use Contao\CoreBundle\DataContainer\PaletteManipulator;

    // Palettes
    PaletteManipulator::create()
        ->
    addField('myField''bookingEndDate'PaletteManipulator::POSITION_APPEND)
        ->
    applyToPalette('default''tl_calendar_events')
    ;

    // Weiteres Feld für die Datumsausgabe im pdf-Anhang und in der Email
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['myField'] = [
        
    'inputType' => 'text',
        
    'eval'      => ['mandatory'=>true,'doNotCopy'=>true'tl_class' => 'w50 clr'], 
        
    'sql'       => "text NULL"
    ];
    Vermutlich muss ich noch irgendwie sagen, dass diese dca-Erweiterung die Erweiterung Calendar-event-booking-bundle braucht.

    Wenn ich ein
    PHP-Code:
    use Markocupic\CalendarEventBookingBundle\EventBooking\Booking\BookingState
    hinzufüge, ist das Feld aber auch nicht zu sehen.

    Kann man eine Erweiterung überhaupt auf diese Weise erweitern?

  17. #17
    Contao-Fan Avatar von markocupic
    Registriert seit
    06.12.2010.
    Ort
    Oberkirch (Schweiz)
    Beiträge
    660

    Standard

    @nano
    Doch, doch, das sollte schon gehen.

    Probier mal mit
    PHP-Code:
    PaletteManipulator::POSITION_AFTER 
    und danach den Cache neu aubauen.

    PHP-Code:
    <?php
    // contao/dca/tl_calendar_events.php

    use Contao\CoreBundle\DataContainer\PaletteManipulator;

    // Palettes
    PaletteManipulator::create()
        ->
    addField('myField''bookingEndDate'PaletteManipulator::POSITION_AFTER)
        ->
    applyToPalette('default''tl_calendar_events')
    ;

    // Weiteres Feld für die Datumsausgabe im pdf-Anhang und in der Email
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['myField'] = [
        
    'inputType' => 'text',
        
    'eval'      => ['mandatory'=>true,'doNotCopy'=>true'tl_class' => 'w50 clr'], 
        
    'sql'       => "text NULL"
    ];
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

  18. #18
    Contao-Nutzer
    Registriert seit
    29.03.2012.
    Beiträge
    62

    Standard

    Das hat so leider nicht funktioniert.

    Aber wenn ich es der Subpalette hinzufüge klappt es :-)

    PHP-Code:
    <?php
    // contao/dca/tl_calendar_events.php

    use Contao\CoreBundle\DataContainer\PaletteManipulator;

    // folgendes funktioniert nicht
    //PaletteManipulator::create()
    //    ->addField('myField', 'bookingEndDate', PaletteManipulator::POSITION_AFTER)
    //    ->applyToPalette('default', 'tl_calendar_events')
    //;

    // zur Subpalette hinzufügen
    PaletteManipulator::create()
        
    // adding the field as usual
        
    ->addField('myField''bookingEndDate')

        
    // applying the new configuration to the "addBookingForm" subpalette
        
    ->applyToSubpalette('addBookingForm''tl_calendar_events')
    ;

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •