Ergebnis 1 bis 4 von 4

Thema: Username mit Tags übergeben

  1. #1
    Contao-Nutzer
    Registriert seit
    14.02.2012.
    Beiträge
    2

    Standard Username mit Tags übergeben

    Sehr geehrte Contao Gemeinde,

    ich versuche leider bisher erfolglos den Benutzernamen des eigeloggten Benutzers einem php script zu übergeben.

    Meine Idee:
    Da der eingeloggte Benutzer mit {{user::username}} anzeigbar ist könnte ich mit Hilfe eines eigenen Modules "Eigener HTML Code" diesen tag verwenden und über die url übergeben:

    {{file::test.php?test={{user::username}}}}

    Das übernimmt Contao allerdings nicht, es wird dann bei der php Datei (es handelt sich dabei nur um ein simples echo), nur {{user}} ausgegeben, aber nicht der eigentliche Name.

    Hat jemand eine idee wie es anders funktionieren könnte?

    Vielen Dank im Vorraus!

  2. #2
    Contao-Fan Avatar von Russe
    Registriert seit
    23.10.2009.
    Beiträge
    729

    Standard

    Willkommen im Forum.

    Wenn ich das richtig verstanden habe (kenne mich da selbst nicht so gut aus), dann sind die Insert Tags dazu da, von HTML aus auf Variablen in php zuzugreifen. Normalerweise kannst du direkt innerhalb von php bleiben, da benötigst du keine Insert Tags.

    Mit folgendem Code kannst du dir alle verfügbaren Variablen in einem Tamplate anzeigen lassen: Aber Achtung, nicht in einem produktiven System verwenden, da sind je nach Template Zugangsdaten zur db drin.
    PHP-Code:
    <?php
    echo '<pre>';
    $this->showTemplateVars();
    echo 
    '</pre>';
    ?>
    Russe

  3. #3
    Contao-Fan Avatar von webster
    Registriert seit
    14.09.2010.
    Ort
    Kiel
    Beiträge
    460

    Standard

    Hallo und willkommen!

    Du brauchst diese Daten nicht an das Skript zu übergeben. Das Skript "kennt" diese Daten schon. Entweder kommst Du so da ran:

    PHP-Code:
    $this->import('FrontendUser','user');
    $username $this->user->username
    Oder Du nutzt die Methode replaceInsertTags()

    PHP-Code:
    $username $this->replaceInsertTags('{{user::username}}'); 
    Beides kannst Du direkt in Deiner Datei test.php verwenden. Voraussetzung dafür ist allerdings, dass die Datei per {{file::test.php}} eingebunden wird (wie Du es ja schon machst).

    Warum es über den GET-Paramter nicht funktioniert:

    In der Controller-Klasse (system/libraries/Controller.php) gibt es eine Methode replaceInsertTags. Dort findest Du folgende Zeile:

    PHP-Code:
    $tags preg_split('/{{([^}]+)}}/'$strBuffer, -1PREG_SPLIT_DELIM_CAPTURE); 

    Reguläre Ausdrücke sind nun wirklich gar nicht mein Fall, aber so wie ich das sehe liegt es daran, dass Du zwei Insert-Tags ineinander verschachtelst. Das "versteht" die Funktion preg_split in dieser Methode nicht und liefert daher auch nicht das gewünschte Ergebnis. (so oder so ähnlich verstehe ich es zumindest mit meinem gefährlichen Halbwissen
    )
    Was ist das? - Blaues Licht - Und was macht es? - Es leuchtet blau...

  4. #4
    Contao-Nutzer
    Registriert seit
    14.02.2012.
    Beiträge
    2

    Standard

    Dankeschön

    Das war genau das was ich gesucht habe! Dein Code funktioniert einwandfrei, und ich habe davor Stunden gesucht und bin nicht auf sowas gestoßen^^


    mfg a-fowl

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
  •