使用smarty后如何使用gravatar头像
发布于:2022-01-17 09:50:54
#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运算,可以通过:
;<{/php}>&rating=PG&size=32)
的形式来编码。
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