Initial project files: BESCMS full source

This commit is contained in:
bes
2026-08-13 23:37:46 +08:00
parent fa6cddb540
commit 2e26f85723
2166 changed files with 396625 additions and 0 deletions
@@ -0,0 +1,41 @@
{template "header.html"}
{php echo \Phpcmf\Service::L('Field')->get('select')->get_select_search_code();}
<div class="note note-danger" {if !isset($get.submit)}style="display: none"{/if} id="table-search-tool">
<div class="row table-search-tool">
<form action="{SELF}" method="get">
{dr_form_search_hidden()}
<div class="col-md-12 col-sm-12">
<label>
<select name="field" class="form-control">
{loop $field $t}
{if dr_is_admin_search_field($t)}
<option value="{$t.fieldname}" {if $param.field==$t.fieldname}selected{/if}>{dr_lang($t.name)}</option>
{/if}
{/loop}
</select>
</label>
<label><i class="fa fa-caret-right"></i></label>
<label><input type="text" class="form-control" placeholder="" value="{$param['keyword']}" name="keyword" /></label>
</div>
<div class="col-md-12 col-sm-12">
<label><button id="table-search-tool-submit" type="button" class="btn blue btn-sm " name="submit" > <i class="fa fa-search"></i> {dr_lang('搜索')}</button></label>
<label><button id="table-search-tool-reset" type="reset" class="btn red btn-sm " name="reset" > <i class="fa fa-refresh"></i> {dr_lang('重置')}</button></label>
</div>
</form>
</div>
</div>
<div class="right-card-box">
<div id="toolbar" class="toolbar">
{$mytable.foot_tpl}
</div>
{template "mytable.html"}
</div>
{template "footer.html"}
@@ -0,0 +1,90 @@
{template "header.html"}
<form action="" class="form-horizontal" method="post" name="myform" id="myform">
{$form}
<div class="row myfbody">
<div class="col-md-12">
<div class="portlet light bordered">
<div class="portlet-title">
<div class="caption">
<span class="caption-subject font-green sbold ">{dr_lang('用户信息')}</span>
</div>
<div class="actions">
<div class="btn-group">
<a class="btn" href="{$reply_url}"> <i class="fa fa-mail-reply"></i> {dr_lang('返回列表')}</a>
</div>
</div>
</div>
<div class="portlet-body">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('账号')}</label>
<div class="col-md-9">
<p class="form-control-static">{Function_list::author($username)}</p>
</div>
</div>
{if $name}
<div class="form-group" id="dr_row_name">
<label class="col-md-2 control-label ">{MEMBER_CNAME}</label>
<div class="col-md-9">
<label><input type="text" class="form-control input-large" name="data[name]" value="{htmlspecialchars((string)$name)}"></label>
</div>
</div>
{/if}
{$myfield}
{$diyfield}
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('审核状态')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input name="data[status]" type="radio" value="1" checked /> {dr_lang('通过')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input name="data[status]" type="radio" value="0" /> {dr_lang('拒绝')} <span></span></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('拒绝理由')}</label>
<div class="col-md-9">
<textarea class="form-control" style="height:150px; width:100%;" id="dr_note" name="data[result]">{$result}</textarea>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('常用理由')}</label>
<div class="col-md-9">
<label>
<select class="form-control" onchange="javascript:$('#dr_note').val(this.value)">
<option value=""> -- </option>
{loop $verify_msg $t}
<option value="{$t}">{$t}</option>
{/loop}
</select>
</label>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('申请时间')}</label>
<div class="col-md-9">
<p class="form-control-static">{dr_date($inputtime)}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body form myfooter">
<div class="form-actions text-center">
<label><button type="button" onclick="dr_ajax_submit('{dr_now_url()}', 'myform', '2000', '{$reply_url}')" class="btn yellow"> <i class="fa fa-edit"></i> {dr_lang('审核资料')}</button></label>
</div>
</div>
</form>
{template "footer.html"}
+78
View File
@@ -0,0 +1,78 @@
{template "header.html"}
<form class="form-horizontal" method="post" role="form" id="myform">
{$form}
<div class="form-body">
<div class="form-group" id="dr_row_username">
<label class="col-xs-3 control-label ajax_name">{dr_lang('账号')}</label>
<div class="col-xs-7">
<input type="text" class="form-control" id="dr_username" name="data[username]">
</div>
</div>
<div class="form-group" id="dr_row_email">
<label class="col-xs-3 control-label ajax_name">{dr_lang('邮箱')}</label>
<div class="col-xs-7">
<input type="text" id="dr_email" class="form-control" name="data[email]">
</div>
</div>
<div class="form-group" id="dr_row_phone">
<label class="col-xs-3 control-label ajax_name">{dr_lang('手机')}</label>
<div class="col-xs-7">
<input type="text" id="dr_phone" class="form-control" name="data[phone]">
</div>
</div>
<div class="form-group" id="dr_row_name">
<label class="col-xs-3 control-label ajax_name">{MEMBER_CNAME}</label>
<div class="col-xs-7">
<input type="text" id="dr_row" class="form-control" name="data[name]">
</div>
</div>
<div class="form-group" id="dr_row_password">
<label class="col-xs-3 control-label ajax_name">{dr_lang('密码')}</label>
<div class="col-xs-7">
<input type="text" id="dr_password" class="form-control" name="data[password]">
</div>
</div>
<div class="form-group" id="dr_row_group">
<label class="col-xs-3 control-label ajax_name">{dr_lang('用户组')}</label>
<div class="col-xs-7">
<label>
<select name="data[groupid]" class="form-control">
<option value=""> -- </option>
{loop $group $t}
<option value="{$t.id}">{$t.name}</option>
{/loop}
</select>
</label>
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label ajax_name">{dr_lang('审核状态')}</label>
<div class="col-xs-7">
<input type="checkbox" name="status[is_verify]" value="1" checked data-on-text="{dr_lang('已审核')}" data-off-text="{dr_lang('未审核')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label ajax_name">{dr_lang('锁定状态')}</label>
<div class="col-xs-7">
<input type="checkbox" name="status[is_lock]" value="1" data-on-text="{dr_lang('已锁定')}" data-off-text="{dr_lang('未锁定')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label ajax_name">{dr_lang('手机认证')}</label>
<div class="col-xs-7">
<input type="checkbox" name="status[is_mobile]" value="1" data-on-text="{dr_lang('已认证')}" data-off-text="{dr_lang('未认证')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label ajax_name">{dr_lang('邮箱认证')}</label>
<div class="col-xs-7">
<input type="checkbox" name="status[is_email]" value="1" data-on-text="{dr_lang('已认证')}" data-off-text="{dr_lang('未认证')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
</div>
</div>
</div>
</form>
{template "footer.html"}
@@ -0,0 +1,57 @@
{template "header.html"}
<form class="form-horizontal" method="post" role="form" id="myform">
{$form}
<div class="form-body">
<div class="form-group" id="dr_row_group">
<label class="col-xs-3 control-label ">{dr_lang('用户组')}</label>
<div class="col-xs-7">
<label>
<select name="data[groupid]" class="form-control">
<option value=""> -- </option>
{loop $group $t}
<option value="{$t.id}">{$t.name}</option>
{/loop}
</select>
</label>
</div>
</div>
<div class="form-group" id="dr_row_all">
<label class="col-xs-3 control-label ">{dr_lang('用户集')}</label>
<div class="col-xs-7">
<textarea class="form-control" rows="10" name="data[all]"></textarea>
<span class="help-block">{dr_lang('批量格式:用户名|密码|邮箱|手机|姓名')}</span>
<span class="help-block">{dr_lang('回车符换行,如果参数为空请填写null')}</span>
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">{dr_lang('审核状态')}</label>
<div class="col-xs-7">
<input type="checkbox" name="status[is_verify]" value="1" checked data-on-text="{dr_lang('已审核')}" data-off-text="{dr_lang('未审核')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label ">{dr_lang('锁定状态')}</label>
<div class="col-xs-7">
<input type="checkbox" name="status[is_lock]" value="1" data-on-text="{dr_lang('已锁定')}" data-off-text="{dr_lang('未锁定')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label ">{dr_lang('手机认证')}</label>
<div class="col-xs-7">
<input type="checkbox" name="status[is_mobile]" value="1" data-on-text="{dr_lang('已认证')}" data-off-text="{dr_lang('未认证')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label ">{dr_lang('邮箱认证')}</label>
<div class="col-xs-7">
<input type="checkbox" name="status[is_email]" value="1" data-on-text="{dr_lang('已认证')}" data-off-text="{dr_lang('未认证')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
</div>
</div>
</div>
</form>
{template "footer.html"}
@@ -0,0 +1,102 @@
{template "header.html"}
<div class="note note-danger" {if !isset($get.submit)}style="display: none"{/if} id="table-search-tool">
<div class="row table-search-tool">
<form action="{SELF}" method="get">
{dr_form_search_hidden()}
<div class="col-md-12 col-sm-12">
<label>
<select name="field" class="form-control">
{loop $field $t}
{if dr_is_admin_search_field($t)}
<option value="{$t.fieldname}" {if $param.field==$t.fieldname}selected{/if}>{dr_lang($t.name)}</option>
{/if}
{/loop}
</select>
</label>
<label><i class="fa fa-caret-right"></i></label>
<label><input type="text" class="form-control" placeholder="" value="{$param['keyword']}" name="keyword" /></label>
</div>
<div class="col-md-12 col-sm-12">
<label><button type="submit" class="btn blue btn-sm onloading" name="submit" > <i class="fa fa-search"></i> {dr_lang('搜索')}</button></label>
</div>
</form>
</div>
</div>
<div class="right-card-box">
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
{if $ci->_is_admin_auth('del')}
<div class="bootstrap-table bootstrap-table2">
<div id="toolbar" class="toolbar">
<label><button type="button" onclick="dr_ajax_option('{dr_url($uriprefix.'/del')}', '{dr_lang('你确定要删除吗?')}', 1)" class="btn red btn-sm"> <i class="fa fa-trash"></i> {dr_lang('删除')}</button></label>
<label class="pull-right"> <button class="btn btn-default btn-sm" onclick="$('#table-search-tool').fadeToggle()" type="button" name="toggle"><i class="bi bi-search"></i> </button>
</label>
</div>
</div> <div class="clearfix"></div>
<div class="table-scrollable table-clearfix">
{else}
<div class="table-scrollable">
{/if}
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
<thead>
<tr class="heading">
{if $ci->_is_admin_auth('del')}
<th class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="group-checkable" data-set=".checkboxes" />
<span></span>
</label>
</th>
{/if}
<th width="150" class="{dr_sorting('username')}" name="username">{dr_lang('账号')}</th>
<th width="130" class="{dr_sorting('gid')}" name="gid">{dr_lang('用户组')}</th>
<th width="140" class="{dr_sorting('lid')}" name="lid">{dr_lang('级别')}</th>
<th width="140" class="{dr_sorting('price')}" name="price">{dr_lang('费用')}</th>
<th width="170" class="{dr_sorting('inputtime')}" name="inputtime">{dr_lang('申请时间')}</th>
<th width="80" style="text-align:center" class="{dr_sorting('status')}" name="status">{dr_lang('状态')}</th>
<th>{dr_lang('操作')}</th>
</tr>
</thead>
<tbody>
{loop $list $t}
<tr class="odd gradeX" id="dr_row_{$t.id}">
{if $ci->_is_admin_auth('del') || $ci->_is_admin_auth('edit')}
<td class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="checkboxes" name="ids[]" value="{$t.id}" />
<span></span>
</label>
</td>
{/if}
<td>{Function_list::author($t.username)}</td>
<td>{dr_lang($ci->member_cache['group'][$t.gid]['name'])}</td>
<td>{if $ci->member_cache['group'][$t.gid]['level'][$t.lid]['name']}{$ci->member_cache['group'][$t.gid]['level'][$t.lid]['name']}{else}{dr_lang('无')}{/if}</td>
<td>{if $ci->member_cache['group'][$t.gid]['unit']}{intval($t.price)}{SITE_SCORE}{else}{$t.price}{dr_lang('元')}{/if}</td>
<td>{dr_date($t.inputtime)}</td>
<td style="text-align:center">{if $t.status}<span class="label label-sm label-danger"> {dr_lang('被拒绝')} </span>{else}<span class="label label-sm label-success"> {dr_lang('待审核')} </span>{/if}</td>
<td>
{if $ci->_is_admin_auth('edit')}
<label><a href="{dr_url($uriprefix.'/edit', ['id'=>$t.id])}" class="btn btn-xs green"> <i class="fa fa-edit"></i> {dr_lang('详情')}</a></label>
{/if}
</td>
</tr>
{/loop}
</tbody>
</table>
</div>
{if $mypages}
<div class="row fc-list-footer table-checkable ">
<div class="col-md-12 fc-list-page">
{$mypages}
</div>
</div>
{/if}
</form>
</div>
{template "footer.html"}
@@ -0,0 +1,97 @@
{template "header.html"}
<div class="note note-danger">
<p>{dr_lang('用户自助申请用户组权限')}</p>
</div>
<form action="" class="form-horizontal" method="post" name="myform" id="myform">
{$form}
<div class="row myfbody ">
<div class="col-md-12">
<div class="portlet light bordered">
<div class="portlet-title">
<div class="caption">
<span class="caption-subject font-green sbold ">{dr_lang('申请详情')}</span>
</div>
<div class="actions">
<div class="btn-group">
<a class="btn" href="{$reply_url}"> <i class="fa fa-mail-reply"></i> {dr_lang('返回列表')}</a>
</div>
</div>
</div>
<div class="portlet-body">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('账号')}</label>
<div class="col-md-9">
<p class="form-control-static">{Function_list::author($username)}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('用户组')}</label>
<div class="col-md-9">
<p class="form-control-static">{$ci->member_cache['group'][$gid]['name']}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('组级别')}</label>
<div class="col-md-9">
<p class="form-control-static">{if $ci->member_cache['group'][$gid]['level'][$lid]['name']}{$ci->member_cache['group'][$gid]['level'][$lid]['name']}{else}{dr_lang('无')}{/if}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('申请费用')}</label>
<div class="col-md-9">
<p class="form-control-static">{if $ci->member_cache['group'][$gid]['unit']}{intval($price)}{SITE_SCORE}{else}{$price}{dr_lang('元')}{/if}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('审核状态')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input name="data[status]" type="radio" value="1" checked /> {dr_lang('通过')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input name="data[status]" type="radio" value="0" /> {dr_lang('拒绝')} <span></span></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('常用备注')}</label>
<div class="col-md-9">
<label>
<select class="form-control" onchange="javascript:$('#dr_note').val(this.value)">
<option value=""> -- </option>
{loop $verify_msg $t}
<option value="{$t}">{$t}</option>
{/loop}
</select>
</label>
</div>
</div>
{$myfield}
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('申请时间')}</label>
<div class="col-md-9">
<p class="form-control-static">{dr_date($inputtime)}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body form myfooter">
<div class="form-actions text-center">
<button type="button" onclick="dr_ajax_submit('{dr_now_url()}', 'myform', '2000', '{$reply_url}')" class="btn green"> <i class="fa fa-save"></i> {dr_lang('提交审核')}</button>
</div>
</div>
</form>
{template "footer.html"}
+152
View File
@@ -0,0 +1,152 @@
{template "header.html"}
<form class="form-horizontal" method="post" name="myform" id="myform">
{dr_form_hidden()}
<div class="portlet bordered light myfbody">
<div class="portlet-title">
<div class="caption">
<span class="caption-subject bold uppercase"><i class="fa fa-user"></i> {dr_lang('用户权限')}</span>
</div>
</div>
<div class="portlet-body">
<div class="form-body">
{if $is_cms}
<div class="alert alert-info" style="margin-bottom:20px;">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>
<i class="fa fa-info-circle"></i>
{dr_lang('内容相关权限(整站访问、模块访问、栏目权限等)已迁移至内容系统,请前往')}
<a href="{$cms_auth_url}" class="alert-link">{dr_lang('内容系统 → 权限设置 → 内容权限')}</a>
{dr_lang('进行配置。本页仅设置用户侧权限。')}
</div>
{/if}
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('模式选择')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input onclick="dr_auth_mode(0)" type="radio" name="auth_type" value="0" {if !$auth_type}checked=""{/if}> {dr_lang('按全局设置')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input onclick="dr_auth_mode(1)" type="radio" name="auth_type" value="1" {if $auth_type == 1}checked=""{/if}> {dr_lang('按用户组设置')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input onclick="dr_auth_mode(2)" type="radio" name="auth_type" value="2" {if $auth_type == 2}checked=""{/if}> {dr_lang('按用户组等级设置')} <span></span></label>
</div>
<span class="help-block">
{if !$auth_type}{dr_lang('全部用户共用同一套权限配置')}
{else if $auth_type == 1}{dr_lang('按用户组分别配置,可横向对比填写')}
{else}{dr_lang('按用户组等级分别配置,表头会标明所属用户组')}
{/if}
</span>
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<div style="border-top:1px solid #eee;margin:5px 0 20px;"></div>
</div>
</div>
{if $is_single}
{$form_html}
{else}
<div class="form-group">
<div class="col-md-12">
<div class="table-scrollable fc-auth-wrap">
<table class="table table-striped table-bordered table-hover fc-auth-table">
<thead>
<tr class="heading">{$thead_html}</tr>
</thead>
<tbody>{$tbody_html}</tbody>
</table>
</div>
</div>
</div>
{/if}
</div>
</div>
</div>
<div class="portlet-body form myfooter">
<div class="form-actions text-center">
<button type="button" onclick="dr_ajax_submit('{dr_now_url()}', 'myform', '2000')" class="btn green">
<i class="fa fa-save"></i> {dr_lang('保存权限配置')}
</button>
</div>
</div>
</form>
<script>
function dr_auth_mode(id) {
var loading = layer.load(2, {
shade: [0.3, '#fff'],
time: 100000000
});
$.ajax({
type: "GET",
dataType: "json",
url: "{dr_url('member/auth/save_edit')}&value=" + id,
success: function (json) {
layer.close(loading);
dr_cmf_tips(1, json.msg);
setTimeout(function () {
window.location.href = "{dr_url('member/auth/index')}";
}, 500);
},
error: function (HttpRequest, ajaxOptions, thrownError) {
layer.close(loading);
dr_ajax_alert_error(HttpRequest, this, thrownError);
}
});
}
</script>
<style>
.fc-auth-wrap { margin-bottom: 10px; }
.fc-auth-table { margin-bottom: 0; }
.fc-auth-table > thead > tr > th,
.fc-auth-table > tbody > tr > td {
vertical-align: middle !important;
}
.fc-auth-table .fc-auth-name {
width: 150px;
min-width: 150px;
background: #f9f9f9;
font-weight: 600;
white-space: nowrap;
position: sticky;
left: 0;
z-index: 2;
}
.fc-auth-table thead .fc-auth-name { z-index: 3; }
.fc-auth-table .fc-auth-col {
text-align: center;
min-width: 120px;
padding-top: 12px !important;
padding-bottom: 12px !important;
}
.fc-auth-table .fc-auth-check {
width: 16px;
height: 16px;
margin: 0;
padding: 0;
vertical-align: middle;
position: relative;
top: 0;
}
.fc-auth-table .fc-auth-gname {
display: block;
color: #999;
font-size: 12px;
font-weight: normal;
line-height: 1.3;
}
.fc-auth-table .fc-auth-lname {
display: block;
line-height: 1.4;
}
.fc-auth-table .fc-auth-num-cell { padding: 10px 6px !important; }
.fc-auth-table .fc-auth-num {
width: 120px;
margin: 3px auto;
}
.fc-auth-table .fc-auth-num .form-control { text-align: center; }
</style>
{template "footer.html"}
@@ -0,0 +1,104 @@
{if $is_ajax_edit}
{template "header.html"}
<script type="text/javascript">
$(function() { //防止回车提交表单
document.onkeydown = function(e){
var ev = document.all ? window.event : e;
if (ev.keyCode==13) {
return false;
}
}
});
</script>
<style>
.mt-checkbox-single {
margin-right: 10px;
}
</style>
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
{/if}
<div class="margin-bottom-5">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('访问')}
<input type="checkbox" class="checkboxes" {if $auth['category'][$mid]['show'] || !$auth['category'][$mid]} checked {/if} name="category[{$mid}][show]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('发布')}
<input type="checkbox" class="checkboxes" {if $auth['category'][$mid]['add']} checked {/if} name="category[{$mid}][add]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('修改')}
<input type="checkbox" class="checkboxes" {if $auth['category'][$mid]['edit']} checked {/if} name="category[{$mid}][edit]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('删除')}
<input type="checkbox" class="checkboxes" {if $auth['category'][$mid]['del']} checked {/if} name="category[{$mid}][del]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('验证码')}
<input type="checkbox" class="checkboxes" {if $auth['category'][$mid]['code']} checked {/if} name="category[{$mid}][code]" value="1" />
<span></span>
</label>
</div>
<div class="margin-bottom-15">
<label>
<select name="category[{$mid}][verify]" class="form-control">
<option value="0"> {dr_lang('不审核')} </option>
{loop $verify $v}
<option value="{$v.id}" {if $auth['category'][$mid]['verify'] == $v.id} selected{/if}> {dr_lang($v.name)} </option>
{/loop}
</select>
</label>
{if dr_is_app('explog')}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="category[{$mid}][exp]" value="{htmlspecialchars((string)$auth['category'][$mid]['exp'])}" class="form-control" placeholder="">
<span class="input-group-addon">+{SITE_EXPERIENCE}</span>
</div>
</div>
{/if}
{if dr_is_app('scorelog')}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="category[{$mid}][score]" value="{htmlspecialchars((string)$auth['category'][$mid]['score'])}" class="form-control" placeholder="">
<span class="input-group-addon">±{SITE_SCORE}</span>
</div>
</div>
{/if}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="category[{$mid}][money]" value="{htmlspecialchars((string)$auth['category'][$mid]['money'])}" class="form-control" placeholder="">
<span class="input-group-addon">±{dr_lang('金额')}</span>
</div>
</div>
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="category[{$mid}][day_post]" value="{htmlspecialchars((string)$auth['category'][$mid]['day_post'])}" class="form-control" placeholder="">
<span class="input-group-addon">{dr_lang('日投稿')}</span>
</div>
</div>
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="category[{$mid}][total_post]" value="{htmlspecialchars((string)$auth['category'][$mid]['total_post'])}" class="form-control" placeholder="">
<span class="input-group-addon">{dr_lang('投稿总数')}</span>
</div>
</div>
</div>
{loop $diy.category $d}
<div app="{$d.app}" class="margin-bottom-15">
{php $dfile=$d.file;}
{load "$dfile"}
</div>
{/loop}
<input type="hidden" name="category[{$mid}][test]" value="1">
{if $is_ajax_edit}
</form>
{/if}
@@ -0,0 +1,29 @@
{template "header.html"}
<script type="text/javascript">
$(function() { //防止回车提交表单
document.onkeydown = function(e){
var ev = document.all ? window.event : e;
if (ev.keyCode==13) {
return false;
}
}
});
</script>
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
<div class="form-body">
<div class="form-group">
<div class="col-xs-12">
{$select}
</div>
</div>
<div class="form-group">
<div class="col-xs-12">
{dr_lang('可以将本栏目的权限规则复制到其他栏目中去')}
</div>
</div>
</div>
</form>
{template "footer.html"}
@@ -0,0 +1,29 @@
{template "header.html"}
<script type="text/javascript">
$(function() { //防止回车提交表单
document.onkeydown = function(e){
var ev = document.all ? window.event : e;
if (ev.keyCode==13) {
return false;
}
}
});
</script>
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
<div class="form-body">
<div class="form-group">
<div class="col-xs-12">
{$select}
</div>
</div>
<div class="form-group">
<div class="col-xs-12">
{dr_lang('可以将本表单的权限规则复制到其他表单中去')}
</div>
</div>
</div>
</form>
{template "footer.html"}
@@ -0,0 +1,29 @@
{template "header.html"}
<script type="text/javascript">
$(function() { //防止回车提交表单
document.onkeydown = function(e){
var ev = document.all ? window.event : e;
if (ev.keyCode==13) {
return false;
}
}
});
</script>
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
<div class="form-body">
<div class="form-group">
<div class="col-xs-12">
{$select}
</div>
</div>
<div class="form-group">
<div class="col-xs-12">
{dr_lang('可以将本组的权限规则复制到其他组中去')}
</div>
</div>
</div>
</form>
{template "footer.html"}
@@ -0,0 +1,104 @@
{if $is_ajax_edit}
{template "header.html"}
<script type="text/javascript">
$(function() { //防止回车提交表单
document.onkeydown = function(e){
var ev = document.all ? window.event : e;
if (ev.keyCode==13) {
return false;
}
}
});
</script>
<style>
.mt-checkbox-single {
margin-right: 10px;
}
</style>
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
{/if}
<div class="margin-bottom-5">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('访问')}
<input type="checkbox" class="checkboxes" {if !$auth['form'] || $auth['form']['show']} checked {/if} name="form[show]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('发布')}
<input type="checkbox" class="checkboxes" {if !$auth['form'] || $auth['form']['add']} checked {/if} name="form[add]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('修改')}
<input type="checkbox" class="checkboxes" {if $auth['form'] && $auth['form']['edit']} checked {/if} name="form[edit]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('删除')}
<input type="checkbox" class="checkboxes" {if $auth['form'] && $auth['form']['del']} checked {/if} name="form[del]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('验证码')}
<input type="checkbox" class="checkboxes" {if !$auth['form'] || $auth['form']['code']} checked {/if} name="form[code]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('发布审核')}
<input type="checkbox" class="checkboxes" {if !$auth['form'] || $auth['form']['verify']} checked {/if} name="form[verify]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('修改审核')}
<input type="checkbox" class="checkboxes" {if $auth['form'] && $auth['form']['verify2']} checked {/if} name="form[verify2]" value="1" />
<span></span>
</label>
</div>
<div class="margin-bottom-15">
{if dr_is_app('explog')}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="form[exp]" value="{htmlspecialchars((string)$auth['form'] ? $auth['form']['exp'] : '')}" class="form-control" placeholder="">
<span class="input-group-addon">+{SITE_EXPERIENCE}</span>
</div>
</div>
{/if}
{if dr_is_app('scorelog')}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="form[score]" value="{htmlspecialchars((string)$auth['form'] ? $auth['form']['score'] : '')}" class="form-control" placeholder="">
<span class="input-group-addon">+{SITE_SCORE}</span>
</div>
</div>
{/if}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="form[day_post]" value="{htmlspecialchars((string)$auth['form'] ? $auth['form']['day_post'] : '')}" class="form-control" placeholder="">
<span class="input-group-addon">{dr_lang('日发布')}</span>
</div>
</div>
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="form[total_post]" value="{htmlspecialchars((string)$auth['form'] ? $auth['form']['total_post'] : '')}" class="form-control" placeholder="">
<span class="input-group-addon">{dr_lang('发布总数')}</span>
</div>
</div>
</div>
{loop $diy.form $d}
<div app="{$d.app}" class="margin-bottom-15">
{php $dfile=$d.file;}
{load "$dfile"}
</div>
{/loop}
<input type="hidden" name="form[test]" value="1">
{if $is_ajax_edit}
</form>
{/if}
@@ -0,0 +1,109 @@
{if $is_ajax_edit}
{template "header.html"}
<script type="text/javascript">
$(function() { //防止回车提交表单
document.onkeydown = function(e){
var ev = document.all ? window.event : e;
if (ev.keyCode==13) {
return false;
}
}
});
</script>
<style>
.mt-checkbox-single {
margin-right: 10px;
}
</style>
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
{/if}
<?php
if (!isset($auth['mform']) || !$auth['mform']) {
$auth['mform'] = [];
}
if (!isset($auth['mform'][$mid])) {
$auth['mform'][$mid] = [];
}
?>
<div class="margin-bottom-5">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('访问')}
<input type="checkbox" class="checkboxes" {if !$auth['mform'][$mid] || $auth['mform'][$mid]['show']} checked {/if} name="mform[{$mid}][show]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('发布')}
<input type="checkbox" class="checkboxes" {if !$auth['mform'][$mid] || $auth['mform'][$mid]['add']} checked {/if} name="mform[{$mid}][add]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('修改')}
<input type="checkbox" class="checkboxes" {if $auth['mform'][$mid]['edit']} checked {/if} name="mform[{$mid}][edit]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('删除')}
<input type="checkbox" class="checkboxes" {if $auth['mform'][$mid]['del']} checked {/if} name="mform[{$mid}][del]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('验证码')}
<input type="checkbox" class="checkboxes" {if !$auth['mform'][$mid] || $auth['mform'][$mid]['code']} checked {/if} name="mform[{$mid}][code]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('发布审核')}
<input type="checkbox" class="checkboxes" {if !$auth['mform'][$mid] || $auth['mform'][$mid]['verify']} checked {/if} name="mform[{$mid}][verify]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('修改审核')}
<input type="checkbox" class="checkboxes" {if $auth['mform'][$mid]['verify2']} checked {/if} name="mform[{$mid}][verify2]" value="1" />
<span></span>
</label>
</div>
<div class="margin-bottom-15">
{if dr_is_app('explog')}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="mform[{$mid}][exp]" value="{htmlspecialchars((string)$auth['mform'][$mid]['exp'])}" class="form-control" placeholder="">
<span class="input-group-addon">+{SITE_EXPERIENCE}</span>
</div>
</div>
{/if}
{if dr_is_app('scorelog')}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="mform[{$mid}][score]" value="{htmlspecialchars((string)$auth['mform'][$mid]['score'])}" class="form-control" placeholder="">
<span class="input-group-addon">+{SITE_SCORE}</span>
</div>
</div>
{/if}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="mform[{$mid}][day_post]" value="{htmlspecialchars((string)$auth['mform'][$mid]['day_post'])}" class="form-control" placeholder="">
<span class="input-group-addon">{dr_lang('日发布')}</span>
</div>
</div>
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="mform[{$mid}][total_post]" value="{htmlspecialchars((string)$auth['mform'][$mid]['total_post'])}" class="form-control" placeholder="">
<span class="input-group-addon">{dr_lang('发布总数')}</span>
</div>
</div>
</div>
{loop $diy.mform $d}
<div app="{$d.app}" class="margin-bottom-15">
{php $dfile=$d.file;}
{load "$dfile"}
</div>
{/loop}
<input type="hidden" name="mform[{$mid}][test]" value="1">
{if $is_ajax_edit}
</form>
{/if}
@@ -0,0 +1,49 @@
{template "header.html"}
<form action="" class="form-horizontal" method="post" name="myform" id="myform">
{dr_form_hidden(['page' => $page])}
<div class="portlet bordered light myfbody">
<div class="portlet-title tabbable-line">
<ul class="nav nav-tabs" style="float:left;">
{if $diy.app}
<li class="active">
<a href="#tab_app" data-toggle="tab" onclick="$('#dr_page').val('app')"> <i class="fa fa-puzzle-piece"></i> {dr_lang('应用插件')} </a>
</li>
{/if}
</ul>
</div>
<div class="portlet-body">
<div class="tab-content">
<div class="tab-pane active" id="tab_app">
<div class="form-body">
{if $diy.app}
{loop $diy.app $d}
<div app="{$d.app}">
{php $dfile=$d.file;}
{load "$dfile"}
</div>
{/loop}
{else}
<div class="alert alert-info">{dr_lang('暂无应用插件权限项,用户权限请返回列表页统一设置')}</div>
{/if}
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body form myfooter">
<div class="form-actions text-center">
<button type="button" onclick="dr_ajax_submit('{dr_now_url()}&page='+$('#dr_page').val(), 'myform', '2000')" class="btn green"> <i class="fa fa-save"></i> {dr_lang('保存权限配置')}</button>
<a href="{dr_url('member/auth/index')}" class="btn default"> <i class="fa fa-mail-reply"></i> {dr_lang('返回')}</a>
</div>
</div>
</form>
<style>
.mt-checkbox-single {
margin-right: 10px;
}
</style>
{template "footer.html"}
@@ -0,0 +1,103 @@
{if $is_ajax_edit}
{template "header.html"}
<script type="text/javascript">
$(function() { //防止回车提交表单
document.onkeydown = function(e){
var ev = document.all ? window.event : e;
if (ev.keyCode==13) {
return false;
}
}
});
</script>
<style>
.mt-checkbox-single {
margin-right: 10px;
}
</style>
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
{/if}
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('访问')}
<input type="checkbox" class="checkboxes" {if $auth['share_category']['show'] || !$auth['share_category']} checked {/if} name="share_category[show]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('发布')}
<input type="checkbox" class="checkboxes" {if $auth['share_category']['add']} checked {/if} name="share_category[add]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('修改')}
<input type="checkbox" class="checkboxes" {if $auth['share_category']['edit']} checked {/if} name="share_category[edit]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('删除')}
<input type="checkbox" class="checkboxes" {if $auth['share_category']['del']} checked {/if} name="share_category[del]" value="1" />
<span></span>
</label>
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
{dr_lang('验证码')}
<input type="checkbox" class="checkboxes" {if $auth['share_category']['code']} checked {/if} name="share_category[code]" value="1" />
<span></span>
</label>
<br>
<label>
<select name="share_category[verify]" class="form-control">
<option value="0"> {dr_lang('不审核')} </option>
{loop $verify $v}
<option value="{$v.id}" {if $auth['share_category']['verify'] == $v.id} selected{/if}> {dr_lang($v.name)} </option>
{/loop}
</select>
</label>
{if dr_is_app('explog')}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="share_category[exp]" value="{htmlspecialchars((string)$auth['share_category']['exp'])}" class="form-control" placeholder="">
<span class="input-group-addon">+{SITE_EXPERIENCE}</span>
</div>
</div>
{/if}
{if dr_is_app('scorelog')}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="share_category[score]" value="{htmlspecialchars((string)$auth['share_category']['score'])}" class="form-control" placeholder="">
<span class="input-group-addon">±{SITE_SCORE}</span>
</div>
</div>
{/if}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="share_category[money]" value="{htmlspecialchars((string)$auth['share_category']['money'])}" class="form-control" placeholder="">
<span class="input-group-addon">±{dr_lang('金额')}</span>
</div>
</div>
{if !$is_ajax_edit}
<label>
<select class="form-control" name="share_category[type_post]">
<option value="0" {if !$auth['share_category']['type_post']} selected{/if}>{dr_lang('按栏目')}</option>
<option value="1" {if $auth['share_category']['type_post']} selected{/if}>{dr_lang('按模块')}</option>
</select>
</label>
{/if}
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="share_category[day_post]" value="{htmlspecialchars((string)$auth['share_category']['day_post'])}" class="form-control" placeholder="">
<span class="input-group-addon">{dr_lang('日投稿')}</span>
</div>
</div>
<div class="input-inline input-small">
<div class="input-group">
<input type="text" name="share_category[total_post]" value="{htmlspecialchars((string)$auth['share_category']['total_post'])}" class="form-control" placeholder="">
<span class="input-group-addon">{dr_lang('投稿总数')}</span>
</div>
</div>
<input type="hidden" name="category[{$mid}][test]" value="1">
{if $is_ajax_edit}
</form>
{/if}
+323
View File
@@ -0,0 +1,323 @@
{template "header.html"}
<div class="note note-danger">
<p>{dr_lang('用户详细资料')}</p>
</div>
{template "api_list_date_search.html"}
<script type="text/javascript">
function dr_add_group() {
var loading = layer.load(2, {
shade: [0.3,'#fff'], //0.1透明度的白色背景
time: 10000
});
$.ajax({
type: "POST",
dataType: "json",
url: '{dr_url('member/group/all_edit')}',
data: $("#myform").serialize(),
success: function(json) {
layer.close(loading);
if (json.code == 1) {
setTimeout("window.location.href='{dr_now_url()}&page="+$('#dr_page').val()+"'", 1000)
}
dr_layer_tips(json.msg);
},
error: function(HttpRequest, ajaxOptions, thrownError) {
dr_ajax_alert_error(HttpRequest, this, thrownError);;
}
});
}
function dr_delete(id) {
var loading = layer.load(2, {
shade: [0.3,'#fff'], //0.1透明度的白色背景
time: 10000
});
$.ajax({
type: "POST",
dataType: "json",
url: '{dr_url('member/group/del', ['uid'=>$id])}&id='+id,
data: $("#myform").serialize(),
success: function(json) {
layer.close(loading);
if (json.code == 1) {
setTimeout("window.location.href='{dr_now_url()}&page="+$('#dr_page').val()+"'", 1000)
}
dr_layer_tips(json.msg);
},
error: function(HttpRequest, ajaxOptions, thrownError) {
dr_ajax_alert_error(HttpRequest, this, thrownError);;
}
});
}
</script>
<form action="" class="form-horizontal" method="post" name="myform" id="myform">
{$form}
<div class="myfbody">
<div class="portlet bordered light ">
<div class="portlet-title tabbable-line">
<ul class="nav nav-tabs" style="float:left;">
<li class="{if $page==0}active{/if}">
<a href="#tab_0" data-toggle="tab" onclick="$('#dr_page').val('0')"> <i class="fa fa-cog"></i> {dr_lang('基本信息')} </a>
</li>
<li class="{if $page==1}active{/if}">
<a href="#tab_1" data-toggle="tab" onclick="$('#dr_page').val('1')"> <i class="fa fa-reorder"></i> {dr_lang('自定义字段')} </a>
</li>
<li class="{if $page==2}active{/if}">
<a href="#tab_2" data-toggle="tab" onclick="$('#dr_page').val('2')"> <i class="fa fa-gear"></i> {dr_lang('状态设置')} </a>
</li>
<li>
<a href="javascript:dr_iframe('{dr_lang('设置用户组')}', '{dr_url('member/home/group_edit', ['id'=>$id])}', '60%')" > <i class="fa fa-users"></i> {dr_lang('用户组')} </a>
</li>
<li class="{if $page==4}active{/if}">
<a href="#tab_4" data-toggle="tab" onclick="$('#dr_page').val('4')"> <i class="fa fa-qq"></i> {dr_lang('绑定账号')} </a>
</li>
<li class="{if $page==5}active{/if}">
<a href="#tab_5" data-toggle="tab" onclick="$('#dr_page').val('5')"> <i class="fa fa-calendar"></i> {dr_lang('登录记录')} </a>
</li>
</ul>
<div class="actions">
<div class="btn-group">
<a class="btn" href="{$reply_url}"> <i class="fa fa-mail-reply"></i> {dr_lang('返回列表')}</a>
</div>
</div>
</div>
<div class="portlet-body">
<div class="tab-content">
<div class="tab-pane {if $page==0}active{/if}" id="tab_0">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label "></label>
<div class="col-md-9">
<a href="javascript:dr_iframe_show('{dr_lang('头像设置')}', '{dr_url('api/avatar_edit', ['id'=>$id])}', '500px');"><img class="img-circle" src="{dr_avatar($id)}" style="width:50px;height:50px"></a>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label ">UID</label>
<div class="col-md-9">
<p class="form-control-static"> {$id} </p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('账号')}</label>
<div class="col-md-9">
<div class="input-group" style="width: 300px;">
<input type="text" readonly value="{$username}" class="form-control">
<span class="input-group-btn">
<a class="btn red" href="javascript:dr_iframe('{dr_lang("变更")}', '{dr_url("member/home/username_edit", ['id' => $id])}', '500px', '280px');"><i class="fa fa-edit"></i> {dr_lang('变更')}</a>
</span>
</div>
</div>
</div>
<div class="form-group" id="dr_row_name">
<label class="col-md-2 control-label ">{MEMBER_CNAME}</label>
<div class="col-md-9">
<label><input type="text" class="form-control input-large" id="dr_name" name="member[name]" value="{htmlspecialchars((string)$name)}"></label>
</div>
</div>
<div class="form-group" id="dr_row_phone">
<label class="col-md-2 control-label ">{dr_lang('手机')}</label>
<div class="col-md-9">
<label><input type="text" class="form-control input-large" id="dr_phone" name="member[phone]" value="{htmlspecialchars((string)$phone)}"></label>
</div>
</div>
<div class="form-group" id="dr_row_email">
<label class="col-md-2 control-label ">{dr_lang('邮箱')}</label>
<div class="col-md-9">
<label><input type="text" class="form-control input-large" id="dr_email" name="member[email]" value="{htmlspecialchars((string)$email)}"></label>
</div>
</div>
<div class="form-group" id="dr_row_password">
<label class="col-md-2 control-label ">{dr_lang('密码')}</label>
<div class="col-md-9">
<label><input type="text" class="form-control input-large" id="dr_password" name="password" placeholder="{dr_lang('留空表示不修改密码')}"></label>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('注册时间')}</label>
<div class="col-md-9">
{dr_fieldform($regfield['regtime'], $regtime)}
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('注册地址')}</label>
<div class="col-md-9">
{dr_fieldform($regfield['regip'], $regip)}
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('账户余额')}</label>
<div class="col-md-9">
<p class="form-control-static"> ¥{$money} </p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('随机验证码')}</label>
<div class="col-md-9">
<p class="form-control-static"> {$randcode} </p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('登录附加码')}</label>
<div class="col-md-9">
<p class="form-control-static"> {$login_attr} </p>
</div>
</div>
</div>
</div>
<div class="tab-pane {if $page==1}active{/if}" id="tab_1">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('账号')}</label>
<div class="col-md-9">
<p class="form-control-static"> {$username} </p>
</div>
</div>
{$myfield}
{$diyfield}
{if $field}
<script>
$(function () {
{loop $field $f}
$('#dr_row_{$f.fieldname} .col-md-10').append('<a style="color:red" href="javascript:dr_help(774);" class="form-control-static">{dr_lang('此字段在前端不可用')}</a>');
{/loop}
});
</script>
{/if}
</div>
</div>
<div class="tab-pane {if $page==2}active{/if}" id="tab_2">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('账号')}</label>
<div class="col-md-9">
<p class="form-control-static"> {$username} </p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('审核状态')}</label>
<div class="col-md-9" style="padding-top:3px">
<input type="checkbox" name="status[is_verify]" value="1" {if $is_verify}checked{/if} data-on-text="{dr_lang('已审核')}" data-off-text="{dr_lang('未审核')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<p class="help-block"> {dr_lang('当审核通过后才能正常操作网站')} </p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('锁定状态')}</label>
<div class="col-md-9" style="padding-top:3px">
<input type="checkbox" name="status[is_lock]" value="1" {if $is_lock}checked{/if} data-on-text="{dr_lang('已锁定')}" data-off-text="{dr_lang('未锁定')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<p class="help-block"> {dr_lang('锁定账号后,不能登录此账号进行操作网站')} </p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('手机认证')}</label>
<div class="col-md-9" style="padding-top:3px">
<input type="checkbox" name="status[is_mobile]" value="1" {if $is_mobile2}checked{/if} data-on-text="{dr_lang('已认证')}" data-off-text="{dr_lang('未认证')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<p class="help-block"> {dr_lang('账号的手机号码是否认证')} </p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('邮箱认证')}</label>
<div class="col-md-9" style="padding-top:3px">
<input type="checkbox" name="status[is_email]" value="1" {if $is_email}checked{/if} data-on-text="{dr_lang('已认证')}" data-off-text="{dr_lang('未认证')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<p class="help-block"> {dr_lang('账号的邮箱是否认证')} </p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('补全资料')}</label>
<div class="col-md-9" style="padding-top:3px">
<input type="checkbox" name="status[is_complete]" value="1" {if $is_complete}checked{/if} data-on-text="{dr_lang('已补全')}" data-off-text="{dr_lang('未补全')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<p class="help-block"> {dr_lang('账号资料是否补全')} </p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('上传头像')}</label>
<div class="col-md-9" style="padding-top:3px">
<input type="checkbox" name="status[is_avatar]" value="1" {if $is_avatar}checked{/if} data-on-text="{dr_lang('已上传')}" data-off-text="{dr_lang('未上传')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<p class="help-block"> {dr_lang('用户是否上传头像')} </p>
</div>
</div>
</div>
</div>
<div class="tab-pane {if $page==4}active{/if}" id="tab_4">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('账号')}</label>
<div class="col-md-9">
<p class="form-control-static"> {$username} </p>
</div>
</div>
{loop $oauth $t}
<div class="form-group">
<label class="col-md-2 control-label "><img class="img-circle" src="{$t.avatar}" style="width:50px;height:50px"></a> </label>
<div class="col-md-9">
<div class="form-control-static" style="padding-top: 18px;">
<label style="padding-right: 8px;"> <img src="{THEME_PATH}assets/oauth/{$t.oauth}.png"></label>
<label style="padding-right: 8px;"> {dr_html2emoji($t.nickname)} </label>
<label> <a href="javascript:;" onclick="dr_ajax_url('{dr_url('member/home/jb_del', ['tid'=>$t.oauth, 'id'=>$uid])}', '{dr_lang('你确定要解绑它吗?')}', 1)" class="btn red btn-xs"> <i class="fa fa-trash"></i> {dr_lang('解绑')}</a> </label>
</div>
</div>
</div>
{/loop}
</div>
</div>
<div class="tab-pane {if $page==5}active{/if}" id="tab_5">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('账号')}</label>
<div class="col-md-9">
<p class="form-control-static"> {$username} </p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label "> </label>
<div class="col-md-9">
<div class="table-scrollable table-scrollable-borderless">
<table class="table table-hover table-light">
<thead>
<tr class="uppercase">
<th width="160"> {dr_lang('登录时间')} </th>
<th> {dr_lang('登录地点')} </th>
</tr>
</thead>
<tbody>
{table table=member_login uid=$id order=logintime desc cache=0}
<tr>
<td> {dr_date($t.logintime)} </td>
<td>
<a href="https://www.baidu.com/s?wd={$t['loginip']}&action=xunruicms" target="_blank">{Ip::address($t['loginip'])}</a>
<span>{$t.useragent}</span>
</td>
</tr>
{/table}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body form myfooter">
<div class="form-actions text-center">
<label><button type="button" onclick="dr_ajax_submit('{dr_now_url()}&page='+$('#dr_page').val(), 'myform', '2000')" class="btn green"> <i class="fa fa-save"></i> {dr_lang('保存')}</button></label>
<label><a href="{dr_url('member/home/alogin_index', ['id'=>$id])}" target="_blank" class="btn red"> <i class="fa fa-user"></i> {dr_lang('授权登录')}</a></label>
</div>
</div>
</form>
{template "footer.html"}
@@ -0,0 +1,24 @@
{template "header.html"}
<form class="form-horizontal" method="post" role="form" id="myform">
{$form}
<div class="form-body">
<div class="form-group">
<label class="col-xs-3 control-label ajax_name">{dr_lang('账号')}</label>
<div class="col-xs-7">
<p class="form-control-static"> {$member.username} </p>
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label ajax_name">{dr_lang('新账号')}</label>
<div class="col-xs-7">
<input type="text" id="dr_name" class="form-control" value="{htmlspecialchars((string)$member.username)}" name="name">
</div>
</div>
</div>
</form>
{template "footer.html"}
+109
View File
@@ -0,0 +1,109 @@
{template "header.html"}
{php echo \Phpcmf\Service::L('Field')->get('select')->get_select_search_code();}
<div class="right-card-box">
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
{if $ci->_is_admin_auth('add')}
<div class="bootstrap-table bootstrap-table2">
<div id="toolbar" class="toolbar">
<label><button type="button" onclick="dr_ajax_option('{dr_url($uriprefix.'/add')}', '{dr_lang('你确定要这样操作吗?')}', 1)" class="btn green btn-sm"> <i class="fa fa-edit"></i> {dr_lang('批量划分')}</button></label>
<label style="min-width: 200px;">
<select name="groupid[]" class="bs-select form-control" multiple="multiple" data-actions-box="true" >
{loop $group $t}
<option value="{$t.id}">{dr_lang($t.name)}</option>
{/loop}
</select>
</label>
</div>
</div>
{/if}
<div class="table-scrollable">
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
<thead>
<tr class="heading">
{if $ci->_is_admin_auth('add')}
<th class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="group-checkable" data-set=".checkboxes" />
<span></span>
</label>
</th>
{/if}
<th width="250">{dr_lang('字段信息')}</th>
<th width="80" style="text-align:center">{dr_lang('注册显示')}</th>
<th>{dr_lang('字段划分情况')}</th>
</tr>
</thead>
<tbody>
{loop $list $t}
<tr class="odd gradeX" id="dr_row_{$t.id}">
{if $ci->_is_admin_auth('add')}
<td class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="checkboxes" name="ids[]" value="{$t.id}" />
<span></span>
</label>
</td>
{/if}
<td>{dr_lang($t.name)} / {$t.fieldname}</td>
<td style="text-align:center">
<a href="javascript:;" onclick="dr_ajax_open_close(this, '{dr_url($uriprefix.'/reg_edit', ['id'=>$t.id])}', 1);" class="badge badge-{if !$t.register}no{else}yes{/if}"><i class="fa fa-{if !$t.register}times{else}check{/if}"></i></a>
</td>
<td>
{loop $t.group $gid}
<label id="dr_row_{$t.id}_{$gid}"><a href="javascript:dr_delete('{$t.id}', '{$gid}');" class="btn btn-xs {if $color[$gid]}{$color[$gid]}{else}default{/if}">{dr_lang($group[$gid]['name'])} <i class="fa fa-times"></i> </a></label>
{/loop}
{if !$t.group}
<font color="red">{dr_lang('未划分字段不能在前端显示')}</font>
{else}
<label><a href="javascript:dr_ajax_confirm_url('{dr_url($uriprefix.'/all_del', ['id'=>$t.id])}', '{dr_lang('确定要删除该字段的全部用户组权限吗?')}', '{dr_now_url()}');" class="btn btn-xs red"> <i class="fa fa-trash"></i> {dr_lang('一键清除')} </a></label>
{/if}
</td>
</tr>
{/loop}
</tbody>
</table>
</div>
</form>
</div>
<script type="text/javascript">
function dr_delete(fid, gid) {
{if !$ci->_is_admin_auth('del')}
dr_tips(0, '{dr_lang('无权限删除')}');
return;
{/if}
var index = layer.load(2, {
shade: [0.3,'#fff'], //0.1透明度的白色背景
time: 10000
});
$.ajax({
type: "GET",
cache: false,
url: '{dr_url($uriprefix.'/del')}&fid='+fid+'&gid='+gid,
dataType: "json",
success: function (json) {
layer.close(index);
if (json.code == 1) {
$('#dr_row_'+fid+'_'+gid).hide();
dr_tips(1, json.msg);
} else {
dr_tips(0, json.msg);
}
},
error: function(HttpRequest, ajaxOptions, thrownError) {
dr_ajax_alert_error(HttpRequest, this, thrownError);;
}
});
}
</script>
{template "footer.html"}
+157
View File
@@ -0,0 +1,157 @@
{template "header.html"}
<link href="{THEME_PATH}assets/global/plugins/bootstrap-daterangepicker/daterangepicker.min.css" rel="stylesheet" type="text/css" />
<link href="{THEME_PATH}assets/global/plugins/bootstrap-timepicker/css/bootstrap-timepicker.min.css" rel="stylesheet" type="text/css" />
<link href="{THEME_PATH}assets/global/plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" rel="stylesheet" type="text/css" />
<script src="{THEME_PATH}assets/global/plugins/moment.min.js" type="text/javascript"></script>
<script src="{THEME_PATH}assets/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.finecms.js" type="text/javascript"></script>
<script src="{THEME_PATH}assets/global/plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.finecms.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$(".field_date_s").datetimepicker({
isRTL: false,
format: "yyyy-mm-dd hh:ii",
showMeridian: true,
autoclose: true,
pickerPosition: "bottom-right",
todayBtn: true
});
$(".field_date_e").datetimepicker({
isRTL: false,
format: "yyyy-mm-dd hh:ii",
showMeridian: true,
autoclose: true,
pickerPosition: "bottom-right",
todayBtn: true
});
});
function dr_add_group() {
var loading = layer.load(2, {
shade: [0.3,'#fff'], //0.1透明度的白色背景
time: 10000
});
$.ajax({
type: "POST",
dataType: "json",
url: '{dr_url('member/home/group_all_edit')}',
data: $("#myform2").serialize(),
success: function(json) {
layer.close(loading);
if (json.code == 1) {
setTimeout("window.location.reload(true)", 1000)
}
dr_layer_tips(json.msg);
},
error: function(HttpRequest, ajaxOptions, thrownError) {
dr_ajax_alert_error(HttpRequest, this, thrownError);;
}
});
}
function dr_delete(gid) {
var loading = layer.load(2, {
shade: [0.3,'#fff'], //0.1透明度的白色背景
time: 10000
});
$.ajax({
type: "POST",
dataType: "json",
url: '{dr_url('member/home/group_del', ['uid'=>$id])}&gid='+gid,
data: $("#myform2").serialize(),
success: function(json) {
layer.close(loading);
if (json.code == 1) {
setTimeout("window.location.reload(true)", 1000)
}
dr_layer_tips(json.msg);
},
error: function(HttpRequest, ajaxOptions, thrownError) {
dr_ajax_alert_error(HttpRequest, this, thrownError);;
}
});
}
</script>
<form class="form-horizontal " role="form" id="myform2">
{$form}
<input name="ids[]" value="{$id}" type="hidden">
<label>
<select name="groupid" class="form-control">
<option value=""> -- </option>
{loop $group $t}
<option value="{$t.id}" {if $param.groupid==$t.id}selected{/if}>{dr_lang($t.name)}</option>
{/loop}
</select>
</label>
<label><button style="padding: 6px;" type="button" onclick="dr_add_group()" class="btn green btn-sm onloading"> <i class="fa fa-plus"></i> {dr_lang('添加用户组')}</button></label>
</form>
<form class="form-horizontal myfbody" role="form" id="myform">
{$form}
<div class="table-scrollable ">
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
<thead>
<tr class="heading">
<th width="50"> </th>
<th width="150"> {dr_lang('用户组')} </th>
<th width="180"> {dr_lang('等级')} </th>
<th width="230"> {dr_lang('开始时间')} </th>
<th> {dr_lang('结束时间')} </th>
</tr>
</thead>
<tbody>
{loop $mygroup $i $t}
<tr class="odd gradeX">
<td><a href="javascript:dr_delete('{$t.gid}');" class="btn btn-xs red"> <i class="fa fa-times"></i> </a></td>
<td>{dr_lang($group[$t.gid]['name'])}</td>
<td>
{if $group[$t.gid]['setting']['level']['auto']}
{dr_lang($group[$t['gid']]['level'][$t.lid]['name'])}
{else}
<select name="data[{$t.gid}][lid]" class="form-control">
<option value="0"> -- </option>
{loop $group[$t['gid']]['level'] $lv}
<option value="{$lv.id}" {if $lv.id==$t.lid}selected{/if}>{dr_lang($lv.name)}</option>
{/loop}
</select>
{/if}
</td>
<td>
<div class="form-date input-group">
<div class="input-group date field_date_s">
<span class="input-group-btn">
<button class="btn default date-set" type="button">
<i class="fa fa-calendar"></i>
</button>
</span>
<input name="data[{$t.gid}][stime]" type="text" style="width:170px;" value="{dr_date($t.stime, 'Y-m-d H:i')}" class="form-control ">
</div>
</div>
</td>
<td>
<div class="form-date input-group">
<div class="input-group date field_date_e">
<span class="input-group-btn">
<button class="btn default date-set" type="button">
<i class="fa fa-calendar"></i>
</button>
</span>
<input name="data[{$t.gid}][etime]" type="text" style="width:170px;" value="{php echo $t.etime ? dr_date($t.etime, 'Y-m-d H:i') : dr_lang('长期');}" class="form-control ">
</div>
</div>
</td>
</tr>
{/loop}
</tbody>
</table>
</div>
</form>
{template "footer.html"}
@@ -0,0 +1,84 @@
{template "header.html"}
<div class="right-card-box">
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
{if $ci->_is_admin_auth('del')}
<div class="bootstrap-table bootstrap-table2">
<div id="toolbar" class="toolbar">
<label><button type="button" onclick="dr_ajax_option('{dr_url('member/group/del')}', '{dr_lang('你确定要删除吗?')}', 1)" class="btn red btn-sm"> <i class="fa fa-trash"></i> {dr_lang('删除')}</button></label>
</div>
</div>
{/if}
<div class="table-scrollable">
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
<thead>
<tr class="heading">
{if $ci->_is_admin_auth('del') || $ci->_is_admin_auth('edit')}
<th class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="group-checkable" data-set=".checkboxes" />
<span></span>
</label>
</th>
{/if}
<th style="text-align:center" width="70" class="{dr_sorting('displayorder')}" name="displayorder">{dr_lang('排序')}</th>
<th style="text-align:center" width="50" class="{dr_sorting('id')}" name="id">Id</th>
<th width="150" class="{dr_sorting('name')}" name="name">{dr_lang('名称')}</th>
<th style="text-align:center" width="90" class="{dr_sorting('unit')}" name="unit">{dr_lang('付费方式')}</th>
<th width="100" class="{dr_sorting('price')}" name="price">{dr_lang('价格')}</th>
<th style="text-align:center" width="90" class="{dr_sorting('register')}" name="register">{dr_lang('允许注册')}</th>
<th style="text-align:center" width="90" class="{dr_sorting('apply')}" name="apply">{dr_lang('允许申请')}</th>
<th>{dr_lang('操作')}</th>
</tr>
</thead>
<tbody>
{loop $list $t}
<?php $t['setting']=dr_string2array($t['setting']);?>
<tr class="odd gradeX" id="dr_row_{$t.id}">
{if $ci->_is_admin_auth('del') || $ci->_is_admin_auth('edit')}
<td class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="checkboxes" name="ids[]" value="{$t.id}" />
<span></span>
</label>
</td>
{/if}
<td style="text-align:center"> <input type="text" onblur="dr_ajax_save(this.value, '{dr_url($uriprefix.'/order_edit', ['id'=>$t.id])}')" value="{$t.displayorder}" class="displayorder form-control input-sm input-inline input-mini"> </td>
<td style="text-align:center"> {$t.id} </td>
<td>{dr_lang($t.name)}</td>
<td style="text-align:center" >{if $t.unit}{SITE_SCORE}{else}{dr_lang('人民币')}{/if}</td>
<td>{if $t.level && !$t.setting.level.auto}--{else}{$t.price}{/if}</td>
<td style="text-align:center">
<a href="javascript:;" onclick="dr_ajax_open_close(this, '{dr_url($uriprefix.'/register_edit', ['id'=>$t.id])}', 0);" class="badge badge-{if !$t.register}no{else}yes{/if}"><i class="fa fa-{if !$t.register}times{else}check{/if}"></i></a>
</td>
<td style="text-align:center">
<a href="javascript:;" onclick="dr_ajax_open_close(this, '{dr_url($uriprefix.'/apply_edit', ['id'=>$t.id])}', 0);" class="badge badge-{if !$t.apply}no{else}yes{/if}"><i class="fa fa-{if !$t.apply}times{else}check{/if}"></i></a>
</td>
<td>
{if $ci->_is_admin_auth('edit')}
<label><a href="{dr_url($uriprefix.'/edit', ['id'=>$t.id])}" class="btn btn-xs green"> <i class="fa fa-edit"></i> {dr_lang('修改')}</a></label>
{/if}
<label><a href="{dr_url($uriprefix.'/level_index', ['gid'=>$t.id])}" class="btn btn-xs dark"> <i class="fa fa-list-ol"></i> {dr_lang('等级制度')}</a></label>
</td>
</tr>
{/loop}
</tbody>
</table>
</div>
{if $mypages}
<div class="row fc-list-footer table-checkable ">
<div class="col-md-12 fc-list-page">
{$mypages}
</div>
</div>
{/if}
</form>
</div>
{template "footer.html"}
@@ -0,0 +1,272 @@
{template "header.html"}
<div class="note note-danger">
<p><a href="javascript:dr_update_cache('member');">{dr_lang('更改数据之后需要更新缓存之后才能生效')}</a></p>
</div>
<form action="" class="form-horizontal" method="post" name="myform" id="myform">
{$form}
<div class="portlet bordered light myfbody">
<div class="portlet-title tabbable-line">
<ul class="nav nav-tabs" style="float:left;">
<li class="{if $page==0}active{/if}">
<a href="#tab_0" data-toggle="tab" onclick="$('#dr_page').val('0')"> <i class="fa fa-cog"></i> {dr_lang('基本设置')} </a>
</li>
<li class="{if $page==2}active{/if}">
<a href="#tab_2" data-toggle="tab" onclick="$('#dr_page').val('2')"> <i class="fa fa-clock-o"></i> {dr_lang('有效期设置')} </a>
</li>
<li class="{if $page==1}active{/if}">
<a href="#tab_1" data-toggle="tab" onclick="$('#dr_page').val('1')"> <i class="fa fa-list-ol"></i> {dr_lang('等级升级规则')} </a>
</li>
</ul>
</div>
<div class="portlet-body">
<div class="tab-content">
<div class="tab-pane {if $page==2}active{/if}" id="tab_2">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('时长模式')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input onclick="dr_set_time(this.value)" name="setting[timetype]" type="radio" value="0" {if !$setting.timetype}checked{/if} /> {dr_lang('按组设置')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input onclick="dr_set_time(this.value)" name="setting[timetype]" type="radio" value="1" {if $setting.timetype}checked{/if} /> {dr_lang('按等级设置')} <span></span></label>
</div>
<span class="help-block"> {dr_lang('按等级设置时,每个等级分别设置有效期')} </span>
</div>
</div>
<div class="form-group mytime time1">
<label class="col-md-2 control-label ">{dr_lang('时长叠加')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input name="setting[timect]" type="radio" value="1" {if $setting.timect}checked{/if} /> {dr_lang('开启')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input name="setting[timect]" type="radio" value="0" {if !$setting.timect}checked{/if} /> {dr_lang('关闭')} <span></span></label>
</div>
<span class="help-block"> {dr_lang('叠加计算表示申请另外等级时有效期进行叠加计算,有效期不减少')} </span>
</div>
</div>
<div class="form-group mytime time0">
<label class="col-md-2 control-label ">{dr_lang('有效时长')}</label>
<div class="col-md-9">
<label><input type="text" class="form-control" name="data[days]" value="{intval($days)}"></label>
<label><select name="setting[dtype]" class="form-control">
<option value="0" {if !$setting.dtype} selected {/if}> {dr_lang('天')} </option>
<option value="1" {if 1 == $setting.dtype} selected {/if}> {dr_lang('月')} </option>
<option value="2" {if 2 == $setting.dtype} selected {/if}> {dr_lang('年')} </option>
</select></label>
<span class="help-block"> {dr_lang('0或留空表示永久')} </span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('过期自动续费')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input name="setting[timeout]" type="radio" value="1" {if $setting.timeout}checked{/if} /> {dr_lang('开启')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input name="setting[timeout]" type="radio" value="0" {if !$setting.timeout}checked{/if} /> {dr_lang('关闭')} <span></span></label>
</div>
<span class="help-block"> {dr_lang('当用户组过期之后尝试自动扣款,扣款不成功时就关闭该组')} </span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('到期后处理方式')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input onclick="dr_set_out(this.value)" name="setting[outtype]" type="radio" value="0" {if !$setting.outtype}checked{/if} /> {dr_lang('转为指定组')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input onclick="dr_set_out(this.value)" name="setting[outtype]" type="radio" value="2" {if $setting.outtype == 2}checked{/if} /> {dr_lang('跳转指定页面')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input onclick="dr_set_out(this.value)" name="setting[outtype]" type="radio" value="1" {if $setting.outtype == 1}checked{/if} /> {dr_lang('跳转续费页面')} <span></span></label>
</div>
</div>
</div>
<div class="form-group out0">
<label class="col-md-2 control-label ">{dr_lang('到期后转为')}</label>
<div class="col-md-9">
<label><select name="setting[out_gid]" class="form-control">
<option value="0"> -- </option>
{loop $ci->member_cache['group'] $t}
{if $t.id != $id}
<option value="{$t.id}" {if $t.id==$setting.out_gid} selected{/if}> {dr_lang($t.name)} </option>
{/if}
{/loop}
</select></label>
<span class="help-block"> {dr_lang('到期过后将转为指定组')} </span>
</div>
</div>
<div class="form-group out1">
<label class="col-md-2 control-label "></label>
<div class="col-md-9">
<span class="help-block"> {dr_lang('到期过后将强制跳转到用户组续费页面')} </span>
</div>
</div>
<div class="form-group out2">
<label class="col-md-2 control-label ">{dr_lang('跳转指定URL')}</label>
<div class="col-md-9">
<input type="text" class="form-control" name="setting[out_url]" value="{htmlspecialchars((string)$setting.out_url)}">
<span class="help-block"> {dr_lang('到期过后将强制跳转到指定的URL地址')} </span>
</div>
</div>
</div>
</div>
<div class="tab-pane {if $page==0}active{/if}" id="tab_0">
<div class="form-body">
<div class="form-group" id="dr_row_name">
<label class="col-md-2 control-label ">{dr_lang('名称')}</label>
<div class="col-md-9">
<label><input type="text" class="form-control" id="dr_name" name="data[name]" value="{htmlspecialchars((string)$name)}"></label>
<span class="help-block"> {dr_lang('用户组的描述名称')} </span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('付费方式')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
{if dr_is_app('scorelog')}<label class="mt-radio mt-radio-outline"><input name="data[unit]" type="radio" value="1" {if $unit}checked{/if} /> {SITE_SCORE} <span></span></label> {/if}
<label class="mt-radio mt-radio-outline"><input name="data[unit]" type="radio" value="0" {if !$unit}checked{/if} /> {dr_lang('人民币')} <span></span></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label ">{dr_lang('价格要求')}</label>
<div class="col-md-9">
{if $is_level && !$setting['level']['auto']}
<label style="display: none"><input type="hidden" class="form-control" name="data[price]" value="{htmlspecialchars((string)$price)}"></label>
<p class="form-control-static" style="color: #da3f3f"> {dr_lang('请在等级制度管理中设置对应的价格')} </p>
{else}
<label><input type="text" class="form-control" name="data[price]" value="{htmlspecialchars((string)$price)}"></label>
<span class="help-block"> {dr_lang('0或者留空表示免费组')} </span>
{/if}
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('允许注册')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input name="data[register]" type="radio" value="1" {if $register}checked{/if} /> {dr_lang('允许')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input name="data[register]" type="radio" value="0" {if !$register}checked{/if} /> {dr_lang('禁止')} <span></span></label>
</div>
<span class="help-block"> {dr_lang('如果是收费组开启注册时将无法完成收费功能,请慎重考虑')} </span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('允许申请')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input name="data[apply]" type="radio" value="1" {if $apply}checked{/if} /> {dr_lang('允许')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input name="data[apply]" type="radio" value="0" {if !$apply}checked{/if} /> {dr_lang('禁止')} <span></span></label>
</div>
<span class="help-block"> {dr_lang('已经注册成功的用户可以申请到该用户组下')} </span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('申请审核')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input name="setting[verify]" type="radio" value="1" {if $setting.verify}checked{/if} /> {dr_lang('审核')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input name="setting[verify]" type="radio" value="0" {if !$setting.verify}checked{/if} /> {dr_lang('不审核')} <span></span></label>
</div>
<span class="help-block"> {dr_lang('当开启申请时是否进入后台审核流程')} </span>
</div>
</div>
</div>
</div>
<div class="tab-pane {if $page==1}active{/if}" id="tab_1">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('升级方式')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input name="setting[level][auto]" onclick="dr_set_sjms(this.value)" type="radio" value="1" {if $setting.level.auto}checked{/if} /> {dr_lang('自动')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input name="setting[level][auto]" onclick="dr_set_sjms(this.value)" type="radio" value="0" {if !$setting.level.auto}checked{/if} /> {dr_lang('手动')} <span></span></label>
</div>
<span class="help-block"> {dr_lang('自动升级指当满足升级条件时系统自动变更等级')} </span>
</div>
</div>
<div class="form-group dr_sjms_1">
<label class="col-md-2 control-label">{dr_lang('自动升级条件')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input name="setting[level][unit]" type="radio" value="1" {if $setting.level.unit}checked{/if} /> {dr_lang('消费额')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input name="setting[level][unit]" type="radio" value="0" {if !$setting.level.unit}checked{/if} /> {SITE_EXPERIENCE} <span></span></label>
</div>
<span class="help-block"> {dr_lang('消费额指账户消费金额的累计,%s指通过用户规则获得奖励值', SITE_EXPERIENCE)} </span>
</div>
</div>
<div class="form-group dr_sjms_0">
<label class="col-md-2 control-label">{dr_lang('手动升级模式')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input name="setting[level][price]" type="radio" value="1" {if $setting.level.price}checked{/if} /> {dr_lang('原价')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input name="setting[level][price]" type="radio" value="0" {if !$setting.level.price}checked{/if} /> {dr_lang('补差价')} <span></span></label>
</div>
<span class="help-block"> {dr_lang('补差价模式值当前价格减去以前升级的价格')} </span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body form myfooter">
<div class="form-actions text-center">
<button type="button" onclick="dr_ajax_submit('{dr_now_url()}&page='+$('#dr_page').val(), 'myform', '2000')" class="btn green"> <i class="fa fa-save"></i> {dr_lang('保存')}</button>
</div>
</div>
</form>
<script type="text/javascript">
$(function() {
$(".dr_sjms_1").hide();
$(".dr_sjms_0").hide();
dr_set_sjms("{intval($setting['level']['auto'])}");
dr_set_time("{intval($setting['timetype'])}");
dr_set_out("{intval($setting['outtype'])}");
});
function dr_field_show(n, u) {
if (u) {
$('.field-'+n+' .list-field-cog').show();
} else {
$('.field-'+n+' .list-field-cog').hide();
}
}
function dr_set_sjms(id) {
if (id == 1) {
$(".dr_sjms_1").show();
$(".dr_sjms_0").hide();
} else {
$(".dr_sjms_1").hide();
$(".dr_sjms_0").show();
}
}
function dr_set_time(id) {
if (id == 1) {
$(".time1").show();
$(".time0").hide();
} else {
$(".time1").hide();
$(".time0").show();
}
}
function dr_set_out(id) {
if (id == 1) {
$(".out1").show();
$(".out0").hide();
$(".out2").hide();
} else if (id == 2) {
$(".out2").show();
$(".out0").hide();
$(".out1").hide();
} else {
$(".out1").hide();
$(".out2").hide();
$(".out0").show();
}
}
</script>
{template "footer.html"}
@@ -0,0 +1,80 @@
{template "header.html"}
<div class="note note-danger">
<p>{$group.name}</p>
</div>
<div class="right-card-box">
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
{if $ci->_is_admin_auth('del')}
<div class="bootstrap-table bootstrap-table2">
<div id="toolbar" class="toolbar">
<label><button type="button" onclick="dr_ajax_option('{dr_url($uriprefix.'/level_del', ['gid' => $gid])}', '{dr_lang('你确定要删除吗?')}', 1)" class="btn red btn-sm"> <i class="fa fa-trash"></i> {dr_lang('删除')}</button></label>
</div>
</div>
{/if}
<div class="table-scrollable">
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
<thead>
<tr class="heading">
{if $ci->_is_admin_auth('del') || $ci->_is_admin_auth('edit')}
<th class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="group-checkable" data-set=".checkboxes" />
<span></span>
</label>
</th>
{/if}
<th style="text-align:center" width="70" class="{dr_sorting('displayorder')}" name="displayorder">{dr_lang('排序')}</th>
<th width="50" class="{dr_sorting('id')}" name="id">Id</th>
<th width="150" class="{dr_sorting('name')}" name="name">{dr_lang('名称')}</th>
<th width="120" class="{dr_sorting('value')}" name="value">{dr_lang('升级要求')}</th>
{if $group.setting.timetype}
<th width="100">{dr_lang('有效时长')}</th>
{/if}
<th style="text-align:center" width="90" class="{dr_sorting('register')}" name="register">{dr_lang('允许升级')}</th>
<th>{dr_lang('操作')}</th>
</tr>
</thead>
<tbody>
{loop $list $t}
<?php $t.setting=dr_string2array($t.setting);?>
<tr class="odd gradeX" id="dr_row_{$t.id}">
{if $ci->_is_admin_auth('del') || $ci->_is_admin_auth('edit')}
<td class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="checkboxes" name="ids[]" value="{$t.id}" />
<span></span>
</label>
</td>
{/if}
<td style="text-align:center"> <input type="text" onblur="dr_ajax_save(this.value, '{dr_url($uriprefix.'/level_order_edit', ['id'=>$t.id, 'gid'=>$gid])}')" value="{intval($t.displayorder)}" class="displayorder form-control input-sm input-inline input-mini"> </td>
<td>{$t.id}</td>
<td>{dr_lang($t.name)}</td>
<td>{$t.value} {$dwz}</td>
{if $group.setting.timetype}
<td>{if $t.setting.days}{$t.setting.days} {dr_member_group_dtype($t['setting']['dtype'])} {else} {dr_lang('永久')} {/if}</td>
{/if}
<td style="text-align:center">
<a href="javascript:;" onclick="dr_ajax_open_close(this, '{dr_url($uriprefix.'/apply_level_edit', ['gid'=>$gid, 'id'=>$t.id])}', 0);" class="badge badge-{if !$t.apply}no{else}yes{/if}"><i class="fa fa-{if !$t.apply}times{else}check{/if}"></i></a>
</td>
<td>
{if $ci->_is_admin_auth('edit')}
<label><a href="{dr_url($uriprefix.'/level_edit', ['gid'=>$gid, 'id'=>$t.id])}" class="btn btn-xs green"> <i class="fa fa-edit"></i> {dr_lang('修改')}</a></label>
{/if}
</td>
</tr>
{/loop}
</tbody>
</table>
</div>
</form>
</div>
{template "footer.html"}
@@ -0,0 +1,92 @@
{template "header.html"}
<div class="note note-danger">
<p><a href="javascript:dr_update_cache('member');">{dr_lang('更改数据之后需要更新缓存之后才能生效')}</a></p>
</div>
<form action="" class="form-horizontal" method="post" name="myform" id="myform">
{$form}<input name="data[apply]" type="hidden" value="{$apply}">
<div class="portlet bordered light myfbody">
<div class="portlet-title">
<div class="caption">
<span class="caption-subject font-green "><i class="fa fa-list-ol"></i> {dr_lang('等级制度')}</span>
</div>
<div class="actions">
<div class="btn-group">
<a class="btn" href="{dr_url('member/group/level_index', ['gid'=>$gid])}"> <i class="fa fa-mail-reply"></i> {dr_lang('返回列表')}</a>
</div>
</div>
</div>
<div class="portlet-body">
<div class="tab-content">
<div class="form-body">
<div class="form-group" id="dr_row_name">
<label class="col-xs-2 control-label">{dr_lang('名称')}</label>
<div class="col-xs-8">
<label><input type="text" class="form-control" name="data[name]" value="{htmlspecialchars((string)$name)}"></label>
<span class="help-block">{dr_lang('给它一个描述名称')}</span>
</div>
</div>
{$myfield}
<div class="form-group" id="dr_row_value">
<label class="col-xs-2 control-label">{dr_lang('升级值')}</label>
<div class="col-xs-8">
<label><input type="text" class="form-control" name="data[value]" value="{intval($value)}"></label>
<label>{$dwz}</label>
<span class="help-block">{dr_lang('该等级需要的%s,升级值越低越排在前面,0表示初始等级', $group.unit ? SITE_SCORE : '人民币')}</span>
</div>
</div>
{if $group.setting.timetype && !$group['setting']['level']['auto']}
<div class="form-group">
<label class="col-xs-2 control-label">{dr_lang('续费值')}</label>
<div class="col-xs-8">
<label><input type="text" class="form-control" name="setting[xufei]" value="{php echo $setting.xufei ? intval($setting.xufei) : intval($value);}"></label>
<label>{$dwz}</label>
<span class="help-block">{dr_lang('该等级续费时需要的%s,留空表示按升级值续费', $group.unit ? SITE_SCORE : '人民币')}</span>
</div>
</div>
<div class="form-group mytime time0">
<label class="col-md-2 control-label ">{dr_lang('有效时长')}</label>
<div class="col-md-9">
<label><input type="text" class="form-control" name="setting[days]" value="{intval($setting.days)}"></label>
<label><select name="setting[dtype]" class="form-control">
<option value="0" {if !$setting.dtype} selected {/if}> {dr_lang('天')} </option>
<option value="1" {if 1 == $setting.dtype} selected {/if}> {dr_lang('月')} </option>
<option value="2" {if 2 == $setting.dtype} selected {/if}> {dr_lang('年')} </option>
</select></label>
<span class="help-block"> {dr_lang('0或留空表示永久')} </span>
</div>
</div>
{/if}
<div class="form-group" id="dr_row_note">
<label class="col-xs-2 control-label ">{dr_lang('备注说明')}</label>
<div class="col-xs-8">
<textarea class="form-control" rows="5" name="data[note]">{$note}</textarea>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body form myfooter">
<div class="form-actions text-center">
<button type="button" onclick="dr_ajax_submit('{dr_now_url()}&page='+$('#dr_page').val(), 'myform', '2000', '{php echo $id ? dr_now_url() : dr_url('member/group/level_index', ['gid'=>$gid])}')" class="btn green"> <i class="fa fa-save"></i> {dr_lang('保存')}</button>
</div>
</div>
</form>
<link href="{THEME_PATH}assets/global/plugins/bootstrap-touchspin/bootstrap.touchspin.css" rel="stylesheet" type="text/css" />
<script src="{THEME_PATH}assets/global/plugins/fuelux/js/spinner.min.js" type="text/javascript"></script>
<script src="{THEME_PATH}assets/global/plugins/bootstrap-touchspin/bootstrap.touchspin.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$("#displayorder").TouchSpin({
buttondown_class: "btn red",
buttonup_class: "btn green",
min: -255,
max: 255
});
});
</script>
{template "footer.html"}
+185
View File
@@ -0,0 +1,185 @@
{template "header.html"}
{php echo \Phpcmf\Service::L('Field')->get('select')->get_select_search_code();}
<div class="note note-danger" {if !isset($get.submit) && !$is_show_search_bar}style="display: none"{/if} id="table-search-tool">
<div class="row table-search-tool">
<form action="{SELF}" method="get">
{dr_form_search_hidden()}
{if $status}
<div class="col-md-12 col-sm-12">
<label>
<select name="status[]" class="form-control bs-select" data-title="{dr_lang('账号状态')}" multiple="multiple">
{loop $status $i $t}
<option value="{$i}" {if dr_in_array($i, $param.status)}selected{/if}>{dr_lang($t)}</option>
{/loop}
</select>
</label>
</div>
{/if}
<div class="col-md-12 col-sm-12">
<label style="min-width: 200px;">
<select name="groupid[]" class="form-control bs-select" multiple="multiple" data-title="{dr_lang('用户组')}" data-actions-box="true">
{loop $group $t}
<option value="{$t.id}" {if dr_in_array($t.id, $param.groupid)}selected{/if}>{dr_lang($t.name)}</option>
{/loop}
</select>
</label>
</div>
<div class="col-md-12 col-sm-12">
<label>
<select name="field" class="form-control">
<option value="id"> Id </option>
{loop $field $t}
{if dr_is_admin_search_field($t)}
<option value="{$t.fieldname}" {if $param.field==$t.fieldname}selected{/if}>{dr_lang($t.name)}</option>
{/if}
{/loop}
</select>
</label>
<label><i class="fa fa-caret-right"></i></label>
<label><input type="text" class="form-control" placeholder="" value="{$param['keyword']}" name="keyword" /></label>
</div>
<div class="col-md-12 col-sm-12">
<label><button id="table-search-tool-submit" type="button" class="btn blue btn-sm " name="submit" > <i class="fa fa-search"></i> {dr_lang('搜索')}</button></label>
<label><button id="table-search-tool-reset" type="reset" class="btn red btn-sm " name="reset" > <i class="fa fa-refresh"></i> {dr_lang('重置')}</button></label>
</div>
</form>
</div>
</div>
<div class="right-card-box">
<div id="toolbar" class="toolbar">
{$mytable.foot_tpl}
</div>
{template "mytable.html"}
<script>
$(function () {
var up = 0;
$('.dr_username_phone').each(function () {
var html = $(this).html();
if (html.length > 44) {
up = 1;
}
});
if (up == 0) {
$('.dr_username_phone').remove();
}
});
// ajax 批量操作确认
function dr_ajax_option_user(url, remove) {
layer.confirm(
'{dr_lang('全部删除: 会联动删除所属的内容和附件')}<br>'+
'{dr_lang('只删除账号: 不会影响该账号的相关数据和附件')}<br>',
{
icon: 3,
shade: 0,
area: ['500px', '220px'],
title: '{dr_lang('确认删除')}',
btn: ['{dr_lang('全部删除')}','{dr_lang('只删除账号')}', lang['esc']]
}, function(index){
layer.close(index);
var loading = layer.load(2, {
shade: [0.3,'#fff'], //0.1透明度的白色背景
time: 5000
});
$.ajax({
type: "POST",
dataType: "json",
url: url+'&sync=1',
data: $("#myform").serialize(),
success: function(json) {
layer.close(loading);
if (json.code) {
if (remove) {
// 批量移出去
var ids = json.data.ids;
if (typeof ids != "undefined" ) {
console.log(ids);
for ( var i = 0; i < ids.length; i++){
$("#dr_row_"+ids[i]).remove();
}
}
}
if (json.data.htmlfile) {
// 执行生成htmljs
$.ajax({
type: "GET",
url: json.data.htmlfile,
dataType: "jsonp",
success: function(json){ },
error: function(){ }
});
}
if (json.data.url) {
setTimeout("window.location.href = '"+json.data.url+"'", 2000);
} else {
setTimeout("window.location.reload(true)", 3000)
}
}
dr_cmf_tips(json.code, json.msg);
},
error: function(HttpRequest, ajaxOptions, thrownError) {
dr_ajax_alert_error(HttpRequest, this, thrownError);
}
});
}, function(index){
layer.close(index);
var loading = layer.load(2, {
shade: [0.3,'#fff'], //0.1透明度的白色背景
time: 5000
});
$.ajax({
type: "POST",
dataType: "json",
url: url+'&sync=0',
data: $("#myform").serialize(),
success: function(json) {
layer.close(loading);
if (json.code) {
if (remove) {
// 批量移出去
var ids = json.data.ids;
if (typeof ids != "undefined" ) {
console.log(ids);
for ( var i = 0; i < ids.length; i++){
$("#dr_row_"+ids[i]).remove();
}
}
}
if (json.data.htmlfile) {
// 执行生成htmljs
$.ajax({
type: "GET",
url: json.data.htmlfile,
dataType: "jsonp",
success: function(json){ },
error: function(){ }
});
}
if (json.data.url) {
setTimeout("window.location.href = '"+json.data.url+"'", 2000);
} else {
setTimeout("window.location.reload(true)", 3000)
}
}
dr_cmf_tips(json.code, json.msg);
},
error: function(HttpRequest, ajaxOptions, thrownError) {
dr_ajax_alert_error(HttpRequest, this, thrownError);
}
});
});
}
</script>
</div>
{template "footer.html"}
+31
View File
@@ -0,0 +1,31 @@
{template "header.html"}
<div class="table-scrollable table-scrollable-borderless" style="margin-top: -20px !important;">
<table class="table table-hover table-light">
<thead>
<tr class="heading">
<th width="220"> {dr_lang('时间 / 地点')} </th>
<th> {dr_lang('客户端详情')} </th>
</tr>
</thead>
<tbody>
{loop $list $i $t}
<tr class="odd gradeX">
<td>
<p style="margin: 8px 0">{dr_date($t.logintime)}</p>
<p style="margin: 8px 0"><a href="https://www.baidu.com/s?wd={$t['loginip']}&action=xunruicms" target="_blank">{Ip::address($t['loginip'])}</a></p>
</td>
<td> {str_replace(') ', ') <br>', $t.useragent)} </td>
</tr>
{/loop}
</tbody>
</table>
</div>
<div class="row fc-list-footer table-checkable ">
<div class="col-md-7 fc-list-page">
{$mypages}
</div>
</div>
{template "footer.html"}
@@ -0,0 +1,82 @@
{template "header.html"}
<form class="form-horizontal" method="post" role="form" id="myform">
{$form}
<div class="form-body">
{if $type}
<div class="form-group">
<label class="col-xs-3 control-label ajax_name">{dr_lang('所属菜单')}</label>
<div class="col-xs-8">
<label>
<select name="data[pid]" class="form-control">
{loop $top $t}
<option value="{$t.id}" {if $type==$t.id}selected{/if}>{$t.name}</option>
{/loop}
</select>
</label>
</div>
</div>
{/if}
<div class="form-group" id="dr_row_name">
<label class="col-xs-3 control-label ajax_name">{dr_lang('菜单名称')}</label>
<div class="col-xs-8">
<input type="text" class="form-control" id="dr_name" name="data[name]" value="{htmlspecialchars((string)$data.name)}">
</div>
</div>
<div class="form-group" id="dr_row_mark">
<label class="col-xs-3 control-label ajax_name">{dr_lang('标识字符')}</label>
<div class="col-xs-8">
<input type="text" class="form-control" id="dr_mark" name="data[mark]" value="{htmlspecialchars((string)$data.mark)}">
</div>
</div>
<div class="form-group" id="dr_row_icon">
<label class="col-xs-3 control-label ajax_name">{dr_lang('菜单图标')}</label>
<div class="col-xs-8">
<div class="input-group">
<input class="form-control" id="dr_icon" type="text" name="data[icon]" value="{htmlspecialchars((string)$data.icon)}" />
<span class="input-group-btn">
<a class="btn btn-success" href="{dr_url('api/icon')}" target="_blank"><i class="fa fa-arrow-right fa-fw" /></i> {dr_lang('查看')}</a>
</span>
</div>
</div>
</div>
{if $type}
<div class="form-group" id="dr_row_uri">
<label class="col-xs-3 control-label ajax_name">{dr_lang('系统路径')}</label>
<div class="col-xs-8">
<input type="text" class="form-control" id="dr_uri" name="data[uri]" value="{htmlspecialchars((string)$data.uri)}">
<span class="help-block">{dr_lang('格式为:模块目录名/控制器名/方法名,(不支持其他参数)')}</span>
</div>
</div>
<div class="form-group" id="dr_row_url">
<label class="col-xs-3 control-label ajax_name">{dr_lang('实际地址')}</label>
<div class="col-xs-8">
<input type="text" class="form-control" id="dr_url" name="data[url]" value="{htmlspecialchars((string)$data.url)}">
<span class="help-block">{dr_lang('填写完整的URL地址,优先于系统路径')}</span>
</div>
</div>
{/if}
<div class="form-group">
<label class="col-xs-3 control-label ajax_name">{dr_lang('排列顺序')}</label>
<div class="col-xs-8">
<input type="text" id="displayorder" class="form-control" name="data[displayorder]" value="{intval($data.displayorder)}">
<span class="help-block"> {dr_lang('排序值由小到大排列,范围为0-255')} </span>
</div>
</div>
</div>
</form>
<link href="{THEME_PATH}assets/global/plugins/bootstrap-touchspin/bootstrap.touchspin.css" rel="stylesheet" type="text/css" />
<script src="{THEME_PATH}assets/global/plugins/fuelux/js/spinner.min.js" type="text/javascript"></script>
<script src="{THEME_PATH}assets/global/plugins/bootstrap-touchspin/bootstrap.touchspin.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$("#displayorder").TouchSpin({
buttondown_class: "btn red",
buttonup_class: "btn green",
min: -255,
max: 255
});
});
</script>
{template "footer.html"}
@@ -0,0 +1,239 @@
{template "header.html"}
{php echo \Phpcmf\Service::L('Field')->get('select')->get_select_search_code();}
<div class="right-card-box">
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
<div class="bootstrap-table bootstrap-table2">
<div id="toolbar" class="toolbar">
{if $ci->_is_admin_auth('edit')}
<label style="min-width: 200px;margin-left: 0px;">
<select name="groupid[]" class="bs-select form-control" multiple="multiple" data-actions-box="true">
{loop $group $t}
<option value="{$t.id}">{dr_lang($t.name)}</option>
{/loop}
</select>
</label><label style="margin-left: -5px;"><button type="button" onclick="dr_ajax_option('{dr_url('member/menu/group_add')}', '{dr_lang('你确定要这样操作吗?')}', 1)" class="btn green btn-sm"> <i class="fa fa-edit"></i> {dr_lang('批量划分用户组可见权限')}</button></label>
<label style="min-width: 200px;margin-left: 0px;">
<select name="clientid[]" class="bs-select form-control" multiple="multiple" data-actions-box="true">
{loop $client $i $t}
<option value="{$i}">{dr_lang($t)}</option>
{/loop}
</select>
</label><label style="margin-left: -5px;"><button type="button" onclick="dr_ajax_option('{dr_url('member/menu/client_add')}', '{dr_lang('你确定要这样操作吗?')}', 1)" class="btn yellow btn-sm"> <i class="fa fa-edit"></i> {dr_lang('批量划分终端可见权限')}</button></label>
{if dr_count($ci->site_info) > 1}
<label style="min-width: 200px;margin-left: 0px;">
<select name="siteid[]" class="bs-select form-control" multiple="multiple" data-actions-box="true">
{loop $ci->site_info $t}
<option value="{$t.SITE_ID}">{$t.SITE_NAME}</option>
{/loop}
</select>
</label><label style="margin-left: -5px;"><button type="button" onclick="dr_ajax_option('{dr_url('member/menu/site_add')}', '{dr_lang('你确定要这样操作吗?')}', 1)" class="btn blue btn-sm"> <i class="fa fa-edit"></i> {dr_lang('批量划分站点可见权限')}</button></label>
{/if}
{/if}
</div>
</div>
<div class="table-scrollable">
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
<thead>
<tr class="heading">
{if $ci->_is_admin_auth('del')}
<th class="myselect">
<label class="mt-table mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="group-checkable" data-set=".checkboxes" />
<span></span>
</label>
</th>
{/if}
<th class="hidden-mobile" width="70" style="text-align:center"> {dr_lang('排序')} </th>
<th class="hidden-mobile" width="60" style="text-align:center"> {dr_lang('可见')} </th>
<th width="250"> {dr_lang('名称')} </th>
<th style="text-align:center" width="80">
{if $ci->_is_admin_auth('add')}<a href="javascript:dr_iframe('add', '{dr_url('member/menu/add', ['pid'=>0])}');" class="btn btn-xs blue"> <i class="fa fa-plus"></i> {dr_lang('添加')} </a>{/if}
</th>
<th> {dr_lang('用户组划分(默认全部组)')} </th>
<th> {dr_lang('终端划分')} </th>
{if dr_count($ci->site_info) > 1}
<th> {dr_lang('站点划分')} </th>
{/if}
</tr>
</thead>
<tbody>
{php $top=[];}
{loop $data $t}
{php $t.pid == 0 && $top[] = $t.id; $t.group = dr_string2array($t.group);$t.site = dr_string2array($t.site);$t.client = dr_string2array($t.client);}
{php $menu_level = $t['pid'] == 0 ? 1 : (dr_in_array($t['pid'], (array)$top) ? 2 : 3); }
{php $menu_top_id = $t['pid'] == 0 ? $t['id'] : (dr_in_array($t['pid'], (array)$top) ? $t['pid'] : $t['tid']); }
<tr class="odd gradeX {if $menu_level==1}menu-row-top{else}menu-row-child menu-row-top-{$menu_top_id}{/if}" id="dr_row_{$t.id}" data-top-id="{$menu_top_id}" data-level="{$menu_level}">
{if $ci->_is_admin_auth('del')}
<td class="myselect">
<label class="mt-table mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="checkboxes checkboxes{$t.tid} checkboxes{$t.pid} group-checkable" data-set=".checkboxes{$t.id}" name="ids[]" value="{$t.id}" />
<span></span>
</label>
</td>
{/if}
<td class="hidden-mobile" style="text-align:center"> <input type="text" onblur="dr_ajax_save(this.value, '{dr_url('member/menu/save_edit', ['id'=>$t.id])}', 'displayorder')" value="{$t.displayorder}" class="displayorder form-control input-sm input-inline input-mini"> </td>
<td class="hidden-mobile" style="text-align:center">
<a href="javascript:;" onclick="dr_ajax_open_close(this, '{dr_url('member/menu/use_edit', ['id'=>$t.id])}', 1);" class="badge badge-{if $t.hidden}no{else}yes{/if}"><i class="fa fa-{if $t.hidden}times{else}check{/if}"></i></a>
</td>
<td>
{if $menu_level==1}<a href="javascript:;" class="menu-tree-toggle" data-top-id="{$t.id}"><i class="fa fa-caret-right"></i></a>{/if}
{$t.spacer} <a href="javascript:dr_iframe('edit', '{dr_url('member/menu/edit', ['id'=>$t.id])}');"><i class="{$t.icon}"></i> {dr_lang($t.name)}</a>
</td>
<td style="text-align:center">
{if $ci->_is_admin_auth('add') && $t.pid == 0}<a href="javascript:dr_iframe('add', '{dr_url('member/menu/add', ['pid'=>$t.id])}', '', '{if @in_array($t.pid, $top)}500px{/if}');" class="btn btn-xs blue"> <i class="fa fa-plus"></i> {dr_lang('添加')} </a>{/if}
</td>
<td>
{if !$t.group}<label><a title="{dr_lang('全部')}" class="btn btn-xs dark" style="background-color:#3fa9e4;border-color:#3fa9e4"> {dr_lang('全部')} </a></label>{/if}
{loop $t.group $b $gid}
<label id="dr_row_{$t.id}_{$gid}"><a href="javascript:dr_delete('{$t.id}', '{$gid}');" class="btn btn-xs {if $color[$b]}{$color[$b]}{else}default{/if}">{$group[$gid]['name']} <i class="fa fa-times"></i> </a></label>
{/loop}
</td>
<td>
{if !$t.client}<label><a title="{dr_lang('全部')}" class="btn btn-xs dark" style="background-color:#3fa9e4;border-color:#3fa9e4"> {dr_lang('全部')} </a></label>{/if}
{php $b=0;}
{loop $t.client $gid}
<label id="dr_client_{$t.id}_{$gid}"><a href="javascript:dr_client_delete('{$t.id}', '{$gid}');" class="btn btn-xs {if $color[$b]}{$color[$b]}{else}default{/if}">{$client[$gid]} <i class="fa fa-times"></i> </a></label>
{php $b++;}
{/loop}
</td>
{if dr_count($ci->site_info) > 1}
<td>
{if !$t.site}<label><a title="{dr_lang('全部')}" class="btn btn-xs dark" style="background-color:#3fa9e4;border-color:#3fa9e4"> {dr_lang('全部')} </a></label>{/if}
{loop $t.site $b $sid}
<label id="dr_site_{$t.id}_{$sid}"><a href="javascript:dr_site_delete('{$t.id}', '{$sid}');" class="btn btn-xs {if $color[$b]}{$color[$b]}{else}default{/if}">{$ci->site_info[$sid]['SITE_NAME']} <i class="fa fa-times"></i> </a></label>
{/loop}
</td>
{/if}
</tr>
{/loop}
</tbody>
</table>
</div>
</form>
</div>
<style>
.menu-tree-toggle { display: inline-block; width: 14px; margin-right: 2px; color: #666; text-decoration: none; }
.menu-tree-toggle:hover { color: #333; }
</style>
<script type="text/javascript">
$(function () {
$('.menu-row-top').each(function () {
var topId = $(this).find('.menu-tree-toggle').data('top-id');
var $rows = $('.menu-row-top-' + topId);
if (!$rows.length) {
$(this).find('.menu-tree-toggle').hide();
} else {
$rows.hide();
}
});
$(document).on('click', '.menu-tree-toggle', function (e) {
e.preventDefault();
e.stopPropagation();
var topId = $(this).data('top-id');
var $icon = $(this).find('i');
var $rows = $('.menu-row-top-' + topId);
if ($icon.hasClass('fa-caret-down')) {
$icon.removeClass('fa-caret-down').addClass('fa-caret-right');
$rows.hide();
} else {
$icon.removeClass('fa-caret-right').addClass('fa-caret-down');
$rows.show();
}
});
});
function dr_delete(id, gid) {
{if !$ci->_is_admin_auth('del')}
dr_tips(0, '{dr_lang('无权限删除')}');
return;
{/if}
var index = layer.load(2, {
shade: [0.3,'#fff'], //0.1透明度的白色背景
time: 10000
});
$.ajax({
type: "GET",
cache: false,
url: '{dr_url('member/menu/group_del')}&id='+id+'&gid='+gid,
dataType: "json",
success: function (json) {
layer.close(index);
if (json.code == 1) {
$('#dr_row_'+id+'_'+gid).hide();
dr_tips(1, json.msg);
} else {
dr_tips(0, json.msg);
}
},
error: function(HttpRequest, ajaxOptions, thrownError) {
dr_ajax_alert_error(HttpRequest, this, thrownError);;
}
});
}
function dr_client_delete(id, sid) {
{if !$ci->_is_admin_auth('del')}
dr_tips(0, '{dr_lang('无权限删除')}');
return;
{/if}
var index = layer.load(2, {
shade: [0.3,'#fff'], //0.1透明度的白色背景
time: 10000
});
$.ajax({
type: "GET",
cache: false,
url: '{dr_url('member/menu/client_del')}&id='+id+'&sid='+sid,
dataType: "json",
success: function (json) {
layer.close(index);
if (json.code == 1) {
$('#dr_client_'+id+'_'+sid).hide();
dr_tips(1, json.msg);
} else {
dr_tips(0, json.msg);
}
},
error: function(HttpRequest, ajaxOptions, thrownError) {
dr_ajax_alert_error(HttpRequest, this, thrownError);;
}
});
}
function dr_site_delete(id, sid) {
{if !$ci->_is_admin_auth('del')}
dr_tips(0, '{dr_lang('无权限删除')}');
return;
{/if}
var index = layer.load(2, {
shade: [0.3,'#fff'], //0.1透明度的白色背景
time: 10000
});
$.ajax({
type: "GET",
cache: false,
url: '{dr_url('member/menu/site_del')}&id='+id+'&sid='+sid,
dataType: "json",
success: function (json) {
layer.close(index);
if (json.code == 1) {
$('#dr_site_'+id+'_'+sid).hide();
dr_tips(1, json.msg);
} else {
dr_tips(0, json.msg);
}
},
error: function(HttpRequest, ajaxOptions, thrownError) {
dr_ajax_alert_error(HttpRequest, this, thrownError);;
}
});
}
</script>
{template "footer.html"}
+98
View File
@@ -0,0 +1,98 @@
{template "header.html"}
<div class="note note-danger">
<div class="row table-search-tool">
<form action="{SELF}" method="get">
{dr_form_search_hidden()}
<div class="col-md-12 col-sm-12">
<label>
<select name="field" class="form-control">
{loop $field $t}
{if dr_is_admin_search_field($t)}
<option value="{$t.fieldname}" {if $param.field==$t.fieldname}selected{/if}>{dr_lang($t.name)}</option>
{/if}
{/loop}
</select>
</label>
<label><i class="fa fa-caret-right"></i></label>
<label><input type="text" class="form-control" placeholder="" value="{$param['keyword']}" name="keyword" /></label>
</div>
<div class="col-md-12 col-sm-12">
<label><button type="submit" class="btn blue btn-sm onloading" name="submit" > <i class="fa fa-search"></i> {dr_lang('搜索')}</button></label>
</div>
</form>
</div>
</div>
<div class="right-card-box">
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
{if $ci->_is_admin_auth('del')}
<div class="bootstrap-table bootstrap-table2">
<div id="toolbar" class="toolbar">
<label><button type="button" onclick="dr_ajax_option('{dr_url($uriprefix.'/del')}', '{dr_lang('你确定要删除吗?')}', 1)" class="btn red btn-sm"> <i class="fa fa-trash"></i> {dr_lang('删除')}</button></label>
</div>
</div>
{/if}
<div class="table-scrollable">
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
<thead>
<tr class="heading">
{if $ci->_is_admin_auth('del')}
<th class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="group-checkable" data-set=".checkboxes" />
<span></span>
</label>
</th>
{/if}
<th style="text-align:center" width="70" class="{dr_sorting('oauth')}" name="oauth">{dr_lang('平台')}</th>
<th width="80" style="text-align:center" class="{dr_sorting('id')}" name="id">{dr_lang('头像')}</th>
<th width="180" class="{dr_sorting('nickname')}" name="nickname">{dr_lang('昵称')}</th>
<th width="280" class="{dr_sorting('oid')}" name="oid">{dr_lang('OID')}</th>
<th width="170" class="{dr_sorting('expire_at')}" name="expire_at">{dr_lang('绑定时间')}</th>
<th width="200" style="text-align:center" class="{dr_sorting('uid')}" name="uid">{dr_lang('绑定账号')}</th>
<th>{dr_lang('操作')}</th>
</tr>
</thead>
<tbody>
{loop $list $t}
<tr class="odd gradeX" id="dr_row_{$t.id}">
{if $ci->_is_admin_auth('del') || $ci->_is_admin_auth('edit')}
<td class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="checkboxes" name="ids[]" value="{$t.id}" />
<span></span>
</label>
</td>
{/if}
<td style="text-align:center"> <img src="{THEME_PATH}assets/oauth/{$t.oauth}.png"> </td>
<td style="text-align:center"> <img width="30" class="img-circle" src="{if $t.avatar}{$t.avatar}{else}{dr_avatar(0)}{/if}"> </td>
<td>{dr_html2emoji($t.nickname)}</td>
<td>{$t.oid}</td>
<td>{dr_date($t.expire_at, '', 'red')}</td>
<td style="text-align:center">{if !$t.uid}<span class="label label-sm label-danger"> {dr_lang('未绑定')} </span>{else}{Function_list::uid($t.uid)}{/if}</td>
<td>
{if $t.uid}
<label><a href="{dr_url('api/alogin', ['id'=>$t.uid])}" target="_blank" class="btn btn-xs yellow"> <i class="fa fa-send"></i> {dr_lang('登录')}</a></label>{/if}
</tr>
{/loop}
</tbody>
</table>
</div>
{if $mypages}
<div class="row fc-list-footer table-checkable ">
<div class="col-md-12 fc-list-page">
{$mypages}
</div>
</div>
{/if}
</form>
</div>
{template "footer.html"}
+596
View File
@@ -0,0 +1,596 @@
{template "header.html"}
<link href="{THEME_PATH}assets/global/plugins/bootstrap-touchspin/bootstrap.touchspin.css" rel="stylesheet" type="text/css" />
<script src="{THEME_PATH}assets/global/plugins/fuelux/js/spinner.min.js" type="text/javascript"></script>
<script src="{THEME_PATH}assets/global/plugins/bootstrap-touchspin/bootstrap.touchspin.js" type="text/javascript"></script>
<form action="" class="form-horizontal" method="post" name="myform" id="myform">
{$form}
<div class="portlet bordered light myfbody">
<div class="portlet-title tabbable-line">
<ul class="nav nav-tabs" style="float:left;">
<li class="{if $page==0}active{/if}">
<a href="#tab_0" data-toggle="tab" onclick="$('#dr_page').val('0')"> <i class="fa fa-cog"></i> {dr_lang('常用设置')} </a>
</li>
<li class="{if $page==4}active{/if}">
<a href="#tab_4" data-toggle="tab" onclick="$('#dr_page').val('4')"> <i class="fa fa-user"></i> {dr_lang('登录设置')} </a>
</li>
<li class="{if $page==1}active{/if}">
<a href="#tab_1" data-toggle="tab" onclick="$('#dr_page').val('1')"> <i class="fa fa-user-plus"></i> {dr_lang('注册设置')} </a>
</li>
<li class="{if $page==5}active{/if}">
<a href="#tab_5" data-toggle="tab" onclick="$('#dr_page').val('5')"> <i class="fa fa-user-md"></i> {dr_lang('格式规范')} </a>
</li>
<li class="{if $page==2}active{/if}">
<a href="#tab_2" data-toggle="tab" onclick="$('#dr_page').val('2')"> <i class="fa fa-qq"></i> {dr_lang('快捷登录')} </a>
</li>
<li class="{if $page==3}active{/if}">
<a href="#tab_3" data-toggle="tab" onclick="$('#dr_page').val('3')"> <i class="fa fa-code"></i> {dr_lang('分页设置')} </a>
</li>
<li class="{if $page==6}active{/if}">
<a href="#tab_6" data-toggle="tab" onclick="$('#dr_page').val('6')"> <i class="fa fa-table"></i> {dr_lang('后台列表显示')} </a>
</li>
</ul>
</div>
<div class="portlet-body">
<div class="tab-content">
<div class="tab-pane {if $page==6}active{/if}" id="tab_6">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('列表搜索框')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input type="radio" name="data[config][is_show_search_bar]" value="1" {if $data['config']['is_show_search_bar']}checked{/if} /> {dr_lang('开启')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input type="radio" name="data[config][is_show_search_bar]" value="0" {if empty($data['config']['is_show_search_bar'])}checked{/if} /> {dr_lang('关闭')} <span></span></label>
</div>
<span class="help-block">{dr_lang('开启后,当进入列表时直接显示搜索框;关闭后,需要点右上角的搜索按钮才会出现')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('列表显示字段')}</label>
<div class="col-md-9">
<div class="table-scrollable">
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
<thead>
<tr class="heading">
<th class="myselect">
{dr_lang('显示')}
</th>
<th width="180"> {dr_lang('字段')} </th>
<th width="100"> {dr_lang('类别')} </th>
<th width="150"> {dr_lang('名称')} </th>
<th width="100"> {dr_lang('宽度')} </th>
<th width="140"> {dr_lang('对齐方式')} </th>
<th> {dr_lang('回调方法')} </th>
</tr>
</thead>
<tbody class="field-sort-items">
{loop $field $n $t}
<tr class="odd gradeX">
<td class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="checkboxes" name="data[list_field][{$t.fieldname}][use]" value="1" {if $data['list_field'][$t.fieldname]['use']} checked{/if} />
<span></span>
</label>
</td>
<td>{dr_lang($t.name)} ({$t.fieldname})</td>
<td>{$t.fieldtype}</td>
<td><input class="form-control" type="text" name="data[list_field][{$t.fieldname}][name]" value="{php echo $data['list_field'][$t.fieldname]['name'] ? htmlspecialchars((string)$data['list_field'][$t.fieldname]['name']) : $t.name}" /></td>
<td> <input class="form-control" type="text" name="data[list_field][{$t.fieldname}][width]" value="{htmlspecialchars((string)$data['list_field'][$t.fieldname]['width'])}" /></td>
<td><input type="checkbox" name="data[list_field][{$t.fieldname}][center]" {if $data['list_field'][$t.fieldname]['center']} checked{/if} value="1" data-on-text="{dr_lang('居中')}" data-off-text="{dr_lang('默认')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
</td>
<td> <div class="input-group" style="width:250px">
<span class="input-group-btn">
<a class="btn btn-success" href="javascript:dr_call_alert();">{dr_lang('回调')}</a>
</span>
<input class="form-control" type="text" name="data[list_field][{$t.fieldname}][func]" value="{htmlspecialchars((string)$data['list_field'][$t.fieldname]['func'])}" />
</div></td>
</tr>
{/loop}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane {if $page==5}active{/if}" id="tab_5">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('姓名命名')}</label>
<div class="col-md-9">
<label><input class="form-control" type="text" name="data[config][cname]" value="{htmlspecialchars((string)$data['config']['cname'])}" ></label>
<span class="help-block">{dr_lang('姓名字段进行重新命名,例如命名为:昵称、别名等')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('允许修改姓名')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[config][edit_name]" value="1" {if $data['config']['edit_name']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('在用户中心修改姓名字段后将不能再次进行修改')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('姓名唯一性')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[config][unique_name]" value="1" {if $data['config']['unique_name']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('姓名字段会验证唯一性')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('用户姓名长度')}</label>
<div class="col-md-9">
<div class="input-small"><input class="form-control" id="dr_cutname" type="text" name="data[register][cutname]" value="{intval($data['register']['cutname'])}" >
<script type="text/javascript">
$(function(){
$("#dr_cutname").TouchSpin({
buttondown_class: "btn default",
buttonup_class: "btn default",
verticalbuttons: false,
step: 1,
min: 0,
max: 100
});
});
</script></div>
<span class="help-block">{dr_lang('用户姓名的最大长度,设置0表示不限制,最大设置100,超出会被切取')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('账号最小长度')}</label>
<div class="col-md-9">
<div class="input-small"><input class="form-control" id="dr_username" type="text" name="data[config][userlen]" value="{intval($data['config']['userlen'])}" >
<script type="text/javascript">
$(function(){
$("#dr_username").TouchSpin({
buttondown_class: "btn default",
buttonup_class: "btn default",
verticalbuttons: false,
step: 1,
min: 0,
max: 50
});
});
</script></div>
<span class="help-block">{dr_lang('账号名的最小长度控制,0表示不限制')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('账号最大长度')}</label>
<div class="col-md-9">
<div class="input-small"><input class="form-control" id="dr_usernamemax" type="text" name="data[config][userlenmax]" value="{intval($data['config']['userlenmax'] ? $data['config']['userlenmax'] : 50)}" >
<script type="text/javascript">
$(function(){
$("#dr_usernamemax").TouchSpin({
buttondown_class: "btn default",
buttonup_class: "btn default",
verticalbuttons: false,
step: 1,
min: 0,
max: 50
});
});
</script></div>
<span class="help-block">{dr_lang('账号名的最大长度控制,最大50个字符,0表示不限制')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('密码最小长度')}</label>
<div class="col-md-9">
<div class="input-small"><input class="form-control" id="dr_password" type="text" name="data[config][pwdlen]" value="{intval($data['config']['pwdlen'])}" >
<script type="text/javascript">
$(function(){
$("#dr_password").TouchSpin({
buttondown_class: "btn default",
buttonup_class: "btn default",
verticalbuttons: false,
step: 1,
min: 0,
max: 50
});
});
</script></div>
<span class="help-block">{dr_lang('密码的最小长度控制,最大设置50位数')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('允许账号与密码相同')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[config][user2pwd]" value="1" {if $data['config']['user2pwd']}checked{/if} data-on-text="{dr_lang('允许')}" data-off-text="{dr_lang('禁止')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('针对前端注册或修改密码时的验证')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('密码强度(正则)')}</label>
<div class="col-md-9">
<div class="input-group ">
<input class="form-control" type="text" name="data[config][pwdpreg]" value="{$data.config.pwdpreg}" >
<span class="input-group-btn">
<button class="btn blue" onclick="dr_iframe_show('{dr_lang('正则表达式')}', '{dr_url('api/test_pattern')}')" type="button">{dr_lang('测试')}</button>
</span>
</div>
<span class="help-block">{dr_lang('针对前端注册或修改密码时的强度验证,可以设置自定义正则表达式,例如数字正则表达式格式:/^[0-9]+$/')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('账号规则(正则)')}</label>
<div class="col-md-9">
<div class="input-group ">
<input class="form-control" type="text" name="data[register][preg]" value="{$data.register.preg}" >
<span class="input-group-btn">
<button class="btn blue" onclick="dr_iframe_show('{dr_lang('正则表达式')}', '{dr_url('api/test_pattern')}')" type="button">{dr_lang('测试')}</button>
</span>
</div>
<span class="help-block">{dr_lang('针对前端注册时的账号格式验证,可以设置自定义正则表达式,例如数字正则表达式格式:/^[0-9]+$/')}</span>
</div>
</div>
</div>
</div>
<div class="tab-pane {if $page==0}active{/if}" id="tab_0">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('允许修改手机')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[config][edit_mobile]" value="1" {if $data['config']['edit_mobile']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('在用户中心修改手机号码后将不能再次进行修改')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('允许修改邮箱')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[config][edit_email]" value="1" {if $data['config']['edit_email']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('在用户中心修改邮箱地址后将不能再次进行修改')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('允许多个用户组')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[config][groups]" value="1" {if $data['config']['groups']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('开启之后用户将可以同时拥有多个用户组权限')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('修改资料审核')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[config][edit_verify]" value="1" {if $data['config']['edit_verify']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('在用户中心修改资料信息时将进入后台审核环节')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('修改头像审核')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[config][avatar_verify]" value="1" {if $data['config']['avatar_verify']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('在用户中心修改头像时将进入后台审核环节')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('登录超时时间')}</label>
<div class="col-md-9">
<label><input class="form-control" type="text" name="data[config][logintime]" value="{intval($data['config']['logintime'])}" ></label>
<span class="help-block">{dr_lang('单位秒,默认为86400秒,超时之后自动退出账号')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('用户组拒绝审核理由')}</label>
<div class="col-md-9">
<textarea class="form-control" style="height:150px; width:100%;" name="data[config][verify_msg]">{$data['config']['verify_msg']}</textarea>
<span class="help-block">{dr_lang('申请用户组时常用的拒绝审核理由,一行一个')}</span>
</div>
</div>
</div>
</div>
<div class="tab-pane {if $page==4}active{/if}" id="tab_4">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('登录主字段')}</label>
<div class="col-md-9">
<div class="mt-checkbox-inline">
<label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" checked disabled /> {dr_lang('账号')} <span></span></label>
<label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" name="data[login][field][]" value="phone" {if dr_in_array('phone', (array)$data.login.field)} checked{/if} /> {dr_lang('手机号')} <span></span></label>
<label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" name="data[login][field][]" value="email" {if dr_in_array('email', (array)$data.login.field)} checked{/if} /> {dr_lang('邮箱')} <span></span></label>
</div>
<span class="help-block">{dr_lang('可同时选择多个字段作为登录主字段')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('登录图片验证码')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[login][code]" value="1" {if $data['login']['code']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('网页中的图片验证码')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('短信验证码登录')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[login][sms]" value="1" {if $data['login']['sms']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block"><a href="javascript:dr_help(501);">{dr_lang('登录字段必须包含手机号码才能使用此功能')}</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('短信登录时自动注册')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[login][auto_reg]" value="1" {if $data['login']['auto_reg']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('当登录手机号没有注册时,系统将自动注册该手机号')}</span>
{if $data['login']['auto_reg'] && !dr_in_array('phone', (array)$data.register.field)}
<span class="help-block" style="color: red">{dr_lang('没有设置手机号为注册字段,本功能将无效')}</span>
{/if}
{if $data['login']['auto_reg'] && !$data['login']['sms']}
<span class="help-block" style="color: red">{dr_lang('没有开启短信验证码登录开关,本功能将无效')}</span>
{/if}
{if $data['login']['auto_reg'] && !dr_in_array('phone', (array)$data.login.field)}
<span class="help-block" style="color: red">{dr_lang('没有设置手机号为登录主字段,本功能将无效')}</span>
{/if}
</div>
</div>
</div>
</div>
<div class="tab-pane {if $page==3}active{/if}" id="tab_3">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('电脑列表分页数量')}</label>
<div class="col-md-9">
<label><input class="form-control" type="text" name="data[config][pagesize]" value="{intval($data['config']['pagesize'])}" ></label>
<span class="help-block">{dr_lang('用户中心数据列表在电脑网页每页显示数量')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('手机列表分页数量')}</label>
<div class="col-md-9">
<label><input class="form-control" type="text" name="data[config][pagesize_mobile]" value="{intval($data['config']['pagesize_mobile'])}" ></label>
<span class="help-block">{dr_lang('用户中心数据列表在手机网页每页显示数量')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('API接口列表分页数量')}</label>
<div class="col-md-9">
<label><input class="form-control" type="text" name="data[config][pagesize_api]" value="{intval($data['config']['pagesize_api'])}" ></label>
<span class="help-block">{dr_lang('用户中心数据列表在API数据请求时每页返回的数量')}</span>
</div>
</div>
</div>
</div>
<div class="tab-pane {if $page==1}active{/if}" id="tab_1">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('注册功能')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-checkbox-outline"><input type="radio" name="data[register][close]" value="0" {if !$data['register']['close']}checked{/if} /> {dr_lang('开启注册')} <span></span></label>
<label class="mt-radio mt-checkbox-outline"><input type="radio" name="data[register][close]" value="1" {if $data['register']['close']}checked{/if} /> {dr_lang('关闭注册')} <span></span></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('默认注册组')}</label>
<div class="col-md-9">
<label>
<select class="form-control" name="data[register][groupid]">
{loop $group $t}
{if $t.register}
<option value="{$t.id}" {if $t.id==$data['register']['groupid']} selected{/if}>{dr_lang($t.name)}</option>
{/if}
{/loop}
</select>
</label>
<span class="help-block"><a href="{dr_url('member/group/index')}">{dr_lang('必须选择一个默认注册的用户组')}</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('注册字段选择')}</label>
<div class="col-md-9">
<div class="mt-checkbox-inline">
<label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" name="data[register][field][]" value="username" {if dr_in_array('username', (array)$data.register.field)} checked{/if} /> {dr_lang('账号')} <span></span></label>
<label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" name="data[register][field][]" value="phone" {if dr_in_array('phone', (array)$data.register.field)} checked{/if} /> {dr_lang('手机号')} <span></span></label>
<label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" name="data[register][field][]" value="email" {if dr_in_array('email', (array)$data.register.field)} checked{/if} /> {dr_lang('邮箱')} <span></span></label>
<label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" name="data[register][field][]" value="name" {if dr_in_array('name', (array)$data.register.field)} checked{/if} /> {dr_lang('姓名')} <span></span></label>
</div>
<span class="help-block">{dr_lang('至少选择一个字段或多个字段组合')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('注册字段验证')}</label>
<?php
if (!isset($data.register.field_y)) {
$data.register.field_y = ['email', 'phone'];
}
?>
<div class="col-md-9">
<div class="mt-checkbox-inline">
<label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" name="data[register][field_y][]" value="username" checked disabled="disabled" /> {dr_lang('账号')} <span></span></label>
<label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" name="data[register][field_y][]" value="phone" {if dr_in_array('phone', (array)$data.register.field_y)} checked{/if} /> {dr_lang('手机号')} <span></span></label>
<label class="mt-checkbox mt-checkbox-outline"><input type="checkbox" name="data[register][field_y][]" value="email" {if dr_in_array('email', (array)$data.register.field_y)} checked{/if} /> {dr_lang('邮箱')} <span></span></label>
</div>
<span class="help-block">{dr_lang('对以上字段进行格式验证,不勾选表示不验证格式')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('随机用户名前缀')}</label>
<div class="col-md-9">
<label><input class="form-control" type="text" name="data[register][unprefix]" value="{htmlspecialchars((string)$data['register']['unprefix'])}" ></label>
<span class="help-block">{dr_lang('当注册字段没有选择"账号"时,系统会随机注册一个账号,格式为:前缀+随机用户名字符')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('注册短信验证')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[register][sms]" value="1" {if $data['register']['sms']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('注册字段必须包含手机号码才能使用此功能,用于手机短信验证码')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('注册邮件验证')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[register][email]" value="1" {if $data['register']['email']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('注册字段必须包含邮件才能使用此功能,用于邮件验证码')}</span>
</div>
</div>
{if ($data['register']['sms'] || $data['register']['email']) && !SYS_SMS_IMG_CODE}
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('注册图片验证码')}</label>
<div class="col-md-9">
<input type="checkbox" readonly name="data[register][code]" value="1" checked data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('当开启注册短信验证后将会强制验证图片验证码')}</span>
</div>
</div>
{else}
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('注册图片验证码')}</label>
<div class="col-md-9">
<input type="checkbox" name="data[register][code]" value="1" {if $data['register']['code']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
<span class="help-block">{dr_lang('网页中的图片验证码')}</span>
</div>
</div>
{/if}
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('注册审核方式')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input type="radio" name="data[register][verify]" value="" {if empty($data['register']['verify'])}checked{/if} /> {dr_lang('关闭')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input type="radio" name="data[register][verify]" value="email" {if $data['register']['verify']=='email'}checked{/if} /> {dr_lang('邮件审核')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input type="radio" name="data[register][verify]" value="phone" {if $data['register']['verify']=='phone'}checked{/if} /> {dr_lang('短信审核')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input type="radio" name="data[register][verify]" value="admin" {if $data['register']['verify']=='admin'}checked{/if} /> {dr_lang('人工审核')} <span></span></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('不允许账号的字符串')}</label>
<div class="col-md-9">
<textarea class="form-control" style="height:150px; width:100%;" name="data[register][notallow]">{$data['register']['notallow']}</textarea>
<span class="help-block">{dr_lang('设置不允许包含在账号中的字符串,多个字符串以逗号“,”分隔')}</span>
</div>
</div>
</div>
</div>
<div class="tab-pane {if $page==2}active{/if}" id="tab_2">
<div class="form-body">
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('登录模式')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input type="radio" name="data[oauth][login]" value="0" {if empty($data['oauth']['login'])}checked{/if} /> {dr_lang('绑定账号')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input type="radio" name="data[oauth][login]" value="1" {if $data['oauth']['login']}checked{/if} /> {dr_lang('自动创建')} <span></span></label>
</div>
<span class="help-block">{dr_lang('绑定账号是指将登录已有账号或者注册新账号并绑定到第三方登录中;自动创建是指当第三方登录未绑定账号时就自动创建一个账号')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('注册字段填写')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio mt-radio-outline"><input type="radio" name="data[oauth][field]" value="0" {if empty($data['oauth']['field'])}checked{/if} /> {dr_lang('注册后填写')} <span></span></label>
<label class="mt-radio mt-radio-outline"><input type="radio" name="data[oauth][field]" value="1" {if $data['oauth']['field']}checked{/if} /> {dr_lang('注册时填写')} <span></span></label>
</div>
<span class="help-block">{dr_lang('在快捷登录注册账号时,是否让用户填写自定义字段信息')}</span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('接入商账号设置')}</label>
<div class="col-md-9">
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
<thead>
<tr class="heading">
<th width="150"> {dr_lang('接入商')} </th>
<th> {dr_lang('参数设置')} </th>
</tr>
</thead>
<tbody>
{loop $oauth $dir $t}
<tr class="odd gradeX">
<td>{$t.name}</td>
<td>
{php $diyfile = FCPATH.'ThirdParty/OAuth/'.ucfirst($dir).'/Config.html';}
{if is_file($diyfile)}
{load $diyfile}
{else}
<label><input class="form-control" name="data[oauth][{$dir}][id]" type="text" value="{htmlspecialchars((string)$data['oauth'][$dir]['id'])}"></label>
<label><input class="form-control" name="data[oauth][{$dir}][value]" type="text" value="{htmlspecialchars((string)$data['oauth'][$dir]['value'])}"></label>
{/if}
{if $t.help}<label><a href="javascript:dr_help({$t.help});">{dr_lang('申请接口')}</a></label>{/if}
</td>
</tr>
{/loop}
{if dr_is_app('weixin')}
<tr class="odd gradeX">
<td>{dr_lang('微信公众号')}</td>
<td>
<input type="checkbox" name="data[oauth][wechat][id]" value="1" {if $data['oauth']['wechat']['id']}checked{/if} data-on-text="{dr_lang('已开启')}" data-off-text="{dr_lang('已关闭')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">
&nbsp;{dr_lang('用于关注微信公众号绑定账号使用')}
</td>
</tr>
{/if}
</tbody>
</table>
{if !IS_OEM_CMS}
<p style="margin-top:10px;">
<a href="https://www.xunruicms.com/api/xunrui.php?at=login" class="btn blue btn-sm" target="_blank">
<i class="fa fa-cloud-download"></i> {dr_lang('更多登陆方式')}
</a>
</p>
{/if}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body form myfooter">
<div class="form-actions text-center">
<button type="button" onclick="dr_ajax_submit('{dr_now_url()}&page='+$('#dr_page').val(), 'myform', '2000')" class="btn green"> <i class="fa fa-save"></i> {dr_lang('保存')}</button>
</div>
</div>
</form>
<script type="text/javascript">
$(function() {
$(".field-sort-items").sortable();
});
</script>
{template "footer.html"}
@@ -0,0 +1,196 @@
{template "header.html"}
<style>
.dr-notice-wrap .portlet-body { padding-top: 0; }
.dr-notice-side {
width: 200px;
float: left;
border-right: 1px solid #eef1f5;
padding: 8px 0 20px;
min-height: 420px;
}
.dr-notice-side .nav-pills > li { float: none; margin: 0; }
.dr-notice-side .nav-pills > li > a {
border-radius: 0;
color: #666;
padding: 11px 12px 11px 14px;
border-left: 2px solid transparent;
margin: 0;
font-size: 13px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dr-notice-side .nav-pills > li > a:hover {
background: #f7f9fc;
color: #333;
}
.dr-notice-side .nav-pills > li.active > a,
.dr-notice-side .nav-pills > li.active > a:hover,
.dr-notice-side .nav-pills > li.active > a:focus {
background: #f0f7ff;
color: #2890ff;
border-left-color: #28b6ff;
font-weight: 600;
}
.dr-notice-side .badge {
float: right;
margin-top: 1px;
margin-left: 6px;
background: #eef1f5;
color: #8896a6;
font-weight: 500;
font-size: 11px;
padding: 3px 6px;
}
.dr-notice-side .nav-pills > li.active > a .badge {
background: #28b6ff;
color: #fff;
}
.dr-notice-main {
margin-left: 200px;
padding: 8px 15px 20px 20px;
}
.dr-notice-main .dr-notice-head {
display: flex;
align-items: center;
justify-content: space-between;
padding: 6px 0 14px;
margin-bottom: 10px;
border-bottom: 1px solid #eef1f5;
}
.dr-notice-main .dr-notice-head h4 {
margin: 0;
font-size: 16px;
font-weight: 600;
color: #333;
}
.dr-notice-item {
padding: 14px 0;
border-bottom: 1px dashed #eef1f5;
}
.dr-notice-item:last-child { border-bottom: 0; }
.dr-notice-item .dr-notice-name {
font-size: 14px;
color: #333;
margin-bottom: 10px;
font-weight: 500;
}
.dr-notice-item .mt-checkbox-inline {
margin-bottom: 0;
}
.dr-notice-item .mt-checkbox {
margin-bottom: 6px;
}
.dr-notice-warn {
margin-left: 4px;
}
@media (max-width: 991px) {
.dr-notice-side {
width: 100%;
float: none;
border-right: 0;
border-bottom: 1px solid #eef1f5;
min-height: 0;
margin-bottom: 10px;
padding-bottom: 0;
}
.dr-notice-main {
margin-left: 0;
padding-left: 0;
}
}
</style>
<form action="" class="form-horizontal" method="post" name="myform" id="myform">
{dr_form_hidden()}
<div class="myfbody">
<div class="portlet light bordered dr-notice-wrap">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-volume-up font-green"></i>
<span class="caption-subject font-green sbold">{dr_lang('通知设置')}</span>
</div>
<div class="actions">
{if !IS_OEM_CMS}
<a href="https://www.xunruicms.com/api/xunrui.php?at=notice" class="btn blue btn-sm" target="_blank">
<i class="fa fa-cloud-download"></i> {dr_lang('更多通知方式')}
</a>
{/if}
</div>
</div>
<div class="portlet-body">
<div class="clearfix">
<div class="dr-notice-side">
<ul class="nav nav-pills nav-stacked" role="tablist">
{php $dr_notice_n = 0;}
{loop $notice_config $ni $t}
<li class="{if !$dr_notice_n}active{/if}">
<a href="#dr_notice_tab_{$dr_notice_n}" data-toggle="tab" title="{$t.name}">
{$t.name}
<span class="badge">{php echo dr_count($t['value']);}</span>
</a>
</li>
{php $dr_notice_n++;}
{/loop}
</ul>
</div>
<div class="dr-notice-main">
<div class="tab-content">
{php $dr_notice_n = 0;}
{loop $notice_config $ni $t}
<div class="tab-pane {if !$dr_notice_n}active{/if}" id="dr_notice_tab_{$dr_notice_n}">
<div class="dr-notice-head">
<h4>{$t.name}</h4>
<span class="text-muted">{php echo dr_count($t['value']);} {dr_lang('项')}</span>
</div>
<div class="form-group hide">
<div class="mt-checkbox-inline">
{loop $notice_type $tt}
<label class="mt-checkbox mt-checkbox-outline">
<input type="checkbox" class="checkboxes group{md5($tt.name)}" data-set=".group{md5($tt.name)}" /> {dr_lang('批量')} <span></span>
</label>
{/loop}
</div>
</div>
{loop $t.value $name $v}
<div class="dr-notice-item">
<div class="dr-notice-name">{dr_lang($v.name)}</div>
<div class="mt-checkbox-inline">
{loop $notice_type $nkey $tt}
<label class="mt-checkbox mt-checkbox-outline">
<input type="checkbox" class="checkboxes group{md5($tt.name)}" name="data[{$name}][{$nkey}]" value="1" {if $value[$name][$nkey]}checked{/if} /> {dr_lang($tt.name)} <span></span>
</label>
{/loop}
<label class="mt-checkbox mt-checkbox-outline">
<a class="btn btn-sm blue" href="javascript:dr_iframe_show('{dr_lang($v.name)}', '{dr_url('member/setting_notice/edit')}&file={$name}', '90%','90%', 'nogo');">{dr_lang('内容设置')}</a>
</label>
{loop $notice_type $nkey $tt}
{if $value[$name][$nkey] && !$v['file'][$nkey]}
<label class="mt-checkbox mt-checkbox-outline dr-notice-warn">
<a href="javascript:dr_iframe_show('{dr_lang($v.name)}', '{dr_url('member/setting_notice/edit')}&file={$name}', '90%','90%', 'nogo');" class="btn btn-xs red">{dr_lang('%s内容未设置', $tt.name)}</a>
</label>
{/if}
{/loop}
</div>
</div>
{/loop}
</div>
{php $dr_notice_n++;}
{/loop}
</div>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body form myfooter">
<div class="form-actions text-center">
<button type="button" onclick="dr_ajax_submit('{dr_url('member/setting_notice/add')}&page='+$('#dr_page').val(), 'myform', '2000', '{FC_NOW_URL}')" class="btn green"> <i class="fa fa-save"></i> {dr_lang('保存')}</button>
</div>
</div>
</form>
{template "footer.html"}
@@ -0,0 +1,75 @@
{template "header.html"}
{if !IS_DEV}
<link href="{THEME_PATH}assets/global/plugins/codemirror/lib/codemirror.css" rel="stylesheet" type="text/css" />
<link href="{THEME_PATH}assets/global/plugins/codemirror/theme/neat.css" rel="stylesheet" type="text/css" />
<script src="{THEME_PATH}assets/global/plugins/codemirror/lib/codemirror.js" type="text/javascript"></script>
<script src="{THEME_PATH}assets/global/plugins/codemirror/mode/htmlmixed/htmlmixed.js" type="text/javascript"></script>
{/if}
<form style="margin-top: -40px" action="" class="form-horizontal" method="post" name="myform" id="myform">
{dr_form_hidden()}
<div class="portlet light margin-top-20">
<div class="portlet-title tabbable-line">
<ul class="nav nav-tabs" style="float:left;">
{loop $list $sid $t}
<li class="{if SITE_ID==$sid}active{/if}">
<a href="#tab_{$sid}" data-toggle="tab" onclick="$('#dr_page').val('{$sid}')"> {$t.name} </a>
</li>
{/loop}
</ul>
</div>
<div class="portlet-body">
<div class="tab-content" style="margin-top: -20px;">
{loop $list $sid $t}
<div class="tab-pane {if SITE_ID==$sid}active{/if}" id="tab_{$sid}">
<div class="form-body">
{loop $t.data $id $m}
<div class="form-group well" style="margin-top: 30px;padding: 10px 10px 10px 20px;margin-bottom:10px;">
<div class="col-md-10 " >
<span class="label label-danger">{$m.name}</span> &nbsp;&nbsp;
{$m.file}
</div>
{if !IS_OEM_CMS}
<div class="col-md-2 text-right" >
<a class="label label-success" href="{$m.help}">{dr_lang('设置教程')}</a>
</div>
{/if}
</div>
<div class="form-group">
<div class="col-md-12">
<textarea disabled {if !IS_DEV}readonly{/if} name="data[{$sid}][{$id}]" style="height: {$m.height}px" id="file_code_{$sid}_{$id}" class="form-control ">{$m.code}</textarea>
</div>
</div>
{if !IS_DEV}
<script type="text/javascript">
jQuery(document).ready(function() {
var myTextArea = document.getElementById('file_code_{$sid}_{$id}');
var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {
lineNumbers: true,
matchBrackets: true,
styleActiveLine: true,
readOnly: true,
theme: "neat",
mode: '.html'
});
});
</script>{/if}
{/loop}
</div>
</div>
{/loop}
</div>
</div>
</div>
</form>
{template "footer.html"}
+111
View File
@@ -0,0 +1,111 @@
{template "header.html"}
<form action="" class="form-horizontal" method="post" name="myform" id="myform">
{$form}
<div class="portlet bordered light myfbody">
<div class="portlet-title">
<div class="caption">
<span class="caption-subject font-green-sharp">
{dr_lang('审核流程')}
</span>
</div>
<div class="actions">
<div class="btn-group">
<a class="btn" href="{$reply_url}"> <i class="fa fa-mail-reply"></i> {dr_lang('返回')}</a>
</div>
</div>
</div>
<div class="portlet-body">
<div class="form-body">
<div class="form-group" id='dr_row_name'>
<label class="col-md-2 control-label">{dr_lang('名称')}</label>
<div class="col-md-7">
<label>
<input type="text" name="data[name]" value="{htmlspecialchars((string)$name)}" class="form-control">
</label>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('修改数据时')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio">
<input {if !$value.edit}checked{/if} name="value[edit]" type="radio" value="0"> {dr_lang('不审核')}
<span></span>
</label>
<label class="mt-radio">
<input {if $value.edit}checked{/if} name="value[edit]" type="radio" value="1"> {dr_lang('审核')}
<span></span>
</label>
</div>
<span class="help-block"> {dr_lang('修改数据时是否重新走审核流程,选择不审核就直接通过')} </span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{dr_lang('删除数据时')}</label>
<div class="col-md-9">
<div class="mt-radio-inline">
<label class="mt-radio">
<input {if !$value.del}checked{/if} name="value[del]" type="radio" value="0"> {dr_lang('不审核')}
<span></span>
</label>
<label class="mt-radio">
<input {if $value.del}checked{/if} name="value[del]" type="radio" value="1"> {dr_lang('审核')}
<span></span>
</label>
</div>
<span class="help-block"> {dr_lang('删除数据时是否重新走审核流程,选择不审核就直接删除')} </span>
</div>
</div>
{php echo \Phpcmf\Service::L('Field')->get('select')->get_select_search_code();}
{php for($i = 1; $i < 9; $i++) { }
<div class="form-group">
<label class="col-md-2 control-label"> {dr_lang('第%s次审核', $i)} </label>
<div class="col-md-7">
{if $is_vip}
<label>
<?php if ($value['role'][$i] && !is_array($value['role'][$i])) { $value['role'][$i] = [$value['role'][$i]] ;} ?>
<select name="value[role][{$i}][]" multiple class="form-control bs-select" data-title="{dr_lang('不审核')}">
{loop $ci->role $t}
{if $t.id != 1 && !$t.application.tid}
<option value="{$t.id}" {if dr_in_array($t.id, $value['role'][$i])} selected{/if}> {dr_lang($t.name)} </option>
{/if}
{/loop}
</select>
</label>
{else}
<label>
<select name="value[role][{$i}]" class="form-control">
<option value=""> {dr_lang('不审核')} </option>
{loop $ci->role $t}
{if $t.id != 1 && !$t.application.tid}
<option value="{$t.id}" {if $t.id == $value['role'][$i]} selected{/if}> {dr_lang($t.name)} </option>
{/if}
{/loop}
</select>
</label>
{/if}
</div>
</div>
{php } }
</div>
</div>
</div>
<div class="portlet-body form myfooter">
<div class="form-actions text-center">
<button type="button" onclick="dr_ajax_submit('{dr_now_url()}', 'myform', '2000')" class="btn green"> <i class="fa fa-save"></i> {dr_lang('保存内容')}</button>
<button type="button" onclick="dr_ajax_submit('{dr_now_url()}', 'myform', '2000', '{$post_url}')" class="btn green"> <i class="fa fa-plus"></i> {dr_lang('保存再添加')}</button>
<button type="button" onclick="dr_ajax_submit('{dr_now_url()}', 'myform', '2000', '{$reply_url}')" class="btn yellow"> <i class="fa fa-mail-reply-all"></i> {dr_lang('保存并返回')}</button>
</div>
</div>
</form>
{template "footer.html"}
+72
View File
@@ -0,0 +1,72 @@
{template "header.html"}
<div class="right-card-box">
<form class="form-horizontal" role="form" id="myform">
{dr_form_hidden()}
{if $ci->_is_admin_auth('del')}
<div class="bootstrap-table bootstrap-table2">
<div id="toolbar" class="toolbar">
<button type="button" onclick="dr_ajax_option('{dr_url($uriprefix.'/del')}', '{dr_lang('你确定要删除它们吗?')}', 1)" class="btn red btn-sm"> <i class="fa fa-trash"></i> {dr_lang('删除')}</button>
</div>
</div>
{/if}
<div class="table-scrollable">
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
<thead>
<tr class="heading">
{if $ci->_is_admin_auth('del')}
<th class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="group-checkable" data-set=".checkboxes" />
<span></span>
</label>
</th>
{/if}
<th style="text-align:center" width="70" class="{dr_sorting('id')}" name="id">Id</th>
<th width="240" class="{dr_sorting('name')}" name="name">{dr_lang('名称')}</th>
<th style="text-align:center" class="{dr_sorting('verify')}" name="verify" width="80">{dr_lang('次数')}</th>
<th>{dr_lang('操作')}</th>
</tr>
</thead>
<tbody>
{loop $list $t}
{php $verify = dr_string2array($t.verify);}
<tr class="odd gradeX" id="dr_row_{$t.id}">
{if $ci->_is_admin_auth('del')}
<td class="myselect">
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
<input type="checkbox" class="checkboxes" name="ids[]" value="{$t.id}" />
<span></span>
</label>
</td>
{/if}
<td style="text-align:center">{$t.id}</td>
<td>{$t.name}</td>
<td style="text-align:center"> <span class="badge badge-blue"> {dr_count($verify['role'])} </span></td>
<td>
{if $ci->_is_admin_auth('edit')}
<label><a href="{dr_url($uriprefix.'/edit', ['id'=>$t.id])}" class="btn btn-xs green"> <i class="fa fa-edit"></i> {dr_lang('修改')}</a></label>
<label><a href="javascript:dr_admin_menu_ajax('{dr_url($uriprefix.'/copy_edit', ['id'=>$t.id])}', 1);" class="btn btn-xs dark"> <i class="fa fa-copy"></i> {dr_lang('复制')}</a></label>
{/if}
<label><a href="javascript:dr_iframe_show('{dr_lang('查看流程')}', '{dr_url('member/api/verify', ['id'=>$t.id])}', '40%');" class="btn btn-xs blue"> <i class="fa fa-search"></i> {dr_lang('查看流程')}</a></label>
</td>
</tr>
{/loop}
</tbody>
</table>
</div>
{if $mypages}
<div class="row fc-list-footer table-checkable ">
<div class="col-md-12 fc-list-page">
{$mypages}
</div>
</div>
{/if}
</form>
</div>
{template "footer.html"}
+25
View File
@@ -0,0 +1,25 @@
{template "header.html"}
<ul class="list-group">
{loop $value.role $i $rid}
<?php
if (!is_array($rid)) {
$ns = dr_lang($role[$rid]['name'] ? $role[$rid]['name'] : '管理员');
} else {
$ns = [];
foreach ($rid as $r) {
$ns[] = dr_lang($role[$r]['name'] ? $role[$r]['name'] : '管理员');
}
$ns = array_unique($ns);
$ns = implode('、', $ns);
}
?>
<li class="list-group-item"> <span class="btn btn-xs green">{dr_lang('第%s次审核', $i)}</span> <span class="badge badge-roundless">{$ns}</span></li>
{/loop}
<li class="list-group-item"> <span class="btn btn-xs green">{dr_lang('第%s次审核', $i+1)}</span> <span class="badge badge-roundless">{dr_lang('审核完成')}</span> </li>
</ul>
{template "footer.html"}