TeamToy的SAE版默认新用户是没头像的,页面加载时会报404。在footer里面有一段js脚本会默认将404的头像都刷成u0.gif,不过还是会报404错误。
查看源码,发现根源在 core.function.php 里面:
function get_user_icon( $uid , $type = 'small' )
{
$s = new SaeStorage();
$user_file = $s->getUrl('user' , 'u' . intval($uid) . '.' . basename( $type ) . '.gif');
$default_file = 'static/data/user/u0.' . basename( $type ) . '.gif';
return $user_file;
/*
if( file_exists( $user_fileloc ) )
return $user_file;
else
return $default_file;
*/
}
这里原本有一个判定,但是因为sae一开始不认从storage里面判定 file_exists 或是 is_file 这种写法,所以 @Easy 后来才不得不用了js的方法。
现在,这个判定在SAE中可以执行了!只不过要换个写法。
最终代码参考:
function get_user_icon( $uid , $type = 'small' )
{
$s = new SaeStorage();
$user_file = $s->getUrl('user' , 'u' . intval($uid) . '.' . basename( $type ) . '.gif');
$user_fileloc = 'saestor://user/u' . intval($uid) . '.' . basename( $type ) . '.gif';
$default_file = 'static/data/user/u0.' . basename( $type ) . '.gif';
//return $user_file;
if( is_file( $user_fileloc ) )
return $user_file;
else
return $default_file;
}
转载于:https://blog.51cto.com/lazycai/784667