栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP > php开源框架 > dedecms

织梦实现在网站顶部显示会员登录信息

dedecms 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

织梦实现在网站顶部显示会员登录信息

一、需求描述

dedeCMS自带的模板中有互动中心模块,如下图所示:

 

由于会员登陆对我来说不是网站的重要模块且默认DedeCMS的会员中心模块的初始化很慢,常会显示“正在载入中,请稍候。。。”,

所以不想让它出现在首页上,而是想在顶层banner中显示自定义登录信息,如下图所示:

 

 

二、原理分析

我们来分析一下DedeCSM自带的模板是怎么实现会员中心及登录信息显示的内容的:

1、index.htm中定义了用户名密码模块:

最近登陆的会员
    {dede:memberlist row=6 signlen=30}
  • [field:uname/]
  • {/dede:memberlist}

 

从以上代码可以看出它只是显示一个界面而与,那么当我们输入用户名、密码,点登录后是怎么变为如下的结果呢:

2、在上面的代码中点了登录按钮后,由于没有指定button的onclick响应函数,所以默认submit会有一个跳转,页面会刷新。

当页面刷新时,就把index.htm的HTML再次执行一次。在上面代码的下面有这么一行代码:

 

      

 

3、我们来看CheckLogin()的定义,它出现在index.htm的head区:

 
 
 
 

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'"的地方显示。

 

ajax_loginsta.php的一部分代码如下:

require_once(dirname(__FILE__)."/config.php"); 
AjaxHead(); 
if($myurl == '') exit(''); 
$uid  = $cfg_ml->M_LoginID; 
  
!$cfg_ml->fields['face'] && $face = ($cfg_ml->fields['sex'] == '女')? 'dfgirl' : 'dfboy'; 
$facepic = empty($face)? $cfg_ml->fields['face'] : $GLOBALS['cfg_memberurl'].'/templets/images/'.$face.'.png'; 
?> 
 
    你好:M_UserName; ?>,欢迎登录  
     
 /index.php">" width="52" height="52" /> 
     
     
 
  • /guestbook_admin.php">我的留言
  • /mystow.php">我的收藏
  • /article_add.php">发表文章
  • /myfriend.php">好友管理
  • /visit-history.php">访客记录
  • /search.php">查找好友
/index.php">会员中心 | /edit_fullinfo.php">资料 | ">空间 | /index_do.php?fmdo=login&dopost=exit">退出登录

以上代码定义了我们看到的登录结果的样式。

三、修改代码

知道了显示的原理,接下来我们开始实现我们的功能:

1、定义显示的地方,并指定id。

在head.htm中添加:

 

   

      

         

         

         

            欢迎来到本网站, 请  

            登录  

            |注册 

         

         

      

 

 

2、添加javascript执行

 

 

3、自义javascript的CheckLogin_head()函数

为了使代码模块化,我们定义在head.htm里。

注意:得重新包含dedeajax2.js和j.js文件,因为虽然我们之前在index.htm中定义过了,但是是引用不到的。

 
 
  

 

4、其实第3步大家有注意到了我们是根据ajax_loginsta_head.php文件来获得结果HTML代码的。

ajax_loginsta_head.php文件是由ajax_loginsta.php 复制粘贴出来的,我们在它的基础上改为:

require_once(dirname(__FILE__)."/config.php"); 
AjaxHead(); 
if($myurl == '') exit(''); 
  
$uid  = $cfg_ml->M_LoginID; 
  
!$cfg_ml->fields['face'] && $face = ($cfg_ml->fields['sex'] == '女')? 'dfgirl' : 'dfboy'; 
$facepic = empty($face)? $cfg_ml->fields['face'] : $GLOBALS['cfg_memberurl'].'/templets/images/'.$face.'.png'; 
?> 
  
 
     
    你好:M_UserName; ?>,欢迎登录 
     /index_do.php?fmdo=login&dopost=exit">退出登录  

 

OK,效果显示出来了。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/7679.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号