登录注册优化
|
|
@ -56,7 +56,7 @@ class Site extends Common
|
|||
$this->assign('site_site_state_list', lang('site_site_state_list'));
|
||||
|
||||
// 用户注册类型列表
|
||||
$this->assign('site_user_reg_state_list', lang('site_user_reg_state_list'));
|
||||
$this->assign('common_user_reg_state_list', lang('common_user_reg_state_list'));
|
||||
|
||||
// 是否开启用户登录
|
||||
$this->assign('site_user_login_state_list', lang('site_user_login_state_list'));
|
||||
|
|
@ -64,6 +64,9 @@ class Site extends Common
|
|||
// 获取验证码-开启图片验证码
|
||||
$this->assign('site_img_verify_state_list', lang('site_img_verify_state_list'));
|
||||
|
||||
// 图片验证码规则
|
||||
$this->assign('site_images_verify_rules_list', lang('site_images_verify_rules_list'));
|
||||
|
||||
// 配置信息
|
||||
$this->assign('data', ConfigService::ConfigList());
|
||||
|
||||
|
|
@ -85,20 +88,71 @@ class Site extends Common
|
|||
*/
|
||||
public function Save()
|
||||
{
|
||||
// 站点状态值处理
|
||||
if(!isset($_POST['home_user_reg_state']))
|
||||
// 导航
|
||||
$nav_type = input('nav_type', 'base');
|
||||
|
||||
// 字段不存在赋空值
|
||||
$field_list = [];
|
||||
|
||||
// 用户注册
|
||||
if($nav_type == 'register')
|
||||
{
|
||||
$_POST['home_user_reg_state'] = '';
|
||||
$field_list[] = 'home_user_reg_state';
|
||||
$field_list[] = 'home_site_user_register_bg_images';
|
||||
}
|
||||
|
||||
// 用户注册背景图片
|
||||
if(!isset($_POST['home_site_user_register_bg_images']))
|
||||
// 用户登录
|
||||
if($nav_type == 'login')
|
||||
{
|
||||
$_POST['home_site_user_register_bg_images'] = '';
|
||||
$field_list[] = 'home_site_user_login_ad1_images';
|
||||
$field_list[] = 'home_site_user_login_ad2_images';
|
||||
$field_list[] = 'home_site_user_login_ad3_images';
|
||||
}
|
||||
|
||||
// 密码找回
|
||||
if($nav_type == 'forgetpwd')
|
||||
{
|
||||
$field_list[] = 'home_site_user_forgetpwd_ad1_images';
|
||||
$field_list[] = 'home_site_user_forgetpwd_ad2_images';
|
||||
$field_list[] = 'home_site_user_forgetpwd_ad3_images';
|
||||
}
|
||||
|
||||
// 图片验证码
|
||||
if($nav_type == 'imagesverify')
|
||||
{
|
||||
$field_list[] = 'common_images_verify_rules';
|
||||
}
|
||||
|
||||
// 开始处理空值
|
||||
if(!empty($field_list))
|
||||
{
|
||||
foreach($field_list as $field)
|
||||
{
|
||||
if(!isset($_POST[$field]))
|
||||
{
|
||||
$_POST[$field] = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 基础配置
|
||||
return ConfigService::ConfigSave($_POST);
|
||||
$ret = ConfigService::ConfigSave($_POST);
|
||||
|
||||
// 清除缓存
|
||||
if($ret['code'] == 0)
|
||||
{
|
||||
switch($nav_type)
|
||||
{
|
||||
case 'login' :
|
||||
cache(config('shopxo.cache_user_login_left_key'), null);
|
||||
|
||||
case 'forgetpwd' :
|
||||
cache(config('shopxo.cache_user_forgetpwd_left_key'), null);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -35,6 +35,14 @@ return array(
|
|||
1 => array('value' => 1, 'name' => '开启', 'checked' => true),
|
||||
),
|
||||
|
||||
// 图片验证码
|
||||
'site_images_verify_rules_list' => array(
|
||||
0 => array('value' => 'bgcolor', 'name' => '彩色背景'),
|
||||
1 => array('value' => 'textcolor', 'name' => '彩色文本'),
|
||||
2 => array('value' => 'point', 'name' => '干扰点'),
|
||||
3 => array('value' => 'line', 'name' => '干扰线'),
|
||||
),
|
||||
|
||||
// 时区
|
||||
'site_timezone_list' => array(
|
||||
'Pacific/Pago_Pago' => '(标准时-11:00) 中途岛、萨摩亚群岛',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- table nav start -->
|
||||
{{include file="site/nav" /}}
|
||||
<!-- table nav end -->
|
||||
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:MyUrl('admin/site/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/site/index', ['nav_type'=>'attachment'])}}" enctype="multipart/form-data">
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_max_limit_image.name}}<span class="am-form-group-label-tips">{{$data.home_max_limit_image.describe}}</span></label>
|
||||
<input type="number" name="{{$data.home_max_limit_image.only_tag}}" placeholder="{{$data.home_max_limit_image.name}}" data-validation-message="{{$data.home_max_limit_image.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.home_max_limit_image.value}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_max_limit_file.name}}<span class="am-form-group-label-tips">{{$data.home_max_limit_file.describe}}</span></label>
|
||||
<input type="number" name="{{$data.home_max_limit_file.only_tag}}" placeholder="{{$data.home_max_limit_file.name}}" data-validation-message="{{$data.home_max_limit_file.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.home_max_limit_file.value}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_max_limit_video.name}}<span class="am-form-group-label-tips">{{$data.home_max_limit_video.describe}}</span></label>
|
||||
<input type="number" name="{{$data.home_max_limit_video.only_tag}}" placeholder="{{$data.home_max_limit_video.name}}" data-validation-message="{{$data.home_max_limit_video.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.home_max_limit_video.value}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<input type="hidden" name="nav_type" value="{{$nav_type}}" />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- form end -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end
|
||||
|
|
@ -60,18 +60,6 @@
|
|||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_max_limit_image.name}}<span class="am-form-group-label-tips">{{$data.home_max_limit_image.describe}}</span></label>
|
||||
<input type="number" name="{{$data.home_max_limit_image.only_tag}}" placeholder="{{$data.home_max_limit_image.name}}" data-validation-message="{{$data.home_max_limit_image.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.home_max_limit_image.value}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_max_limit_file.name}}<span class="am-form-group-label-tips">{{$data.home_max_limit_file.describe}}</span></label>
|
||||
<input type="number" name="{{$data.home_max_limit_file.only_tag}}" placeholder="{{$data.home_max_limit_file.name}}" data-validation-message="{{$data.home_max_limit_file.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.home_max_limit_file.value}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_max_limit_video.name}}<span class="am-form-group-label-tips">{{$data.home_max_limit_video.describe}}</span></label>
|
||||
<input type="number" name="{{$data.home_max_limit_video.only_tag}}" placeholder="{{$data.home_max_limit_video.name}}" data-validation-message="{{$data.home_max_limit_video.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.home_max_limit_video.value}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_site_state.name}}<span class="am-form-group-label-tips">{{$data.home_site_state.describe}}</span></label>
|
||||
|
|
@ -86,40 +74,6 @@
|
|||
<textarea rows="3" name="{{$data.home_site_close_reason.only_tag}}" class="am-radius" placeholder="{{$data.home_site_close_reason.name}}" data-validation-message="{{$data.home_site_close_reason.error_tips}}">{{if !empty($data)}}{{$data.home_site_close_reason.value}}{{/if}}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_user_reg_state.name}}<span class="am-form-group-label-tips">{{$data.home_user_reg_state.describe}}</span></label>
|
||||
<select name="{{$data.home_user_reg_state.only_tag}}" multiple="multiple" class="am-radius chosen-select c-p" data-placeholder="{{$data.home_user_reg_state.name}}" >
|
||||
{{foreach $site_user_reg_state_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['home_user_reg_state']['value']) and in_array($v['value'], explode(',', $data['home_user_reg_state']['value']))}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_user_login_state.name}}<span class="am-form-group-label-tips">{{$data.home_user_login_state.describe}}</span></label>
|
||||
<select name="{{$data.home_user_login_state.only_tag}}" class="am-radius chosen-select c-p" data-validation-message="{{$data.home_user_login_state.error_tips}}" required>
|
||||
{{foreach $site_user_login_state_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['home_user_login_state']['value']) and $data['home_user_login_state']['value'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_verify_expire_time.name}}<span class="am-form-group-label-tips">{{$data.common_verify_expire_time.describe}}</span></label>
|
||||
<input type="number" name="{{$data.common_verify_expire_time.only_tag}}" placeholder="{{$data.common_verify_expire_time.name}}" data-validation-message="{{$data.common_verify_expire_time.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.common_verify_expire_time.value}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_verify_time_interval.name}}<span class="am-form-group-label-tips">{{$data.common_verify_time_interval.describe}}</span></label>
|
||||
<input type="number" name="{{$data.common_verify_time_interval.only_tag}}" placeholder="{{$data.common_verify_time_interval.name}}" data-validation-message="{{$data.common_verify_time_interval.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.common_verify_time_interval.value}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_img_verify_state.name}}<span class="am-form-group-label-tips">{{$data.home_img_verify_state.describe}}</span></label>
|
||||
<select name="{{$data.home_img_verify_state.only_tag}}" class="am-radius chosen-select c-p" data-validation-message="{{$data.home_img_verify_state.error_tips}}" required>
|
||||
{{foreach $site_img_verify_state_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['home_img_verify_state']['value']) and $data['home_img_verify_state']['value'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_content_max_width.name}}<span class="am-form-group-label-tips">{{$data.home_content_max_width.describe}}</span></label>
|
||||
<input type="number" name="{{$data.home_content_max_width.only_tag}}" placeholder="{{$data.home_content_max_width.name}}" data-validation-message="{{$data.home_content_max_width.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.home_content_max_width.value}}"{{/if}} required />
|
||||
|
|
@ -137,6 +91,7 @@
|
|||
<textarea rows="6" name="{{$data.home_footer_info.only_tag}}" class="am-radius" placeholder="{{$data.home_footer_info.name}}" data-validation-message="{{$data.home_footer_info.error_tips}}">{{if !empty($data)}}{{$data.home_footer_info.value}}{{/if}}</textarea>
|
||||
</div>
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<input type="hidden" name="nav_type" value="{{$nav_type}}" />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -8,21 +8,114 @@
|
|||
<!-- table nav end -->
|
||||
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:MyUrl('admin/site/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/site/index')}}" enctype="multipart/form-data">
|
||||
<div class="am-form-group">
|
||||
<label class="block">{{$data.home_site_desktop_icon.name}}<span class="am-form-group-label-tips">{{$data.home_site_desktop_icon.describe}}</span></label>
|
||||
<ul class="plug-file-upload-view home_site_desktop_icon-images-view" data-form-name="home_site_desktop_icon" data-max-number="1" data-delete="0" data-dialog-type="images">
|
||||
{{if !empty($data['home_site_desktop_icon']['value'])}}
|
||||
<li>
|
||||
<input type="text" name="home_site_desktop_icon" value="{{$data.home_site_desktop_icon.value}}" />
|
||||
<img src="{{$Think.__MY_PUBLIC_URL__}}{{$data.home_site_desktop_icon.value}}" />
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.home_site_desktop_icon-images-view">+选择logo</div>
|
||||
<form class="am-form form-validation view-save" action="{{:MyUrl('admin/site/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/site/index', ['nav_type'=>'forgetpwd'])}}" enctype="multipart/form-data">
|
||||
<!-- 图片1 -->
|
||||
<div class="am-panel am-panel-default">
|
||||
<div class="am-panel-hd">
|
||||
<span class="am-panel-title">图片1</span>
|
||||
</div>
|
||||
<div class="am-panel-bd">
|
||||
<div class="am-form-group">
|
||||
<label class="block">{{$data.home_site_user_forgetpwd_ad1_images.name}}<span class="am-form-group-label-tips">{{$data.home_site_user_forgetpwd_ad1_images.describe}}</span></label>
|
||||
<ul class="plug-file-upload-view home_site_user_forgetpwd_ad1_images-images-view" data-form-name="home_site_user_forgetpwd_ad1_images" data-max-number="1" data-dialog-type="images">
|
||||
{{if !empty($data['home_site_user_forgetpwd_ad1_images']['value'])}}
|
||||
<li>
|
||||
<input type="text" name="home_site_user_forgetpwd_ad1_images" value="{{$data.home_site_user_forgetpwd_ad1_images.value}}" />
|
||||
<img src="{{$Think.__MY_PUBLIC_URL__}}{{$data.home_site_user_forgetpwd_ad1_images.value}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.home_site_user_forgetpwd_ad1_images-images-view">+选择图片</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_site_user_forgetpwd_ad1_url.name}}<span class="am-form-group-label-tips">{{$data.home_site_user_forgetpwd_ad1_url.describe}}</span></label>
|
||||
<input type="url" placeholder="{{$data.home_site_user_forgetpwd_ad1_url.name}}" name="{{$data.home_site_user_forgetpwd_ad1_url.only_tag}}" value="{{$data.home_site_user_forgetpwd_ad1_url.value}}" class="am-radius" />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>背景色</label>
|
||||
<input type="hidden" name="{{$data.home_site_user_forgetpwd_ad1_bg_color.only_tag}}" value="{{$data.home_site_user_forgetpwd_ad1_bg_color.value}}" />
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit am-btn-block bk-cr-white t-r bg-color-tag-{{$data.home_site_user_forgetpwd_ad1_bg_color.only_tag}}" type="button" data-input-tag="button.bg-color-tag-{{$data.home_site_user_forgetpwd_ad1_bg_color.only_tag}}" data-color-tag="input[name='{{$data.home_site_user_forgetpwd_ad1_bg_color.only_tag}}']" data-color-style="background-color" {{if !empty($data['home_site_user_forgetpwd_ad1_bg_color']['value'])}} style="background-color:{{$data.home_site_user_forgetpwd_ad1_bg_color.value}};"{{/if}}>
|
||||
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 图片2 -->
|
||||
<div class="am-panel am-panel-default">
|
||||
<div class="am-panel-hd">
|
||||
<span class="am-panel-title">图片2</span>
|
||||
</div>
|
||||
<div class="am-panel-bd">
|
||||
<div class="am-form-group">
|
||||
<label class="block">{{$data.home_site_user_forgetpwd_ad2_images.name}}<span class="am-form-group-label-tips">{{$data.home_site_user_forgetpwd_ad2_images.describe}}</span></label>
|
||||
<ul class="plug-file-upload-view home_site_user_forgetpwd_ad2_images-images-view" data-form-name="home_site_user_forgetpwd_ad2_images" data-max-number="1" data-dialog-type="images">
|
||||
{{if !empty($data['home_site_user_forgetpwd_ad2_images']['value'])}}
|
||||
<li>
|
||||
<input type="text" name="home_site_user_forgetpwd_ad2_images" value="{{$data.home_site_user_forgetpwd_ad2_images.value}}" />
|
||||
<img src="{{$Think.__MY_PUBLIC_URL__}}{{$data.home_site_user_forgetpwd_ad2_images.value}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.home_site_user_forgetpwd_ad2_images-images-view">+选择图片</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_site_user_forgetpwd_ad2_url.name}}<span class="am-form-group-label-tips">{{$data.home_site_user_forgetpwd_ad2_url.describe}}</span></label>
|
||||
<input type="url" placeholder="{{$data.home_site_user_forgetpwd_ad2_url.name}}" name="{{$data.home_site_user_forgetpwd_ad2_url.only_tag}}" value="{{$data.home_site_user_forgetpwd_ad2_url.value}}" class="am-radius" />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>背景色</label>
|
||||
<input type="hidden" name="{{$data.home_site_user_forgetpwd_ad2_bg_color.only_tag}}" value="{{$data.home_site_user_forgetpwd_ad2_bg_color.value}}" />
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit am-btn-block bk-cr-white t-r bg-color-tag-{{$data.home_site_user_forgetpwd_ad2_bg_color.only_tag}}" type="button" data-input-tag="button.bg-color-tag-{{$data.home_site_user_forgetpwd_ad2_bg_color.only_tag}}" data-color-tag="input[name='{{$data.home_site_user_forgetpwd_ad2_bg_color.only_tag}}']" data-color-style="background-color" {{if !empty($data['home_site_user_forgetpwd_ad2_bg_color']['value'])}} style="background-color:{{$data.home_site_user_forgetpwd_ad2_bg_color.value}};"{{/if}}>
|
||||
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 图片3 -->
|
||||
<div class="am-panel am-panel-default">
|
||||
<div class="am-panel-hd">
|
||||
<span class="am-panel-title">图片3</span>
|
||||
</div>
|
||||
<div class="am-panel-bd">
|
||||
<div class="am-form-group">
|
||||
<label class="block">{{$data.home_site_user_forgetpwd_ad3_images.name}}<span class="am-form-group-label-tips">{{$data.home_site_user_forgetpwd_ad3_images.describe}}</span></label>
|
||||
<ul class="plug-file-upload-view home_site_user_forgetpwd_ad3_images-images-view" data-form-name="home_site_user_forgetpwd_ad3_images" data-max-number="1" data-dialog-type="images">
|
||||
{{if !empty($data['home_site_user_forgetpwd_ad3_images']['value'])}}
|
||||
<li>
|
||||
<input type="text" name="home_site_user_forgetpwd_ad3_images" value="{{$data.home_site_user_forgetpwd_ad3_images.value}}" />
|
||||
<img src="{{$Think.__MY_PUBLIC_URL__}}{{$data.home_site_user_forgetpwd_ad3_images.value}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.home_site_user_forgetpwd_ad3_images-images-view">+选择图片</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_site_user_forgetpwd_ad3_url.name}}<span class="am-form-group-label-tips">{{$data.home_site_user_forgetpwd_ad3_url.describe}}</span></label>
|
||||
<input type="url" placeholder="{{$data.home_site_user_forgetpwd_ad3_url.name}}" name="{{$data.home_site_user_forgetpwd_ad3_url.only_tag}}" value="{{$data.home_site_user_forgetpwd_ad3_url.value}}" class="am-radius" />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>背景色</label>
|
||||
<input type="hidden" name="{{$data.home_site_user_forgetpwd_ad3_bg_color.only_tag}}" value="{{$data.home_site_user_forgetpwd_ad3_bg_color.value}}" />
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit am-btn-block bk-cr-white t-r bg-color-tag-{{$data.home_site_user_forgetpwd_ad3_bg_color.only_tag}}" type="button" data-input-tag="button.bg-color-tag-{{$data.home_site_user_forgetpwd_ad3_bg_color.only_tag}}" data-color-tag="input[name='{{$data.home_site_user_forgetpwd_ad3_bg_color.only_tag}}']" data-color-style="background-color" {{if !empty($data['home_site_user_forgetpwd_ad3_bg_color']['value'])}} style="background-color:{{$data.home_site_user_forgetpwd_ad3_bg_color.value}};"{{/if}}>
|
||||
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<input type="hidden" name="nav_type" value="{{$nav_type}}" />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,50 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- table nav start -->
|
||||
{{include file="site/nav" /}}
|
||||
<!-- table nav end -->
|
||||
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:MyUrl('admin/site/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/site/index', ['nav_type'=>'imagesverify'])}}" enctype="multipart/form-data">
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_verify_expire_time.name}}<span class="am-form-group-label-tips">{{$data.common_verify_expire_time.describe}}</span></label>
|
||||
<input type="number" name="{{$data.common_verify_expire_time.only_tag}}" placeholder="{{$data.common_verify_expire_time.name}}" data-validation-message="{{$data.common_verify_expire_time.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.common_verify_expire_time.value}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_verify_time_interval.name}}<span class="am-form-group-label-tips">{{$data.common_verify_time_interval.describe}}</span></label>
|
||||
<input type="number" name="{{$data.common_verify_time_interval.only_tag}}" placeholder="{{$data.common_verify_time_interval.name}}" data-validation-message="{{$data.common_verify_time_interval.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.common_verify_time_interval.value}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_img_verify_state.name}}<span class="am-form-group-label-tips">{{$data.home_img_verify_state.describe}}</span></label>
|
||||
<select name="{{$data.home_img_verify_state.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.home_img_verify_state.error_tips}}" required>
|
||||
{{foreach $site_img_verify_state_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['home_img_verify_state']['value']) and $data['home_img_verify_state']['value'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_images_verify_rules.name}}<span class="am-form-group-label-tips">{{$data.common_images_verify_rules.describe}}</span></label>
|
||||
<select name="{{$data.common_images_verify_rules.only_tag}}" multiple="multiple" class="am-radius chosen-select" data-placeholder="{{$data.common_images_verify_rules.name}}" >
|
||||
{{foreach $site_images_verify_rules_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['common_images_verify_rules']['value']) and in_array($v['value'], explode(',', $data['common_images_verify_rules']['value']))}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<input type="hidden" name="nav_type" value="{{$nav_type}}" />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- form end -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end
|
||||
|
|
@ -8,8 +8,9 @@
|
|||
<!-- table nav end -->
|
||||
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save site-panel" action="{{:MyUrl('admin/site/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/site/index')}}" enctype="multipart/form-data">
|
||||
<div class="am-panel am-panel-secondary">
|
||||
<form class="am-form form-validation view-save site-panel" action="{{:MyUrl('admin/site/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/site/index', ['nav_type'=>'login'])}}" enctype="multipart/form-data">
|
||||
<!-- 图片1 -->
|
||||
<div class="am-panel am-panel-default">
|
||||
<div class="am-panel-hd">
|
||||
<span class="am-panel-title">图片1</span>
|
||||
</div>
|
||||
|
|
@ -30,20 +31,21 @@
|
|||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_site_user_login_ad1_url.name}}<span class="am-form-group-label-tips">{{$data.home_site_user_login_ad1_url.describe}}</span></label>
|
||||
<input type="url" placeholder="{{$data.home_site_user_login_ad1_url.name}}" name="{{$data.home_site_user_login_ad1_url.only_tag}}" class="am-radius" />
|
||||
<input type="url" placeholder="{{$data.home_site_user_login_ad1_url.name}}" name="{{$data.home_site_user_login_ad1_url.only_tag}}" value="{{$data.home_site_user_login_ad1_url.value}}" class="am-radius" />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>背景色</label>
|
||||
<input type="hidden" name="bg_color" value="{{if !empty($data['bg_color'])}}{{$data.bg_color}}{{/if}}" />
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit bg-color-tag am-btn-block bk-cr-white t-r" type="button" data-input-tag="button.bg-color-tag" data-color-tag="input[name='bg_color']" data-color-style="background-color" {{if !empty($data['bg_color'])}} style="background-color:{{$data.bg_color}};"{{/if}}>
|
||||
<input type="hidden" name="{{$data.home_site_user_login_ad1_bg_color.only_tag}}" value="{{$data.home_site_user_login_ad1_bg_color.value}}" />
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit am-btn-block bk-cr-white t-r bg-color-tag-{{$data.home_site_user_login_ad1_bg_color.only_tag}}" type="button" data-input-tag="button.bg-color-tag-{{$data.home_site_user_login_ad1_bg_color.only_tag}}" data-color-tag="input[name='{{$data.home_site_user_login_ad1_bg_color.only_tag}}']" data-color-style="background-color" {{if !empty($data['home_site_user_login_ad1_bg_color']['value'])}} style="background-color:{{$data.home_site_user_login_ad1_bg_color.value}};"{{/if}}>
|
||||
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-panel am-panel-secondary">
|
||||
<!-- 图片2 -->
|
||||
<div class="am-panel am-panel-default">
|
||||
<div class="am-panel-hd">
|
||||
<span class="am-panel-title">图片2</span>
|
||||
</div>
|
||||
|
|
@ -64,20 +66,21 @@
|
|||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_site_user_login_ad2_url.name}}<span class="am-form-group-label-tips">{{$data.home_site_user_login_ad2_url.describe}}</span></label>
|
||||
<input type="url" placeholder="{{$data.home_site_user_login_ad2_url.name}}" name="{{$data.home_site_user_login_ad2_url.only_tag}}" class="am-radius" />
|
||||
<input type="url" placeholder="{{$data.home_site_user_login_ad2_url.name}}" name="{{$data.home_site_user_login_ad2_url.only_tag}}" value="{{$data.home_site_user_login_ad2_url.value}}" class="am-radius" />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>背景色</label>
|
||||
<input type="hidden" name="bg_color" value="{{if !empty($data['bg_color'])}}{{$data.bg_color}}{{/if}}" />
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit bg-color-tag am-btn-block bk-cr-white t-r" type="button" data-input-tag="button.bg-color-tag" data-color-tag="input[name='bg_color']" data-color-style="background-color" {{if !empty($data['bg_color'])}} style="background-color:{{$data.bg_color}};"{{/if}}>
|
||||
<input type="hidden" name="{{$data.home_site_user_login_ad2_bg_color.only_tag}}" value="{{$data.home_site_user_login_ad2_bg_color.value}}" />
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit am-btn-block bk-cr-white t-r bg-color-tag-{{$data.home_site_user_login_ad2_bg_color.only_tag}}" type="button" data-input-tag="button.bg-color-tag-{{$data.home_site_user_login_ad2_bg_color.only_tag}}" data-color-tag="input[name='{{$data.home_site_user_login_ad2_bg_color.only_tag}}']" data-color-style="background-color" {{if !empty($data['home_site_user_login_ad2_bg_color']['value'])}} style="background-color:{{$data.home_site_user_login_ad2_bg_color.value}};"{{/if}}>
|
||||
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-panel am-panel-secondary">
|
||||
<!-- 图片3 -->
|
||||
<div class="am-panel am-panel-default">
|
||||
<div class="am-panel-hd">
|
||||
<span class="am-panel-title">图片3</span>
|
||||
</div>
|
||||
|
|
@ -98,13 +101,13 @@
|
|||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_site_user_login_ad3_url.name}}<span class="am-form-group-label-tips">{{$data.home_site_user_login_ad3_url.describe}}</span></label>
|
||||
<input type="url" placeholder="{{$data.home_site_user_login_ad3_url.name}}" name="{{$data.home_site_user_login_ad3_url.only_tag}}" class="am-radius" />
|
||||
<input type="url" placeholder="{{$data.home_site_user_login_ad3_url.name}}" name="{{$data.home_site_user_login_ad3_url.only_tag}}" value="{{$data.home_site_user_login_ad3_url.value}}" class="am-radius" />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>背景色</label>
|
||||
<input type="hidden" name="bg_color" value="{{if !empty($data['bg_color'])}}{{$data.bg_color}}{{/if}}" />
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit bg-color-tag am-btn-block bk-cr-white t-r" type="button" data-input-tag="button.bg-color-tag" data-color-tag="input[name='bg_color']" data-color-style="background-color" {{if !empty($data['bg_color'])}} style="background-color:{{$data.bg_color}};"{{/if}}>
|
||||
<input type="hidden" name="{{$data.home_site_user_login_ad3_bg_color.only_tag}}" value="{{$data.home_site_user_login_ad3_bg_color.value}}" />
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit am-btn-block bk-cr-white t-r bg-color-tag-{{$data.home_site_user_login_ad3_bg_color.only_tag}}" type="button" data-input-tag="button.bg-color-tag-{{$data.home_site_user_login_ad3_bg_color.only_tag}}" data-color-tag="input[name='{{$data.home_site_user_login_ad3_bg_color.only_tag}}']" data-color-style="background-color" {{if !empty($data['home_site_user_login_ad3_bg_color']['value'])}} style="background-color:{{$data.home_site_user_login_ad3_bg_color.value}};"{{/if}}>
|
||||
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -120,7 +123,17 @@
|
|||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_user_login_img_verify_state.name}}<span class="am-form-group-label-tips">{{$data.home_user_login_img_verify_state.describe}}</span></label>
|
||||
<select name="{{$data.home_user_login_img_verify_state.only_tag}}" class="am-radius chosen-select c-p" data-validation-message="{{$data.home_user_login_img_verify_state.error_tips}}" required>
|
||||
{{foreach $site_img_verify_state_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['home_user_login_img_verify_state']['value']) and $data['home_user_login_img_verify_state']['value'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<input type="hidden" name="nav_type" value="{{$nav_type}}" />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -2,13 +2,19 @@
|
|||
<li {{if $nav_type eq 'base'}}class="am-active"{{/if}} data-type="base">
|
||||
<a href="{{:MyUrl('admin/site/index', ['nav_type'=>'base'])}}">基础配置</a>
|
||||
</li>
|
||||
<li {{if $nav_type eq 'login'}}class="am-active"{{/if}} data-type="login">
|
||||
<a href="{{:MyUrl('admin/site/index', ['nav_type'=>'login'])}}">用户登录</a>
|
||||
</li>
|
||||
<li {{if $nav_type eq 'register'}}class="am-active"{{/if}} data-type="register">
|
||||
<a href="{{:MyUrl('admin/site/index', ['nav_type'=>'register'])}}">用户注册</a>
|
||||
</li>
|
||||
<li {{if $nav_type eq 'login'}}class="am-active"{{/if}} data-type="login">
|
||||
<a href="{{:MyUrl('admin/site/index', ['nav_type'=>'login'])}}">用户登录</a>
|
||||
</li>
|
||||
<li {{if $nav_type eq 'forgetpwd'}}class="am-active"{{/if}} data-type="forgetpwd">
|
||||
<a href="{{:MyUrl('admin/site/index', ['nav_type'=>'forgetpwd'])}}">密码找回</a>
|
||||
</li>
|
||||
<li {{if $nav_type eq 'attachment'}}class="am-active"{{/if}} data-type="attachment">
|
||||
<a href="{{:MyUrl('admin/site/index', ['nav_type'=>'attachment'])}}">附件</a>
|
||||
</li>
|
||||
<li {{if $nav_type eq 'imagesverify'}}class="am-active"{{/if}} data-type="imagesverify">
|
||||
<a href="{{:MyUrl('admin/site/index', ['nav_type'=>'imagesverify'])}}">图片验证码</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
@ -26,13 +26,23 @@
|
|||
<div class="am-form-group">
|
||||
<label>{{$data.home_user_reg_state.name}}<span class="am-form-group-label-tips">{{$data.home_user_reg_state.describe}}</span></label>
|
||||
<select name="{{$data.home_user_reg_state.only_tag}}" multiple="multiple" class="am-radius chosen-select c-p" data-placeholder="{{$data.home_user_reg_state.name}}" >
|
||||
{{foreach $site_user_reg_state_list as $v}}
|
||||
{{foreach $common_user_reg_state_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['home_user_reg_state']['value']) and in_array($v['value'], explode(',', $data['home_user_reg_state']['value']))}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_user_register_img_verify_state.name}}<span class="am-form-group-label-tips">{{$data.home_user_register_img_verify_state.describe}}</span></label>
|
||||
<select name="{{$data.home_user_register_img_verify_state.only_tag}}" class="am-radius chosen-select c-p" data-validation-message="{{$data.home_user_register_img_verify_state.error_tips}}" required>
|
||||
{{foreach $site_img_verify_state_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['home_user_register_img_verify_state']['value']) and $data['home_user_register_img_verify_state']['value'] eq $v['value']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<input type="hidden" name="nav_type" value="{{$nav_type}}" />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -166,6 +166,10 @@ class User extends Common
|
|||
// 浏览器名称
|
||||
$this->assign('home_seo_site_title', SeoService::BrowserSeoTitle('密码找回', 1));
|
||||
|
||||
// 左侧图片,随机其中一个
|
||||
$left_data = UserService::UserEntranceLeftData(['left_key'=>'forgetpwd', 'cache_key'=>config('shopxo.cache_user_forgetpwd_left_key')]);
|
||||
$this->assign('user_forgetpwd_left_data', empty($left_data['data']) ? [] : $left_data['data'][array_rand($left_data['data'], 1)]);
|
||||
|
||||
return $this->fetch();
|
||||
} else {
|
||||
$this->assign('msg', '已经登录了,如要重置密码,请先退出当前账户');
|
||||
|
|
@ -223,7 +227,13 @@ class User extends Common
|
|||
// 浏览器名称
|
||||
$this->assign('home_seo_site_title', SeoService::BrowserSeoTitle('用户登录', 1));
|
||||
|
||||
// 返回地址
|
||||
$this->assign('referer_url', $this->GetrefererUrl());
|
||||
|
||||
// 左侧图片,随机其中一个
|
||||
$left_data = UserService::UserEntranceLeftData(['left_key'=>'login', 'cache_key'=>config('shopxo.cache_user_login_left_key')]);
|
||||
$this->assign('user_login_left_data', empty($left_data['data']) ? [] : $left_data['data'][array_rand($left_data['data'], 1)]);
|
||||
|
||||
return $this->fetch();
|
||||
} else {
|
||||
$this->assign('msg', '已经登录了,请勿重复登录');
|
||||
|
|
@ -316,10 +326,8 @@ class User extends Common
|
|||
{
|
||||
$params = array(
|
||||
'width' => 100,
|
||||
'height' => 32,
|
||||
'height' => 26,
|
||||
'key_prefix' => input('type', 'reg'),
|
||||
'use_point_back' => false,
|
||||
'use_color_back' => false,
|
||||
);
|
||||
$verify = new \base\Verify($params);
|
||||
$verify->Entry();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<header class="am-topbar shop-navigation">
|
||||
<div class="am-container">
|
||||
<button class="am-topbar-btn am-topbar-toggle am-btn am-btn-sm am-btn-default am-show-sm-only" data-am-collapse="{target: '#doc-topbar-collapse'}"><span class="am-sr-only">导航切换</span> <span class="am-icon-bars"></span></button>
|
||||
<button class="am-topbar-btn am-topbar-toggle am-btn am-btn-sm am-btn-default am-show-sm-only switch-submit" data-am-collapse="{target: '#doc-topbar-collapse'}"><span class="am-sr-only">导航切换</span> <span class="am-icon-bars"></span></button>
|
||||
|
||||
<h1 class="am-topbar-brand wap-logo am-show-sm-only">
|
||||
<a href="{{$Think.__MY_URL__}}">
|
||||
|
|
@ -26,13 +26,26 @@
|
|||
</form>
|
||||
|
||||
<div class="am-collapse am-topbar-collapse" id="doc-topbar-collapse">
|
||||
{{if empty($user)}}
|
||||
<!-- 未登录 -->
|
||||
<div class="navigation-button am-show-sm-only">
|
||||
{{if MyC('home_user_login_state') eq 1}}
|
||||
<a href="{{:MyUrl('index/user/logininfo')}}" class="am-btn am-btn-primary am-topbar-btn am-btn-sm">登录</a>
|
||||
{{/if}}
|
||||
{{if in_array('sms', MyC('home_user_reg_state')) or in_array('email', MyC('home_user_reg_state')) or in_array('username', MyC('home_user_reg_state'))}}
|
||||
<a href="{{:MyUrl('index/user/regInfo')}}" class="am-btn am-btn-success am-topbar-btn am-btn-sm">注册</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- 主导航 -->
|
||||
<ul class="am-nav am-nav-pills am-topbar-nav">
|
||||
<li><a href="{{$Think.__MY_URL__}}">首页</a></li>
|
||||
{{if !empty($nav_header)}}
|
||||
{{foreach $nav_header as $nav}}
|
||||
{{if empty($nav['items'])}}
|
||||
<li>
|
||||
<a href="{{$nav.url}}" {{if $nav['is_new_window_open'] eq 1}}target="_blank"{{/if}}>{{$nav.name}}</a>
|
||||
<a href="{{$nav.url}}" {{if $nav['is_new_window_open'] eq 1}}target="_blank"{{/if}} title="{{$nav.name}}">{{$nav.name}}</a>
|
||||
</li>
|
||||
{{else /}}
|
||||
<li class="am-dropdown" data-am-dropdown>
|
||||
|
|
@ -42,7 +55,7 @@
|
|||
<ul class="am-dropdown-content">
|
||||
{{foreach $nav.items as $navs}}
|
||||
<li>
|
||||
<a href="{{$navs.url}}">{{$navs.name}}</a>
|
||||
<a href="{{$navs.url}}" title="{{$navs.name}}">{{$navs.name}}</a>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -12,10 +12,14 @@
|
|||
<!-- goods category -->
|
||||
{{include file="public/goods_category" /}}
|
||||
<!-- conntent start -->
|
||||
<div class="am-g my-content">
|
||||
<div class="am-g my-content" {{if !empty($user_forgetpwd_left_data['bg_color'])}}style="background-color:{{$user_forgetpwd_left_data.bg_color}};"{{/if}}>
|
||||
<div class="am-container user-forgetpwd-container">
|
||||
<div class="am-hide-sm-only am-u-md-6 am-u-lg-8 am-vertical-align am-text-center container-left">
|
||||
<img src="http://b2b2c.shopnctest.com/dema/data/upload/shop/login/4.jpg" class="am-vertical-align-middle" />
|
||||
{{if !empty($user_forgetpwd_left_data['images'])}}
|
||||
<a href="{{if empty($user_forgetpwd_left_data['url'])}}javascript:;{{else /}}{{$user_forgetpwd_left_data.url}}{{/if}}" target="_blank">
|
||||
<img src="{{$user_forgetpwd_left_data.images}}" class="am-vertical-align-middle" alt="密码找回" />
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="am-u-sm-12 am-u-md-6 am-u-lg-4 container-right">
|
||||
<div class="forgetpwd-top">
|
||||
|
|
@ -67,7 +71,7 @@
|
|||
</div>
|
||||
<div class="am-modal-bd">
|
||||
<div class="base">
|
||||
<input type="text" placeholder="图形验证码" maxlength="6" id="verify-img-value" data-validation-message="请输入有效的图形验证码" class="am-form-field am-radius" />
|
||||
<input type="text" placeholder="图形验证码" minlength="6" maxlength="6" id="verify-img-value" data-validation-message="请输入有效的图形验证码" class="am-form-field am-radius" />
|
||||
<div class="am-fl">
|
||||
<img src="{{:MyUrl('index/user/userverifyentry', ['type'=>'forget'])}}" class="am-radius c-p" id="verify-img" onClick="this.src=this.src+'#'+Math.random();" />
|
||||
<a href="javascript:;" class="verify-tips" onClick="document.getElementById('verify-img').src='{{:MyUrl('index/user/userverifyentry', ['type'=>'forget'])}}#'+Math.random();">看不清换一张</a>
|
||||
|
|
|
|||
|
|
@ -13,10 +13,14 @@
|
|||
{{include file="public/goods_category" /}}
|
||||
|
||||
<!-- conntent start -->
|
||||
<div class="am-g my-content">
|
||||
<div class="am-g my-content" {{if !empty($user_login_left_data['bg_color'])}}style="background-color:{{$user_login_left_data.bg_color}};"{{/if}}>
|
||||
<div class="am-container user-login-container">
|
||||
<div class="am-hide-sm-only am-u-md-6 am-u-lg-8 am-vertical-align am-text-center container-left">
|
||||
<img src="http://b2b2c.shopnctest.com/dema/data/upload/shop/login/2.jpg" class="am-vertical-align-middle" />
|
||||
{{if !empty($user_login_left_data['images'])}}
|
||||
<a href="{{if empty($user_login_left_data['url'])}}javascript:;{{else /}}{{$user_login_left_data.url}}{{/if}}" target="_blank">
|
||||
<img src="{{$user_login_left_data.images}}" class="am-vertical-align-middle" alt="用户登录" />
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="am-u-sm-12 am-u-md-6 am-u-lg-4 container-right">
|
||||
<div class="forgetpwd-top">
|
||||
|
|
@ -51,6 +55,21 @@
|
|||
<label>登录密码</label>
|
||||
<input type="password" name="pwd" class="am-radius" placeholder="登录密码" pattern="{{:lang('common_regex_pwd')}}" data-validation-message="密码格式 6~18 个字符之间" required />
|
||||
</div>
|
||||
|
||||
{{if MyC('home_user_login_img_verify_state') eq 1}}
|
||||
<div class="am-form-group am-form-group-refreshing business-form-block">
|
||||
<label>验证码</label>
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="text" name="verify" class="am-radius" placeholder="验证码" minlength="6" maxlength="6" data-validation-message="请输入图片验证码" required />
|
||||
<span class="am-input-group-btn">
|
||||
<span class="am-btn am-btn-default am-radius form-verify">
|
||||
<img src="{{:MyUrl('index/user/userverifyentry', ['type'=>'login'])}}" class="am-radius c-p" id="form-verify-img" onClick="this.src=this.src+'#'+Math.random();" />
|
||||
<a href="javascript:;" class="form-verify-tips" onClick="document.getElementById('form-verify-img').src='{{:MyUrl('index/user/userverifyentry', ['type'=>'login'])}}#'+Math.random();">更换一张</a>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-sm btn-loading-example" data-am-loading="{loadingText: '登录中...'}">登录</button>
|
||||
|
|
|
|||
|
|
@ -1,49 +1,61 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
<!-- conntent start -->
|
||||
<div class="am-g my-content">
|
||||
<div class="am-u-md-6 am-u-sm-centered">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation" method="post" action="{{:MyUrl('index/user/login')}}" request-type="ajax-fun" request-value="ViewModalBack">
|
||||
<fieldset>
|
||||
{{if in_array('sms', MyC('home_user_reg_state')) or in_array('email', MyC('home_user_reg_state'))}}
|
||||
<span class="">还没有帐号?</span>
|
||||
<a href="{{:MyUrl('index/user/reginfo')}}" target="_blank" class="am-btn am-btn-secondary am-btn-xs am-radius">立即注册</a>
|
||||
{{/if}}
|
||||
<div class="am-g my-content login-modal-container">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation" method="post" action="{{:MyUrl('index/user/login')}}" request-type="ajax-fun" request-value="ViewModalBack">
|
||||
<div class="xo-padding-horizontal-md-sm login-modal-container-top">
|
||||
{{if in_array('sms', MyC('home_user_reg_state')) or in_array('email', MyC('home_user_reg_state'))}}
|
||||
<span class="">还没有帐号?</span>
|
||||
<a href="{{:MyUrl('index/user/reginfo')}}" target="_blank" class="am-btn am-btn-secondary am-btn-xs am-radius">立即注册</a>
|
||||
{{/if}}
|
||||
|
||||
<!-- 用户登录页面顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_view_user_login_info_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_view_user_login_info_top_data) and is_array($plugins_view_user_login_info_top_data)}}
|
||||
{{foreach $plugins_view_user_login_info_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
<hr />
|
||||
<!-- 用户登录页面顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_view_user_login_info_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_view_user_login_info_top_data) and is_array($plugins_view_user_login_info_top_data)}}
|
||||
{{foreach $plugins_view_user_login_info_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<label>登录账号</label>
|
||||
<input type="text" name="accounts" class="am-radius" minlength="1" placeholder="用户名/手机/邮箱" data-validation-message="请填写登录账号" required />
|
||||
</div>
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<label>登录账号</label>
|
||||
<input type="text" name="accounts" class="am-radius" minlength="1" placeholder="用户名/手机/邮箱" data-validation-message="请填写登录账号" required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<label>登录密码</label>
|
||||
<input type="password" name="pwd" class="am-radius" placeholder="登录密码" pattern="{{:lang('common_regex_pwd')}}" data-validation-message="密码格式 6~18 个字符之间" required />
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<label>登录密码</label>
|
||||
<input type="password" name="pwd" class="am-radius" placeholder="登录密码" pattern="{{:lang('common_regex_pwd')}}" data-validation-message="密码格式 6~18 个字符之间" required />
|
||||
</div>
|
||||
|
||||
{{if MyC('home_user_login_img_verify_state') eq 1}}
|
||||
<div class="am-form-group am-form-group-refreshing business-form-block">
|
||||
<label>验证码</label>
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="text" name="verify" class="am-radius" placeholder="验证码" minlength="6" maxlength="6" data-validation-message="请输入图片验证码" required />
|
||||
<span class="am-input-group-btn">
|
||||
<span class="am-btn am-btn-default am-radius form-verify">
|
||||
<img src="{{:MyUrl('index/user/userverifyentry', ['type'=>'login'])}}" class="am-radius c-p" id="form-verify-img" onClick="this.src=this.src+'#'+Math.random();" />
|
||||
<a href="javascript:;" class="form-verify-tips" onClick="document.getElementById('form-verify-img').src='{{:MyUrl('index/user/userverifyentry', ['type'=>'login'])}}#'+Math.random();">更换一张</a>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-sm btn-loading-example" data-am-loading="{loadingText: '登录中...'}">登录</button>
|
||||
<a href="{{:MyUrl('index/user/forgetpwdinfo')}}" target="_blank" class="am-fr">忘记密码?</a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
<!-- form end -->
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-sm btn-loading-example" data-am-loading="{loadingText: '登录中...'}">登录</button>
|
||||
<a href="{{:MyUrl('index/user/forgetpwdinfo')}}" target="_blank" class="am-fr">忘记密码?</a>
|
||||
</div>
|
||||
</form>
|
||||
<!-- form end -->
|
||||
</div>
|
||||
<!-- conntent end -->
|
||||
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{{if MyC('home_img_verify_state') eq 1}}
|
||||
{{if MyC('home_user_register_img_verify_state') eq 1}}
|
||||
<div class="am-form-group am-form-group-refreshing business-form-block">
|
||||
<label>验证码</label>
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
|
|
@ -218,7 +218,7 @@
|
|||
</div>
|
||||
<div class="am-modal-bd">
|
||||
<div class="base">
|
||||
<input type="text" placeholder="图形验证码" maxlength="6" id="verify-img-value" data-validation-message="请输入有效的图形验证码" class="am-form-field am-radius" />
|
||||
<input type="text" placeholder="图形验证码" minlength="6" maxlength="6" id="verify-img-value" data-validation-message="请输入有效的图形验证码" class="am-form-field am-radius" />
|
||||
<div class="am-fl">
|
||||
<img src="{{:MyUrl('index/user/userverifyentry', ['type'=>'reg'])}}" class="am-radius c-p" id="verify-img" onClick="this.src=this.src+'#'+Math.random();" />
|
||||
<a href="javascript:;" class="verify-tips" onClick="document.getElementById('verify-img').src='{{:MyUrl('index/user/userverifyentry', ['type'=>'reg'])}}#'+Math.random();">看不清换一张</a>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ return array(
|
|||
),
|
||||
|
||||
// 用户注册类型列表
|
||||
'site_user_reg_state_list' => array(
|
||||
'common_user_reg_state_list' => array(
|
||||
0 => array('value' => 'sms', 'name' => '短信'),
|
||||
1 => array('value' => 'email', 'name' => '邮箱'),
|
||||
2 => array('value' => 'username', 'name' => '用户名'),
|
||||
|
|
|
|||
|
|
@ -40,6 +40,18 @@ class ConfigService
|
|||
'home_site_desktop_icon',
|
||||
'common_customer_store_qrcode',
|
||||
'home_site_user_register_bg_images',
|
||||
'home_site_user_login_ad1_images',
|
||||
'home_site_user_login_ad2_images',
|
||||
'home_site_user_login_ad3_images',
|
||||
'home_site_user_forgetpwd_ad1_images',
|
||||
'home_site_user_forgetpwd_ad2_images',
|
||||
'home_site_user_forgetpwd_ad3_images',
|
||||
];
|
||||
|
||||
// 字符串转数组字段列表, 默认使用英文逗号处理 [ , ]
|
||||
public static $string_to_array_field_list = [
|
||||
'home_user_reg_state',
|
||||
'common_images_verify_rules',
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -143,9 +155,12 @@ class ConfigService
|
|||
|
||||
// 数据处理
|
||||
// 开启用户注册列表
|
||||
if(isset($data['home_user_reg_state']))
|
||||
foreach(self::$string_to_array_field_list as $field)
|
||||
{
|
||||
$data['home_user_reg_state'] = explode(',', $data['home_user_reg_state']);
|
||||
if(isset($data[$field]))
|
||||
{
|
||||
$data[$field] = empty($data[$field]) ? [] : explode(',', $data[$field]);
|
||||
}
|
||||
}
|
||||
|
||||
// 富文本字段处理
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ use think\Db;
|
|||
use think\facade\Hook;
|
||||
use app\service\RegionService;
|
||||
use app\service\SafetyService;
|
||||
use app\service\ResourcesService;
|
||||
|
||||
/**
|
||||
* 用户服务层
|
||||
|
|
@ -895,6 +896,17 @@ class UserService
|
|||
return DataReturn('密码格式 6~18 个字符之间', -2);
|
||||
}
|
||||
|
||||
// 是否开启图片验证码
|
||||
$verify_params = array(
|
||||
'key_prefix' => 'login',
|
||||
'expire_time' => MyC('common_verify_expire_time'),
|
||||
);
|
||||
$verify = self::IsImaVerify($params, $verify_params, MyC('home_user_login_img_verify_state'));
|
||||
if($verify['code'] != 0)
|
||||
{
|
||||
return $verify;
|
||||
}
|
||||
|
||||
// 获取用户账户信息
|
||||
$where = array('username|mobile|email' => $params['accounts'], 'is_delete_time'=>0);
|
||||
$user = Db::name('User')->field('id,pwd,salt,status')->where($where)->find();
|
||||
|
|
@ -994,7 +1006,7 @@ class UserService
|
|||
[
|
||||
'checked_type' => 'in',
|
||||
'key_name' => 'type',
|
||||
'checked_data' => array_column(lang('site_user_reg_state_list'), 'value'),
|
||||
'checked_data' => array_column(lang('common_user_reg_state_list'), 'value'),
|
||||
'error_msg' => '注册类型有误',
|
||||
],
|
||||
[
|
||||
|
|
@ -1024,15 +1036,23 @@ class UserService
|
|||
}
|
||||
|
||||
// 验证码校验
|
||||
$verify_param = array(
|
||||
$verify_params = array(
|
||||
'key_prefix' => 'reg',
|
||||
'expire_time' => MyC('common_verify_expire_time')
|
||||
'expire_time' => MyC('common_verify_expire_time'),
|
||||
);
|
||||
if($params['type'] == 'sms')
|
||||
{
|
||||
$obj = new \base\Sms($verify_param);
|
||||
$obj = new \base\Sms($verify_params);
|
||||
} else if($params['type'] == 'email') {
|
||||
$obj = new \base\Email($verify_param);
|
||||
$obj = new \base\Email($verify_params);
|
||||
} else if($params['type'] == 'username')
|
||||
{
|
||||
// 是否开启图片验证码
|
||||
$verify = self::IsImaVerify($params, $verify_params, MyC('home_user_register_img_verify_state'));
|
||||
if($verify['code'] != 0)
|
||||
{
|
||||
return $verify;
|
||||
}
|
||||
}
|
||||
|
||||
// 验证码校验
|
||||
|
|
@ -1178,15 +1198,16 @@ class UserService
|
|||
* @datetime 2017-03-22T15:48:31+0800
|
||||
* @param [array] $params [输入参数]
|
||||
* @param [array] $verify_params [配置参数]
|
||||
* @param [int] $status [状态 0未开启, 1已开启]
|
||||
* @return [object] [图片验证码类对象]
|
||||
*/
|
||||
private static function IsImaVerify($params, $verify_params)
|
||||
private static function IsImaVerify($params, $verify_params, $status = 0)
|
||||
{
|
||||
if(MyC('home_img_verify_state') == 1)
|
||||
if($status == 1)
|
||||
{
|
||||
if(empty($params['verify']))
|
||||
{
|
||||
return DataReturn('参数错误', -10);
|
||||
return DataReturn('图片验证码为空', -10);
|
||||
}
|
||||
$verify = new \base\Verify($verify_params);
|
||||
if(!$verify->CheckExpire())
|
||||
|
|
@ -1222,7 +1243,7 @@ class UserService
|
|||
[
|
||||
'checked_type' => 'in',
|
||||
'key_name' => 'type',
|
||||
'checked_data' => array_column(lang('site_user_reg_state_list'), 'value'),
|
||||
'checked_data' => array_column(lang('common_user_reg_state_list'), 'value'),
|
||||
'error_msg' => '注册类型有误',
|
||||
],
|
||||
];
|
||||
|
|
@ -1246,7 +1267,7 @@ class UserService
|
|||
);
|
||||
|
||||
// 是否开启图片验证码
|
||||
$verify = self::IsImaVerify($params, $verify_params);
|
||||
$verify = self::IsImaVerify($params, $verify_params, MyC('home_img_verify_state'));
|
||||
if($verify['code'] != 0)
|
||||
{
|
||||
return $verify;
|
||||
|
|
@ -1317,7 +1338,7 @@ class UserService
|
|||
);
|
||||
|
||||
// 是否开启图片验证码
|
||||
$verify = self::IsImaVerify($params, $verify_params);
|
||||
$verify = self::IsImaVerify($params, $verify_params, MyC('home_img_verify_state'));
|
||||
if($verify['code'] != 0)
|
||||
{
|
||||
return $verify;
|
||||
|
|
@ -1691,11 +1712,11 @@ class UserService
|
|||
}
|
||||
|
||||
// 验证码校验
|
||||
$verify_param = array(
|
||||
$verify_params = array(
|
||||
'key_prefix' => 'bind',
|
||||
'expire_time' => MyC('common_verify_expire_time')
|
||||
);
|
||||
$obj = new \base\Sms($verify_param);
|
||||
$obj = new \base\Sms($verify_params);
|
||||
|
||||
// 是否已过期
|
||||
if(!$obj->CheckExpire())
|
||||
|
|
@ -1814,14 +1835,14 @@ class UserService
|
|||
}
|
||||
|
||||
// 验证码公共基础参数
|
||||
$verify_param = array(
|
||||
$verify_params = array(
|
||||
'key_prefix' => 'bind',
|
||||
'expire_time' => MyC('common_verify_expire_time'),
|
||||
'time_interval' => MyC('common_verify_time_interval'),
|
||||
);
|
||||
|
||||
// 发送验证码
|
||||
$obj = new \base\Sms($verify_param);
|
||||
$obj = new \base\Sms($verify_params);
|
||||
$code = GetNumberCode(6);
|
||||
$status = $obj->SendCode($params['mobile'], $code, MyC('home_sms_user_mobile_binding'));
|
||||
|
||||
|
|
@ -1912,5 +1933,49 @@ class UserService
|
|||
return $user;
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户登录,密码找回左侧数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2019-05-17
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function UserEntranceLeftData($params = [])
|
||||
{
|
||||
// 从缓存获取
|
||||
$data = empty($params['cache_key']) ? [] : cache($params['cache_key']);
|
||||
|
||||
// 获取数据
|
||||
if(empty($data))
|
||||
{
|
||||
$data = [];
|
||||
if(!empty($params['left_key']))
|
||||
{
|
||||
for($i=1; $i<=3; $i++)
|
||||
{
|
||||
$images_value = MyC('home_site_user_'.$params['left_key'].'_ad'.$i.'_images');
|
||||
$url_value = MyC('home_site_user_'.$params['left_key'].'_ad'.$i.'_url');
|
||||
$bg_color_value = MyC('home_site_user_'.$params['left_key'].'_ad'.$i.'_bg_color');
|
||||
if(!empty($images_value))
|
||||
{
|
||||
$data[] = [
|
||||
'images' => ResourcesService::AttachmentPathViewHandle($images_value),
|
||||
'url' => empty($url_value) ? null : $url_value,
|
||||
'bg_color' => empty($bg_color_value) ? null : $bg_color_value,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// 存储缓存
|
||||
if(!empty($params['cache_key']))
|
||||
{
|
||||
cache($params['cache_key'], $data);
|
||||
}
|
||||
}
|
||||
}
|
||||
return DataReturn('操作成功', 0, $data);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -36,6 +36,12 @@ return [
|
|||
// 应用数据缓存
|
||||
'cache_plugins_data_key' => 'cache_plugins_data_key_data_',
|
||||
|
||||
// 用户登录左侧数据
|
||||
'cache_user_login_left_key' => 'cache_user_login_left_data',
|
||||
|
||||
// 用户密码找回左侧数据
|
||||
'cache_user_forgetpwd_left_key' => 'cache_user_forgetpwd_left_data',
|
||||
|
||||
// 附件host, 数据库图片地址以/static/...开头
|
||||
'attachment_host' => defined('__MY_PUBLIC_URL__') ? substr(__MY_PUBLIC_URL__, 0, -1) : '',
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,8 @@ class Verify
|
|||
private $length;
|
||||
private $use_point_back;
|
||||
private $use_line_back;
|
||||
private $use_color_back;
|
||||
private $use_bg_color_back;
|
||||
private $use_text_color_back;
|
||||
private $key_verify;
|
||||
private $expire_time;
|
||||
|
||||
|
|
@ -36,24 +37,29 @@ class Verify
|
|||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-03-05T16:42:49+0800
|
||||
* @param [int] $param['width'] [宽度(默认65)]
|
||||
* @param [int] $param['height'] [高度(默认30)]
|
||||
* @param [int] $param['length'] [验证码位数(默认6)]
|
||||
* @param [boolean] $param['use_point_back'] [是否添加干扰点(默认 true)]
|
||||
* @param [boolean] $param['use_line_back'] [是否添加干扰线(默认 true)]
|
||||
* @param [boolean] $param['use_color_back'] [是否使用彩色背景(默认 true)]
|
||||
* @param [string] $param['key_prefix'] [验证码种存储前缀key(默认 空)]
|
||||
* @param [int] $param['expire_time'] [到期时间(默认30)单位(秒)]
|
||||
* @param [int] $param['width'] [宽度(默认65)]
|
||||
* @param [int] $param['height'] [高度(默认30)]
|
||||
* @param [int] $param['length'] [验证码位数(默认6)]
|
||||
* @param [boolean] $param['use_point_back'] [是否添加干扰点(默认 true)]
|
||||
* @param [boolean] $param['use_line_back'] [是否添加干扰线(默认 true)]
|
||||
* @param [boolean] $param['use_bg_color_back'] [是否使用彩色背景(默认 true)]
|
||||
* @param [boolean] $param['use_text_color_back'] [是否使用彩色文本(默认 true)]
|
||||
* @param [string] $param['key_prefix'] [验证码种存储前缀key(默认 空)]
|
||||
* @param [int] $param['expire_time'] [到期时间(默认30)单位(秒)]
|
||||
*/
|
||||
public function __construct($param = array())
|
||||
{
|
||||
// 验证码规则
|
||||
$rules = MyC('common_images_verify_rules', [], true);
|
||||
|
||||
// 参数处理
|
||||
$this->width = isset($param['width']) ? intval($param['width']) : 65;
|
||||
$this->height = isset($param['height']) ? intval($param['height']) : 30;
|
||||
$this->length = isset($param['length']) ? intval($param['length']) : 6;
|
||||
$this->use_point_back = isset($param['use_point_back']) ? $param['use_point_back'] : true;
|
||||
$this->use_line_back = isset($param['use_line_back']) ? $param['use_line_back'] : true;
|
||||
$this->use_color_back = isset($param['use_color_back']) ? $param['use_color_back'] : true;
|
||||
$this->use_point_back = isset($param['use_point_back']) ? $param['use_point_back'] : in_array('point', $rules);
|
||||
$this->use_line_back = isset($param['use_line_back']) ? $param['use_line_back'] : in_array('line', $rules);
|
||||
$this->use_bg_color_back = isset($param['use_bg_color_back']) ? $param['use_bg_color_back'] : in_array('bgcolor', $rules);
|
||||
$this->use_text_color_back = isset($param['use_text_color_back']) ? $param['use_text_color_back'] : in_array('textcolor', $rules);
|
||||
$this->key_verify = isset($param['key_prefix']) ? trim($param['key_prefix']).'_verify_code' : '_verify_code';
|
||||
$this->expire_time = isset($param['expire_time']) ? intval($param['expire_time']) : 30;
|
||||
}
|
||||
|
|
@ -74,7 +80,7 @@ class Verify
|
|||
$this->img = imagecreatetruecolor($this->width, $this->height);
|
||||
|
||||
// 画背景
|
||||
if($this->use_color_back == true)
|
||||
if($this->use_bg_color_back == true)
|
||||
{
|
||||
$back_color = imagecolorallocate($this->img, rand(200,255), rand(200,255), rand(200,255));
|
||||
} else {
|
||||
|
|
@ -99,7 +105,14 @@ class Verify
|
|||
$first = 40/100*$each_width;
|
||||
foreach(str_split($this->rand_string) as $k=>$v)
|
||||
{
|
||||
$fgcolor = imagecolorallocate($this->img, rand(0,200), rand(0,255), rand(0,255));
|
||||
// 是否使用彩色文本
|
||||
if($this->use_text_color_back == true)
|
||||
{
|
||||
$fgcolor = imagecolorallocate($this->img, rand(0,200), rand(0,255), rand(0,255));
|
||||
} else {
|
||||
$fgcolor = imagecolorallocate($this->img, 0, 0, 0);
|
||||
}
|
||||
|
||||
$temp_height = 95/100*$this->height;
|
||||
if($this->height-$temp_height < 15)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ ul.home_site_user_register_bg_images-images-view li {
|
|||
.site-panel .am-panel .am-panel-bd .am-form-group {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.site-panel .am-panel .am-panel-bd .am-form-group:last-child {
|
||||
.site-panel .am-panel .am-panel-bd .am-form-group {
|
||||
border-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
|
@ -471,7 +471,7 @@ ul.am-dropdown-content > .am-active > a:focus,
|
|||
/**
|
||||
* 公共登录窗口
|
||||
*/
|
||||
.common-login-modal { max-width: 400px; height: 378px; left: calc(50% - 200px); top: calc(50% - 189px); margin-left: 0; margin-top: 0; }
|
||||
.common-login-modal { max-width: 400px; height: 408px; left: calc(50% - 200px); top: calc(50% - 204px); margin-left: 0; margin-top: 0; }
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -486,7 +486,7 @@ ul.am-dropdown-content > .am-active > a:focus,
|
|||
/**
|
||||
* 公共登录窗口
|
||||
*/
|
||||
.common-login-modal { height: 380px; top: calc(100% - 380px);}
|
||||
.common-login-modal { height: 410px; top: calc(100% - 410px);}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -496,14 +496,14 @@ ul.am-dropdown-content > .am-active > a:focus,
|
|||
.am-btn-default {
|
||||
color: #666 !important;
|
||||
background-color: #e6e6e6;
|
||||
border-color: #e6e6e6;
|
||||
border-color: #d5d5d5;
|
||||
}
|
||||
.am-btn-default:hover, .am-btn-default:focus {
|
||||
background-color: #D4D3D3;
|
||||
background-color: #666;
|
||||
}
|
||||
.am-btn-default:hover, .am-btn-default:focus, .am-btn-default:active, .am-btn-default.am-active, .am-dropdown.am-active .am-btn-default.am-dropdown-toggle {
|
||||
color: #666 !important;
|
||||
border-color: #D4D3D3;
|
||||
color: #fff !important;
|
||||
border-color: #666;
|
||||
}
|
||||
.am-btn-default.am-disabled, .am-btn-default[disabled], fieldset[disabled] .am-btn-default, .am-btn-default.am-disabled:hover, .am-btn-default[disabled]:hover, fieldset[disabled] .am-btn-default:hover, .am-btn-default.am-disabled:focus, .am-btn-default[disabled]:focus, fieldset[disabled] .am-btn-default:focus, .am-btn-default.am-disabled:active, .am-btn-default[disabled]:active, fieldset[disabled] .am-btn-default:active, .am-btn-default.am-disabled.am-active, .am-btn-default[disabled].am-active, fieldset[disabled] .am-btn-default.am-active {
|
||||
background-color: #e6e6e6;
|
||||
|
|
@ -511,20 +511,20 @@ ul.am-dropdown-content > .am-active > a:focus,
|
|||
}
|
||||
.am-btn-default:active, .am-btn-default.am-active, .am-dropdown.am-active .am-btn-default.am-dropdown-toggle {
|
||||
background-image: none;
|
||||
background-color: #D4D3D3;
|
||||
background-color: #666;
|
||||
}
|
||||
|
||||
.am-btn-secondary {
|
||||
color: #f77076 !important;
|
||||
background-color: #ffe2e5;
|
||||
border-color: #ffe2e5;
|
||||
border-color: #facbd0;
|
||||
}
|
||||
.am-btn-secondary:hover, .am-btn-secondary:focus {
|
||||
background-color: #fd9ba5;
|
||||
background-color: #f77076;
|
||||
}
|
||||
.am-btn-secondary:hover, .am-btn-secondary:focus, .am-btn-secondary:active, .am-btn-secondary.am-active, .am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle {
|
||||
color: #fff !important;
|
||||
border-color: #fd9ba5;
|
||||
border-color: #f77076;
|
||||
}
|
||||
.am-btn-secondary.am-disabled, .am-btn-secondary[disabled], fieldset[disabled] .am-btn-secondary, .am-btn-secondary.am-disabled:hover, .am-btn-secondary[disabled]:hover, fieldset[disabled] .am-btn-secondary:hover, .am-btn-secondary.am-disabled:focus, .am-btn-secondary[disabled]:focus, fieldset[disabled] .am-btn-secondary:focus, .am-btn-secondary.am-disabled:active, .am-btn-secondary[disabled]:active, fieldset[disabled] .am-btn-secondary:active, .am-btn-secondary.am-disabled.am-active, .am-btn-secondary[disabled].am-active, fieldset[disabled] .am-btn-secondary.am-active {
|
||||
background-color: #ffe2e5;
|
||||
|
|
@ -532,20 +532,20 @@ ul.am-dropdown-content > .am-active > a:focus,
|
|||
}
|
||||
.am-btn-secondary:active, .am-btn-secondary.am-active, .am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle {
|
||||
background-image: none;
|
||||
background-color: #fd9ba5;
|
||||
background-color: #f77076;
|
||||
}
|
||||
|
||||
.am-btn-primary {
|
||||
color: #d13b49 !important;
|
||||
background-color: #ffcbd0;
|
||||
border-color: #ffcbd0;
|
||||
border-color: #ffb5bc;
|
||||
}
|
||||
.am-btn-primary:hover, .am-btn-primary:focus {
|
||||
background-color: #f77682;
|
||||
background-color: #d13b49;
|
||||
}
|
||||
.am-btn-primary:hover, .am-btn-primary:focus, .am-btn-primary:active, .am-btn-primary.am-active, .am-dropdown.am-active .am-btn-primary.am-dropdown-toggle {
|
||||
color: #fff !important;
|
||||
border-color: #f77682;
|
||||
border-color: #d13b49;
|
||||
}
|
||||
.am-btn-primary.am-disabled, .am-btn-primary[disabled], fieldset[disabled] .am-btn-primary, .am-btn-primary.am-disabled:hover, .am-btn-primary[disabled]:hover, fieldset[disabled] .am-btn-primary:hover, .am-btn-primary.am-disabled:focus, .am-btn-primary[disabled]:focus, fieldset[disabled] .am-btn-primary:focus, .am-btn-primary.am-disabled:active, .am-btn-primary[disabled]:active, fieldset[disabled] .am-btn-primary:active, .am-btn-primary.am-disabled.am-active, .am-btn-primary[disabled].am-active, fieldset[disabled] .am-btn-primary.am-active {
|
||||
background-color: #ffcbd0;
|
||||
|
|
@ -553,41 +553,41 @@ ul.am-dropdown-content > .am-active > a:focus,
|
|||
}
|
||||
.am-btn-primary:active, .am-btn-primary.am-active, .am-dropdown.am-active .am-btn-primary.am-dropdown-toggle {
|
||||
background-image: none;
|
||||
background-color: #f77682;
|
||||
background-color: #d13b49;
|
||||
}
|
||||
|
||||
.am-btn-danger {
|
||||
color: #DC9A9A !important;
|
||||
background-color: #F8F2F2;
|
||||
border-color: #F8F2F2;
|
||||
color: #f7274d !important;
|
||||
background-color: #ffcdd6;
|
||||
border-color: #f8adbb;
|
||||
}
|
||||
.am-btn-danger:hover, .am-btn-danger:focus {
|
||||
background-color: #F5D2D2;
|
||||
background-color: #f7274d;
|
||||
}
|
||||
.am-btn-danger:hover, .am-btn-danger:focus, .am-btn-danger:active, .am-btn-danger.am-active, .am-dropdown.am-active .am-btn-danger.am-dropdown-toggle {
|
||||
color: #fff !important;
|
||||
border-color: #F5D2D2;
|
||||
border-color: #f7274d;
|
||||
}
|
||||
.am-btn-danger.am-disabled, .am-btn-danger[disabled], fieldset[disabled] .am-btn-danger, .am-btn-danger.am-disabled:hover, .am-btn-danger[disabled]:hover, fieldset[disabled] .am-btn-danger:hover, .am-btn-danger.am-disabled:focus, .am-btn-danger[disabled]:focus, fieldset[disabled] .am-btn-danger:focus, .am-btn-danger.am-disabled:active, .am-btn-danger[disabled]:active, fieldset[disabled] .am-btn-danger:active, .am-btn-danger.am-disabled.am-active, .am-btn-danger[disabled].am-active, fieldset[disabled] .am-btn-danger.am-active {
|
||||
background-color: #F8F2F2;
|
||||
border-color: #F8F2F2;
|
||||
background-color: #ffcdd6;
|
||||
border-color: #ffcdd6;
|
||||
}
|
||||
.am-btn-danger:active, .am-btn-danger.am-active, .am-dropdown.am-active .am-btn-danger.am-dropdown-toggle {
|
||||
background-image: none;
|
||||
background-color: #F5D2D2;
|
||||
background-color: #f7274d;
|
||||
}
|
||||
|
||||
.am-btn-success {
|
||||
color: #82BE82 !important;
|
||||
color: #5eb95e !important;
|
||||
background-color: #E4F3E4;
|
||||
border-color: #E4F3E4;
|
||||
border-color: #d2e8d2;
|
||||
}
|
||||
.am-btn-success:hover, .am-btn-success:focus {
|
||||
background-color: #A5DEA5;
|
||||
background-color: #5eb95e;
|
||||
}
|
||||
.am-btn-success:hover, .am-btn-success:focus, .am-btn-success:active, .am-btn-success.am-active, .am-dropdown.am-active .am-btn-success.am-dropdown-toggle {
|
||||
color: #fff !important;
|
||||
border-color: #A5DEA5;
|
||||
border-color: #5eb95e;
|
||||
}
|
||||
.am-btn-success.am-disabled, .am-btn-success[disabled], fieldset[disabled] .am-btn-success, .am-btn-success.am-disabled:hover, .am-btn-success[disabled]:hover, fieldset[disabled] .am-btn-success:hover, .am-btn-success.am-disabled:focus, .am-btn-success[disabled]:focus, fieldset[disabled] .am-btn-success:focus, .am-btn-success.am-disabled:active, .am-btn-success[disabled]:active, fieldset[disabled] .am-btn-success:active, .am-btn-success.am-disabled.am-active, .am-btn-success[disabled].am-active, fieldset[disabled] .am-btn-success.am-active {
|
||||
background-color: #E4F3E4;
|
||||
|
|
@ -595,20 +595,20 @@ ul.am-dropdown-content > .am-active > a:focus,
|
|||
}
|
||||
.am-btn-success:active, .am-btn-success.am-active, .am-dropdown.am-active .am-btn-success.am-dropdown-toggle {
|
||||
background-image: none;
|
||||
background-color: #A5DEA5;
|
||||
background-color: #5eb95e;
|
||||
}
|
||||
|
||||
.am-btn-warning {
|
||||
color: #FF9800 !important;
|
||||
color: #F37B1D !important;
|
||||
background-color: #ffe5be;
|
||||
border-color: #ffe5be;
|
||||
border-color: #f8d093;
|
||||
}
|
||||
.am-btn-warning:hover, .am-btn-warning:focus {
|
||||
background-color: #ffc165;
|
||||
background-color: #F37B1D;
|
||||
}
|
||||
.am-btn-warning:hover, .am-btn-warning:focus, .am-btn-warning:active, .am-btn-warning.am-active, .am-dropdown.am-active .am-btn-warning.am-dropdown-toggle {
|
||||
color: #fff !important;
|
||||
border-color: #ffc165;
|
||||
border-color: #F37B1D;
|
||||
}
|
||||
.am-btn-warning.am-disabled, .am-btn-warning[disabled], fieldset[disabled] .am-btn-warning, .am-btn-warning.am-disabled:hover, .am-btn-warning[disabled]:hover, fieldset[disabled] .am-btn-warning:hover, .am-btn-warning.am-disabled:focus, .am-btn-warning[disabled]:focus, fieldset[disabled] .am-btn-warning:focus, .am-btn-warning.am-disabled:active, .am-btn-warning[disabled]:active, fieldset[disabled] .am-btn-warning:active, .am-btn-warning.am-disabled.am-active, .am-btn-warning[disabled].am-active, fieldset[disabled] .am-btn-warning.am-active {
|
||||
background-color: #ffe5be;
|
||||
|
|
@ -616,7 +616,7 @@ ul.am-dropdown-content > .am-active > a:focus,
|
|||
}
|
||||
.am-btn-warning:active, .am-btn-warning.am-active, .am-dropdown.am-active .am-btn-warning.am-dropdown-toggle {
|
||||
background-image: none;
|
||||
background-color: #ffc165;
|
||||
background-color: #F37B1D;
|
||||
}
|
||||
|
||||
.am-pagination > .am-active > a, .am-pagination > .am-active > a:hover { background-color: #d13b49; border-color: #d13b49; }
|
||||
|
|
@ -725,7 +725,7 @@ ul.am-dropdown-content > .am-active > a:focus,
|
|||
.shop-navigation .navigation-search input {
|
||||
border-color: #d2354c;
|
||||
}
|
||||
.shop-navigation .am-btn {
|
||||
.shop-navigation .navigation-search .am-btn, .shop-navigation .switch-submit {
|
||||
color: #fff !important;
|
||||
background-color: #d2354c;
|
||||
border-color: #d2354c;
|
||||
|
|
|
|||
|
|
@ -18,11 +18,9 @@
|
|||
.my-content .container-right {
|
||||
padding-right: 5px;
|
||||
}
|
||||
.user-forgetpwd-container .container-left {
|
||||
height: 375px;
|
||||
}
|
||||
.user-login-container .container-left {
|
||||
height: 295px;
|
||||
.user-forgetpwd-container .container-left, .user-login-container .container-left {
|
||||
min-height: 295px;
|
||||
max-height: 375px;
|
||||
}
|
||||
}
|
||||
@media only screen and (min-width:1025px) {
|
||||
|
|
@ -90,13 +88,10 @@
|
|||
/**
|
||||
* 表单验证码
|
||||
*/
|
||||
.register-container form.form-validation-username .form-verify {
|
||||
.my-content form.am-form .form-verify {
|
||||
padding: 0;
|
||||
}
|
||||
.register-container form.form-validation-username .form-verify img {
|
||||
height: 26px;
|
||||
}
|
||||
.register-container form.form-validation-username .form-verify a.form-verify-tips {
|
||||
.my-content form.am-form .form-verify a.form-verify-tips {
|
||||
font-size: 12px;
|
||||
text-decoration: none;
|
||||
line-height: 28px;
|
||||
|
|
@ -105,14 +100,14 @@
|
|||
background: rgba(0,0,0,0.5);
|
||||
text-align: center;
|
||||
display: none;
|
||||
width: 83px;
|
||||
width: 102px;
|
||||
height: 28px;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
top: -1px;
|
||||
left: -1px;
|
||||
}
|
||||
.register-container form.form-validation-username .form-verify:hover a.form-verify-tips {
|
||||
.my-content form.am-form .form-verify:hover a.form-verify-tips {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
|
@ -138,4 +133,15 @@
|
|||
.my-content #verify-win .am-modal-bd { margin-top: 10px; }
|
||||
.my-content #verify-win .am-modal-bd .base { overflow: hidden; }
|
||||
.my-content #verify-win .am-modal-bd .base .verify-tips { font-size: 12px; }
|
||||
.my-content #verify-img { vertical-align: middle; }
|
||||
.my-content #verify-img { vertical-align: middle; border: 1px solid #ccc; }
|
||||
|
||||
|
||||
/**
|
||||
* 弹层登录
|
||||
*/
|
||||
.login-modal-container {
|
||||
padding: 0;
|
||||
}
|
||||
.login-modal-container-top {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
padding: 0;
|
||||
}
|
||||
|
||||
@media only screen and (min-width:640px) {
|
||||
@media only screen and (min-width:1025px) {
|
||||
.commonrightnavigation-right-nav {
|
||||
width: 35px;
|
||||
height: 100vh;
|
||||
|
|
@ -195,7 +195,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width:640px) {
|
||||
@media only screen and (max-width:1025px) {
|
||||
.commonrightnavigation-right-nav .user-content,
|
||||
.commonrightnavigation-right-nav .browse-content,
|
||||
.commonrightnavigation-right-nav .favor-content,
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 75 KiB |