hallo.
wie kann ich in metamodels einen ondelete callback erstellen?
mfg
hallo.
wie kann ich in metamodels einen ondelete callback erstellen?
mfg
Geändert von bluuba (16.12.2013 um 09:57 Uhr)
was ist denn das ?
Den bringt dir nicht MetaModels mit, sondern der DC_General. Suche mal danach im Code vom MetaModels Core, in allen Attributen und halt im DC.
Irgendwo müsste einer getriggert werden.
Ja das bräuchte ich auch (lösche alle Bilder, die dem MM-item zugeordnet sind), sehr wohl finde ich das im DCG Quellcode ... verstehen - muss ich gestehen - habe ich das jetzt nicht so wirklich. Ein Beispiel wäre super ... aber gefunden habe ich auch keins?!
Querverweis: https://community.contao.org/de/show...ght=dc-general
... noch bin ich aber nicht ganz schlau daraus.
Geändert von Cyberlussi (09.08.2014 um 14:00 Uhr) Grund: Querverweis
Ich habe einfach mal probiert - gleich vorneweg: Klappt nicht... es passier einfach nix, wenn ich einen Eintrag in dem MM (dev-tng) anlege.
https://github.com/contao-community-...ModelEvent.php
https://github.com/contao-community-...ModelEvent.php
und
http://contao-community-alliance.git.../commands.html
PHP-Code:
// modules/meinding/config.php
$GLOBALS['TL_EVENTS']['dc-general.model.pre-create[mm_gallery]'][] = function ($event) {
dump($event);
};
So sollte es gehen:
PHP-Code:
$GLOBALS['TL_EVENTS']['dc-general.model.pre-create'][] = function ($event) {
//ausgabe event
dump($event);
//ausgabe model
dump($event->getModel());
//ausgabe tablename vom model
dump($event->getModel()->getProperty('tableName'));
};
Ah ... okay ... danke. Ich hatte aber auch ein Verständnisproblem. pre-create wird ausgelöst, wenn ich bei einem neuen Eintrag das Formular speichere. Dachte zuerst, dass das Event eintritt, wenn man "Neuer Datensatz" auslöst ...
Also, um die Frage nach einen ondelete callback bei MetaModel zu beantworten (bin gerade am ausprobieren):
was bei mir auch geht, um nur ein MM zu "callback"-enPHP-Code:
// modules/meinding/config.php
// Events: dc-general.model.pre-delete OR dc-general.model.post-delete
$GLOBALS['TL_EVENTS']['dc-general.model.pre-delete'][] = function ($event) {
//ausgabe event
dump($event);
//ausgabe model
dump($event->getModel());
//ausgabe tablename vom model
dump($event->getModel()->getProperty('tableName'));
};
Jetzt schaue ich mir mal die Innereien an, was ich da alles machen kann.PHP-Code:
$GLOBALS['TL_EVENTS']['dc-general.model.pre-delete[mm_tabelle]'][] = ...
Was wäre denn das Event für nen onload_callback?
Kannst du genauer beschreiben, was du damit meinst? Ein Event, dass immer getriggert wird, wenn ein Metamodel geladen wird?
Da gibt es z.B.
CreateMetaModelEvent - This event is triggered for every metamodel when a factory wants to create an instance.
An das Model kommst du dann per
Das löst aber vermutlich auch im BE aus, kann das gerade nicht testen.PHP-Code:
$event->getMetaModel()
Was möchtest du denn genau lösen damit? Bist du dir sicher, dass du das Event brauchst?
/edit: Bitte mach für sowas in Zukunft einen eigenen Thread auf. Du kannst ja den alten verlinken. Aber dann weiß man auf den ersten Blick, worum es geht.
Geändert von pju (22.09.2015 um 11:51 Uhr)
PHP-Code:
#config.php
$GLOBALS['TL_EVENTS']['dc-general.model.post-duplicate'][] = array('Klasse', 'doOnDuplicate');
PHP-Code:
public function doOnDuplicate( \ContaoCommunityAlliance\DcGeneral\Event\PostDuplicateModelEvent $objEvent )
{
if ( $objEvent->getModel()->getProviderName() == "mm_table" )
{
$objEvent->getModel()->setProperty("fieldname", "someValue");
return $objEvent;
}
}
Geändert von heyho (17.10.2019 um 12:44 Uhr)
sofern das für Contao 4 sein sollte, dann besser als Service in einer service.yml registrieren und von dort die Klasse aufrufen...
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)
Lesezeichen