Contao-Camp 2024
Ergebnis 1 bis 12 von 12

Thema: delete Callback

  1. #1
    Contao-Nutzer
    Registriert seit
    04.05.2011.
    Ort
    Österreich / Steiermark
    Beiträge
    74

    Standard delete Callback

    hallo.

    wie kann ich in metamodels einen ondelete callback erstellen?

    mfg
    Geändert von bluuba (16.12.2013 um 10:57 Uhr)

  2. #2
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    was ist denn das ?

  3. #3
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    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.

  4. #4
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Frage

    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 15:00 Uhr) Grund: Querverweis

  5. #5
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Standard

    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);
    }; 

  6. #6
    Contao-Nutzer
    Registriert seit
    22.01.2013.
    Ort
    Hamburg
    Beiträge
    6

    Standard

    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'));
        
    }; 

  7. #7
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Standard

    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 ...

  8. #8
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Standard

    Also, um die Frage nach einen ondelete callback bei MetaModel zu beantworten (bin gerade am ausprobieren):
    PHP-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')); 
         
    }; 
    was bei mir auch geht, um nur ein MM zu "callback"-en

    PHP-Code:
    $GLOBALS['TL_EVENTS']['dc-general.model.pre-delete[mm_tabelle]'][] = ... 
    Jetzt schaue ich mir mal die Innereien an, was ich da alles machen kann.

  9. #9
    Contao-Nutzer
    Registriert seit
    15.03.2010.
    Ort
    AT
    Beiträge
    204

    Standard

    Was wäre denn das Event für nen onload_callback?

  10. #10
    Contao-Nutzer
    Registriert seit
    06.10.2012.
    Beiträge
    213

    Standard

    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

    PHP-Code:
    $event->getMetaModel() 
    Das löst aber vermutlich auch im BE aus, kann das gerade nicht testen.

    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 12:51 Uhr)

  11. #11
    Contao-Nutzer
    Registriert seit
    15.03.2010.
    Ort
    AT
    Beiträge
    204

    Standard

    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 13:44 Uhr)

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

    Standard

    sofern das für Contao 4 sein sollte, dann besser als Service in einer service.yml registrieren und von dort die Klasse aufrufen...

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
  •