Contao-Camp 2024
Ergebnis 1 bis 11 von 11

Thema: Custom Mitgliederfelder im Template abfragen

  1. #1
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard Custom Mitgliederfelder im Template abfragen

    Hallo zusammen,

    ich habe bei Schülern (Mitglieder) ein Custom Feld "ausbildungsstand", auf das im Frontend gerne abfragen würde.

    Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['ausbildungsstand'] = [
        'label'         => ['Ausbildungsstand', 'Ausbildung abgeschlossen und Ausbildungsbestätigung erhalten'],
        'exclude'       => true,
        'filter'         => true,
        'inputType'     => 'select',
        'options'       => ['offen','abgeschlossen'],
        'eval'          => array('tl_class'=>'w25', 'mandatory'=>false, 'doNotCopy'=>true),
        'sql'           => "varchar(20) NOT NULL"
    ];
    Wie frage ich denn den Wert dieses Feld im Frontend Template vom aktuell eingeloggten Mitglied ab? Sprich if aussbildungsstand "offen" echo "foo".

    Ich kann es via {{user::ausbildungsstand}} zwar ausgeben, aber das Inserttag kann ich nicht in einer PHP Abfrage verwenden.


    VG Frank
    Geändert von Kahmoon (23.03.2022 um 09:39 Uhr)

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    was kommt den im Template alles an? bitte mal debuggen... sowas wie "..user->ausbildungsstand" sollte gehen

  3. #3
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Ich sehe nicht mehr als die Templatevariablen. Wie gebe ich ENV Variablen aus?

    $user->ausbildungsstand geht leider nicht. $user->username aber auch nicht

    Ich versuche es gerade mit

    Code:
    <?php $member = \Contao\MemberModel::findByPk($this->replaceInsertTags('{{user::username}}')); ?>
    Aber da kommt nur NULL
    Geändert von Kahmoon (23.03.2022 um 10:11 Uhr)

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    ich habe angenommen, du bist in einem Template wo Mitgliederdaten schon ausgegeben werden...

    bei findByPk müsstest Du nach dem Primärschlüssel - also der ID - fragen

    guck mal in https://github.com/contao/contao/blo...tTags.php#L395 wie Contao sich die Daten für die Inserttags holt

  5. #5
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Jein, ich bin auf einer Seite wo sich contao-eventsubscriptions die Daten von Anmeldungen ausgibt. Das sind nicht direkt Memberdaten. Dort frage ich allerdings bereits auf weitere Informationen des Mitglieds mit der unten stehenden Abfrage zu.

    Code:
    <?php if ($subscriber['member'] && ($member = \Contao\MemberModel::findByPk($subscriber['member'])) !== null): ?>
    Allerdings ist die Stelle, wo ich abfragen will, in einem anderen Template das dort am Ende noch eingefügt wird (Anmeldeformular). Also quasi Eventreader mit Anmeldung. Und genau dort soll ein Hinweis hin wenn jemand schon fertig ist.

    Wie komme ich denn im Frontend an meine ID? Dann könnte ich die selbe Query verwenden.

  6. #6
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    aus https://github.com/contao/contao/blo....php#L399-L400

    sollte gehen

    PHP-Code:
    $this->import(FrontendUser::class, 'User');
    $memberId $this->User->id

  7. #7
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Danke. Die ID wird nun ausgelesen aber die Abfrage mit der ID ergibt noch NULL


    PHP-Code:
        <?php
            $this
    ->import(FrontendUser::class, 'User');
            
    $memberId $this->User->id
            
    $member = \Contao\MemberModel::findByPk('$memberId');
            echo 
    $member->ausbildungsstatus;
        
    ?>

    Code:
    <?php var_dump($member); ?>
    Ist NULL

  8. #8
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    1. Debuggen ob hier eine ID kommt

    PHP-Code:
    $memberId $this->User->id;
    dump($memberId); 
    2. suchst du hier nach dem String "$memberId" und nicht nach der id in der Variablen - ändern in

    PHP-Code:
    $member = \Contao\MemberModel::findByPk($memberId);
    dump($member); 

  9. #9
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    ID wird ausgelesen. Das passt!

    Mit der Abfrage

    Code:
    $member = \Contao\MemberModel::findByPk($memberId);
    läuft die Seite auf einen Fehler:
    Code:
    {"route":"tl_page.418","route_parameters":{"_token_check":true,"_controller":"Contao\\FrontendIndex::renderPage","_scope":"frontend","_locale":"de","_format":"html","_canonical_route":"tl_page.418","parameters":"/revierarbeiten-hard-diverse-kurse-26-03-2022-9364","pageModel":{"Contao\\PageModel":[]},"_route":"tl_page.418","_route_object":{"Contao\\CoreBundle\\Routing\\Page\\PageRoute":[]}},"request_uri":"https://www.xxx.de/preview.php/intern/termin/revierarbeiten-hard-diverse-kurse-26-03-2022-9364.html","method":"GET"} []
    [2022-03-23T12:11:46.885332+01:00] request.CRITICAL: Uncaught PHP Exception Error: "Cannot use object of type Contao\MemberModel as array" at /homepages/46/xxxhtdocs/xxx-v3/templates/jbz-v2/eventsubscription_form.html5 line 90 {"exception":"[object] (Error(code: 0): Cannot use object of type Contao\\MemberModel as array at /homepages/46/xxx/htdocs/xxx-v3/templates/jbz-v2/eventsubscription_form.html5:90)"} []

  10. #10
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    die Meldung lässt vermuten, wir sehen nicht alle Zeilen aus Dem Template?!? - was steht denn in Zeile 90?

  11. #11
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Hier waren noch Testausgaben! Jetzt geht es! Danke!!!!!!

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
  •