Ergebnis 1 bis 16 von 16

Thema: [gelöst] metamodelsattribute_multi und load_callback

  1. #1
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    473

    Frage [gelöst] metamodelsattribute_multi und load_callback

    Hallo zusammen

    Wie geht man vor, wenn man in der config eines "metamodelsattribute_multi" einen load_callback einbauen möchte?
    Geändert von tognit (15.10.2023 um 18:25 Uhr)

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    was genau möchtest Du machen?

    das hier sollte auch unter MM gehen: https://github.com/menatwork/contao-...-with-callback

    in meinem Vortrag zur CK23 gehe ich auf einige Manipulationsmöglichkeiten ein

  3. #3
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    473

    Standard

    Ich möchte gerne ein paar Zeilen schon vorgeben!

    Im "tl_metamodel_dca.php" habe ich ein Beispiel gefunden (default), nur kriege ich es nicht hin.

    PHP-Code:
    'fe_editButtons' => [
                
    'label'     => &$GLOBALS['TL_LANG']['tl_metamodel_dca']['fe_editButtons'],
                
    'exclude'   => true,
                
    'inputType' => 'multiColumnWizard',
                
    'default' => [
                    [
                        
    'name'       => 'save',
                        
    'label'      => 'MSC.save',
                        
    'attributes' => 'accesskey="s"'
                    
    ],
                    [
                        
    'name'       => 'saveNcreate',
                        
    'label'      => 'MSC.saveNcreate',
                        
    'attributes' => 'accesskey="n"'
                    
    ]
                ], 
    Leider werde ich an CK23 nicht teilnehmen

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von tognit Beitrag anzeigen
    Ich möchte gerne ein paar Zeilen schon vorgeben!
    das beantwortet meine Frage leider nicht ausreichend

    Defaultwerte für die Widgets kannst Du DCA-like einbauen - siehe https://github.com/contao-community-...ndle/issues/83

    ... oder was bedeutet "ein paar Zeilen schon vorgeben"?

  5. #5
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    473

    Standard

    Ja da hast du recht

    Ich habe zwei metamodels, eins davon hat ein multicolumn-feld. In dieses Feld möchte ich, wenn vorhanden, aus dem anderen metamodel daten pro zeile ausgeben lassen.

    Und da habe ich zuerst an ein "load_callback" gedacht.

  6. #6
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von tognit Beitrag anzeigen
    In dieses Feld möchte ich, wenn vorhanden, aus dem anderen metamodel daten pro zeile ausgeben lassen.
    Sorry, das ist nicht genau genug beschrieben...

    Wenn Du einfach nur Sachen in der Eingabemaske anzeigen möchtest, die aus einem anderen Model kommen, dann verwende das JustTextWidgets

    ggf. willst Du aber auch ein Select oder Checkboxliste als Widget anzeigen, dessen Daten aus dem anderen Model kommen...??

  7. #7
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    473

    Standard

    Das erste MetaModels "Veranstaltung" ist das Elternelement. Dort wird Titel, Beschreibung usw. eingetragen.
    Dann gibt es zwei Kindelemente, Aufgaben und Schichten.

    Im MetaModel "Aufgaben" werden Aufgaben eingetragen. z.B. Aufbau, Parkplatz, Abbau usw.

    Im MetaModel "Schichten" werden dann die Einätze (Wann und Wo) eingetragen und hier soll in einem multicolumn-feld alle Aufgaben aufgelistet werden, damit man die Anzahl Helfer und Bemerkungen noch eingeben kann.

    einsaetze.png

  8. #8
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    o.k. - jetzt verstanden

    guck Dir mal den columnsCallback an - könnte damit gehen... ansonsten könnte es auch gehen, wenn Du als Defaultwert ein serialisiertes Array übergibst, so wie es in der DB stünde

  9. #9
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    473

    Frage

    Ist der columnsCallback nicht nur für das erstellen der Felder (ohne Inhalt) gedacht?

  10. #10
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    einfach mal testen...

    ansonsten guck Dir mal ManipulateWidgetEvent bzw. BuildWidgetEvent an

  11. #11
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    473

    Standard

    Habe es jetzt mit einem EventListener gelöst

    PHP-Code:
        #[AsCallback(table: 'mm_shift', target: 'fields.employment.load', priority: 100)]
        
    public function prepareMCW(array $recordDataContainer $dc)
        {
            
    $connection System::getContainer()->get('database_connection');

            
    $modelName 'mm_roles';

            
    $arrRolesItems $connection->fetchAllAssociative("SELECT * FROM " $modelName " WHERE pid = ?", [$dc->activeRecord->pid]);

            foreach (
    $arrRolesItems as $roles)
            {
                
    $arrRoles[] = array(
                    
    "col_roles" => $roles['name'],
                    
    "col_timeStartDifferences" => $roles['timeStartDifferences'],
                    
    "col_timeEndDifferences" => $roles['timeEndDifferences']
                );
            }

            return 
    $arrRoles;
        } 
    Ich vermute das man in der config.php des "metamodelsattribute_multi" keinen load_callback oder save_callback konfigurieren kann.

  12. #12
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von tognit Beitrag anzeigen
    Ich vermute das man in der config.php des "metamodelsattribute_multi" keinen load_callback oder save_callback konfigurieren kann.
    warum nicht - an der Stelle ist das ja alles "normales Contao"... statt des DB-Aufrufs hätte ich mit der MM-API gearbeitet - aber viele Wege führen nach Rom

  13. #13
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    473

    Standard

    Auf die einzelne Spalte habe ich es schon hinbekommen, aber nicht auf das ganze "metamodelsattribute_multi". Die callbacks werden einfach ignoriert!

  14. #14
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    in MM werden z. B. die "Einstellungen der Weiterleitung" bei den Rendersettings dynamisch in dem MCW befüllt - bei mehrsprachigem MM für jede Sprache eine Zeile per BuildWidgetEvent

    siehe https://github.com/MetaModels/core/b...ToListener.php

    Wenn Deine Spalte "Aufgabe" nur als Text ausgegeben werden soll, könntest Du dort https://github.com/discordier/justtextwidgets einsetzen.

  15. #15
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    473

    Standard

    Habe mit der Erweiterung "justtextwidgets" getestet und das wäre genau richtig.

    Nur wenn man ein Feld im "metamodelsattribute_multi" über "justtext" verstecken möchte, funktioniert das im Backend wunderbar, leider aber nicht im Frontend.
    Im Backend ist das input wunderbar auf hidden und im Frontend wird das "input hidden" nicht ausgegeben.

  16. #16
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von tognit Beitrag anzeigen
    funktioniert das im Backend wunderbar, leider aber nicht im Frontend.
    es ist etwas anstrengend aus Deinen "Halbsätzen" was brauchbares raus zu ziehen, was du machst oder meinen könntest... Poste was Du machst oder verlinke ein Repo, was genau Du vor hast, was Du erwartest und was der Fehler/Fehlermeldung ist

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
  •