Discuz教程网

[代码修改] 用Javascript代码提醒Discuz 2.0用户更新头像插件

[复制链接]
authicon dly 发表于 2011-6-29 07:26:45 | 显示全部楼层 |阅读模式
上期介绍了一段通过Javascript代码提示用户登录注册的简单插件,准确的说,这个还不算插件,只是一段通过JS代码去分析用户是否登录并给予提示。
今天,再介绍一段用Javascript代码提醒用户进行头像更新的小插件。这段代码当然比上次的要复杂一些,主要是要通过JS去判断用户是否处于登录状态,如果是,那么用户是否有更新过头像,如果没有,那么就弹出提示框,要求用户更新。运行效果如下图:

总体来说,代码都非常精简。力求做到不更改源代码,不安装多余插件,不管哪位用户将代码拷过去,基本上都保证可以使用。下面放出本段代码:
  1. <!--以下代码适用于Discuz 2.0 请根据自己需要先更改Ucenter地址-->

  2. <!--其他版本暂未作测试,可根据情况自行查找页面不同元素加以判断-->

  3. <!--转载请注明 如有问题请去博客留言:http://www.nannannan.com/post/100.html-->

  4. <script language="javascript">

  5. function usernophoto(){

  6. showDialog('<font color=red>您尚未更新头像,无法发帖回复及下载资料!</font></br>请立即点此<a href="/home.php?mod=spacecp&ac=avatar"><font color=green><b>更新头像</b></font></a>','notice','友情提醒',null,1);

  7. }

  8. var userid=discuz_uid.toString();//获取用户当前id

  9. var imgurl="";//定义头像图片地址

  10. //下面定义Ucenter地址,末尾不要加“/”,请根据自己网站的情况替换!

  11. var ucenterurl="http://ucenter.mydomain.com/data/avatar";

  12. var isinspace=-1;//默认用户未处于更新头像页面。

  13. if(document.getElementById("ct"))//更新头像页面不再提醒

  14. {

  15. isinspace=document.getElementById("ct").innerHTML.indexOf("设置我的新头像");

  16. }

  17. if(parseInt(userid)>0&&isinspace==-1)

  18. {

  19. if(userid.length<=2)//以下判断uid位数,以确定其存放头像图片的具体路径。

  20. {

  21. if(userid.length==1){userid="0"+userid;}

  22. imgurl="/000/00/00/"+userid+"_avatar_small.jpg";

  23. }

  24. else if(userid.length>2&&userid.length<=4)

  25. {

  26. var strend=userid.slice(-2);

  27. var strstar=userid.slice(0,userid.length-2);

  28. if(strstar.length==1){strstar="0"+strstar;}

  29. imgurl="/000/00/"+strstar+"/"+strend+"_avatar_small.jpg";

  30. }

  31. else if(userid.length>4&&userid.length<=6)

  32. {

  33. var strend=userid.slice(-2);

  34. var strmid=userid.slice(-4).slice(0,2);

  35. var strstar=userid.slice(0,userid.length-4);

  36. if(strstar.length==1){strstar="0"+strstar;}

  37. imgurl="/000/"+strstar+"/"+strmid+"/"+strend+"_avatar_small.jpg";

  38. }

  39. else if(userid.length>6&&userid.length<=9)

  40. {

  41. var strend=userid.slice(-2);

  42. var strmid=userid.slice(-4).slice(0,2);

  43. var strstar=userid.slice(-6).slice(0,2);

  44. var strtop=userid.slice(0,userid.length-6);

  45. if(strtop.length==1){strtop="00"+strtop;}

  46. else if(strtop.length==2){strtop="0"+strtop;}

  47. imgurl="/"+strtop+"/"+strstar+"/"+strmid+"/"+strend+"_avatar_small.jpg";

  48. }

  49. imgurl=ucenterurl+imgurl;

  50. //如果调用头像图片错误,则会执行弹出提醒。

  51. document.write('<div style="display:none;height:0;"><img src="'+imgurl+'" width="0" height="0" onerror="usernophoto()" /></div>');

  52. }

  53. </script>
复制代码



具体使用方法和注意事项:

请将代码添加至Discuz后台——运营——站点广告——全局 底部通栏广告。新建一个通栏广告,将上述代码粘贴进去即可。
如果您之前也在此广告位上添加过登录注册代码,鉴于同一个广告位的代码是随机只取一条显示。那么,为了保证两个插件同时都可以使用,务必在添加代码时选择一下具体位置。Discuz后台通栏广告一共提供了三个位置,分别是位置底部通栏的上、中、下。因此,将两段代码选择为不同的位置即可实现全部应用的效果了。
一般来说,在注册/登录页面最好不要选择显示该段代码,以免用户在这两个页面登录或注册时还要提醒就显得不人性化了。
特别注意:使用本代码前,一定先将里面的Ucenter地址换为自己网站的,切记!
其他的不多说了,希望想体验的用户可以试下,有什么问题,请直接回复评论。





上一篇:招贤纳士_1314论坛诚招版主
下一篇:Discuz X2 完美的论坛头部二级导航代码(支持图片分类)仿官方二级导航
authicon 馥郁渊汀 发表于 2011-6-29 15:29:14 | 显示全部楼层
看看  好像不错
authicon YNKAZUKI 发表于 2011-6-29 15:29:49 | 显示全部楼层
很好 很强大。。谢谢分享
authicon haidideyu 发表于 2011-6-29 16:29:48 | 显示全部楼层
继续来索要
authicon yuki佳 发表于 2011-6-29 17:29:49 | 显示全部楼层
哦哦,发财了啊,看到好东西啦
authicon 咫尺天 发表于 2011-6-29 20:30:08 | 显示全部楼层
回贴下载呀
authicon icenna 发表于 2011-6-30 03:30:11 | 显示全部楼层
顶你一下,好贴要顶!
authicon 咫尺天 发表于 2011-6-30 07:29:57 | 显示全部楼层
楼主真强大
authicon NicoleOnly 发表于 2011-6-30 09:29:40 | 显示全部楼层
顶的就是你
authicon forever21 发表于 2011-6-30 10:30:00 | 显示全部楼层
顶的就是你
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 05:01

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表