Ankündigung

Einklappen
Keine Ankündigung bisher.

CC: Wie kann man einen save_callback basteln?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tim
    antwortet
    Zitat von D23 Beitrag anzeigen
    CC, die eierlegende Wollmilchsau... auf Speed ^^


    (bitteschön, 10 Zeichen)

    Einen Kommentar schreiben:


  • D23
    antwortet
    CC, die eierlegende Wollmilchsau... auf Speed ^^

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Sehr effektiv sind auch die CC eigenen Hooks z.B. der $GLOBALS['CUSTOMCATALOG_HOOKS']['prepareDataContainer'] Hook
    (siehe [...] Hooks.php class

    Übergibt den aktuellen DCA Array inkl. dem CC objekt, CE objekt und erwartet den neuen DCA Array zurück. Sehr mächtig.
    Die Contao-eignene Hooks gehen natürlich ebenfalls überall.

    Einen Kommentar schreiben:


  • D23
    antwortet
    Cool, damit werden Klasse und Methode aufgerufen. Ich hatte erst in der Methode rumgepfuscht ^^
    Danke für die Hilfe!

    Einen Kommentar schreiben:


  • Tim
    antwortet
    dcaconfig.php

    PHP-Code:
    if(is_array($GLOBALS['TL_DCA']['cc_test']))
    {
        
    $GLOBALS['TL_DCA']['cc_test']['fields']['myField']['save_callback'][] = array('MyClass','myCallback');

    Einen Kommentar schreiben:


  • D23
    antwortet
    Ich verstehe nicht ganz, was genau du damit meinst. Wo musste diese Prüfung hin? In die dcaconfig.php?

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Da sollte eine Prüfung rum ob der gewünschte dca array erstellt ist, da CC dca arrays dynamisch erstellt und ggf existierende aufgreift.

    Einen Kommentar schreiben:


  • D23
    antwortet
    Schon mal gut zu wissen, dass ich nicht wieder Quatsch eingegeben hab.
    Funktioniert aber leider nicht, da mir nur diese Fehlermeldung vor den Latz geknallt wird:

    Fatal error: Could not create a data container object in system/modules/core/classes/Backend.php on line 402
    #0 [internal function]: __error(256, 'Could not creat...', '/Applications/M...', 402, Array) #1 system/modules/core/classes/Backend.php(402): trigger_error('Could not creat...', 256)
    #2 system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('store_de')
    #3 contao/main.php(20): Contao\BackendMain->run()
    #4 {main}

    Das seltsame ist, dass bei #3 hinten steht ('store_de'), die Tabelle aber eigentlich 'cc_store_de' heißt.

    In der dcaconfig.php hab ich das auch so eingetragen.

    Einen Kommentar schreiben:


  • Tim
    antwortet
    das ist korrekt so.

    Einen Kommentar schreiben:


  • D23
    hat ein Thema erstellt CC: Wie kann man einen save_callback basteln?.

    CC: Wie kann man einen save_callback basteln?

    Mahlzeit.

    Kann man für ein CC bzw. CE einen SaveCallback basteln, der dann in der dcaconfig.php gesetzt wird?
    Ziel ist es, beim Speichern eines Eintrags automatisch in ein Feld einen eigenen Wert einzutragen.
    Beispiel:
    PHP-Code:
    $GLOBALS['TL_DCA']['tablename']['fields']['fieldname']['save_callback'][] = array('Assets','Funktion'); 
Lädt...
X