织梦实现在网站顶部显示会员登录信息
dedeCMS自带的模板中有互动中心模块,如下图所示:
由于会员登陆对我来说不是网站的重要模块且默认DedeCMS的会员中心模块的初始化很慢,常会显示“正在载入中,请稍候。。。”,
所以不想让它出现在首页上,而是想在顶层banner中显示自定义登录信息,如下图所示:
二、原理分析
我们来分析一下DedeCSM自带的模板是怎么实现会员中心及登录信息显示的内容的:
1、index.htm中定义了用户名密码模块:
<dd id="uc_member" > <div id="_userlogin"> <div> <form name="userlogin" action="{dede:global.cfg_memberurl/}/index_do.php" method="POST"> <input type="hidden" name="fmdo" value="login" /> <input type="hidden" name="dopost" value="login" /> <input type="hidden" name="keeptime" value="604800" /> <div><span>用户名:</span> <input type="text" name="userid" size="20" /> </div> <div><span>密码:</span> <input type="password" name="pwd" size="20" /> </div> {dede:php} if(preg_match("#2#", $safe_gdopen)) { echo ' <div><span>验证码:</span> <input type="text" name="vdcode" size="8" /> <img id="vdimgck" onClick="this.src=this.src+\'?\'" style="cursor:pointer;margin-left:0px;text-transform:uppercase;" alt="看不清?点击更换" src="'.$cfg_cmspath.'/include/vdimgck.php"/></div> '; } {/dede:php} <div> <button type="submit">登录</button> <a href=http://www.dede58.com/a/dedejq/"{dede:global.cfg_memberurl/}/index_do.php?fmdo=user&dopost=regnew" >注册帐号</a> <a href=http://www.dede58.com/a/dedejq/"{dede:global.cfg_memberurl/}/resetpassword.php">忘记密码?</a> </div> </form> </div> </div> <!-- /userlogin --> <script language="javascript" type="text/javascript">CheckLogin();</script> <div> <strong>最近登陆的会员</strong> <ul> {dede:memberlist row=6 signlen=30} <li><a href=http://www.dede58.com/a/dedejq/"[field:spaceurl/]" target="_blank"><img src=http://www.dede58.com/a/dedejq/"[field:face/]" alt='[field:spacename/]' width="52" height="52" />[field:uname/]</a></li> {/dede:memberlist} </ul> </div> <!-- /latestlogin --> </dd>从以上代码可以看出它只是显示一个界面而与,那么当我们输入用户名、密码,点登录后是怎么变为如下的结果呢:
2、在上面的代码中点了登录按钮后,由于没有指定button的onclick响应函数,所以默认submit会有一个跳转,页面会刷新。
当页面刷新时,就把index.htm的HTML再次执行一次。在上面代码的下面有这么一行代码:
<!-- /userlogin -->
<script language="javascript" type="text/javascript">CheckLogin();</script>
3、我们来看CheckLogin()的定义,它出现在index.htm的head区:
<link href=http://www.dede58.com/a/dedejq/"{dede:global.cfg_templets_skin/}/style/dedecms.css" rel="stylesheet" media="screen" type="text/css" /> <script language="javascript" type="text/javascript" src=http://www.dede58.com/a/dedejq/"{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script> <script language="javascript" type="text/javascript" src=http://www.dede58.com/a/dedejq/"{dede:global.cfg_cmspath/}/images/js/j.js" ></script> <script language="javascript" type="text/javascript" src=http://www.dede58.com/a/dedejq/"{dede:global.cfg_templets_skin/}/js/pic_scroll.js"></script> <script language="javascript" type="text/javascript"> <!-- $(function(){ $("a[_for]").mouseover(function(){ $(this).parents().children("a[_for]").removeClass("thisclass").parents().children("dd").hide(); $(this).addClass("thisclass").blur(); $("#"+$(this).attr("_for")).show(); }); $("a[_for=uc_member]").mouseover(); $("a[_for=flink_1]").mouseover(); }); function CheckLogin(){ var taget_obj = document.getElementById('_userlogin'); myajax = new DedeAjax(taget_obj,false,false,'','',''); myajax.SendGet2("{dede:global.cfg_cmspath/}/member/ajax_loginsta.php"); DedeXHTTP = null; } --> </script>CheckLogin()首先获得id为'_userlogin'的网页元素,其实这个元素就是我们的用户名密码登录模块;
然后调用DedeAjax函数,这个函数定义在{dede:global.cfg_cmsurl/}/include/dedeajax2.js文件(所以在前面引入了引javascript文件)
//gcontainer 是保存下载完成的内容的容器
//mShowError 是否提示错误信息
//DedeShowWait 是否提示等待信息
//mErrCon 服务器返回什么字符串视为错误
//mErrDisplay 发生错误时显示的信息
//mWaitDisplay 等待时提示信息
//默认调用 DedeAjax('divid',false,false,'','','')
function DedeAjax(gcontainer,mShowError,mShowWait,mErrCon,mErrDisplay,mWaitDisplay)
{
//用GET方式发送数据,阻塞模式
this.SendGet2 = function(purl) {
从以上我们知道为什么能显示登录结果的原因了:
通过调用通讯模块dedeajax2.js的功能根据{dede:global.cfg_cmspath/}/member/ajax_loginsta.php返回结果网页代码,然后在id为"_userlogin'"的地方显示。
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(984818011)进行交流。
- 织梦dede首页列表页获取文章对应的tag标签
- 织梦dede导航栏目顶级和二级判断二级输出不同url
- 织梦dede标签array runphp静态生成乱码BUG解决方法
- 织梦dede如何禁止会员发布文章内容带超链接
- 织梦ajax跨域提交自定义表单和跨域验证码问题
- 织梦CMS MIP文章内容页图片适配百度MIP规范
- 织梦CMS时间格式实现XX秒前、XX分钟前、XX天前
- 织梦DedeCMS更新系统缓存增加清理沉余缓存的功能
- 织梦CMS让channelartlist标签支持currentstyle属性的
- 织梦dede自带编辑器替换百度ueditor编辑器
- 织梦DEDECMS整站动态化或整站静态化设置方法
- 织梦dede 模板路径templets目录都有什么?