用Javascript代码提醒Discuz 2.0用户更新头像插件
发布:Jack | 发布时间: 2011-06-29上期介绍了一段通过Javascript代码提示用户登录注册的简单插件,准确的说,这个还不算插件,只是一段通过JS代码去分析用户是否登录并给予提示。
今天,再介绍一段用Javascript代码提醒用户进行头像更新的小插件。这段代码当然比上次的要复杂一些,主要是要通过JS去判断用户是否处于登录状态,如果是,那么用户是否有更新过头像,如果没有,那么就弹出提示框,要求用户更新。运行效果如下图:

总体来说,代码都非常精简。力求做到不更改源代码,不安装多余插件,不管哪位用户将代码拷过去,基本上都保证可以使用。下面放出本段代码:
<!--以下代码适用于Discuz 2.0 请根据自己需要先更改Ucenter地址-->
<!--其他版本暂未作测试,可根据情况自行查找页面不同元素加以判断-->
<!--转载请注明 如有问题请去博客留言:http://www.nannannan.com/post/100.html-->
<script language="javascript">
function usernophoto(){
showDialog('<font color=red>您尚未更新头像,无法发帖回复及下载资料!</font></br>请立即点此<a href="/home.php?mod=spacecp&ac=avatar"><font color=green><b>更新头像</b></font></a>','notice','友情提醒',null,1);
}
var userid=discuz_uid.toString();//获取用户当前id
var imgurl="";//定义头像图片地址
//下面定义Ucenter地址,末尾不要加“/”,请根据自己网站的情况替换!
var ucenterurl="http://ucenter.mydomain.com/data/avatar";
var isinspace=-1;//默认用户未处于更新头像页面。
if(document.getElementById("ct"))//更新头像页面不再提醒
{
isinspace=document.getElementById("ct").innerHTML.indexOf("设置我的新头像");
}
if(parseInt(userid)>0&&isinspace==-1)
{
if(userid.length<=2)//以下判断uid位数,以确定其存放头像图片的具体路径。
{
if(userid.length==1){userid="0"+userid;}
imgurl="/000/00/00/"+userid+"_avatar_small.jpg";
}
else if(userid.length>2&&userid.length<=4)
{
var strend=userid.slice(-2);
var strstar=userid.slice(0,userid.length-2);
if(strstar.length==1){strstar="0"+strstar;}
imgurl="/000/00/"+strstar+"/"+strend+"_avatar_small.jpg";
}
else if(userid.length>4&&userid.length<=6)
{
var strend=userid.slice(-2);
var strmid=userid.slice(-4).slice(0,2);
var strstar=userid.slice(0,userid.length-4);
if(strstar.length==1){strstar="0"+strstar;}
imgurl="/000/"+strstar+"/"+strmid+"/"+strend+"_avatar_small.jpg";
}
else if(userid.length>6&&userid.length<=9)
{
var strend=userid.slice(-2);
var strmid=userid.slice(-4).slice(0,2);
var strstar=userid.slice(-6).slice(0,2);
var strtop=userid.slice(0,userid.length-6);
if(strtop.length==1){strtop="00"+strtop;}
else if(strtop.length==2){strtop="0"+strtop;}
imgurl="/"+strtop+"/"+strstar+"/"+strmid+"/"+strend+"_avatar_small.jpg";
}
imgurl=ucenterurl+imgurl;
//如果调用头像图片错误,则会执行弹出提醒。
document.write('<div style="display:none;height:0;"><img src="'+imgurl+'" width="0" height="0" onerror="usernophoto()" /></div>');
}
</script>
具体使用方法和注意事项:
请将代码添加至Discuz后台——运营——站点广告——全局 底部通栏广告。新建一个通栏广告,将上述代码粘贴进去即可。
如果您之前也在此广告位上添加过登录注册代码,鉴于同一个广告位的代码是随机只取一条显示。那么,为了保证两个插件同时都可以使用,务必在添加代码时选择一下具体位置。Discuz后台通栏广告一共提供了三个位置,分别是位置底部通栏的上、中、下。因此,将两段代码选择为不同的位置即可实现全部应用的效果了。
一般来说,在注册/登录页面最好不要选择显示该段代码,以免用户在这两个页面登录或注册时还要提醒就显得不人性化了。
特别注意:使用本代码前,一定先将里面的Ucenter地址换为自己网站的,切记!
其他的不多说了,希望想体验的用户可以试下,有什么问题,请直接回复评论。
本文版权归“独语斜栏” 转载请注明:http://www.nannannan.com/post/100.html
- 相关文章:
比插件更简单的Discuz 2.0 登录注册提示代码 (2011-6-25 18:23:33)
关于Discuz不得不说的话! (2011-5-24 15:47:2)
如何执行为innerHTML赋值的JS代码? (2010-7-1 2:21:39)
用Javascript仿博客多幅图片自动分页功能 (2010-6-12 2:20:58)
分享一下如何做DIV模态窗口 (2010-6-2 1:55:16)
关于安装和备份DiscuzX1时报错的解决方法 (2010-5-13 10:52:54)
- 1.房东夫妇
- 不行,修改头像后还提示Jack 于 2011-06-29 17:33:24 回复请确定是否将Ucenter地址更新为自己网站的,且是否为Discuz2.0版本,其他的我暂时还没有测试。
另外,请给地址我测试一下,谢谢! - 2011-06-29 13:12:05 回复该留言
- 2.北京婚纱摄影
- 呵呵,你在好好试试看 Jack 于 2011-06-29 17:33:58 回复如果有问题,请说明情况;
最好能够留下测试地址我去看一下! - 2011-06-29 16:54:11 回复该留言
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。





