Ergebnis 1 bis 12 von 12

Thema: markocupic/calendar-event-booking-bundle: Fehler bei Event Kopie

  1. #1
    Contao-Fan
    Registriert seit
    09.02.2011.
    Beiträge
    630

    Standard markocupic/calendar-event-booking-bundle: Fehler bei Event Kopie

    Hi,

    ich habe nach Update ein Problem beim Kopieren von Events:

    Wenn ich für ein neues Event ein altes Event kopiere mit angemeldeten Mitgliedern, dann werden auch die Mitglieder mitkopiert.

    Das war vor dem Update nicht so und macht natürlich keinen Sinn, weil ich ja ein neus Event ohne angemeldete Mitglieder haben möchte.

    markocupic/calendar-event-booking-bundle: Version 5.6.2

    Contao: 4.13.52

    Gibt es dafür einen schnellen Workaround oder soll das so sein, weil streng genommen ist es ja eine Kopie ?

    Bitte um Tipps

    Vielen Dank

    Grüße Tintifax

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Man müsste im DCA doNotCopyRecords aktivieren für diese Child Table.
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Fan
    Registriert seit
    09.02.2011.
    Beiträge
    630

    Standard

    d.h. in der

    tl_calender_events_member.php

    könnte ich es so machen für alle Felder (Beispiel lastname) die eingetragen/kopiert werden:

    PHP-Code:
            'lastname'     => [
                
    'eval'      => [
                    
    'mandatory' => true,
                    
    'maxlength' => 255,
                    
    'tl_class'  => 'w50',
                ],
                
    'filter'    => true,
                
    'inputType' => 'text',
                
    'search'    => true,
                
    'sorting'   => true,
                
    'doNotCopyRecords' => true,
                
    'sql'       => "varchar(255) NOT NULL default ''",
            ], 

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Nein, das ist eine config Einstellung des DCAs (siehe https://docs.contao.org/dev/referenc...fig/#reference).
    » sponsor me via GitHub or Revolut

  5. #5
    Contao-Fan
    Registriert seit
    09.02.2011.
    Beiträge
    630

    Standard

    in die tl_calendar_events_member.php => 'doNotCopyRecords' => true, eintragen ?

    PHP-Code:

    $GLOBALS
    ['TL_DCA']['tl_calendar_events_member'] = [
        
    // Config
        
    'config'   => [
            
    'dataContainer'     => DC_Table::class,
            
    'ptable'            => 'tl_calendar_events',
            
    'doNotCopyRecords' => true,
            
    'enableVersioning'  => true,
            
    'onsubmit_callback' => [],
            
    'ondelete_callback' => [],
            
    'sql'               => [
                
    'keys' => [
                    
    'id'        => 'primary',
                    
    'email,pid' => 'index',
                ],
            ],
        ], 

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Ja, wenn du's als Applikationsanpassung machst aber nicht so - weil dann löschst du das gesamte DCA . Also zB:
    PHP-Code:
    // contao/dca/tl_calendar_events_member.php
    $GLOBALS['TL_DCA']['tl_calendar_events_member']['config']['doNotCopyRecords'] = true
    Könntest du auch als PR hier vorschlagen.
    » sponsor me via GitHub or Revolut

  7. #7
    Contao-Fan
    Registriert seit
    09.02.2011.
    Beiträge
    630

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ja, wenn du's als Applikationsanpassung machst aber nicht so - weil dann löschst du das gesamte DCA . Also zB:
    PHP-Code:
    // contao/dca/tl_calendar_events_member.php
    $GLOBALS['TL_DCA']['tl_calendar_events_member']['config']['doNotCopyRecords'] = true
    Könntest du auch als PR hier vorschlagen.

    ugga agga ^^, ja löschen will ich es nicht

    na ich werd das mal in einer Test-Installation durchspielen,

    Danke mal soweit, github hab ich schon geguckt, denn ich denke, die aktuelle Handhabung kann nicht so gewollt sein. war ja vorher auch nicht so

  8. #8
    Contao-Fan
    Registriert seit
    09.02.2011.
    Beiträge
    630

    Standard

    Habs nun so gemacht:

    /src/Resources/contao/dca/tl_calender_events.php

    PHP-Code:
    <?php
    $GLOBALS
    ['TL_DCA']['tl_calendar_events']['config']['oncopy_callback'][] = ['MyEventCopy''removeEventMembers'];

    class 
    MyEventCopy
    {
        public function 
    removeEventMembers($newEventId$dc$oldEventId null)
        {
            if (!
    $newEventId) {
                return;
            }

            
    // Lösche alle Mitglieder des neuen Events
            
    \Database::getInstance()->prepare("DELETE FROM tl_calendar_events_member WHERE pid=?")
                                    ->
    execute($newEventId);
        }
    }
    funktioniert einwandfrei

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Das brauchst du nicht... die DCA Anpassung reicht.
    » sponsor me via GitHub or Revolut

  10. #10
    Contao-Fan
    Registriert seit
    09.02.2011.
    Beiträge
    630

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Das brauchst du nicht... die DCA Anpassung reicht.
    Aber Nachteile habe ich ja so auch nicht, oder ?

    Dachte, falls ich mehr zum Manipulieren hätte, müßte ich nur noch per Update Befehl hier ran

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Zitat Zitat von tintifax Beitrag anzeigen
    Aber Nachteile habe ich ja so auch nicht, oder ?
    Naja doch, da werden zuerst alle Records kopiert und dann wieder gelöscht, das ist ja unnötig.
    » sponsor me via GitHub or Revolut

  12. #12
    Contao-Fan
    Registriert seit
    09.02.2011.
    Beiträge
    630

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Naja doch, da werden zuerst alle Records kopiert und dann wieder gelöscht, das ist ja unnötig.
    ok das überzeugt mich, Danke

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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