苹果CMSV10用户中心user模块完整开发教程
一、用户模块基础概况
用户模块算是苹果cms整套系统里面页面数量最多的模块,完整会员中心一共有22份html模板文件,大部分页面都配套前端AJAX接口交互逻辑,开发工作量很大,这也是市面上定制一套会员中心模板报价普遍偏高的原因。
文件存放目录:html/user/
对应模型:model('User')
模型mid:6,模板中可以直接使用{$maccms.mid}获取该模型编号
页面aid:6,用户中心全部页面aid统一为6
变量调用说明
登录状态下,用户中心内部所有页面都可以直接使用$obj读取用户信息。
如果是用户中心以外的页面,要读取登录用户数据,变量前缀改为$user,例如用户名{$user.user_name}。
注意:以上变量只在非静态模式生效,如果网站开启纯静态,用户信息建议用JS接口获取展示。
用户中心内部 $obj 常用字段
| {$obj.user_id} | 用户ID |
| {$obj.group_id} | 用户组ID |
| {$obj.group.group_name} | 用户组名称 |
| {$obj.user_name} | 登录账号 |
| {$obj.user_nick_name} | 用户昵称 |
| {$obj.user_qq} | 绑定QQ |
| {$obj.user_email} | 绑定邮箱 |
| {$obj.user_phone} | 绑定手机号 |
| {$obj.user_status} | 账号状态 |
| {$obj.user_portrait} | 用户头像 |
| {$obj.user_portrait_thumb} | 头像缩略图 |
| {$obj.user_points} | 可用积分 |
| {$obj.user_points_froze} | 冻结积分 |
| {$obj.user_reg_time} | 注册时间 |
| {$obj.user_login_time} | 本次登录时间 |
| {$obj.user_last_login_time} | 上次登录时间 |
| {$obj.user_login_num} | 登录总次数 |
| {$obj.user_pid} | 一级推广ID |
| {$obj.user_pid_2} | 二级推广ID |
| {$obj.user_pid_3} | 三级推广ID |
全局页面 $user 变量(非用户中心页面)
在首页、播放页等外部页面,登录用户信息读取示例:{$user.user_id}、{$user.user_name}、{$user.user_nick_name}、{$user.user_end_time}(会员到期时间)、{$user.group_id}。
二、各个页面文件说明与模板示例代码
1、登录页面 login.html
路径:html/user/login.html,账号密码登录表单,带验证码判断,AJAX提交登录。
<form method="post" id="fm" action="">
<h3>账户信息</h3>
<div class="group">
<label >账号</label>
<input type="text" id="user_name" name="user_name" placeholder="请输入您的登录账号">
</div>
<div class="group">
<label>密码</label>
<input type="password" id="user_pwd" name="user_pwd" placeholder="请输入您的登录密码">
</div>
{if condition="$GLOBALS['config']['user']['login_verify'] eq 1"}
<div class="group">
<label>验证码</label>
<input type="text" id="verify" name="verify" placeholder="请输入验证码">
<img id="verify_img" src="{:url('verify/index')}" onClick="this.src=this.src+'?'" alt="单击刷新" />
</div>
{/if}
<input type="button" id="btn_submit" value="立即登录">
</form>
<script type="text/javascript">
$(function(){
$("body").bind('keyup',function(event) {
if(event.keyCode==13){ $('#btn_submit').click(); }
});
$('#btn_submit').click(function() {
if ($('#user_name').val() == '') { alert('请输入用户!'); $("#user_name").focus(); return false; }
if ($('#user_pwd').val() == '') { alert('请输入密码!'); $("#user_pwd").focus(); return false; }
if ($('#verify').length> 0 && $('#verify').val() == '') { alert('请输入验证码!'); $("#verify").focus(); return false; }
$.ajax({
url: "{:url('user/login')}",
type: "post",
dataType: "json",
data: $('#fm').serialize(),
beforeSend: function () {
$("#btn_submit").css("background","#fd6a6a").val("loading...");
},
success: function (r) {
if(r.code==1){
location.href="{:url('user/index')}";
}
else{
alert(r.msg);
$('#verify_img').click();
}
},
complete: function () {
$("#btn_submit").css("background","#fa4646").val("立即登录");
}
});
});
});
</script>2、注册页面 reg.html
路径:html/user/reg.html,支持账号注册、手机验证码注册、邮箱验证码注册,后台配置自动切换表单。
3、会员首页 index.html
路径:html/user/index.html,展示用户基础资料、会员等级、注册登录信息、推广链接。
<div>
<p>用户名:{$obj.user_name}</p>
<p>所属会员组:{$obj.group.group_name}</p>
<p>会员期限:{$obj.user_end_time|mac_day}</p>
<p>QQ号码:{$obj.user_qq}</p>
<p>Email地址:{$obj.user_email}</p>
<p>注册时间:{$obj.user_reg_time|mac_day}</p>
<p>登陆IP:{$obj.user_login_ip|long2ip}</p>
<p>登陆时间:{$obj.user_login_time|mac_day}</p>
<p>账户积分:{$obj.user_points}</p>
{if $GLOBALS['config']['user']['invite_reg_points'] gt 0}
<p>推广注册链接:
<input value="{$maccms.http_type}{$maccms.site_url}{:mac_url('user/reg')}?uid={$obj.user_id}">
</p>
{/if}
</div>4、修改个人信息 info.html
路径:html/user/info.html,修改昵称、密码,绑定/解绑手机邮箱,修改密保问答。
5、权限页面 popedom.html
路径:html/user/popedom.html,变量$type_tree,输出当前用户拥有的栏目访问权限。
6、播放记录 plays.html
路径:html/user/plays.html,数组$list,volist循环,保存用户观看历史,支持单条、批量删除记录。
7、下载记录 downs.html
路径:html/user/downs.html,$list遍历下载历史记录。
8、我的收藏 favs.html
路径:html/user/favs.html,读取用户收藏视频、文章数据,支持删除收藏。
9、充值页面 buy.html
路径:html/user/buy.html,分为在线金额充值、卡密充值两套表单,提交生成充值订单。
10、订单支付页 pay.html
路径:html/user/pay.html,生成订单后跳转,选择支付渠道。
11、微信扫码支付 payment_weixin.html
路径:html/user/payment_weixin.html,展示支付二维码,JS轮询检测订单支付状态。
12、订单列表 orders.html
路径:html/user/orders.html,$list遍历充值订单,未支付订单可以再次发起支付。
13、卡密记录 cards.html
路径:html/user/cards.html,查看已经使用过的充值卡密记录。
14、积分日志 plog.html
路径:html/user/plog.html,记录积分增减明细,观看、充值、推广获得积分全部在这里。
15、提现表单与记录 cash.html
路径:html/user/cash.html,积分兑换现金提交提现申请,同时展示提现审核记录。
16、分销奖励 reward.html
路径:html/user/reward.html,三级分销收益记录页面。
17、会员升级 upgrade.html
路径:html/user/upgrade.html,消耗积分购买会员时长:包天、包周、包月、包年。
18、绑定手机/邮箱 bind.html
路径:html/user/bind.html,变量$ac,ac=phone绑定手机,ac=email绑定邮箱,发送验证码完成绑定。
19、找回密码 findpass.html
路径:html/user/findpass.html,密保问答方式重置密码。
20、短信邮箱找回 findpass_msg.html
路径:html/user/findpass_msg.html,通过手机或者邮箱接收验证码重置账号密码。
21、登录弹窗 ajax_login.html
路径:html/user/ajax_login.html,JS弹窗登录表单,home.js里面MAC.User.Login()调用,未登录弹出登录框。
22、登录后弹窗信息 ajax_info.html
登录成功之后弹窗展示用户简要信息,跳转会员中心、退出登录入口。
三、弹出登录调用代码
模板务必引入static/js/home.js,才能使用内置弹窗登录方法。
<a href="javascript:;" id="Login">会员</a>
<script>
$('body').on('click','#Login',function(){
MAC.User.Login();
});
</script>四、用户模块通用分页代码
plays、favs、orders、plog等所有列表页面统一分页标签变量$__PAGING__。
<div>
<em>共{$__PAGING__.record_total}条</em>
<a href="{$__PAGING__.page_url|str_replace='PAGELINK',1,###}">首页</a>
<a href="{$__PAGING__.page_url|str_replace='PAGELINK',$__PAGING__.page_prev,###}">上一页</a>
{volist name="$__PAGING__.page_num" id="num"}
{if condition="$__PAGING__['page_current'] eq $num"}
<a href="javascript:;">{$num}</a>
{else}
<a href="{$__PAGING__.page_url|str_replace='PAGELINK',$num,###}">{$num}</a>
{/if}
{/volist}
<a href="{$__PAGING__.page_url|str_replace='PAGELINK',$__PAGING__.page_next,###}">下一页</a>
<a href="{$__PAGING__.page_url|str_replace='PAGELINK',$__PAGING__.page_total,###}">尾页</a>
</div>五、开发注意要点
静态模式下$obj、$user服务端变量失效,用户信息要用前端接口获取渲染页面。
弹窗登录依赖home.js,自定义模板如果删掉该JS,弹窗登录功能直接失效。
表单全部使用AJAX异步提交,接口地址不要随意修改,和后端路由一一对应。
很多页面会读取后台用户配置,比如注册方式、验证码开关、提现比例,不要写死表单。
这份属于完整参考文档,实际做模板开发时,可以按需删减不需要的页面逻辑。
2、禁止恶意使用本站资源从事违法行为,一律用于者承担。
3、本站资源版权均归原作者所有,如需商业,请购买正版。
4、转载或引用本网站内容须注明原网址,并标明本网站网址:www.yszzq.com
