Hallo zusammen
Wie geht man vor, wenn man in der config eines "metamodelsattribute_multi" einen load_callback einbauen möchte?
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 19:25 Uhr)
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
Geändert von zonky (14.10.2023 um 13:57 Uhr)
MetaModels-Workshop: ... wo sich die nächste Gelegenheit bietet... oder Extern oder Online
Erweiterungen: Infos im Seitenbaum, Formular-Default für Select/Checkbox/Radio (SCR), Formular-Newsletteranmeldung, Regex-Formularwidget, Lizenzmanager für Isotope
Unterstützung per Github-Sponsoring: MetaModels Handbuch und Forum, e-spin Erweiterungen
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.
Leider werde ich an CK23 nicht teilnehmenPHP-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"'
]
],
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"?
MetaModels-Workshop: ... wo sich die nächste Gelegenheit bietet... oder Extern oder Online
Erweiterungen: Infos im Seitenbaum, Formular-Default für Select/Checkbox/Radio (SCR), Formular-Newsletteranmeldung, Regex-Formularwidget, Lizenzmanager für Isotope
Unterstützung per Github-Sponsoring: MetaModels Handbuch und Forum, e-spin Erweiterungen
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.
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...??
MetaModels-Workshop: ... wo sich die nächste Gelegenheit bietet... oder Extern oder Online
Erweiterungen: Infos im Seitenbaum, Formular-Default für Select/Checkbox/Radio (SCR), Formular-Newsletteranmeldung, Regex-Formularwidget, Lizenzmanager für Isotope
Unterstützung per Github-Sponsoring: MetaModels Handbuch und Forum, e-spin Erweiterungen
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
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
MetaModels-Workshop: ... wo sich die nächste Gelegenheit bietet... oder Extern oder Online
Erweiterungen: Infos im Seitenbaum, Formular-Default für Select/Checkbox/Radio (SCR), Formular-Newsletteranmeldung, Regex-Formularwidget, Lizenzmanager für Isotope
Unterstützung per Github-Sponsoring: MetaModels Handbuch und Forum, e-spin Erweiterungen
Ist der columnsCallback nicht nur für das erstellen der Felder (ohne Inhalt) gedacht?
einfach mal testen...
ansonsten guck Dir mal ManipulateWidgetEvent bzw. BuildWidgetEvent an
Geändert von zonky (15.10.2023 um 11:40 Uhr)
MetaModels-Workshop: ... wo sich die nächste Gelegenheit bietet... oder Extern oder Online
Erweiterungen: Infos im Seitenbaum, Formular-Default für Select/Checkbox/Radio (SCR), Formular-Newsletteranmeldung, Regex-Formularwidget, Lizenzmanager für Isotope
Unterstützung per Github-Sponsoring: MetaModels Handbuch und Forum, e-spin Erweiterungen
Habe es jetzt mit einem EventListener gelöst
Ich vermute das man in der config.php des "metamodelsattribute_multi" keinen load_callback oder save_callback konfigurieren kann.PHP-Code:
#[AsCallback(table: 'mm_shift', target: 'fields.employment.load', priority: 100)]
public function prepareMCW(array $record, DataContainer $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;
}
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
MetaModels-Workshop: ... wo sich die nächste Gelegenheit bietet... oder Extern oder Online
Erweiterungen: Infos im Seitenbaum, Formular-Default für Select/Checkbox/Radio (SCR), Formular-Newsletteranmeldung, Regex-Formularwidget, Lizenzmanager für Isotope
Unterstützung per Github-Sponsoring: MetaModels Handbuch und Forum, e-spin Erweiterungen
Auf die einzelne Spalte habe ich es schon hinbekommen, aber nicht auf das ganze "metamodelsattribute_multi". Die callbacks werden einfach ignoriert!
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.
Geändert von zonky (16.10.2023 um 12:16 Uhr)
MetaModels-Workshop: ... wo sich die nächste Gelegenheit bietet... oder Extern oder Online
Erweiterungen: Infos im Seitenbaum, Formular-Default für Select/Checkbox/Radio (SCR), Formular-Newsletteranmeldung, Regex-Formularwidget, Lizenzmanager für Isotope
Unterstützung per Github-Sponsoring: MetaModels Handbuch und Forum, e-spin Erweiterungen
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.
MetaModels-Workshop: ... wo sich die nächste Gelegenheit bietet... oder Extern oder Online
Erweiterungen: Infos im Seitenbaum, Formular-Default für Select/Checkbox/Radio (SCR), Formular-Newsletteranmeldung, Regex-Formularwidget, Lizenzmanager für Isotope
Unterstützung per Github-Sponsoring: MetaModels Handbuch und Forum, e-spin Erweiterungen
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)