上期介绍了一段通过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地址换为自己网站的,切记!
其他的不多说了,希望想体验的用户可以试下,有什么问题,请直接回复评论。
|