Ergebnis 1 bis 11 von 11

Thema: Subpaletten schachteln (Nested Subpalettes)

  1. #1
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard Subpaletten schachteln (Nested Subpalettes)

    Hallo in die Runde,

    ich habe aktuell Probleme beim Schachteln von Subpaletten. An sich ist das ja möglich, oder? Ich habe folgende Konfiguration:

    Code:
    $arrDca['palettes']['__selector__'][] = 'addParticipation';
    $arrDca['palettes']['__selector__'][] = 'addCompanion';
    
    $arrDca['subpalettes']['addParticipation'] = 'addCompanion';
    $arrDca['subpalettes']['addCompanion'] = 'companionHeadline,companionGender,companionAcademicTitle,companionFirstname,companionLastname';
    Wenn im aktuellen Datensetz addCOmpanion = 0 ist und ich auf addParticipation klicke, klappt alles. Wenn ich einen Datensatz mit addParticipation und addCompanion speichere,neulade und dann das Häkchen bei addParticipation rausnehme, wieder speichere, neu lade und dann erneut addParticipation anklicke, lädt er mir die ganze Seite als Subpalette

    Mache ich irgendwas falsch? Sollte das nicht funktionieren? Oder ist es ein Bug?

    Ciao The_Unknown

  2. #2
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Also gehen tut das schachteln, hab ich selbst schon gemacht.

    vertausch mal die beiden Selectoren

    Code:
    $arrDca['palettes']['__selector__'][] = 'addParticipation';
    $arrDca['palettes']['__selector__'][] = 'addCompanion';
    so

    Code:
    $arrDca['palettes']['__selector__'][] = 'addCompanion';
    $arrDca['palettes']['__selector__'][] = 'addParticipation';
    Ich hab das verdammt lang nicht mehr gemacht, aber ich meine auch die Reihenfolge des __selector__-Arrays war entscheidend.

    Ansonsten poste mal deine gesamte DCA bzw. das Modul, dass man das testen kann.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  3. #3
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard

    Ah, ich ahne schon, worauf das hinausläuft. Ein guter Hinweis! Ich schaue es mir morgen mal an.

  4. #4
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard

    OK, ich habe mir das ganze noch mal angeschaut und leider brachte auch das Verändern der Reihenfolge nichts. Ich habe der besseren Verständlichkeit halber mal 2 Videos erstellt.

    Das erste verwendet folgende Konfiguration im DCA:
    PHP-Code:
    // ...
    'palettes' => array
    (
        
    '__selector__' => array('addCleaner''addPoorMansCron'),
        
    'default' => '{clean_legend},addCleaner;'
    ),
    'subpalettes' => array(
        
    'addCleaner' => 'cleanerMaxAge,addPoorMansCron',
        
    'addPoorMansCron' => 'cleanerPeriod',
    ),
    // ... 
    Das zweite verwendet folgende Konfiguration im DCA:
    PHP-Code:
    // ...
    'palettes' => array
    (
        
    '__selector__' => array('addPoorMansCron''addCleaner'),
        
    'default' => '{clean_legend},addCleaner;'
    ),
    'subpalettes' => array(
        
    'addCleaner' => 'cleanerMaxAge,addPoorMansCron',
        
    'addPoorMansCron' => 'cleanerPeriod',
    ),
    // ... 
    Falls ihr noch irgendwelchen Code braucht, sagt einfach Bescheid.
    Angehängte Dateien Angehängte Dateien

  5. #5
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von The_Unknown Beitrag anzeigen
    Falls ihr noch irgendwelchen Code braucht, sagt einfach Bescheid.
    Die ganze DCA wäre super! Denn ich möchte jetzt ungern zum Testen erstmal die ganzen Felder etc. schreiben müssen.
    Am besten lad das komplette Modul hoch, also inkl. /config Ordern etc. dann kann ich das lokal einfach einspielen, und sofort testen.

    Kannst mir auch per PN senden, wenn es nicht öffentlich hochladen möchtest.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  6. #6
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard

    PN ist unterwegs. Danke dir!

  7. #7
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    AFAIR wird das so out of the Box von DC_Table nicht supported.

    ggf. kannst du tricksen, wenn du den checkboxen ein submitOnChange mitgibst und somit den Seitenreload forcierst.

    Bei DcGeneral zumindest haben wir aus diesen Gruenden, weil es einfach zu fehleranfaellig ist, erzwungen bei Subpaletten einen reload zu machen.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  8. #8
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    xtra hat recht. Hab jetzt diverse Kombinationen durch, habs leider nicht hinbekommen. Der submitOnChange ändert daran nichts, da dieser sowieso bei diesen Feldern hinterlegt sind. Das Problem ist die 2. gesetzte Subpalettencheckbox. Sobald die gesetzt ist ohne, dass die 1. gesetzt ist, geht alles schief.

    Aber es gibt eine sehr gute und einfache Lösung, ohne auf diese verschachtelung verzichten zu müssen:

    PHP-Code:
    'onsubmit_callback' => array
    (
             array(
    'tl_********_archive''checkPalette'),
    ), 
    PHP-Code:

    public function checkPalette($dc)
    {

           if(!
    $dc->activeRecord->addCleaner)
           {
                  
    $objModule = [MODELNAME]::findByPk(\Input::get('id'));
                  
    $objModule->addPoorMansCron '';
                  
    $objModule->save();
           }

    Damit hat es perfekt funktioniert. Wenn der erste Haken nicht benötigt wird, kann man den 2. Haken auch entfernen und bei Bedarf wieder aktivieren.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  9. #9
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Nur der Vollständigkeit halber: Die Chancen stehen gut, dass es in Zukunft mal gehen wird: https://github.com/contao/core-bundle/pull/450
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  10. #10
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Wenn ich richtig sehe, gilt das aber für Contao 4.1? Also meinst du die weit entfernte Zukunft so ab 2019, denn davor wird ja niemand freiwillig auf Contao 4 wechseln :-)
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  11. #11
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Freut mich, dass dir unsere harte Arbeit an Contao 4 gefällt.
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

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
  •