使用smarty后如何使用gravatar头像

#1 jiayan41

http://www.gravatar.com/avatar.php?gravatar_id= echo md5(<{$one.mail}>); ?>&rating=PG&size=32" width="32" height="32" style="border:3px solid FDCE80;" />

我能通过<{$one.mail}> 获得我的email地址,但是好像没法支持PHP啊

难道用smarty后没法使用gravatar头像 ?

2010-04-25 22:00:13

#2 jake

Smarty中的{php}{/php}标签,可以部分支持PHP语法。上面的md5运算,可以通过:



的形式来编码。

2010-04-25 22:17:16

#3 jiayan41

md5($one['mail']); 不知道是获取不到mail地址还是怎么的,无法显示。
换成md5('jiayan41@163.com');就可以显示图片了,奇怪

2010-04-25 22:36:05

#4 jake

smarty本身是没有md5函数的。不过这里提供另一个更方便的解决方法:
自定义一个函数togetavatar,然后使用spAddViewFunction来将其注册到模板内作为函数使用。

函数可以放到index.php内

function togetavatar($params)
{
        extract($params);
        $gravatar_id = md5($gravatar_id);
        return "http://www.gravatar.com/avatar.php?gravatar_id={$gravatar_id}&rating={$rating}&size={$size}";
}
然后在需要调用的控制器内,第一行加上spAddViewFunction('getavatar', 'togetavatar');

那么,在模板内,就可以使用:


来进行头像的调用了

2010-04-25 22:58:10

#5 jiayan41

非常帅,哈哈,终于用上了

2010-04-25 23:58:40

#6 47660666

不好意思挖个坟 Jake的方法很不错!

Smarty中要经常提醒自己PHP的代码不能用了,提前注册一个函数.学习了!!!

2012-04-20 14:01:38

#7 xiaopiao

谢谢jake的方法,又学到一招了

2012-04-21 18:03:04