您的位置:首页 > 运维架构

ecshop当前会员等级距离下一等级差多少积分显示

2014-04-01 15:47 519 查看
ecshop2.7.3在用户中心页面上显示当前会员等级以及距离下一等级差多少积分。

1、修改更目录下的user.php文件,找到如下代码(大约在93行左右):

//用户中心欢迎页
if ($action == 'default')
{
include_once(ROOT_PATH .'includes/lib_clips.php');

在这段代码的下方增加如下代码:
if ($rank = get_rank_info())
{
$smarty->assign('rank_name', sprintf($_LANG['your_level'], $rank['rank_name']));
if (!empty($rank['next_rank_name']))
{
$smarty->assign('next_rank_name', sprintf($_LANG['next_level'], $rank['next_rank'] ,$rank['next_rank_name']));
}
}

2、修改includes/lib_clips.php文件,在文件的末尾增加如下代码:
/*
* 取得用户等级信息
*/
function get_rank_info()
{
global $db,$ecs;

if (!empty($_SESSION['user_rank']))
{
$sql = "SELECT rank_name, special_rank FROM " . $ecs->table('user_rank') . " WHERE rank_id = '$_SESSION[user_rank]'";
$row = $db->getRow($sql);
if (empty($row))
{
return array();
}
$rank_name = $row['rank_name'];
if ($row['special_rank'])
{
return array('rank_name'=>$rank_name);
}
else
{
$user_rank = $db->getOne("SELECT rank_points FROM " . $ecs->table('users') . " WHERE user_id = '$_SESSION[user_id]'");
$sql = "SELECT rank_name,min_points FROM " . $ecs->table('user_rank') . " WHERE min_points > '$user_rank' ORDER BY min_points ASC LIMIT 1";
$rt = $db->getRow($sql);
$next_rank_name = $rt['rank_name'];
$next_rank = $rt['min_points'] - $user_rank;
return array('rank_name'=>$rank_name,'next_rank_name'=>$next_rank_name,'next_rank'=>$next_rank);
}
}
else
{
return array();
}
}

3、增加语言项,打开languages/zh_cn/user.php,在找到
$_LANG['your_integral'] = '积分';
(约在447行),在这行的下面增加下面的代码:

$_LANG['your_level'] = '您是%s';
$_LANG['next_level'] = ',积分累计到%s分即可申请%s ';
说明:上面的汉字可以根据实际需要修改。

4、打开用户中心模板文件 themes/default/user_clips.dwt (这里假设用的是默认模板),在需要的位置插入:
{$rank_name} {$next_rank_name}

这样就会显示如何格式的提示信息了:
您是普通会员,积分累计到1000分即可申请VIP会员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: