Ankündigung

Einklappen
Keine Ankündigung bisher.

Mal wieder eine Frage zur API

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

  • Mal wieder eine Frage zur API

    Hallo liebe Experten,

    ich habe mal wieder eine Frage zur CC API, im speziellen beim Import:
    Ist es möglich VOR den Import eine Art Filterung zu setzen?

    Fallbeispiel:
    - Mitglieder-Datenbestand soll aus csv importiert werden
    - Suche nach Mitgliedsnummer und lösche alle DB-Einträge zwischen Nr. 1 und Nr. 100
    - Importiere den Rest

  • #2
    Lösung scheinbar selbst gefunden:

    PHP-Code:
    <?php

    class DeleteCertainMembers
    {
      
    /**
        * @param mixed     Wert aus Quelle
        * @param array     Aktueller zu bearbeitender Datensatz
        * @param object    Der API Job
      */
      
    public function deleteMember($arrData)
      {
        
    $sqlDelete "DELETE FROM cc_members WHERE member_id BETWEEN 1 AND 100";
        
    $dbQuery Database::getInstance()->prepare($sqlDelete);
        
    $dbQuery->execute();
      }
    }

    Kommentar


    • #3
      Riesen Denkfehler... das wird ja dann pro Datensatz ausgeführt und macht somit herzlich wenig Sinn...

      Also zurück zur ursprünglichen Frage:
      Wie könnte man eine Vorfilterung umsetzen?

      Man bräuchte einen Hook, der aber noch VOR der Ausführung des API-Jobs greift. Im Sinne von: Bevor importiert wird, lösche mal alle Einträge von X bis Y...

      Kommentar


      • #4
        Die API ruft loadDataContainer auf. Das bereits sehr früh. -> das wäre der frühste Contao Hook, nach initializeSystem.
        Auch akzeptiert die API die GET Parameter limit und offset für fliegende Filterungen.

        Besonders elegant ist auch einen eigenen Callback für die jeweilige API zu setzen. Schau mal in: pct_customelements_plugin_customcatalog/PCT/CustomCatalog/API/Backend/BackendPage.php, Zeile 152.
        Dort werden eigene Callbacks für die registrierten APIs geprüft. -> das wäre der früheste API-basierte Hook.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Da kann ich Dir grad irgendwie nicht ganz folgen. Wie setzt man denn einen eigenen Callback?

          Kommentar


          • #6
            Ah, Moment... Reden wir hier von dem Spaß, sich einfach eine eigene API-Schnittstelle zu basteln?

            Kommentar


            • #7
              Zitat von D23 Beitrag anzeigen
              Ah, Moment... Reden wir hier von dem Spaß, sich einfach eine eigene API-Schnittstelle zu basteln?
              Du kannst natürlich auch die Standard API hier ändern. Schau mal in den Konfigurations Array in der config.php von CC

              $GLOBALS['PCT_CUSTOMCATALOG']['API']['API-NAME']['API-MODUS']['callback']

              Ich definiere ebenfalls einen eigene Callback Funktion für den Import modus. Gleiches für den Export modus.

              Beispiel beim Import: $GLOBALS['PCT_CUSTOMCATALOG']['API']['standard']['import']['callback']

              -> da biste schon ganz nah an einer eigenen API .

              ---
              Du kannst aber auch erstmal in gewohnten Hooks blieben wie dem loadDataContainer Hook.
              http://www.premium-contao-themes.com

              Kommentar


              • #8
                Hab's jetzt über die Standard als Export gelenkt. Während unseres Dialogs ist mir eingefallen, dass wir eine ähnliche Problematik ja schon einmal hatten
                Funktioniert wunderbar.

                Kommentar

                Lädt...
                X