Ankündigung

Einklappen
Keine Ankündigung bisher.

API custom action

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

  • API custom action

    Eclipse: 9.10.26
    Contao: 4.9.13

    Man kann ja eigene Actions definieren. Die werden ja über die TableCustomCatalogJob.php eingelesen und auch im Job angezeigt. Ich habe aber keine Stelle gefunden, an der die Custom Actions irgendwie berücksichtigt werden. Die Jobs-Methode "fieldValueAction" prüft nur die eigenen Actions, aber keine Custom Actions.

    Wie kann ich Custom Actions implementieren?

  • #2
    Du kannst für eigene Logiken die Aktion "Hook-Callback Methode" nutzen. Der Job führt dann den registrierten Callback aus und erwartet einen Rückgabewert.

    Wert via Hook konvertieren:
    https://forum.premium-contao-themes....=6248#post6248

    Online Beispiel: (das kleine Modul kann man gern nutzen. Die .skip Datei aus dem Modul-Ordner noch löschen)
    https://github.com/timgatzky/pct_cus...iCallbacks.php

    Code:
    $GLOBALS['PCT_CUSTOMCATALOG_API']['HOOKS'][] = array('MyClass','myCallback');
    Vollständig eigene Aktionen kannst du via DCA Erweiterung implementieren. Es gelten die allgemeinen Contao-DCA Erweiterungsregeln. (ich empfehle die Callback Methode)

    Zusätzlich stehen API-bezogene Hooks zur Verfügung. Siehe API-Dokumentation.
    Zuletzt geändert von Tim; 31.03.2021, 13:49.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Die Hook-Callback-Methode ist mir bekannt. Aber für mich nicht zielführend. Ich benötige Feld-Aktionen. Z.B. um serialisierte Arrays korrekt als CSV auszugeben. Aber nicht nur.

      Ich habe ja bereits eine "eigene" API mit einer eigenen Export Klasse und dort auch als "actions" angegeben. Die werden mir ja auch bei den Feldern als Aktion angezeigt. Nur werden die Aktionen nirgends berücksichtigt. Die eigene Export-API (die läuft) ist unabhängig von meinem Wunsch einer eigenen Feld-Aktion.

      Die API bezogenen Hooks habe ich mir alle angeschaut. Irgendwie kein richtiges dabei. Oder hast Du einen Tipp für mich?

      Kommentar


      • #4
        Für unbekannte Aktionen / Logiken stehen die Hook-Callback-Aktionen bereit.

        Ergänzend:
        Schau dir den executeApiJob Hook einmal an. Er wird nach dem Ausführen des Jobs getriggert (Job.php Klasse). Dort wird im Job Objekt auch deine Aktion übergeben und du kannst gezielt darauf reagieren. Das System kann unbekannte Job-Aktionen nicht selbstständig ausführen. -> dafür gibt es die Hooks.

        $GLOBALS['CUSTOMCATALOG_HOOKS']['executeApiJob']
        Übergabe-Parameter: $strTable, $objApi, $objJob
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Den Hook habe ich leider übersehen. Manchmal sieht man den Baum vor... Du weißt schon. Das ist wohl genau das, wonach ich gesucht habe. Danke

          Kommentar

          Lädt...
          X