SMARTY Variable in PHP benutzen?

Bl4ckSh33p

Neues Mitglied
Thread Starter
Dabei seit
20.01.2005
Beiträge
5
Reaktionspunkte
0
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
 
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. :(
 
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...
 
Bl4ckSh33p schrieb:
Code:
{assign var="gravatarmail" value=$post->poster->email}

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.
 
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:
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.
 
Zurück
Oben Unten