SMARTY Variable in PHP benutzen?

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Bl4ckSh33p, 20.01.2005.

  1. Bl4ckSh33p

    Bl4ckSh33p Thread Starter MacUser Mitglied

    Beiträge:
    5
    Zustimmungen:
    0
    MacUser seit:
    20.01.2005
    hi!
    ich würde gerne Gravatar.com Avatare in mein Forum einbauen (benutze KooBI und das benutzt http://smarty.php.net/ ) und hab bisher folgenden Code:


    Code:
    {assign var="gravatarmail" value=$post->poster->email}
    
    {php}
    $gravatardefault = "http://www.playbird.de/templates/standard/img/forum/noavatar.jpg";
    $gravatarsize = 80;
    $grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=".md5($gravatarmail)."&default=".urlencode($gravatardefault)."&size=".$gravatarsize;
    {/php}
    <img src="{php}echo $grav_url; {/php}" alt="" />

    aber es scheint so als ob die $gravatarmail im PHP Teil nicht von der Smarty Template übernommen wird sondern "$gravatarmail" wird umgewandelt.

    Weiß vielleicht jemand von euch wie ich das machen kann?
    geht das irgendwie mit smarty oder muß ich die email mit PHP aud der DB auslesen? Aber wie geht das genau?


    hab z.B. einfach direkt nochmal in PHP aus der MySQL Tabelle die email ausgelesen (mit require in der template die config datei mit den DB daten eingelesen) und andre sachen ausprobiert aber auch das hat nicht funktioniert
     
  2. aguilera

    aguilera MacUser Mitglied

    Beiträge:
    48
    Zustimmungen:
    0
    MacUser seit:
    09.03.2004
    Imo ist Deine assign Anweisung falsch. Kuck mal hier:
    http://smarty.php.net/manual/en/api.assign.php

    Ansonsten: warum liest Du nicht IN Deinem PHP Code die $_POST Variable aus?
    Das waere fuer mich das naheliegendste, wenn sie sonst nirgendwo fuer smarty gebraucht wird.
     
  3. Bl4ckSh33p

    Bl4ckSh33p Thread Starter MacUser Mitglied

    Beiträge:
    5
    Zustimmungen:
    0
    MacUser seit:
    20.01.2005
    also ich hatte das von ner anderen Seite wo das SMARTY Manual drauf war (die off. Seite war down).
    Wenn du mir sagen kannst wie das geht kann ich es gerne mal versuchen, hab aber leider noch nicht viel Ahnung von PHP.

    Die Email Adresse ist in der SMARTY Variable drin deshalb hab ich es so versucht.

    Bei http://www.gravatar.com gibts oben bei Implement auch ne Übersicht und wie das in PHP geht. Aber weil KooBI SMARTY benutzt hab ich es so versucht, hat nur leider bis jetzt nicht geklappt. :(
     
  4. aguilera

    aguilera MacUser Mitglied

    Beiträge:
    48
    Zustimmungen:
    0
    MacUser seit:
    09.03.2004
    Also in
    Code:
    $grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=".md5($gravatarmail)
    ersetze $gravatarmail durch $_POST['...']...
    $_POST kann wie ein Array angesprochen werden. Wie genau es bei Dir aussieht bzw. das es bei Dir enthaelt, weiss ich nicht.
    Fuer die Punkte schreibst Du dann den/die Feldnamen...
     
  5. Nogger

    Nogger MacUser Mitglied

    Beiträge:
    367
    Zustimmungen:
    0
    MacUser seit:
    03.08.2004
    Du kannst die Variable in dem php Abschnitt mit $smarty->_tpl_vars["gravatarmail"] ansprechen.

    Die Zuweiseung ist allerdings nicht nötig.

    Du kannst in dem php Abschnitt analog einfach $smarty->_tpl_vars["post"]->poster->email benutzen.
     
  6. Bl4ckSh33p

    Bl4ckSh33p Thread Starter MacUser Mitglied

    Beiträge:
    5
    Zustimmungen:
    0
    MacUser seit:
    20.01.2005
    Danke!
    hab es jetzt damit probiert, geht aber nicht ganz. da wird immer das default bild angezeigt. :(
    Code:
    {php}
    $default = "http://www.playbird.de/templates/standard/img/forum/noavatar.jpg";
    $size = 80;
    
    $grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=".md5($smarty->_tpl_vars["post"]->poster->email)."&amp;default=".urlencode($default)."&amp;size=".$size;
    {/php}
    <img src="{php} echo $grav_url; {/php}" alt="" />
    was passt da nicht?
     
    Zuletzt bearbeitet: 21.01.2005
  7. Nogger

    Nogger MacUser Mitglied

    Beiträge:
    367
    Zustimmungen:
    0
    MacUser seit:
    03.08.2004
    Prüf erstmal, ob die generierte URL die ist, die rauskommen sollte.

    Und ob $smarty->_tpl_vars["post"]->poster->email das gewünschte enthält, vielleicht geht es wider erwarten so mit Objekten nicht. Ich hatte bisher nur Arrays.
     
Die Seite wird geladen...

Diese Seite empfehlen