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

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

  • #2
    das ist korrekt so.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      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.

      Kommentar


      • #4
        Da sollte eine Prüfung rum ob der gewünschte dca array erstellt ist, da CC dca arrays dynamisch erstellt und ggf existierende aufgreift.
        http://www.premium-contao-themes.com

        Kommentar


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

          Kommentar


          • #6
            dcaconfig.php

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

            http://www.premium-contao-themes.com

            Kommentar


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

              Kommentar


              • #8
                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.
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  CC, die eierlegende Wollmilchsau... auf Speed ^^

                  Kommentar


                  • #10
                    Zitat von D23 Beitrag anzeigen
                    CC, die eierlegende Wollmilchsau... auf Speed ^^


                    (bitteschön, 10 Zeichen)
                    http://www.premium-contao-themes.com

                    Kommentar

                    Lädt...
                    X