Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: Externe API aufrufen nach Benutzer anlegen

  1. #1
    Contao-Nutzer
    Registriert seit
    18.06.2017.
    Beiträge
    219

    Standard Externe API aufrufen nach Benutzer anlegen

    Hallo Zusammen,

    wenn ein FE-Benutzer über das BE angelegt wurde, soll per API-Aufruf eine EMail-Weiterleitung bei einem Provider angelegt werden.
    An welcher Stelle kann ich denn da bei Contao "ansetzten"

    Im DCA habe ich ein entsprechende Feld für die Weiterleitungsadresse angelegt.

    Benutzerdaten im BE anlegen --> Speichern --> EMail und Weiterleitungsadresse an API übergeben.

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Für das Backend gibt es den config.oncreate Callback.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    18.06.2017.
    Beiträge
    219

    Standard

    Danke.

    Bedeutet für mich, ich arbeite mit der tl_member:

    Code:
    // src/EventListener/DataContainer/NewsOnsubmitCallbackListener.php
    namespace App\EventListener\DataContainer;
    
    use Contao\CoreBundle\ServiceAnnotation\Callback;
    use Contao\DataContainer;
    
    /**
     * @Callback(table="tl_member", target="config.onsubmit")
     */
    class MemberOnsubmitCallbackListener
    {
        public function __invoke(DataContainer $dc): void
        {
            // Do something …
        }
    }
    Richtig, oder?

    Kann ich den Namen der Klasse frei vergeben?


    War quatsch was ich hier geschrieben habe. Ich probiere es mal aus. Danke
    Geändert von darkness (15.04.2021 um 15:43 Uhr) Grund: Edit Typo

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Den Klassennamen kannst du frei vergeben, ja. In deinem Code Beispiel hast du nun aber config.onsubmit verwendet, nicht config.oncreate.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    18.06.2017.
    Beiträge
    219

    Standard

    Mal eine generelle Frage

    Wie kann ich mir denn z.B. ein array innerhalb der Funktion zu Debugzwecken anzeigen lassen? Ich hatte hier im Forum mal was dazu gelesen aber finde es gerade nicht wieder. Oder ging das nur über das FE?

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Einfach mit dump(). Das siehst du dann, wenn du den Debug-Modus aktiv hast, im Symfony Profiler.
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Nutzer
    Registriert seit
    18.06.2017.
    Beiträge
    219

    Standard

    hm, so richtig klappt das leider nicht:
    PHP-Code:
    <?php

    // src/EventListener/DataContainer/MemberOncreateCallbackListener.php
    namespace App\EventListener\DataContainer;

    use 
    Contao\CoreBundle\ServiceAnnotation\Callback;
    use 
    Contao\DataContainer;

    /**
     * @Callback(table="tl_member", target="config.oncreate")
     */
    class MemberOncreateCallbackListener
    {
        public function 
    __invoke(string $tableint $ID, array $fieldsDataContainer $dc): void
        
    {
            
    dump($dc);


        }
    }
    Aber im dump vom Profiler steht nichts.
    Geändert von darkness (15.04.2021 um 20:05 Uhr)

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Sieh dir im Profiler mal die Requests an. Du musst vermutlich den Post Request Suchen, wo der Eintrag tatsächlich erstellt wird.
    » sponsor me via GitHub or PayPal or Revolut

  9. #9
    Contao-Nutzer
    Registriert seit
    18.06.2017.
    Beiträge
    219

    Standard

    Guten Morgen.

    Unter POST Parameters steht auch nur:


    No POST parameters

    Edit: Was mit aufgefallen ist. Sobald ich im Bereich Mitglieder auf "Neu" klicke, erscheint kurz der (ich vermute) Inhalt vom DataContainer und verschwindet dann.


    Gefunden. Ich habe immer den Profiler aufgerufen. Stattdessen musste ich in der Debugleiste auf das "POST" klicken.

    screenshot.png

    Wann wird denn oncreate ausgeführt. Wenn der Datensatz in die DB geschrieben wird oder sobald ich einen neuen DS anlege?
    Geändert von darkness (16.04.2021 um 07:44 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •