Ankündigung

Einklappen
Keine Ankündigung bisher.

Gibt es einen allgemeinen Callback für das Speichern beim FE-Editing?

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

  • Gibt es einen allgemeinen Callback für das Speichern beim FE-Editing?

    Hossa,

    der Titel ist vielleicht nicht ganz verständlich...

    Vorhaben:
    - Angemeldeter User kann seine Stammdaten – die als CC vorliegen – per Feedit ändern
    - Daten existieren parallel im CC und in tl_member (vorher per Import kopiert)
    - Daten sollen beim Speichern sowohl im CC als auch in der tl_member Tabelle geändert / abgeglichen werden

    Gibt es da einen allgemeine Callback für das Speichern eines Datensatzes? Es gibt ja in Contao den save_callback, aber soweit ich das verstehe, ist der immer nur für ein Feld zu verwenden.

  • #2
    Der save/load_callback ist in Contao je Feld, korrekt.
    Da das CC feedit direkt auf Contaos DCA aufbaut, kannst du den onsubmit_callback nutzen.
    https://docs.contao.org/books/api/dca/callbacks.html

    CC feedit selbst hat auch seinen "storeDatabaseHook", $GLOBALS['CUSTOMCATALOG_FRONTEDIT_HOOKS']['storeDatabase']

    Der wird direkt vor dem Einsetzen der Werte in der DB gefeuert und übergibt den aktuellen DB Set array, die Tabelle, das Modulobjekt
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Krieg ich nicht ans Laufen...

      Wie ist denn der Aufbau der Funktion?

      PHP-Code:
      class Test
      {
      public function 
      testFunction($arrSet,$strTable,$objModule) {
      ... 
      Das wirft mir nur Fehler...

      Warning: in_array() expects parameter 2 to be array, null given in system/modules/core/library/Contao/System.php on line 160
      #0 [internal function]: __error(2, 'in_array() expe...', '/Applications/M...', 160, Array) #1 system/modules/core/library/Contao/System.php(160): in_array('getInstance', NULL) #2 system/modules/pct_customelements_plugin_cc_frontedit/PCT/CustomCatalog/FrontEdit/Hooks.php(52): Contao\System::importStatic('t') #3 [internal function]: PCT\CustomCatalog\FrontEdit\Hooks->storeDatabaseHook(Array, 'cc_za_members', Object(PCT\CustomElements\Plugins\FrontEdit\Fronte nd\ModuleReader)) #4 system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Plugins/CustomCatalog/Core/Hooks.php(65): call_user_func_array(Array, Array) #5 system/modules/pct_customelements_plugin_cc_frontedit/PCT/CustomElements/Plugins/FrontEdit/Frontend/ModuleReader.php(207): PCT\CustomElements\Plugins\CustomCatalog\Core\Hook s::callstatic('storeDatabaseHo...', Array) #6 system/modules/core/modules/Module.php(287): PCT\CustomElements\Plugins\FrontEdit\Frontend\Modu leReader->compile() #7 system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Plugins/CustomCatalog/Frontend/ModuleReader.php(91): Contao\Module->generate() #8 system/modules/pct_customelements_plugin_cc_frontedit/PCT/CustomElements/Plugins/FrontEdit/Frontend/ModuleReader.php(79): PCT\CustomElements\Plugins\CustomCatalog\Frontend\ ModuleReader->generate() #9 system/modules/core/elements/ContentModule.php(59): PCT\CustomElements\Plugins\FrontEdit\Frontend\Modu leReader->generate() #10 system/modules/core/library/Contao/Controller.php(484): Contao\ContentModule->generate() #11 system/modules/core/modules/ModuleArticle.php(213): Contao\Controller::getContentElement(Object(Contao \ContentModel), 'main') #12 system/modules/core/modules/Module.php(287): Contao\ModuleArticle->compile() #13 system/modules/core/modules/ModuleArticle.php(67): Contao\Module->generate() #14 system/modules/core/library/Contao/Controller.php(417): Contao\ModuleArticle->generate(false) #15 system/modules/core/library/Contao/Controller.php(277): Contao\Controller::getArticle(Object(Contao\Articl eModel), false, false, 'main') #16 system/modules/core/pages/PageRegular.php(133): Contao\Controller::getFrontendModule('0', 'main') #17 system/modules/core/controllers/FrontendIndex.php(285): Contao\PageRegular->generate(Object(Contao\PageModel), true) #18 index.php(20): Contao\FrontendIndex->run() #19 {main}
      Fatal error: Uncaught exception Error with message Class 't' not found thrown in system/modules/core/library/Contao/System.php on line 160
      #0 system/modules/pct_customelements_plugin_cc_frontedit/PCT/CustomCatalog/FrontEdit/Hooks.php(52): Contao\System::importStatic('t') #1 [internal function]: PCT\CustomCatalog\FrontEdit\Hooks->storeDatabaseHook(Array, 'cc_za_members', Object(PCT\CustomElements\Plugins\FrontEdit\Fronte nd\ModuleReader)) #2 system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Plugins/CustomCatalog/Core/Hooks.php(65): call_user_func_array(Array, Array) #3 system/modules/pct_customelements_plugin_cc_frontedit/PCT/CustomElements/Plugins/FrontEdit/Frontend/ModuleReader.php(207): PCT\CustomElements\Plugins\CustomCatalog\Core\Hook s::callstatic('storeDatabaseHo...', Array) #4 system/modules/core/modules/Module.php(287): PCT\CustomElements\Plugins\FrontEdit\Frontend\Modu leReader->compile() #5 system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Plugins/CustomCatalog/Frontend/ModuleReader.php(91): Contao\Module->generate() #6 system/modules/pct_customelements_plugin_cc_frontedit/PCT/CustomElements/Plugins/FrontEdit/Frontend/ModuleReader.php(79): PCT\CustomElements\Plugins\CustomCatalog\Frontend\ ModuleReader->generate() #7 system/modules/core/elements/ContentModule.php(59): PCT\CustomElements\Plugins\FrontEdit\Frontend\Modu leReader->generate() #8 system/modules/core/library/Contao/Controller.php(484): Contao\ContentModule->generate() #9 system/modules/core/modules/ModuleArticle.php(213): Contao\Controller::getContentElement(Object(Contao \ContentModel), 'main') #10 system/modules/core/modules/Module.php(287): Contao\ModuleArticle->compile() #11 system/modules/core/modules/ModuleArticle.php(67): Contao\Module->generate() #12 system/modules/core/library/Contao/Controller.php(417): Contao\ModuleArticle->generate(false) #13 system/modules/core/library/Contao/Controller.php(277): Contao\Controller::getArticle(Object(Contao\Articl eModel), false, false, 'main') #14 system/modules/core/pages/PageRegular.php(133): Contao\Controller::getFrontendModule('0', 'main') #15 system/modules/core/controllers/FrontendIndex.php(285): Contao\PageRegular->generate(Object(Contao\PageModel), true) #16 index.php(20): Contao\FrontendIndex->run() #17 {main}

      Kommentar


      • #4
        PHP-Code:
        $GLOBALS['TL_DCA']['MY-TABLE']['config']['onsubmit_callback'][] = array('MY-CLASS''MY-CALLBACK'); 
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Hahaha... jetzt warst Du schneller! Hab das eben auch rausgefunden.

          Was aber auch funktioniert:

          PHP-Code:
          $GLOBALS['CUSTOMCATALOG_FRONTEDIT_HOOKS']['storeDatabase']['MyTable'] = array('Test','testFunction'); 

          Kommentar

          Lädt...
          X