在使用Dedecms进行网站开发时,会员信息的调用是一个常见的需求。本文将详细介绍如何解决会员信息在个人模板info和index中的调用问题,帮助开发者更好地理解和应用Dedecms的功能。
会员信息的调用问题主要集中在两个方面:index.php和index_do.php文件由变量控制,首页模板需要在index.php中进行改写,而其他文件则需要参考会员文件夹下的Inc/space_action.php文件说明。
经过长时间的研究和代码分析,我们发现了一个关键点:会员个人空间模板(如index.htm和listarticle.htm)无法像infos.htm那样直接使用自定义联动数据调用语句。例如,以下代码会导致错误:
<?php echo GetEnumsValue('pfirst', $row['pfirst']); ?>
为了解决这个问题,我们需要对Inc/space_action.php文件进行修改。具体步骤如下:
首先,找到并复制以下代码块:
/*-------------------------
个人资料
function infos(){}
-------------------------*/
else if($action=='infos')
{
include_once(DEDEDATA.'/enums/nativeplace.php');
include_once(DEDEINC."/enums.func.php");
$row = $dsql->GetOne("select * from `dede_member_person` where mid='{$_vars['mid']}' ");
$dpl = new DedeTemplate();
$dpl->LoadTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/infos.htm");
$dpl->display();
}
然后,将这段代码粘贴到index.php文件中的适当位置,具体为:
/*-------------------------
//会员空间主页
function space_index(){}
-------------------------*/
else
{
require_once(DEDEMEMBER.'/inc/config_space.php');
if($action == '')
{
include_once(DEDEINC."/channelunit.func.php");
$dpl = new DedeTemplate();
$tplfile = DEDEMEMBER."/space/{$_vars['spacestyle']}/index.htm";
}
}
接下来,按照以下方式改写代码:
/*-------------------------
//会员空间主页 www.xxxx.com 网站建设
function space_index(){}
-------------------------*/
else
{
require_once(DEDEMEMBER.'/inc/config_space.php');
include_once(DEDEDATA.'/enums/nativeplace.php'); /*--后添加复制过来--*/
include_once(DEDEINC."/enums.func.php"); /*--后添加复制过来--*/
if($action == '')
{
include_once(DEDEINC."/channelunit.func.php");
$row = $dsql->GetOne("select * from `dede_member_person` where mid='{$_vars['mid']}' "); /*--后添加复制过来--*/
$dpl = new DedeTemplate();
$tplfile = DEDEMEMBER."/space/{$_vars['spacestyle']}/index.htm";
}
}
综上所述,只需要在相应位置添加以下三条语句即可解决问题:
include_once(DEDEDATA.'/enums/nativeplace.php'); /*--后添加复制过来--*/
include_once(DEDEINC."/enums.func.php"); /*--后添加复制过来--*/
$row = $dsql->GetOne("select * from `dede_member_person` where mid='{$_vars['mid']}' "); /*--后添加复制过来--*/
此外,对于其他页面,只需在Inc/space_action.php文件中统一添加这三条语句即可。
通过以上方法,可以有效解决Dedecms会员信息在个人模板info和index中的调用问题。希望这篇文章能够帮助到正在为此困扰的开发者们。