服务端多语言处理

This commit is contained in:
gongfuxiang
2023-02-06 18:30:08 +08:00
parent 3aeb0bb235
commit cfa39f858d
70 changed files with 1224 additions and 945 deletions

View File

@ -13,6 +13,7 @@ namespace app\admin\controller;
use app\admin\controller\Base;
use app\service\ApiService;
use app\service\ArticleService;
use app\service\ArticleCategoryService;
use app\service\ResourcesService;
/**
@ -64,7 +65,7 @@ class Article extends Base
];
// 文章分类
$article_category = ArticleService::ArticleCategoryList(['field'=>'id,name']);
$article_category = ArticleCategoryService::ArticleCategoryList(['field'=>'id,name']);
$assign['article_category_list'] = $article_category['data'];
// 参数

View File

@ -12,7 +12,7 @@ namespace app\admin\controller;
use app\admin\controller\Base;
use app\service\ApiService;
use app\service\ArticleService;
use app\service\ArticleCategoryService;
/**
* 文章分类管理
@ -44,7 +44,7 @@ class ArticleCategory extends Base
*/
public function GetNodeSon()
{
return ApiService::ApiDataReturn(ArticleService::ArticleCategoryNodeSon($this->data_request));
return ApiService::ApiDataReturn(ArticleCategoryService::ArticleCategoryNodeSon($this->data_request));
}
/**
@ -56,7 +56,7 @@ class ArticleCategory extends Base
*/
public function Save()
{
return ApiService::ApiDataReturn(ArticleService::ArticleCategorySave($this->data_request));
return ApiService::ApiDataReturn(ArticleCategoryService::ArticleCategorySave($this->data_request));
}
/**
@ -70,7 +70,7 @@ class ArticleCategory extends Base
{
$params = $this->data_post;
$params['admin'] = $this->admin;
return ApiService::ApiDataReturn(ArticleService::ArticleCategoryDelete($params));
return ApiService::ApiDataReturn(ArticleCategoryService::ArticleCategoryDelete($params));
}
}
?>

View File

@ -12,7 +12,7 @@ namespace app\admin\controller;
use app\admin\controller\Base;
use app\service\ApiService;
use app\service\ArticleService;
use app\service\ArticleCategoryService;
use app\service\NavigationService;
use app\service\GoodsService;
use app\service\CustomViewService;
@ -78,7 +78,7 @@ class Navigation extends Base
$assign['data_list'] = $ret['data'];
// 获取分类和文章
$article_category_content = ArticleService::ArticleCategoryListContent();
$article_category_content = ArticleCategoryService::ArticleCategoryListContent();
$assign['article_list'] = $article_category_content['data'];
// 自定义页面

View File

@ -25,6 +25,27 @@ class Admin
// 基础条件
public $condition_base = [];
// 角色列表
public $role_list;
/**
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-29
* @desc description
* @param [array] $params [输入参数]
*/
public function __construct($params = [])
{
// 角色列表
$res = AdminService::RoleList([
'where' => ['is_enable'=>1],
'field' => 'id,name',
]);
$this->role_list = empty($res['data']) ? [] : array_column($res['data'], null, 'id');
}
/**
* 入口
* @author Devil
@ -40,9 +61,10 @@ class Admin
return [
// 基础配置
'base' => [
'key_field' => 'id',
'is_search' => 1,
'is_delete' => 1,
'key_field' => 'id',
'is_search' => 1,
'is_delete' => 1,
'is_data_export_excel' => 1,
],
// 表单配置
'form' => [
@ -67,7 +89,7 @@ class Admin
],
],
[
'label' => $lang['username'],
'label' => $lang['status'],
'view_type' => 'field',
'view_key' => 'status',
'view_data_key' => 'name',
@ -83,7 +105,7 @@ class Admin
],
],
[
'label' => $lang['username'],
'label' => $lang['gender'],
'view_type' => 'field',
'view_key' => 'gender',
'view_data_key' => 'name',
@ -121,13 +143,14 @@ class Admin
[
'label' => $lang['role_name'],
'view_type' => 'field',
'view_key' => 'role_name',
'view_key' => 'role_id',
'view_data_key' => 'name',
'view_data' => $this->role_list,
'is_sort' => 1,
'search_config' => [
'form_type' => 'select',
'form_name' => 'role_id',
'where_type' => 'in',
'data' => $this->GetRoleList(),
'data' => $this->role_list,
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,
@ -179,9 +202,9 @@ class Admin
],
// 数据配置
'data' => [
'table_name' => 'Admin',
'data_handle' => 'AdminService::AdminListHandle',
'is_page' => 1,
'table_name' => 'Admin',
'is_page' => 1,
'is_handle_time_field' => 1,
],
];
}
@ -196,13 +219,7 @@ class Admin
*/
public function GetRoleList()
{
// 角色
$params = [
'where' => ['is_enable'=>1],
'field' => 'id,name',
];
$res = AdminService::RoleList($params);
return $res['data'];
}
}
?>

View File

@ -10,7 +10,7 @@
// +----------------------------------------------------------------------
namespace app\admin\form;
use app\service\ArticleService;
use app\service\ArticleCategoryService;
/**
* 文章动态表格
@ -190,7 +190,7 @@ class Article
*/
public function ArticleCategoryList()
{
$res = ArticleService::ArticleCategoryList(['field'=>'id,name']);
$res = ArticleCategoryService::ArticleCategoryList(['field'=>'id,name']);
return $res['data'];
}
}

View File

@ -43,8 +43,8 @@ class User
'key_field' => 'id',
'is_search' => 1,
'is_delete' => 1,
'is_data_export_excel' => 1,
'is_middle' => 0,
'is_data_export_excel' => 1,
],
// 表单配置
'form' => [
@ -141,7 +141,9 @@ class User
[
'label' => $lang['gender_name'],
'view_type' => 'field',
'view_key' => 'gender_name',
'view_key' => 'gender',
'view_data_key' => 'name',
'view_data' => MyLang('common_gender_list'),
'is_sort' => 1,
'search_config' => [
'form_type' => 'select',
@ -156,7 +158,9 @@ class User
[
'label' => $lang['status_name'],
'view_type' => 'field',
'view_key' => 'status_name',
'view_key' => 'status',
'view_data_key' => 'name',
'view_data' => MyLang('common_user_status_list'),
'is_sort' => 1,
'search_config' => [
'form_type' => 'select',
@ -278,17 +282,8 @@ class User
],
// 数据配置
'data' => [
'table_name' => 'User',
'data_handle' => 'UserService::UserListHandle',
'is_fixed_name_field' => 1,
'fixed_name_data' => [
'status' => [
'data' => MyLang('common_user_status_list'),
],
'gender' => [
'data' => MyLang('common_gender_list'),
],
],
'table_name' => 'User',
'data_handle' => 'UserService::UserListHandle',
],
];
}

View File

@ -336,18 +336,6 @@ return [
// 品牌
'brand' => [
'base_nav_title' => 'Brand',
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'The name is 2~30 characters long',
'form_item_brand_category_id' => 'Brand Category',
'form_item_brand_category_id_message' => 'Please select brand category',
'form_item_website_url' => 'Website address',
'form_item_website_url_placeholder' => 'Official website address, starting with http://or https://',
'form_item_website_url_message' => 'Incorrect format of official website address',
'form_item_describe' => 'describe',
'form_item_describe_message' => 'Description can be up to 230 characters',
'form_item_logo' => 'LOGO',
'form_item_logo_tips' => 'Recommended 150*50px',
// 动态表格
'form_table' => [
'name' => 'Name',
@ -365,9 +353,6 @@ return [
// 品牌分类
'brandcategory' => [
'base_nav_title' => 'BrandCategory',
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'The name is 2~16 characters long',
],
// 文章
@ -375,18 +360,6 @@ return [
'base_nav_title' => 'Article',
'detail_content_title' => 'Detail Content',
'detail_images_title' => 'Detail Picture',
// 表单
'form_item_title' => 'Title',
'form_item_title_message' => 'The title is 2~60 characters long',
'form_item_article_category' => 'Article Category',
'form_item_article_category_message' => 'Please select an article category',
'form_item_jump_url_title' => 'Jump url address',
'form_item_jump_url_tips' => 'With http://or https://, only valid on the web side',
'form_item_jump_url_message' => 'The jump url address format is incorrect',
'form_item_is_home_recommended_title' => 'Home page recommendation',
'form_item_content_title' => 'Content',
'form_item_content_placeholder' => 'The content format is between 10 and 105000 characters. For more editing functions, please use the computer to access',
'form_item_content_message' => 'Content format is between 10 and 105000 characters',
// 动态表格
'form_table' => [
'info' => 'Title',
@ -404,9 +377,6 @@ return [
// 文章分类
'articlecategory' => [
'base_nav_title' => 'ArticleCategory',
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'The name is 2~16 characters long',
],
// 自定义页面
@ -467,20 +437,6 @@ return [
'answer' => [
'base_nav_title' => 'Q&A',
'user_info_title' => 'User Info',
// 表单
'form_item_name' => 'Contacts',
'form_item_name_message' => 'Contact format can be up to 30 characters',
'form_item_tel' => 'Telephone',
'form_item_tel_message' => 'Please fill in a valid phone number',
'form_item_title' => 'Title',
'form_item_title_message' => 'Header format can be up to 60 characters',
'form_item_access_count' => 'Number of visits',
'form_item_access_count_message' => 'Number of visits in the format of 0~9',
'form_item_content' => 'Content',
'form_item_content_message' => 'Content format is between 5 and 1000 characters',
'form_item_reply' => 'Reply Content',
'form_item_reply_message' => 'Reply content format can be up to 1000 characters',
'form_is_reply' => 'Reply or not',
// 动态表格
'form_table' => [
'user' => 'User Info',
@ -582,26 +538,6 @@ return [
// 忘记密码
'form_forget_password_name' => 'Forgot Password?',
'form_forget_password_tips' => 'Please contact the administrator to reset the password',
// 表单
'form_item_username' => 'Userame',
'form_item_username_placeholder' => 'enter one username',
'form_item_username_message' => 'Please use letters, numbers and underscores for 2~18 characters',
'form_item_password' => 'Login Password',
'form_item_password_placeholder' => 'Please enter the login password',
'form_item_password_message' => 'Password format is between 6 and 18 characters',
'form_item_mobile' => 'Phone Number',
'form_item_mobile_placeholder' => 'Please enter your mobile number',
'form_item_mobile_message' => 'Mobile number format error',
'form_item_email' => 'E-mail',
'form_item_email_placeholder' => 'Please enter email address',
'form_item_email_message' => 'Email format error',
'form_item_username_created_tips' => 'Cannot be changed after creation',
'form_item_username_edit_tips' => 'Not changeable',
'form_item_role' => 'Permission group',
'form_item_role_message' => 'Please select the role group',
'form_item_password_edit_tips' => 'Enter to change the password',
'form_item_status' => 'Status',
'form_item_status_message' => 'Please select user status',
// 动态表格
'form_table' => [
'username' => 'Admin',
@ -1272,12 +1208,6 @@ return [
// 用户中心导航
'appcenternav' => [
'base_nav_title' => 'Mobile User Center Navigation',
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'Name format: 2~60 characters',
'form_item_desc' => 'Describe',
'form_item_desc_message' => 'Description can be up to 18 characters',
'form_item_images_url' => 'Navigation Icon',
// 动态表格
'form_table' => [
'name' => 'Name',
@ -1296,11 +1226,6 @@ return [
// 手机首页导航
'apphomenav' => [
'base_nav_title' => 'Home Navigation',
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'Name format: 2~60 characters',
'form_item_images_url' => 'Navigation Icon',
'form_item_is_need_login' => 'Whether login is required',
// 动态表格
'form_table' => [
'name' => 'Name',
@ -1461,14 +1386,6 @@ return [
'role' => [
'base_nav_title' => 'Role',
'admin_not_modify_tips' => 'The super administrator has all permissions by default and cannot be changed.',
// 表单
'form_item_name' => 'Role Name',
'form_item_name_message' => 'Role name format 2~16 characters',
'form_item_menu' => 'Menu Power',
'form_item_menu_no_data_tips' => 'No menu data',
'form_item_plugins' => 'Plugins Power',
'form_item_plugins_tips' => 'The plug-in also needs to check [Application Center ->Application Management+Application Call Management] permission in the current menu permission',
'form_item_plugins_no_data_tips' => 'No plugins data',
// 动态表格
'form_table' => [
'name' => 'Role Name',

View File

@ -336,18 +336,6 @@ return [
// 品牌
'brand' => [
'base_nav_title' => '品牌',
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称长度2~30个字符',
'form_item_brand_category_id' => '品牌分类',
'form_item_brand_category_id_message' => '请选择品牌分类',
'form_item_website_url' => '官网地址',
'form_item_website_url_placeholder' => '官网地址、以http://或https://开头',
'form_item_website_url_message' => '官网地址格式有误',
'form_item_describe' => '描述',
'form_item_describe_message' => '描述最多230个字符',
'form_item_logo' => 'LOGO',
'form_item_logo_tips' => '建议150*50px',
// 动态表格
'form_table' => [
'name' => '名称',
@ -365,9 +353,6 @@ return [
// 品牌分类
'brandcategory' => [
'base_nav_title' => '品牌分类',
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称长度2~16个字符',
],
// 文章
@ -375,18 +360,6 @@ return [
'base_nav_title' => '文章',
'detail_content_title' => '详情内容',
'detail_images_title' => '详情图片',
// 表单
'form_item_title' => '标题',
'form_item_title_message' => '标题长度2~60个字符',
'form_item_article_category' => '文章分类',
'form_item_article_category_message' => '请选择文章分类',
'form_item_jump_url_title' => '跳转url地址',
'form_item_jump_url_tips' => '带http://或https://仅web端有效',
'form_item_jump_url_message' => '跳转url地址格式有误',
'form_item_is_home_recommended_title' => '首页推荐',
'form_item_content_title' => '内容',
'form_item_content_placeholder' => '内容格式10~105000个字符之间更多编辑功能请使用电脑访问',
'form_item_content_message' => '内容格式10~105000个字符之间',
// 动态表格
'form_table' => [
'info' => '标题',
@ -404,9 +377,6 @@ return [
// 文章分类
'articlecategory' => [
'base_nav_title' => '文章分类',
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称长度2~16个字符',
],
// 自定义页面
@ -467,20 +437,6 @@ return [
'answer' => [
'base_nav_title' => '问答',
'user_info_title' => '用户信息',
// 表单
'form_item_name' => '联系人',
'form_item_name_message' => '联系人格式最多30个字符',
'form_item_tel' => '电话',
'form_item_tel_message' => '请填写有效的电话',
'form_item_title' => '标题',
'form_item_title_message' => '标题格式最多60个字符',
'form_item_access_count' => '访问次数',
'form_item_access_count_message' => '访问次数格式0~9的数值',
'form_item_content' => '内容',
'form_item_content_message' => '内容格式5~1000个字符之间',
'form_item_reply' => '回复内容',
'form_item_reply_message' => '回复内容格式最多1000个字符',
'form_is_reply' => '是否已回复',
// 动态表格
'form_table' => [
'user' => '用户信息',
@ -582,26 +538,6 @@ return [
// 忘记密码
'form_forget_password_name' => '忘记密码?',
'form_forget_password_tips' => '请联系管理员重置密码',
// 表单
'form_item_username' => '用户名',
'form_item_username_placeholder' => '请输入用户名',
'form_item_username_message' => '请使用字母、数字、下划线2~18个字符',
'form_item_password' => '登录密码',
'form_item_password_placeholder' => '请输入登录密码',
'form_item_password_message' => '密码格式6~18个字符之间',
'form_item_mobile' => '手机号码',
'form_item_mobile_placeholder' => '请输入手机号码',
'form_item_mobile_message' => '手机号码格式错误',
'form_item_email' => '电子邮箱',
'form_item_email_placeholder' => '请输入电子邮箱',
'form_item_email_message' => '电子邮箱格式错误',
'form_item_username_created_tips' => '创建后不可更改',
'form_item_username_edit_tips' => '不可更改',
'form_item_role' => '权限组',
'form_item_role_message' => '请选择所属角色组',
'form_item_password_edit_tips' => '输入则修改密码',
'form_item_status' => '状态',
'form_item_status_message' => '请选择用户状态',
// 动态表格
'form_table' => [
'username' => '管理员',
@ -1272,12 +1208,6 @@ return [
// 用户中心导航
'appcenternav' => [
'base_nav_title' => '手机用户中心导航',
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称格式2~60个字符',
'form_item_desc' => '描述',
'form_item_desc_message' => '描述最多18个字符',
'form_item_images_url' => '导航图标',
// 动态表格
'form_table' => [
'name' => '名称',
@ -1296,11 +1226,6 @@ return [
// 手机首页导航
'apphomenav' => [
'base_nav_title' => '手机首页导航',
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称格式2~60个字符',
'form_item_images_url' => '导航图标',
'form_item_is_need_login' => '是否需要登录',
// 动态表格
'form_table' => [
'name' => '名称',
@ -1461,14 +1386,6 @@ return [
'role' => [
'base_nav_title' => '角色',
'admin_not_modify_tips' => '超级管理员默认拥有所有权限,不可更改。',
// 表单
'form_item_name' => '角色名称',
'form_item_name_message' => '角色名称格式2~16个字符',
'form_item_menu' => '菜单权限',
'form_item_menu_no_data_tips' => '无菜单数据',
'form_item_plugins' => '插件权限',
'form_item_plugins_tips' => '插件还需在当前菜单权限中勾选[ 应用中心 -> 应用管理+应用调用管理 ]权限',
'form_item_plugins_no_data_tips' => '无插件数据',
// 动态表格
'form_table' => [
'name' => '角色名称',

View File

@ -28,14 +28,14 @@
<!-- form start -->
<form class="am-form form-validation-username" method="post" action="{{:MyUrl('admin/admin/login')}}" request-type="ajax-url" request-value="{{:MyUrl('admin/index/index')}}">
<div class="am-form-group am-form-group-refreshing">
<label>{{:MyLang('admin.form_item_username')}}</label>
<input type="text" name="accounts" class="am-radius" placeholder="{{:MyLang('admin.form_item_username_placeholder')}}" pattern="{{:MyConst('common_regex_username')}}" data-validation-message="{{:MyLang('admin.form_item_username_message')}}" autocomplete="off" required />
<label>{{:MyLang('common_service.admin.form_item_username')}}</label>
<input type="text" name="accounts" class="am-radius" placeholder="{{:MyLang('common_service.admin.form_item_username_placeholder')}}" pattern="{{:MyConst('common_regex_username')}}" data-validation-message="{{:MyLang('common_service.admin.form_item_username_message')}}" autocomplete="off" required />
</div>
<div class="am-form-group am-form-group-refreshing business-form-block am-margin-top-xs">
<label>{{:MyLang('admin.form_item_password')}}</label>
<label>{{:MyLang('common_service.admin.form_item_password')}}</label>
<div class="am-input-group am-input-group-sm">
<input type="password" name="pwd" class="am-radius" placeholder="{{:MyLang('admin.form_item_password_placeholder')}}" pattern="{{:MyConst('common_regex_pwd')}}" data-validation-message="{{:MyLang('admin.form_item_password_message')}}" autocomplete="off" required />
<input type="password" name="pwd" class="am-radius" placeholder="{{:MyLang('common_service.admin.form_item_password_placeholder')}}" pattern="{{:MyConst('common_regex_pwd')}}" data-validation-message="{{:MyLang('common_service.admin.form_item_password_message')}}" autocomplete="off" required />
<span class="am-input-group-btn">
<button class="am-btn am-btn-default am-radius am-icon-eye eye-submit" type="button"></button>
</span>
@ -69,8 +69,8 @@
<!-- form start -->
<form class="am-form form-validation-sms" method="post" action="{{:MyUrl('admin/admin/login')}}" request-type="ajax-url" request-value="{{:MyUrl('admin/index/index')}}">
<div class="am-form-group am-form-group-refreshing">
<label>{{:MyLang('admin.form_item_mobile')}}</label>
<input type="text" name="accounts" class="am-radius" placeholder="{{:MyLang('admin.form_item_mobile_placeholder')}}" pattern="{{:MyConst('common_regex_mobile')}}" data-validation-message="{{:MyLang('admin.form_item_mobile_message')}}" autocomplete="off" required />
<label>{{:MyLang('common_service.admin.form_item_mobile')}}</label>
<input type="text" name="accounts" class="am-radius" placeholder="{{:MyLang('common_service.admin.form_item_mobile_placeholder')}}" pattern="{{:MyConst('common_regex_mobile')}}" data-validation-message="{{:MyLang('common_service.admin.form_item_mobile_message')}}" autocomplete="off" required />
</div>
<div class="am-form-group am-form-group-refreshing business-form-block am-margin-top-xs">
@ -95,8 +95,8 @@
<!-- form start -->
<form class="am-form form-validation-email" method="post" action="{{:MyUrl('admin/admin/login')}}" request-type="ajax-url" request-value="{{:MyUrl('admin/index/index')}}">
<div class="am-form-group am-form-group-refreshing">
<label>{{:MyLang('admin.form_item_email')}}</label>
<input type="email" name="accounts" class="am-radius" placeholder="{{:MyLang('admin.form_item_email_placeholder')}}" data-validation-message="{{:MyLang('admin.form_item_email_message')}}" autocomplete="off" required />
<label>{{:MyLang('common_service.admin.form_item_email')}}</label>
<input type="email" name="accounts" class="am-radius" placeholder="{{:MyLang('common_service.admin.form_item_email_placeholder')}}" data-validation-message="{{:MyLang('common_service.admin.form_item_email_message')}}" autocomplete="off" required />
</div>
<div class="am-form-group am-form-group-refreshing business-form-block am-margin-top-xs">

View File

@ -12,14 +12,14 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_username')}}{{if empty($data)}}<span class="am-form-group-label-tips-must">*</span>{{/if}}{{if is_array(MyLang('goods.form_item_give_integral_tips'))}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{if empty($data)}}{{:MyLang('admin.form_item_username_created_tips')}}{{else /}}{{:MyLang('admin.form_item_username_edit_tips')}}{{/if}}', trigger: 'hover focus', theme: 'sm'}"></a>{{/if}}</label>
<input type="text" name="username" placeholder="{{:MyLang('admin.form_item_username_message')}}" pattern="{{:MyConst('common_regex_username')}}" data-validation-message="{{:MyLang('admin.form_item_username_message')}}" class="am-radius" {{if !empty($data['username'])}}value="{{$data.username}}" disabled{{/if}} required />
<label>{{:MyLang('common_service.admin.form_item_username')}}{{if empty($data)}}<span class="am-form-group-label-tips-must">*</span>{{/if}}{{if is_array(MyLang('goods.form_item_give_integral_tips'))}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{if empty($data)}}{{:MyLang('common_service.admin.form_item_username_created_tips')}}{{else /}}{{:MyLang('common_service.admin.form_item_username_edit_tips')}}{{/if}}', trigger: 'hover focus', theme: 'sm'}"></a>{{/if}}</label>
<input type="text" name="username" placeholder="{{:MyLang('common_service.admin.form_item_username_message')}}" pattern="{{:MyConst('common_regex_username')}}" data-validation-message="{{:MyLang('common_service.admin.form_item_username_message')}}" class="am-radius" {{if !empty($data['username'])}}value="{{$data.username}}" disabled{{/if}} required />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_password')}}{{if empty($data)}}<span class="am-form-group-label-tips-must">*</span>{{else /}}<span class="am-form-group-label-tips">{{:MyLang('admin.form_item_password_edit_tips')}}</span>{{/if}}</label>
<input type="password" name="login_pwd" placeholder="{{:MyLang('admin.form_item_password')}}" pattern="{{:MyConst('common_regex_pwd')}}" data-validation-message="{{:MyLang('admin.form_item_password_message')}}" class="am-radius" autocomplete="off" {{if empty($data)}}required{{/if}} />
<label>{{:MyLang('common_service.admin.form_item_password')}}{{if empty($data)}}<span class="am-form-group-label-tips-must">*</span>{{else /}}<span class="am-form-group-label-tips">{{:MyLang('common_service.admin.form_item_password_edit_tips')}}</span>{{/if}}</label>
<input type="password" name="login_pwd" placeholder="{{:MyLang('common_service.admin.form_item_password')}}" pattern="{{:MyConst('common_regex_pwd')}}" data-validation-message="{{:MyLang('common_service.admin.form_item_password_message')}}" class="am-radius" autocomplete="off" {{if empty($data)}}required{{/if}} />
</div>
</div>
</div>
@ -27,14 +27,14 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_mobile')}}</label>
<input type="text" name="mobile" placeholder="{{:MyLang('admin.form_item_mobile')}}" pattern="{{:MyConst('common_regex_mobile')}}" data-validation-message="{{:MyLang('admin.form_item_mobile_message')}}" class="am-radius" {{if !empty($data['mobile'])}}value="{{$data.mobile}}"{{/if}} />
<label>{{:MyLang('common_service.admin.form_item_mobile')}}</label>
<input type="text" name="mobile" placeholder="{{:MyLang('common_service.admin.form_item_mobile')}}" pattern="{{:MyConst('common_regex_mobile')}}" data-validation-message="{{:MyLang('common_service.admin.form_item_mobile_message')}}" class="am-radius" {{if !empty($data['mobile'])}}value="{{$data.mobile}}"{{/if}} />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_email')}}</label>
<input type="email" name="email" placeholder="{{:MyLang('admin.form_item_email')}}" maxlength="60" data-validation-message="{{:MyLang('admin.form_item_email_message')}}" class="am-radius" value="{{if !empty($data['email'])}}{{$data.email}}{{/if}}" />
<label>{{:MyLang('common_service.admin.form_item_email')}}</label>
<input type="email" name="email" placeholder="{{:MyLang('common_service.admin.form_item_email')}}" maxlength="60" data-validation-message="{{:MyLang('common_service.admin.form_item_email_message')}}" class="am-radius" value="{{if !empty($data['email'])}}{{$data.email}}{{/if}}" />
</div>
</div>
</div>
@ -45,8 +45,8 @@
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_status')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="status" class="am-radius chosen-select" data-validation-message="{{:MyLang('admin.form_item_status_message')}}" required>
<label>{{:MyLang('common_service.admin.form_item_status')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="status" class="am-radius chosen-select" data-validation-message="{{:MyLang('common_service.admin.form_item_status_message')}}" required>
{{foreach :MyLang('common_admin_status_list') as $v}}
<option value="{{$v.value}}" {{if isset($data['status']) and $data['status'] eq $v['value']}}selected{{else /}}{{if !isset($data['status']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
{{/foreach}}
@ -62,8 +62,8 @@
{{if !isset($data['id']) or $admin['id'] neq $data['id']}}
<div class="am-form-group">
<label>{{:MyLang('admin.form_item_role')}}<span class="am-form-group-label-tips-must">*</span></label>
<select class="am-radius chosen-select" name="role_id" data-validation-message="{{:MyLang('admin.form_item_role_message')}}" required>
<label>{{:MyLang('common_service.admin.form_item_role')}}<span class="am-form-group-label-tips-must">*</span></label>
<select class="am-radius chosen-select" name="role_id" data-validation-message="{{:MyLang('common_service.admin.form_item_role_message')}}" required>
<option value="">{{:MyLang('optional_tips')}}</option>
{{foreach $role_list as $v}}
<option value="{{$v.id}}" {{if isset($data['role_id']) and $data['role_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>

View File

@ -34,7 +34,7 @@
<form class="am-form form-validation-reply am-form-popup-fixed" action="{{:MyUrl('admin/answer/reply')}}" method="POST" request-type="ajax-reload" enctype="multipart/form-data">
<div class="am-form-group am-form-group-refreshing">
<label>{{:MyLang('answer.form_item_reply')}}</label>
<textarea name="reply" rows="5" class="am-radius" placeholder="{{:MyLang('answer.form_item_reply_message')}}" data-validation-message="{{:MyLang('answer.form_item_reply_message')}}" maxlength="1000" required></textarea>
<textarea name="reply" rows="5" class="am-radius" placeholder="{{:MyLang('answer.form_item_save_reply_message')}}" data-validation-message="{{:MyLang('answer.form_item_save_reply_message')}}" maxlength="1000" required></textarea>
</div>
<div class="am-form-popup-submit">
<input type="hidden" name="id" value="" />

View File

@ -13,8 +13,8 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('appcenternav.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="{{:MyLang('appcenternav.form_item_name_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('appcenternav.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
<label>{{:MyLang('common_service.appcenternav.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="{{:MyLang('common_service.appcenternav.form_item_name_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('common_service.appcenternav.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
@ -44,22 +44,22 @@
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('appcenternav.form_item_desc')}}</label>
<input type="text" name="desc" placeholder="{{:MyLang('appcenternav.form_item_desc_message')}}" data-validation-message="{{:MyLang('appcenternav.form_item_desc_message')}}" class="am-radius" {{if !empty($data['desc'])}} value="{{$data.desc}}"{{/if}} />
<label>{{:MyLang('common_service.appcenternav.form_item_desc')}}</label>
<input type="text" name="desc" placeholder="{{:MyLang('common_service.appcenternav.form_item_desc_message')}}" data-validation-message="{{:MyLang('common_service.appcenternav.form_item_desc_message')}}" class="am-radius" {{if !empty($data['desc'])}} value="{{$data.desc}}"{{/if}} />
</div>
</div>
</div>
<div class="am-form-group">
<label>{{:MyLang('form_event_value_title')}}</label>
<input type="text" name="event_value" placeholder="{{:MyLang('form_event_value_message')}}" data-validation-message="{{:MyLang('appcenternav.form_item_event_value_message')}}" class="am-radius" {{if !empty($data['event_value'])}} value="{{$data.event_value}}"{{/if}} />
<input type="text" name="event_value" placeholder="{{:MyLang('form_event_value_message')}}" data-validation-message="{{:MyLang('common_service.appcenternav.form_item_event_value_message')}}" class="am-radius" {{if !empty($data['event_value'])}} value="{{$data.event_value}}"{{/if}} />
{{include file="public/event_value_tips" /}}
</div>
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group am-form-file">
<label class="am-block">{{:MyLang('appcenternav.form_item_images_url')}}<span class="am-form-group-label-tips-must">*</span></label>
<label class="am-block">{{:MyLang('common_service.appcenternav.form_item_images_url')}}<span class="am-form-group-label-tips-must">*</span></label>
<ul class="plug-file-upload-view slide-images_url-images-view" data-form-name="images_url" data-max-number="1" data-delete="0" data-dialog-type="images">
<li>
<input type="text" name="images_url" value="{{if !empty($data['images_url'])}}{{$data.images_url}}{{/if}}" data-validation-message="{{:MyLang('form_upload_images_message')}}" required />

View File

@ -13,8 +13,8 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('apphomenav.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="{{:MyLang('apphomenav.form_item_name_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('apphomenav.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
<label>{{:MyLang('common_service.apphomenav.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="{{:MyLang('common_service.apphomenav.form_item_name_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('common_service.apphomenav.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
@ -84,7 +84,7 @@
</div>
<div class="am-u-sm-12 am-u-md-6 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('apphomenav.form_item_is_need_login')}}</label>
<label class="am-block">{{:MyLang('common_service.apphomenav.form_item_is_need_login')}}</label>
<input name="is_need_login" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_need_login'] eq 1}} checked="true"{{/if}} />
</div>
</div>

View File

@ -12,10 +12,10 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('article.form_item_title')}}<span class="am-form-group-label-tips-must">*</span></label>
<label>{{:MyLang('common_service.article.form_item_title')}}<span class="am-form-group-label-tips-must">*</span></label>
<div class="am-input-group am-input-group-sm">
<input type="hidden" name="title_color" value="{{if !empty($data['title_color'])}}{{$data.title_color}}{{/if}}" />
<input type="text" name="title" placeholder="{{:MyLang('article.form_item_title_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('article.form_item_title_message')}}" class="am-form-field am-radius" {{if !empty($data['title'])}} value="{{$data.title}}" {{/if}} {{if !empty($data['title_color'])}} style="color:{{$data.title_color}};" {{/if}} required />
<input type="text" name="title" placeholder="{{:MyLang('common_service.article.form_item_title_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('common_service.article.form_item_title_message')}}" class="am-form-field am-radius" {{if !empty($data['title'])}} value="{{$data.title}}" {{/if}} {{if !empty($data['title_color'])}} style="color:{{$data.title_color}};" {{/if}} required />
<span class="am-input-group-btn">
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit" type="button" data-input-tag="input[name='title']" data-color-tag="input[name='title_color']">
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
@ -26,8 +26,8 @@
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('article.form_item_article_category')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="article_category_id" class="am-radius chosen-select" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="{{:MyLang('article.form_item_article_category_message')}}" required>
<label>{{:MyLang('common_service.article.form_item_article_category')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="article_category_id" class="am-radius chosen-select" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="{{:MyLang('common_service.article.form_item_article_category_message')}}" required>
<option value="">{{:MyLang('optional_tips')}}</option>
{{foreach $article_category_list as $v}}
<option value="{{$v.id}}" {{if isset($data['article_category_id']) and $data['article_category_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
@ -40,8 +40,8 @@
<div class="am-cf">
<div class="am-u-md-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('article.form_item_jump_url_title')}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{:MyLang('article.form_item_jump_url_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a></label>
<input type="url" name="jump_url" placeholder="{{:MyLang('article.form_item_jump_url_title')}}" data-validation-message="{{:MyLang('article.form_item_jump_url_message')}}" class="am-radius" {{if !empty($data['jump_url'])}} value="{{$data.jump_url}}"{{/if}} />
<label>{{:MyLang('common_service.article.form_item_jump_url_title')}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{:MyLang('common_service.article.form_item_jump_url_tips')}}', trigger: 'hover focus', theme: 'sm'}"></a></label>
<input type="url" name="jump_url" placeholder="{{:MyLang('common_service.article.form_item_jump_url_title')}}" data-validation-message="{{:MyLang('common_service.article.form_item_jump_url_message')}}" class="am-radius" {{if !empty($data['jump_url'])}} value="{{$data.jump_url}}"{{/if}} />
</div>
</div>
<div class="am-u-md-6 am-padding-horizontal-0">
@ -51,7 +51,7 @@
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label class="am-block">{{:MyLang('article.form_item_is_home_recommended_title')}}</label>
<label class="am-block">{{:MyLang('common_service.article.form_item_is_home_recommended_title')}}</label>
<input name="is_home_recommended" value="1" type="checkbox" data-off-text="{{:MyLang('no_title')}}" data-on-text="{{:MyLang('yes_title')}}" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if isset($data['is_home_recommended']) and $data['is_home_recommended'] eq 1}}checked="true"{{/if}} />
</div>
</div>
@ -60,8 +60,8 @@
</div>
<div class="am-form-group">
<label>{{:MyLang('article.form_item_content_title')}}<span class="am-form-group-label-tips-must">*</span></label>
<textarea class="am-radius am-validate" name="content" rows="5" minlength="10" maxlength="105000" {{if !IsMobile()}}id="editor-tag" data-url="{{:MyUrl('admin/ueditor/index', ['path_type'=>'article'])}}" placeholder="{{:MyLang('article.form_item_content_message')}}" {{else /}} placeholder="{{:MyLang('article.form_item_content_placeholder')}}" {{/if}} data-validation-message="{{:MyLang('article.form_item_content_message')}}" required>{{if !empty($data['content'])}}{{$data.content}}{{/if}}</textarea>
<label>{{:MyLang('common_service.article.form_item_content_title')}}<span class="am-form-group-label-tips-must">*</span></label>
<textarea class="am-radius am-validate" name="content" rows="5" minlength="10" maxlength="105000" {{if !IsMobile()}}id="editor-tag" data-url="{{:MyUrl('admin/ueditor/index', ['path_type'=>'article'])}}" placeholder="{{:MyLang('common_service.article.form_item_content_message')}}" {{else /}} placeholder="{{:MyLang('common_service.article.form_item_content_placeholder')}}" {{/if}} data-validation-message="{{:MyLang('common_service.article.form_item_content_message')}}" required>{{if !empty($data['content'])}}{{$data.content}}{{/if}}</textarea>
</div>
<!-- 插件扩展数据 start -->
@ -87,7 +87,7 @@
<div class="am-alert am-alert-secondary">
{{include file="lib/seo" /}}
</div>
<div class="am-form-popup-submit">
<input type="hidden" name="id" {{if !empty($data)}} value="{{$data.id}}"{{/if}} />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>

View File

@ -20,8 +20,8 @@
<!-- form start -->
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/articlecategory/save')}}" method="POST" request-type="ajax-fun" request-value="TreeFormSaveBack">
<div class="am-form-group">
<label>{{:MyLang('articlecategory.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('articlecategory.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('articlecategory.form_item_name_message')}}" class="am-radius" required />
<label>{{:MyLang('common_service.articlecategory.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('common_service.articlecategory.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('common_service.articlecategory.form_item_name_message')}}" class="am-radius" required />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_enable" /}}

View File

@ -12,14 +12,14 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('brand.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="{{:MyLang('brand.form_item_name_message')}}" minlength="2" maxlength="30" data-validation-message="{{:MyLang('brand.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
<label>{{:MyLang('common_service.brand.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" name="name" placeholder="{{:MyLang('common_service.brand.form_item_name_message')}}" minlength="2" maxlength="30" data-validation-message="{{:MyLang('common_service.brand.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('brand.form_item_brand_category_id')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="brand_category_id" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="{{:MyLang('brand.form_item_brand_category_id_message')}}" required>
<label>{{:MyLang('common_service.brand.form_item_brand_category_id')}}<span class="am-form-group-label-tips-must">*</span></label>
<select name="brand_category_id" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="{{:MyLang('common_service.brand.form_item_brand_category_id_message')}}" required>
{{foreach $brand_category as $v}}
<option value="{{$v.id}}" {{if isset($data['brand_category_ids']) and is_array($data['brand_category_ids']) and in_array($v['id'], $data['brand_category_ids'])}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
@ -31,14 +31,14 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('brand.form_item_website_url')}}</label>
<input type="url" placeholder="{{:MyLang('brand.form_item_website_url_placeholder')}}" name="website_url" data-validation-message="{{:MyLang('brand.form_item_website_url_message')}}" class="am-radius" {{if !empty($data['website_url'])}} value="{{$data.website_url}}"{{/if}} />
<label>{{:MyLang('common_service.brand.form_item_website_url')}}</label>
<input type="url" placeholder="{{:MyLang('common_service.brand.form_item_website_url_placeholder')}}" name="website_url" data-validation-message="{{:MyLang('common_service.brand.form_item_website_url_message')}}" class="am-radius" {{if !empty($data['website_url'])}} value="{{$data.website_url}}"{{/if}} />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('brand.form_item_describe')}}</label>
<textarea rows="1" name="describe" maxlength="230" class="am-radius" placeholder="{{:MyLang('brand.form_item_describe_message')}}" data-validation-message="{{:MyLang('brand.form_item_describe_message')}}">{{if !empty($data['describe'])}} {{$data.describe}}{{/if}}</textarea>
<label>{{:MyLang('common_service.brand.form_item_describe')}}</label>
<textarea rows="1" name="describe" maxlength="230" class="am-radius" placeholder="{{:MyLang('common_service.brand.form_item_describe_message')}}" data-validation-message="{{:MyLang('common_service.brand.form_item_describe_message')}}">{{if !empty($data['describe'])}} {{$data.describe}}{{/if}}</textarea>
</div>
</div>
</div>
@ -46,7 +46,7 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group am-form-file">
<label class="am-block">{{:MyLang('brand.form_item_logo')}}<span class="am-form-group-label-tips">{{:MyLang('brand.form_item_logo_tips')}}</span></label>
<label class="am-block">{{:MyLang('common_service.brand.form_item_logo')}}<span class="am-form-group-label-tips">{{:MyLang('common_service.brand.form_item_logo_tips')}}</span></label>
<ul class="plug-file-upload-view brand-logo-images-view" data-form-name="logo" data-max-number="1" data-dialog-type="images">
{{if !empty($data['logo'])}}
<li>

View File

@ -20,8 +20,8 @@
<!-- form start -->
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/brandcategory/save')}}" method="POST" request-type="ajax-fun" request-value="TreeFormSaveBack">
<div class="am-form-group">
<label>{{:MyLang('brandcategory.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('brandcategory.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('brandcategory.form_item_name_message')}}" class="am-radius" required />
<label>{{:MyLang('common_service.brandcategory.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('common_service.brandcategory.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('common_service.brandcategory.form_item_name_message')}}" class="am-radius" required />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_enable" /}}

View File

@ -37,9 +37,9 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('common_form.power.form_item_pid')}}</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="{{:MyLang('common_form.power.form_item_pid_placeholder')}}" data-validation-message="{{:MyLang('common_form.power.form_item_pid')}}">
<option value="0">{{:MyLang('common_form.power.form_item_pid_placeholder')}}</option>
<label>{{:MyLang('common_service.power.form_item_pid')}}</label>
<select class="am-radius chosen-select" name="pid" data-placeholder="{{:MyLang('common_service.power.form_item_pid_placeholder')}}" data-validation-message="{{:MyLang('common_service.power.form_item_pid')}}">
<option value="0">{{:MyLang('common_service.power.form_item_pid_placeholder')}}</option>
{{foreach $data as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{/foreach}}
@ -48,8 +48,8 @@
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('common_form.power.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('common_form.power.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('common_form.power.form_item_name_message')}}" class="am-radius" required />
<label>{{:MyLang('common_service.power.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('common_service.power.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('common_service.power.form_item_name_message')}}" class="am-radius" required />
</div>
</div>
</div>
@ -57,14 +57,14 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('common_form.power.form_item_control')}}</label>
<input type="text" placeholder="{{:MyLang('common_form.power.form_item_control_message')}}" name="control" pattern="{{:MyConst('common_regex_control')}}" data-validation-message="{{:MyLang('common_form.power.form_item_control_message')}}" class="am-radius" />
<label>{{:MyLang('common_service.power.form_item_control')}}</label>
<input type="text" placeholder="{{:MyLang('common_service.power.form_item_control_message')}}" name="control" pattern="{{:MyConst('common_regex_control')}}" data-validation-message="{{:MyLang('common_service.power.form_item_control_message')}}" class="am-radius" />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('common_form.power.form_item_action')}}</label>
<input type="text" placeholder="{{:MyLang('common_form.power.form_item_action_message')}}" name="action" pattern="{{:MyConst('common_regex_action')}}" data-validation-message="{{:MyLang('common_form.power.form_item_action_message')}}" class="am-radius" />
<label>{{:MyLang('common_service.power.form_item_action')}}</label>
<input type="text" placeholder="{{:MyLang('common_service.power.form_item_action_message')}}" name="action" pattern="{{:MyConst('common_regex_action')}}" data-validation-message="{{:MyLang('common_service.power.form_item_action_message')}}" class="am-radius" />
</div>
</div>
</div>
@ -72,14 +72,14 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('common_form.power.form_item_url')}}</label>
<input type="url" name="url" placeholder="{{:MyLang('common_form.power.form_item_url_message')}}" data-validation-message="{{:MyLang('common_form.power.form_item_url_message')}}" class="am-radius" />
<label>{{:MyLang('common_service.power.form_item_url')}}</label>
<input type="url" name="url" placeholder="{{:MyLang('common_service.power.form_item_url_message')}}" data-validation-message="{{:MyLang('common_service.power.form_item_url_message')}}" class="am-radius" />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('common_form.power.form_item_icon')}}{{if is_array(MyLang('common_form.power.form_item_icon_tips_list'))}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{:implode('<br />', MyLang('common_form.power.form_item_icon_tips_list'))}}', trigger: 'hover focus', theme: 'sm'}"></a>{{/if}}</label>
<input type="text" placeholder="{{:MyLang('common_form.power.form_item_icon_message')}}" name="icon" maxlength="60" data-validation-message="{{:MyLang('common_form.power.form_item_icon_message')}}" class="am-radius" />
<label>{{:MyLang('common_service.power.form_item_icon')}}{{if is_array(MyLang('common_service.power.form_item_icon_tips_list'))}}<a href="javascript:;" class="am-icon-question-circle am-text-warning am-margin-left-sm" data-am-popover="{content: '{{:implode('<br />', MyLang('common_service.power.form_item_icon_tips_list'))}}', trigger: 'hover focus', theme: 'sm'}"></a>{{/if}}</label>
<input type="text" placeholder="{{:MyLang('common_service.power.form_item_icon_message')}}" name="icon" maxlength="60" data-validation-message="{{:MyLang('common_service.power.form_item_icon_message')}}" class="am-radius" />
</div>
</div>
</div>

View File

@ -8,7 +8,7 @@
<!-- 菜单权限 -->
<div class="am-panel am-panel-default">
<div class="am-panel-hd">{{:MyLang('role.form_item_menu')}}</div>
<div class="am-panel-hd">{{:MyLang('common_service.role.form_item_menu')}}</div>
<div class="am-panel-bd">
<ul class="am-avg-sm-2 am-avg-md-4 am-avg-lg-6 am-gallery-bordered">
{{if !empty($data['power'])}}
@ -26,7 +26,7 @@
<!-- 插件权限 -->
<div class="am-panel am-panel-default">
<div class="am-panel-hd">{{:MyLang('role.form_item_plugins')}}</div>
<div class="am-panel-hd">{{:MyLang('common_service.role.form_item_plugins')}}</div>
<div class="am-panel-bd">
<ul class="am-avg-sm-2 am-avg-md-4 am-avg-lg-6 am-gallery-bordered">
{{if !empty($data['power_plugins'])}}

View File

@ -12,8 +12,8 @@
<div class="am-cf">
<div class="am-u-sm-6 am-padding-horizontal-0">
<div class="am-form-group">
<label>{{:MyLang('role.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('role.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('role.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}}value="{{$data.name}}"{{/if}} required />
<label>{{:MyLang('common_service.role.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('common_service.role.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('common_service.role.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}}value="{{$data.name}}"{{/if}} required />
</div>
</div>
<div class="am-u-sm-6 am-padding-horizontal-0">
@ -22,7 +22,7 @@
</div>
<div class="am-form-group">
<label>{{:MyLang('role.form_item_menu')}}</label>
<label>{{:MyLang('common_service.role.form_item_menu')}}</label>
<ul class="tree-list am-avg-sm-1 am-avg-md-1 am-avg-lg-1">
{{if !empty($power['power'])}}
{{foreach $power.power as $v}}
@ -50,13 +50,13 @@
{{/if}}
{{/foreach}}
{{else /}}
<p class="am-text-warning">{{:MyLang('role.form_item_menu_no_data_tips')}}</p>
<p class="am-text-warning">{{:MyLang('common_service.role.form_item_menu_no_data_tips')}}</p>
{{/if}}
</ul>
</div>
<div class="am-form-group">
<label>{{:MyLang('role.form_item_plugins')}}<span class="am-text-warning am-margin-left-sm">{{:MyLang('role.form_item_plugins_tips')}}</span></label>
<label>{{:MyLang('common_service.role.form_item_plugins')}}<span class="am-text-warning am-margin-left-sm">{{:MyLang('common_service.role.form_item_plugins_tips')}}</span></label>
<ul class="tree-list am-avg-sm-2 am-avg-md-3 am-avg-lg-4">
{{if !empty($power['plugins'])}}
{{foreach $power.plugins as $v}}
@ -70,7 +70,7 @@
</li>
{{/foreach}}
{{else /}}
<p class="am-text-warning">{{:MyLang('role.form_item_plugins_no_data_tips')}}</p>
<p class="am-text-warning">{{:MyLang('common_service.role.form_item_plugins_no_data_tips')}}</p>
{{/if}}
</ul>
</div>

View File

@ -13,6 +13,7 @@ namespace app\api\controller;
use app\service\ApiService;
use app\service\SystemBaseService;
use app\service\ArticleService;
use app\service\ArticleCategoryService;
use app\service\ResourcesService;
/**
@ -50,7 +51,7 @@ class Article extends Common
public function Index()
{
// 获取分类
$article_category = ArticleService::ArticleCategoryList();
$article_category = ArticleCategoryService::ArticleCategoryList();
// 返回数据
$result = [

View File

@ -13,6 +13,7 @@ namespace app\index\controller;
use app\service\SeoService;
use app\service\ApiService;
use app\service\ArticleService;
use app\service\ArticleCategoryService;
/**
* 文章详情
@ -87,7 +88,7 @@ class Article extends Common
];
// 文章分类
$article_category = ArticleService::ArticleCategoryList();
$article_category = ArticleCategoryService::ArticleCategoryList();
$assign['category_list'] = $article_category['data'];
// seo
@ -156,11 +157,11 @@ class Article extends Common
];
// 获取分类
$article_category = ArticleService::ArticleCategoryList();
$article_category = ArticleCategoryService::ArticleCategoryList();
$assign['category_list'] = $article_category['data'];
// 分类信息
$category_info = ArticleService::ArticleCategoryInfo($this->data_request, $article_category['data']);
$category_info = ArticleCategoryService::ArticleCategoryInfo($this->data_request, $article_category['data']);
$assign['category_info'] = $category_info;
// 浏览器名称

View File

@ -120,6 +120,8 @@ return [
'auth_success' => 'Authorization Succeeded',
'upload_fail' => 'Upload Failed',
'upload_success' => 'Upload Succeeded',
'download_fail' => 'Download Failed',
'download_success' => 'Download Succeeded',
'apply_fail' => 'Application Failed',
'apply_success' => 'Application Succeeded',
'handle_fail' => 'Processing Failed',
@ -159,6 +161,9 @@ return [
'audit_success' => 'Audit Succeeded',
'confirm_fail' => 'Confirm Failed',
'confirm_success' => 'Confirm Succeeded',
'register_fail' => 'Register Failed',
'register_success' => 'Register Succeeded',
'login_fails' => 'Login Failed',
'login_success' => 'Login Succeeded',
'quit_success' => 'Quit Succeeded',
'no_data' => 'No Relevant Data',
@ -166,6 +171,7 @@ return [
'params_error_tips' => 'Params Error',
'content_params_empty_tips' => 'Content parameter is empty',
'illegal_access_tips' => 'illegal access',
'illegal_operate_tips' => 'illegal operate',
'login_failure_tips' => 'Login Failed, please login again',
'upgrading_tips' => 'Upgrading...',
'processing_tips' => 'Processing...',
@ -185,7 +191,6 @@ return [
'no_config_data_tips' => 'No data configured',
'config_empty_tips' => 'Configuration is empty',
'config_error_tips' => 'Incorrect configuration',
'data_id_error_tips' => 'Incorrect data id',
'data_no_exist_error_tips' => 'Data does not exist',
'data_no_exist_or_delete_error_tips' => 'Data does not exist or has been deleted',
'goods_no_exist_or_delete_error_tips' => 'Item does not exist or has been deleted',
@ -193,13 +198,22 @@ return [
'no_power_tips' => 'No permission',
'not_open_developer_mode_tips' => 'Please start developer mode first',
'plugins_view_region_config_tips' => 'This area is plug-in extension data. Please fill in the corresponding value according to the plug-in document',
'user_id_error_tips' => 'Wrong user ID',
'user_info_incorrect_tips' => 'Incorrect user information',
'user_info_abnormal_tips' => 'Abnormal user information',
'gods_info_abnormal_tips' => 'Abnormal goods information',
'user_type_error_tips' => 'Wrong user type',
'user_delete_operate_tips' => 'User deleted',
'goods_id_error_tips' => 'Wrong goods ID',
'gods_info_incorrect_tips' => 'Incorrect goods information',
'gods_info_abnormal_tips' => 'Abnormal goods information',
'order_id_error_tips' => 'Wrong order ID',
'order_info_incorrect_tips' => 'The order information is incorrect',
'data_id_error_tips' => 'Wrong data ID',
'back_prev_page_name' => 'Return to the previous page',
'back_prev_time_auto_text' => 'Second automatic return',
'view_config_course_name' => 'View the configuration tutorial',
'payment_method_error_tips' => 'Incorrect payment method',
'operate_field_error_tips' => 'Operation field error',
// 商店
'store_bind_account_name' => 'Bind ShopXO store account',
'store_bind_account_tips' => 'If it is bound, please clear the cache under the menu tool on the left side of the mall background and try to access it again!',
@ -229,6 +243,8 @@ return [
'execute_title' => 'Execute',
'setup_title' => 'Setup',
'save_title' => 'Save',
'success_title' => 'Success',
'fail_title' => 'Fail',
'edit_title' => 'Edit',
'modify_title' => 'Modify',
'delete_title' => 'Delete',
@ -379,15 +395,39 @@ return [
'goods_category_title' => 'Goods Category',
'goods_inventory_insufficient_min_number_tips' => 'Initial purchase quantity of insufficient inventory',
'goods_more_total_tips' => '{:total} items in total',
// 用户基础相关
// 验证码相关
'verify_type_error_tips' => 'Wrong verification type',
'verify_code_empty_tips' => 'Verification code cannot be empty',
'verify_code_expire_tips' => 'The verification code has expired',
'verify_code_error_tips' => 'Verification code error',
'verify_images_empty_tips' => 'The picture verification code cannot be empty',
'verify_code_not_support_send_error_tips' => 'This type does not support sending verification code',
// 账户相关
'user_no_login_tips' => 'Please log in first',
'user_avatar_title' => 'Head Portrait',
'user_username_title' => 'Account',
'user_nickname_title' => 'Nickname',
'user_mobile_title' => 'Mobile',
'user_email_title' => 'Email',
'account_abnormal_tips' => 'Account exception',
'register_close_tips' => 'Temporarily close registration',
'register_type_error_tips' => 'Wrong registration type',
'login_close_tips' => 'Temporarily close login',
'login_type_error_tips' => 'Wrong login type',
'accounts_empty_tips' => 'Account cannot be empty',
'accounts_error_tips' => 'Account does not exist',
'password_empty_tips' => 'Password cannot be empty',
'password_error_tips' => 'Password error',
'mobile_format_error_tips' => 'Mobile number format error',
'mobile_no_exist_error_tips' => 'Mobile number does not exist, please register first!',
'email_format_error_tips' => 'Email format error',
'email_no_exist_error_tips' => 'Email does not exist, please register first!',
'login_fail_tips' => 'Login failed. Please try again later!',
// 表单相关
'form_base_data_title' => 'Base Info',
'form_open_zip_message' => 'Failed to open the compressed package',
'form_generate_zip_message' => 'Compression package generation failed',
'form_upload_zip_message' => 'The file format is incorrect. Please upload the zip package',
'form_upload_images_title' => 'Upload Images',
'form_choice_images_title' => 'Choice Images',
'form_upload_images_message' => 'Please upload pictures',
@ -653,6 +693,17 @@ return [
['value' => 100, 'name' => 'To be evaluated'],
['value' => 101, 'name' => 'Refund/AfterSales'],
],
// 商品详情页面更多导航 - 手机端
'app_goods_nav_more_list_data' => [
'goodsfavor' => 'My Favor',
'goodsbrowse' => 'My Browse',
'home' => 'To Home',
],
// 商品详情页面更多导航 - 手机端
'app_home_right_list_data' => [
'goodsfavor' => 'My Favor',
'usermessage' => 'My Message',
],
// 搜索排序方式
'common_search_order_by_list' => [
['name' => 'Comprehensive', 'type' => 'default', 'value' => 'desc'],
@ -966,8 +1017,8 @@ return [
2 => ['value' => 2, 'name' => 'PATHINFO Mode+ShortAddress'],
],
// -------------------- 表单 --------------------
'common_form' => [
// -------------------- 公共服务层 --------------------
'common_service' => [
// 权限管理
'power' => [
'form_item_pid' => 'Column Level',
@ -989,6 +1040,178 @@ return [
'3. You can also use the plug-in hook to import the css file of the custom icon, and then use the defined icon',
],
],
// 角色管理
'role' => [
'form_item_name' => 'Role Name',
'form_item_name_message' => 'Role name format 2~16 characters',
'form_item_menu' => 'Menu Power',
'form_item_menu_no_data_tips' => 'No menu data',
'form_item_plugins' => 'Plugins Power',
'form_item_plugins_tips' => 'The plug-in also needs to check [Application Center ->Application Management+Application Call Management] permission in the current menu permission',
'form_item_plugins_no_data_tips' => 'No plugins data',
// 保存操作
'save_super_role_not_edit_tips' => 'The super administrator role cannot be edited',
'save_role_already_exist_tips' => 'Role already exists[{$var}]',
'save_role_save_fail_tips' => 'Failed to save role data',
'save_role_menu_empty_fail_tips' => 'Role menu permission operation failed',
'save_role_menu_add_fail_tips' => 'Failed to add role menu permissions',
'save_role_plugins_empty_fail_tips' => 'Role plugins permission operation failed',
'save_role_plugins_add_fail_tips' => 'Failed to add role plugins permissions',
// 删除操作
'delete_super_role_not_tips' => 'The super administrator role cannot be deleted',
],
// 管理员
'admin' => [
// 表单
'form_item_username' => 'Userame',
'form_item_username_placeholder' => 'enter one username',
'form_item_username_message' => 'Please use letters, numbers and underscores for the user name of 2~18 characters',
'form_item_password' => 'Login Password',
'form_item_password_placeholder' => 'Please enter the login password',
'form_item_password_message' => 'Password format is between 6 and 18 characters',
'form_item_mobile' => 'Phone Number',
'form_item_mobile_placeholder' => 'Please enter your mobile number',
'form_item_mobile_message' => 'Mobile number format error',
'form_item_email' => 'E-mail',
'form_item_email_placeholder' => 'Please enter email address',
'form_item_email_message' => 'Email format error',
'form_item_username_created_tips' => 'Cannot be changed after creation',
'form_item_username_edit_tips' => 'Not changeable',
'form_item_role' => 'Permission group',
'form_item_role_message' => 'Please select the role group',
'form_item_password_edit_tips' => 'Enter to change the password',
'form_item_status' => 'Status',
'form_item_status_message' => 'Please select user status',
// 保存操作
'save_admin_info_error_tips' => 'The current operation administrator information is incorrect',
'save_status_tips' => 'The status value range is incorrect',
'save_gender_tips' => 'The gender value range is incorrect',
'save_mobile_already_exist_tips' => 'Mobile number already exists[{$var}]',
'save_email_already_exist_tips' => 'Email already exists[{$var}]',
'save_admin_already_exist_tips' => 'Administrator already exists[{$var}]',
// 删除操作
'delete_super_admin_not_tips' => 'Super administrator cannot be deleted',
// 登录
'login_verify_send_last_title' => ' - Administrator login',
],
// 协议
'agreement' => [
// 表单
'form_item_document_type_message' => '协议文档类型为空',
],
// 问答
'answer' => [
// 表单
'form_item_name' => 'Contacts',
'form_item_name_message' => 'Contact format can be up to 30 characters',
'form_item_tel' => 'Telephone',
'form_item_tel_message' => 'Please fill in a valid phone number',
'form_item_title' => 'Title',
'form_item_title_message' => 'Header format can be up to 60 characters',
'form_item_access_count' => 'Number of visits',
'form_item_access_count_message' => 'Number of visits in the format of 0~9',
'form_item_content' => 'Content',
'form_item_content_message' => 'Content format is between 5 and 1000 characters',
'form_item_reply' => 'Reply Content',
'form_item_reply_message' => 'The format of reply content is between 1 and 1000 characters',
'form_item_save_reply_message' => 'Reply content format can be up to 1000 characters',
'form_is_reply' => 'Reply or not',
// 基础
'no_username_name' => 'Net Friend',
],
// 用户中心导航
'appcenternav' => [
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'Name format: 2~60 characters',
'form_item_desc' => 'Describe',
'form_item_desc_message' => 'Description can be up to 18 characters',
'form_item_images_url' => 'Navigation Icon',
],
// 手机首页导航
'apphomenav' => [
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'Name format: 2~60 characters',
'form_item_images_url' => 'Navigation Icon',
'form_item_is_need_login' => 'Whether login is required',
],
// 小程序管理
'appmini' => [
'appmini_type_error_tips' => 'Wrong applet type',
'template_id_error_tips' => 'Incorrect template id',
'view_dir_power_tips' => 'View directory does not have permission',
'theme_name_error_tips' => 'Incorrect subject name',
'system_theme_not_delete_tips' => 'System template cannot be deleted',
'current_use_theme_error_tips' => 'Cannot delete the theme in use',
'please_use_https_tips' => 'Please use https protocol',
'config_file_no_exist_tips' => 'The applet theme configuration file does not exist',
'config_error_tips' => 'The configuration information of the main applet is incorrect',
'config_empty_tips' => 'Configuration information cannot be empty',
'package_target_no_exist_tips' => 'The source code target directory does not exist',
'package_target_no_power_tips' => 'The source code target directory does not have permission',
'package_no_exist_tips' => 'The source package does not exist',
'base_config_file_no_exist_tips' => 'Package base file does not exist, please regenerate',
'base_config_replace_fail_tips' => 'Basic configuration replacement failed',
'new_config_file_update_fail_tips' => 'Failed to update the new app profile',
'liveplayer_config_fail_tips' => 'Live configuration failed',
'plugins_no_data_tips' => 'No plugins data',
],
// 手机端用户
'appminiuser' => [
'open_id_empty_tips' => 'Openid is empty',
'auth_data_empty_tips' => 'The auth data is empty',
'temp_code_empty_tips' => 'Temporary code is empty',
'auth_code_empty_tips' => 'The auth code is empty',
'decrypt_data_empty_tips' => 'Decrypted data is empty',
'decrypt_iv_empty_tips' => 'Iv is empty, please try again',
'platform_not_mobile_login_tips' => 'The platform has not yet developed one-touch login',
'mobile_empty_tips' => 'Mobile number is empty',
'auth_login_success_tips' => 'Auth login succeeded',
'default_nickname_weiixn' => 'WeChat User',
],
// 文章
'article' => [
// 表单
'form_item_title' => 'Title',
'form_item_title_message' => 'The title is 2~60 characters long',
'form_item_article_category' => 'Article Category',
'form_item_article_category_message' => 'Please select an article category',
'form_item_jump_url_title' => 'Jump url address',
'form_item_jump_url_tips' => 'With http://or https://, only valid on the web side',
'form_item_jump_url_message' => 'The jump url address format is incorrect',
'form_item_is_home_recommended_title' => 'Home page recommendation',
'form_item_content_title' => 'Content',
'form_item_content_placeholder' => 'The content format is between 10 and 105000 characters. For more editing functions, please use the computer to access',
'form_item_content_message' => 'Content format is between 10 and 105000 characters',
],
// 文章分类
'articlecategory' => [
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'The name is 2~16 characters long',
],
// 品牌
'brand' => [
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'The name is 2~30 characters long',
'form_item_brand_category_id' => 'Brand Category',
'form_item_brand_category_id_message' => 'Please select brand category',
'form_item_website_url' => 'Website address',
'form_item_website_url_placeholder' => 'Official website address, starting with http://or https://',
'form_item_website_url_message' => 'Incorrect format of official website address',
'form_item_describe' => 'describe',
'form_item_describe_message' => 'Description can be up to 230 characters',
'form_item_logo' => 'LOGO',
'form_item_logo_tips' => 'Recommended 150*50px',
],
// 品牌分类
'brandcategory' => [
// 表单
'form_item_name' => 'Name',
'form_item_name_message' => 'The name is 2~16 characters long',
],
],
// -------------------- 公共 --------------------

View File

@ -120,6 +120,8 @@ return [
'auth_success' => '授权成功',
'upload_fail' => '上传失败',
'upload_success' => '上传成功',
'download_fail' => '下载失败',
'download_success' => '下载成功',
'apply_fail' => '申请失败',
'apply_success' => '申请成功',
'handle_fail' => '处理失败',
@ -159,6 +161,9 @@ return [
'audit_success' => '审核成功',
'confirm_fail' => '确认失败',
'confirm_success' => '确认成功',
'register_fail' => '注册失败',
'register_success' => '注册成功',
'login_fails' => '登录失败',
'login_success' => '登录成功',
'quit_success' => '退出成功',
'no_data' => '没有相关数据',
@ -166,6 +171,7 @@ return [
'params_error_tips' => '参数错误',
'content_params_empty_tips' => '内容参数为空',
'illegal_access_tips' => '非法访问',
'illegal_operate_tips' => '非法操作',
'login_failure_tips' => '登录失效,请重新登录',
'upgrading_tips' => '升级中...',
'processing_tips' => '处理中...',
@ -185,7 +191,6 @@ return [
'no_config_data_tips' => '未配置数据',
'config_empty_tips' => '配置为空',
'config_error_tips' => '配置有误',
'data_id_error_tips' => '数据id有误',
'data_no_exist_error_tips' => '数据不存在',
'data_no_exist_or_delete_error_tips' => '数据不存在或已删除',
'goods_no_exist_or_delete_error_tips' => '商品不存在或已删除',
@ -193,13 +198,23 @@ return [
'no_power_tips' => '无权限',
'not_open_developer_mode_tips' => '请先开启开发者模式',
'plugins_view_region_config_tips' => '该区域为插件扩展数据,请按照插件文档填写相应的值',
'user_id_error_tips' => '用户id有误',
'user_info_incorrect_tips' => '用户信息有误',
'user_info_abnormal_tips' => '用户信息异常',
'gods_info_abnormal_tips' => '商品信息异常',
'user_type_error_tips' => '用户类型有误',
'user_delete_operate_tips' => '用户已删除',
'goods_id_error_tips' => '商品id有误',
'gods_info_incorrect_tips' => '商品信息有误',
'gods_info_abnormal_tips' => '商品信息异常',
'order_id_error_tips' => '订单id有误',
'order_info_incorrect_tips' => '订单信息有误',
'data_id_error_tips' => '数据id有误',
'back_prev_page_name' => '返回上一页',
'back_prev_time_auto_text' => '秒自动返回',
'view_config_course_name' => '查看配置教程',
'payment_method_error_tips' => '支付方式有误',
'operate_field_error_tips' => '操作字段有误',
'project_copy_fail_tips' => '项目包复制失败',
// 商店
'store_bind_account_name' => '绑定ShopXO商店账户',
'store_bind_account_tips' => '如已绑定、请到商城后台左侧菜单工具下面清除缓存再尝试访问!',
@ -230,6 +245,8 @@ return [
'execute_title' => '执行',
'setup_title' => '设置',
'save_title' => '保存',
'success_title' => '成功',
'fail_title' => '失败',
'edit_title' => '编辑',
'modify_title' => '修改',
'delete_title' => '删除',
@ -380,15 +397,39 @@ return [
'goods_category_title' => '商品分类',
'goods_inventory_insufficient_min_number_tips' => '库存不足起购数',
'goods_more_total_tips' => '共 {:total} 种商品',
// 用户基础相关
// 验证码相关
'verify_type_error_tips' => '验证类型有误',
'verify_code_empty_tips' => '验证码不能为空',
'verify_code_expire_tips' => '验证码已过期',
'verify_code_error_tips' => '验证码错误',
'verify_images_empty_tips' => '图片验证码不能为空',
'verify_code_not_support_send_error_tips' => '该类型不支持验证码发送',
// 账户相关
'user_no_login_tips' => '请先登录',
'user_avatar_title' => '头像',
'user_username_title' => '账号',
'user_nickname_title' => '昵称',
'user_mobile_title' => '手机',
'user_email_title' => '邮箱',
'account_abnormal_tips' => '账户异常',
'register_close_tips' => '暂时关闭注册',
'register_type_error_tips' => '注册类型有误',
'login_close_tips' => '暂时关闭登录',
'login_type_error_tips' => '登录类型有误',
'accounts_empty_tips' => '账号不能为空',
'accounts_error_tips' => '帐号不存在',
'password_empty_tips' => '密码不能为空',
'password_error_tips' => '密码错误',
'mobile_format_error_tips' => '手机号码格式错误',
'mobile_no_exist_error_tips' => '手机号码不存在、请先注册!',
'email_format_error_tips' => '电子邮箱格式错误',
'email_no_exist_error_tips' => '电子邮箱不存在、请先注册!',
'login_fail_tips' => '登录失败,请稍后再试!',
// 表单相关
'form_base_data_title' => '基础信息',
'form_open_zip_message' => '压缩包打开失败',
'form_generate_zip_message' => '压缩包生成失败',
'form_upload_zip_message' => '文件格式有误请上传zip压缩包',
'form_upload_images_title' => '上传图片',
'form_choice_images_title' => '选择图片',
'form_upload_images_message' => '请上传图片',
@ -653,6 +694,17 @@ return [
['value' => 100, 'name' => '待评价'],
['value' => 101, 'name' => '退款/售后'],
],
// 商品详情页面更多导航 - 手机端
'app_goods_nav_more_list_data' => [
'goodsfavor' => '我的收藏',
'goodsbrowse' => '我浏览过',
'home' => '回到首页',
],
// 商品详情页面更多导航 - 手机端
'app_home_right_list_data' => [
'goodsfavor' => '我的收藏',
'usermessage' => '我的消息',
],
// 搜索排序方式
'common_search_order_by_list' => [
['name' => '综合', 'type' => 'default', 'value' => 'desc'],
@ -966,10 +1018,11 @@ return [
2 => ['value' => 2, 'name' => 'PATHINFO模式+短地址'],
],
// -------------------- 表单 --------------------
'common_form' => [
// -------------------- 公共服务层 --------------------
'common_service' => [
// 权限管理
'power' => [
// 表单
'form_item_pid' => '栏目级别',
'form_item_pid_placeholder' => '一级栏目...',
'form_item_pid_message' => '栏目级别选择错误',
@ -989,6 +1042,181 @@ return [
'3. 也可以自己使用插件钩子引入自定义的icon图标的css文件然后使用定义好的icon',
],
],
// 角色管理
'role' => [
// 表单
'form_item_name' => '角色名称',
'form_item_name_message' => '角色名称格式2~16个字符',
'form_item_menu' => '菜单权限',
'form_item_menu_no_data_tips' => '无菜单数据',
'form_item_plugins' => '插件权限',
'form_item_plugins_tips' => '插件还需在当前菜单权限中勾选[ 应用中心 -> 应用管理+应用调用管理 ]权限',
'form_item_plugins_no_data_tips' => '无插件数据',
// 保存操作
'save_role_already_exist_tips' => '角色已存在[{$var}]',
'save_super_role_not_edit_tips' => '超级管理员角色不可编辑',
'save_role_save_fail_tips' => '角色数据保存失败',
'save_role_menu_empty_fail_tips' => '角色菜单权限操作失败',
'save_role_menu_add_fail_tips' => '角色菜单权限添加失败',
'save_role_plugins_empty_fail_tips' => '角色插件权限操作失败',
'save_role_plugins_add_fail_tips' => '角色插件权限添加失败',
// 删除操作
'delete_super_role_not_tips' => '超级管理员角色不可删除',
],
// 管理员
'admin' => [
// 表单
'form_item_username' => '用户名',
'form_item_username_placeholder' => '请输入用户名',
'form_item_username_message' => '用户名请使用字母、数字、下划线2~18个字符',
'form_item_password' => '登录密码',
'form_item_password_placeholder' => '请输入登录密码',
'form_item_password_message' => '密码格式6~18个字符之间',
'form_item_mobile' => '手机号码',
'form_item_mobile_placeholder' => '请输入手机号码',
'form_item_mobile_message' => '手机号码格式错误',
'form_item_email' => '电子邮箱',
'form_item_email_placeholder' => '请输入电子邮箱',
'form_item_email_message' => '电子邮箱格式错误',
'form_item_username_created_tips' => '创建后不可更改',
'form_item_username_edit_tips' => '不可更改',
'form_item_role' => '权限组',
'form_item_role_message' => '请选择所属角色组',
'form_item_password_edit_tips' => '输入则修改密码',
'form_item_status' => '状态',
'form_item_status_message' => '请选择用户状态',
// 保存操作
'save_admin_info_error_tips' => '当前操作管理员信息有误',
'save_status_tips' => '状态值范围不正确',
'save_gender_tips' => '性别值范围不正确',
'save_mobile_already_exist_tips' => '手机号码已存在[{$var}]',
'save_email_already_exist_tips' => '电子邮箱已存在[{$var}]',
'save_admin_already_exist_tips' => '管理员已存在[{$var}]',
// 删除操作
'delete_super_admin_not_tips' => '超级管理员不可删除',
// 登录
'login_verify_send_last_title' => ' - 管理员登录',
],
// 协议
'agreement' => [
// 表单
'form_item_document_type_message' => '协议文档类型为空',
],
// 问答
'answer' => [
// 表单
'form_item_name' => '联系人',
'form_item_name_message' => '联系人格式最多30个字符',
'form_item_tel' => '电话',
'form_item_tel_message' => '请填写有效的电话',
'form_item_title' => '标题',
'form_item_title_message' => '标题格式最多60个字符',
'form_item_access_count' => '访问次数',
'form_item_access_count_message' => '访问次数格式0~9的数值',
'form_item_content' => '内容',
'form_item_content_message' => '内容格式5~1000个字符之间',
'form_item_reply' => '回复内容',
'form_item_reply_message' => '回复内容格式1~1000个字符之间',
'form_item_save_reply_message' => '回复内容格式最多1000个字符',
'form_is_reply' => '是否已回复',
// 基础
'no_username_name' => '网友',
],
// 用户中心导航
'appcenternav' => [
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称格式2~60个字符',
'form_item_desc' => '描述',
'form_item_desc_message' => '描述最多18个字符',
'form_item_images_url' => '导航图标',
],
// 手机首页导航
'apphomenav' => [
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称格式2~60个字符',
'form_item_images_url' => '导航图标',
'form_item_is_need_login' => '是否需要登录',
],
// 小程序管理
'appmini' => [
'appmini_type_error_tips' => '小程序类型有误',
'template_id_error_tips' => '模板id有误',
'view_dir_power_tips' => '视图目录没权限',
'theme_name_error_tips' => '主题名称有误',
'system_theme_not_delete_tips' => '系统模板不能删除',
'current_use_theme_error_tips' => '不能删除正在使用的主题',
'please_use_https_tips' => '请使用https协议',
'config_file_no_exist_tips' => '小程序主题配置文件不存在',
'config_error_tips' => '主小程序题配置信息有误',
'config_empty_tips' => '配置信息不能为空',
'package_target_no_exist_tips' => '源码目标目录不存在',
'package_target_no_power_tips' => '源码目标目录没有权限',
'package_no_exist_tips' => '源码包不存在',
'base_config_file_no_exist_tips' => '包基础文件不存在,请重新生成',
'base_config_replace_fail_tips' => '基础配置替换失败',
'new_config_file_update_fail_tips' => '新应用配置文件更新失败',
'liveplayer_config_fail_tips' => '直播配置失败',
'plugins_no_data_tips' => '无插件数据',
],
// 手机端用户
'appminiuser' => [
'open_id_empty_tips' => 'openid为空',
'auth_data_empty_tips' => '授权数据为空',
'temp_code_empty_tips' => '临时code为空',
'auth_code_empty_tips' => '授权码为空',
'decrypt_data_empty_tips' => '解密数据为空',
'decrypt_iv_empty_tips' => 'iv为空,请重试',
'platform_not_mobile_login_tips' => '平台还未开发手机一键登录',
'mobile_empty_tips' => '手机号码为空',
'auth_login_success_tips' => '授权登录成功',
'default_nickname_weiixn' => '微信用户',
],
// 文章
'article' => [
// 表单
'form_item_title' => '标题',
'form_item_title_message' => '标题长度2~60个字符',
'form_item_article_category' => '文章分类',
'form_item_article_category_message' => '请选择文章分类',
'form_item_jump_url_title' => '跳转url地址',
'form_item_jump_url_tips' => '带http://或https://仅web端有效',
'form_item_jump_url_message' => '跳转url地址格式有误',
'form_item_is_home_recommended_title' => '首页推荐',
'form_item_content_title' => '内容',
'form_item_content_placeholder' => '内容格式10~105000个字符之间更多编辑功能请使用电脑访问',
'form_item_content_message' => '内容格式10~105000个字符之间',
],
// 文章分类
'articlecategory' => [
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称长度2~16个字符',
],
// 品牌
'brand' => [
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称长度2~30个字符',
'form_item_brand_category_id' => '品牌分类',
'form_item_brand_category_id_message' => '请选择品牌分类',
'form_item_website_url' => '官网地址',
'form_item_website_url_placeholder' => '官网地址、以http://或https://开头',
'form_item_website_url_message' => '官网地址格式有误',
'form_item_describe' => '描述',
'form_item_describe_message' => '描述最多230个字符',
'form_item_logo' => 'LOGO',
'form_item_logo_tips' => '建议150*50px',
// 保存
'save_name_already_exist_tips' => '品牌已存在[{$var}]',
],
// 品牌分类
'brandcategory' => [
// 表单
'form_item_name' => '名称',
'form_item_name_message' => '名称长度2~16个字符',
],
],
// -------------------- 公共 --------------------

View File

@ -66,14 +66,14 @@ class AdminPowerService
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,16',
'error_msg' => MyLang('common_form.power.form_item_name_message'),
'error_msg' => MyLang('common_service.power.form_item_name_message'),
],
[
'checked_type' => 'length',
'key_name' => 'icon',
'checked_data' => '60',
'is_checked' => 1,
'error_msg' => MyLang('common_form.power.form_item_icon_message'),
'error_msg' => MyLang('common_service.power.form_item_icon_message'),
],
[
'checked_type' => 'in',
@ -89,20 +89,20 @@ class AdminPowerService
'checked_type' => 'length',
'key_name' => 'control',
'checked_data' => '1,30',
'error_msg' => MyLang('common_form.power.form_item_control_message'),
'error_msg' => MyLang('common_service.power.form_item_control_message'),
];
$p[] = [
'checked_type' => 'length',
'key_name' => 'action',
'checked_data' => '1,30',
'error_msg' => MyLang('common_form.power.form_item_action_message'),
'error_msg' => MyLang('common_service.power.form_item_action_message'),
];
} else {
$p[] = [
'checked_type' => 'length',
'key_name' => 'url',
'checked_data' => '1,255',
'error_msg' => MyLang('common_form.power.form_item_url_message'),
'error_msg' => MyLang('common_service.power.form_item_url_message'),
];
}
$ret = ParamsChecked($params, $p);

View File

@ -231,14 +231,14 @@ class AdminRoleService
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,8',
'error_msg' => '角色名称格式 2~8 个字符之间',
'error_msg' => MyLang('common_service.role.form_item_name_message'),
],
[
'checked_type' => 'unique',
'key_name' => 'name',
'checked_data' => 'Role',
'checked_key' => 'id',
'error_msg' => '角色已存在[{$var}]',
'error_msg' => MyLang('common_service.role.save_role_already_exist_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -268,7 +268,7 @@ class AdminRoleService
// 是否包含删除超级管理员角色
if($params['id'] == 1)
{
throw new \Exception('超级管理员角色不可编辑');
throw new \Exception(MyLang('common_service.role.save_super_role_not_edit_tips'));
}
// 更新
@ -279,13 +279,13 @@ class AdminRoleService
}
if(empty($role_id))
{
throw new \Exception('角色数据保存失败');
throw new \Exception(MyLang('common_service.role.save_role_save_fail_tips'));
}
// 菜单权限数据删除
if(Db::name('RolePower')->where(['role_id'=>$role_id])->delete() === false)
{
throw new \Exception('角色菜单权限操作失败');
throw new \Exception(MyLang('common_service.role.save_role_menu_empty_fail_tips'));
}
// 菜单权限数据添加
@ -307,7 +307,7 @@ class AdminRoleService
{
if(Db::name('RolePower')->insertAll($rp_data) < count($rp_data))
{
throw new \Exception('角色菜单权限添加失败');
throw new \Exception(MyLang('common_service.role.save_role_menu_add_fail_tips'));
}
}
}
@ -315,7 +315,7 @@ class AdminRoleService
// 插件权限删除
if(Db::name('RolePlugins')->where(['role_id'=>$role_id])->delete() === false)
{
throw new \Exception('角色插件权限操作失败');
throw new \Exception(MyLang('common_service.role.save_role_plugins_empty_fail_tips'));
}
// 插件权限数据添加
@ -340,7 +340,7 @@ class AdminRoleService
{
if(Db::name('RolePlugins')->insertAll($rp_data) < count($rp_data))
{
throw new \Exception('角色插件权限添加失败');
throw new \Exception(MyLang('common_service.role.save_role_plugins_add_fail_tips'));
}
}
}
@ -382,7 +382,7 @@ class AdminRoleService
// 是否包含删除超级管理员角色
if(in_array(1, $params['ids']))
{
return DataReturn('超级管理员角色不可删除', -1);
return DataReturn(MyLang('common_service.role.delete_super_role_not_tips'), -1);
}
// 开启事务

View File

@ -26,46 +26,6 @@ class AdminService
// admin登录session key
public static $admin_login_key = 'admin_login_info';
/**
* 列表数据处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2022-08-01
* @desc description
* @param [array] $data [数据列表]
* @param [array] $params [输入参数]
*/
public static function AdminListHandle($data, $params = [])
{
if(!empty($data))
{
// 获取当前用户角色名称
$roles = Db::name('Role')->where('id', 'in', array_column($data, 'role_id'))->column('name', 'id');
// 数据处理
$common_gender_list = MyLang('common_gender_list');
$common_admin_status_list = MyLang('common_admin_status_list');
foreach($data as &$v)
{
// 所在角色组
$v['role_name'] = isset($roles[$v['role_id']]) ? $roles[$v['role_id']] : '';
// 性别
$v['gender_text'] = isset($common_gender_list[$v['gender']]) ? $common_gender_list[$v['gender']]['name'] : '';
// 状态
$v['status_text'] = isset($common_admin_status_list[$v['status']]) ? $common_admin_status_list[$v['status']]['name'] : '';
// 时间
$v['login_time'] = empty($v['login_time']) ? '' : date('Y-m-d H:i:s', $v['login_time']);
$v['add_time'] = empty($v['add_time']) ? '' : date('Y-m-d H:i:s', $v['add_time']);
$v['upd_time'] = empty($v['upd_time']) ? '' : date('Y-m-d H:i:s', $v['upd_time']);
}
}
return $data;
}
/**
* 角色列表
* @author Devil
@ -97,33 +57,33 @@ class AdminService
[
'checked_type' => 'empty',
'key_name' => 'admin',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('common_service.admin.save_admin_info_error_tips'),
],
[
'checked_type' => 'fun',
'key_name' => 'mobile',
'checked_data' => 'CheckMobile',
'is_checked' => 1,
'error_msg' => '手机号码格式错误',
'error_msg' => MyLang('common_service.admin.form_item_mobile_message'),
],
[
'checked_type' => 'fun',
'key_name' => 'email',
'checked_data' => 'CheckEmail',
'is_checked' => 1,
'error_msg' => '电子邮箱格式错误、最多60个字符',
'error_msg' => MyLang('common_service.admin.form_item_email_message'),
],
[
'checked_type' => 'in',
'key_name' => 'gender',
'checked_data' => [0,1,2],
'error_msg' => '性别值范围不正确',
'error_msg' => MyLang('common_service.admin.save_gender_tips'),
],
[
'checked_type' => 'in',
'key_name' => 'status',
'checked_data' => array_column(MyLang('common_admin_status_list'), 'value'),
'error_msg' => '状态值范围不正确',
'error_msg' => MyLang('common_service.admin.save_status_tips'),
],
[
'checked_type' => 'unique',
@ -131,7 +91,7 @@ class AdminService
'checked_data' => 'Admin',
'checked_key' => 'id',
'is_checked' => 1,
'error_msg' => '手机号码已存在[{$var}]',
'error_msg' => MyLang('common_service.admin.save_mobile_already_exist_tips'),
],
[
'checked_type' => 'unique',
@ -139,7 +99,7 @@ class AdminService
'checked_data' => 'Admin',
'checked_key' => 'id',
'is_checked' => 1,
'error_msg' => '电子邮箱已存在[{$var}]',
'error_msg' => MyLang('common_service.admin.save_email_already_exist_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -165,36 +125,36 @@ class AdminService
[
'checked_type' => 'empty',
'key_name' => 'username',
'error_msg' => '用户名不能为空',
],
[
'checked_type' => 'empty',
'key_name' => 'login_pwd',
'error_msg' => '密码不能为空',
'error_msg' => MyLang('common_service.admin.form_item_username_placeholder'),
],
[
'checked_type' => 'fun',
'key_name' => 'username',
'checked_data' => 'CheckUserName',
'error_msg' => '用户名格式 5~18 个字符(可以是字母数字下划线)',
'error_msg' => MyLang('common_service.admin.form_item_username_message'),
],
[
'checked_type' => 'unique',
'key_name' => 'username',
'checked_data' => 'Admin',
'checked_key' => 'id',
'error_msg' => '管理员已存在[{$var}]',
'error_msg' => MyLang('common_service.admin.save_admin_already_exist_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'login_pwd',
'error_msg' => MyLang('common_service.admin.form_item_password_placeholder'),
],
[
'checked_type' => 'fun',
'key_name' => 'login_pwd',
'checked_data' => 'CheckLoginPwd',
'error_msg' => '密码格式 6~18 个字符',
'error_msg' => MyLang('common_service.admin.form_item_password_message'),
],
[
'checked_type' => 'empty',
'key_name' => 'role_id',
'error_msg' => '角色组有误',
'error_msg' => MyLang('common_service.admin.form_item_role_message'),
],
];
$ret = ParamsChecked($params, $p);
@ -242,7 +202,7 @@ class AdminService
'key_name' => 'login_pwd',
'checked_data' => 'CheckLoginPwd',
'is_checked' => 1,
'error_msg' => '密码格式 6~18 个字符',
'error_msg' => MyLang('common_service.admin.form_item_password_message'),
],
];
if($params['id'] != $params['admin']['id'])
@ -250,7 +210,7 @@ class AdminService
$p[] = [
'checked_type' => 'empty',
'key_name' => 'role_id',
'error_msg' => '角色组有误',
'error_msg' => MyLang('common_service.admin.form_item_role_message'),
];
}
$ret = ParamsChecked($params, $p);
@ -262,7 +222,7 @@ class AdminService
// 是否非法修改超管
if($params['id'] == 1 && $params['id'] != $params['admin']['id'])
{
return DataReturn('非法操作', -1);
return DataReturn(MyLang('illegal_operate_tips'), -1);
}
// 数据
@ -313,7 +273,7 @@ class AdminService
// 参数是否有误
if(empty($params['ids']))
{
return DataReturn('管理员id有误', -1);
return DataReturn(MyLang('data_id_error_tips'), -1);
}
// 是否数组
if(!is_array($params['ids']))
@ -324,7 +284,7 @@ class AdminService
// 是否包含删除超级管理员
if(in_array(1, $params['ids']))
{
return DataReturn('超级管理员不可删除', -1);
return DataReturn(MyLang('common_service.admin.delete_super_admin_not_tips'), -1);
}
// 删除操作
@ -351,12 +311,12 @@ class AdminService
'checked_type' => 'in',
'key_name' => 'type',
'checked_data' => array_column(MyLang('common_login_type_list'), 'value'),
'error_msg' => '登录类型有误',
'error_msg' => MyLang('login_type_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'accounts',
'error_msg' => '登录账号不能为空',
'error_msg' => MyLang('accounts_empty_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -368,7 +328,7 @@ class AdminService
// 是否开启用户注册
if(!in_array($params['type'], MyC('admin_login_type', [], true)))
{
return DataReturn('暂时关闭登录', -1);
return DataReturn(MyLang('login_close_tips'), -1);
}
// 账户校验
@ -388,17 +348,18 @@ class AdminService
if($params['type'] == 'username')
{
// 请求参数
$password_message = MyLang('common_service.admin.form_item_password_message');
$p = [
[
'checked_type' => 'empty',
'key_name' => 'pwd',
'error_msg' => '密码格式 6~18 个字符之间',
'error_msg' => $password_message,
],
[
'checked_type' => 'fun',
'key_name' => 'pwd',
'checked_data' => 'CheckLoginPwd',
'error_msg' => '密码格式 6~18 个字符',
'error_msg' => $password_message,
],
];
$ret = ParamsChecked($params, $p);
@ -431,7 +392,7 @@ class AdminService
// 未知的字段
default :
return DataReturn('验证类型有误', -1);
return DataReturn(MyLang('verify_type_error_tips'), -1);
}
// 验证码校验
@ -441,12 +402,12 @@ class AdminService
// 是否已过期
if(!$obj->CheckExpire())
{
return DataReturn('验证码已过期', -10);
return DataReturn(MyLang('verify_code_expire_tips'), -10);
}
// 是否正确
if(!$obj->CheckCorrect($params['verify']))
{
return DataReturn('验证码错误', -11);
return DataReturn(MyLang('verify_code_error_tips'), -11);
}
}
}
@ -455,7 +416,7 @@ class AdminService
$admin = Db::name('Admin')->field('id,username,mobile,email,login_pwd,login_salt,login_total,role_id')->where([$ac['data']=>$params['accounts'], 'status'=>0])->find();
if(empty($admin))
{
return DataReturn('账户异常', -2);
return DataReturn(MyLang('account_abnormal_tips'), -2);
}
// 密码校验
@ -465,7 +426,7 @@ class AdminService
$pwd = LoginPwdEncryption($params['pwd'], $admin['login_salt']);
if($pwd != $admin['login_pwd'])
{
return DataReturn('密码错误', -3);
return DataReturn(MyLang('password_error_tips'), -3);
}
}
@ -498,7 +459,7 @@ class AdminService
// 失败
self::LoginLogout();
return DataReturn('登录失败,请稍后再试!', -100);
return DataReturn(MyLang('login_fail_tips'), -100);
}
/**
@ -559,13 +520,13 @@ class AdminService
[
'checked_type' => 'empty',
'key_name' => 'accounts',
'error_msg' => '账号不能为空',
'error_msg' => MyLang('accounts_empty_tips'),
],
[
'checked_type' => 'in',
'key_name' => 'type',
'checked_data' => array_column(MyLang('common_login_type_list'), 'value'),
'error_msg' => '登录类型有误',
'error_msg' => MyLang('login_type_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -577,7 +538,7 @@ class AdminService
// 是否开启用户注册
if(!in_array($params['type'], MyC('admin_login_type', [], true)))
{
return DataReturn('暂时关闭登录', -1);
return DataReturn(MyLang('login_close_tips'), -1);
}
// 验证码基础参数
@ -620,7 +581,7 @@ class AdminService
$email_params = [
'email' => $params['accounts'],
'content' => MyC('admin_email_login_template'),
'title' => MyC('home_site_name').' - 管理员登录',
'title' => MyC('home_site_name').MyLang('common_service.admin.login_verify_send_last_title'),
'code' => $code,
];
$status = $obj->SendHtml($email_params);
@ -628,7 +589,7 @@ class AdminService
// 默认
default :
return DataReturn('该类型不支持验证码发送', -2);
return DataReturn(MyLang('verify_code_not_support_send_error_tips'), -2);
}
// 状态
@ -664,13 +625,13 @@ class AdminService
// 手机号码格式
if(!CheckMobile($params['accounts']))
{
return DataReturn('手机号码格式错误', -2);
return DataReturn(MyLang('mobile_format_error_tips'), -2);
}
// 手机号码是否存在
if(!self::IsExistAccounts($params['accounts'], 'mobile'))
{
return DataReturn('手机号码不存在、请先注册!', -3);
return DataReturn(MyLang('mobile_no_exist_error_tips'), -3);
}
$field = 'mobile';
break;
@ -680,13 +641,13 @@ class AdminService
// 电子邮箱格式
if(!CheckEmail($params['accounts']))
{
return DataReturn('电子邮箱格式错误', -2);
return DataReturn(MyLang('email_format_error_tips'), -2);
}
// 电子邮箱是否存在
if(!self::IsExistAccounts($params['accounts'], 'email'))
{
return DataReturn('电子邮箱不存在、请先注册!', -3);
return DataReturn(MyLang('email_no_exist_error_tips'), -3);
}
$field = 'email';
break;
@ -696,13 +657,13 @@ class AdminService
// 用户名格式
if(!CheckUserName($params['accounts']))
{
return DataReturn('用户名格式由 字母数字下划线 2~18 个字符', -2);
return DataReturn(MyLang('common_service.admin.form_item_username_message'), -2);
}
// 用户名是否存在
if(!self::IsExistAccounts($params['accounts'], 'username'))
{
return DataReturn('帐号不存在', -3);
return DataReturn(MyLang('accounts_error_tips'), -3);
}
$field = 'username';
break;
@ -756,16 +717,16 @@ class AdminService
{
if(empty($params['verify']))
{
return DataReturn('图片验证码为空', -10);
return DataReturn(MyLang('verify_images_empty_tips'), -10);
}
$verify = new \base\Verify($verify_params);
if(!$verify->CheckExpire())
{
return DataReturn('验证码已过期', -11);
return DataReturn(MyLang('verify_code_expire_tips'), -11);
}
if(!$verify->CheckCorrect($params['verify']))
{
return DataReturn('验证码错误', -12);
return DataReturn(MyLang('verify_code_error_tips'), -12);
}
return DataReturn(MyLang('check_success'), 0, $verify);
}

View File

@ -38,7 +38,7 @@ class AgreementService
[
'checked_type' => 'empty',
'key_name' => 'document',
'error_msg' => '协议文档类型有误',
'error_msg' => MyLang('common_service.agreement.form_item_document_type_message'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -76,6 +76,8 @@ class AnswerService
{
// 用户默认头像
$default_avatar = SystemBaseService::AttachmentHost().'/static/index/'.strtolower(MyFileConfig('common_default_theme', '', 'default', true)).'/images/default-user-avatar.jpg';
// 默认用户名称
$default_username = MyLang('common_service.answer.no_username_name');
foreach($data as &$v)
{
@ -87,7 +89,7 @@ class AnswerService
{
$v['user'] = [
'avatar' => empty($user['avatar']) ? $default_avatar : $user['avatar'],
'user_name_view' => empty($user['user_name_view']) ? '网友' : $user['user_name_view'],
'user_name_view' => empty($user['user_name_view']) ? $default_username : $user['user_name_view'],
];
} else {
$v['user'] = $user;
@ -217,30 +219,32 @@ class AnswerService
'key_name' => 'name',
'checked_data' => '30',
'is_checked' => 1,
'error_msg' => '联系人最多30个字符',
'error_msg' => MyLang('common_service.answer.form_item_name_message'),
],
[
'checked_type' => 'isset',
'key_name' => 'tel',
'error_msg' => '请填写有效的电话',
'error_msg' => MyLang('common_service.answer.form_item_tel_message'),
],
[
'checked_type' => 'length',
'key_name' => 'title',
'checked_data' => '60',
'is_checked' => 1,
'error_msg' => '标题最多60个字符',
],
[
'checked_type' => 'empty',
'key_name' => 'content',
'error_msg' => '详细内容不能为空',
'error_msg' => MyLang('common_service.answer.form_item_title_message'),
],
[
'checked_type' => 'length',
'key_name' => 'content',
'checked_data' => '1000',
'error_msg' => '详细内容格式 2~1000 个字符',
'error_msg' => MyLang('common_service.answer.form_item_content_message'),
],
[
'checked_type' => 'length',
'key_name' => 'reply',
'checked_data' => '1000',
'is_checked' => 1,
'error_msg' => MyLang('common_service.answer.form_item_save_reply_message'),
],
];
$ret = ParamsChecked($params, $p);
@ -306,7 +310,7 @@ class AnswerService
[
'checked_type' => 'empty',
'key_name' => 'user_type',
'error_msg' => '用户类型有误',
'error_msg' => MyLang('user_type_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -331,7 +335,7 @@ class AnswerService
{
if(empty($params['user']))
{
return DataReturn('用户信息有误', -1);
return DataReturn(MyLang('user_info_incorrect_tips'), -1);
}
$where['user_id'] = $params['user']['id'];
}
@ -362,16 +366,11 @@ class AnswerService
'key_name' => 'id',
'error_msg' => MyLang('data_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'reply',
'error_msg' => '回复内容不能为空',
],
[
'checked_type' => 'length',
'key_name' => 'reply',
'checked_data' => '1000',
'error_msg' => '回复内容格式最多1000个字符',
'error_msg' => MyLang('common_service.answer.form_item_reply_message'),
],
];
$ret = ParamsChecked($params, $p);
@ -425,7 +424,7 @@ class AnswerService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '字段有误',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',

View File

@ -40,7 +40,7 @@ class AppCenterNavService
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,60',
'error_msg' => '名称长度 2~60 个字符',
'error_msg' => MyLang('common_service.appcenternav.form_item_name_message'),
],
[
'checked_type' => 'in',
@ -71,7 +71,7 @@ class AppCenterNavService
'checked_type' => 'length',
'key_name' => 'desc',
'checked_data' => '18',
'error_msg' => '描述最多 18 个字符',
'error_msg' => MyLang('common_service.appcenternav.form_item_desc_message'),
],
[
'checked_type' => 'length',
@ -147,7 +147,6 @@ class AppCenterNavService
{
return DataReturn(MyLang('delete_success'), 0);
}
return DataReturn(MyLang('delete_fail'), -100);
}
@ -171,7 +170,7 @@ class AppCenterNavService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '操作字段有误',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',
@ -201,14 +200,13 @@ class AppCenterNavService
* @version 1.0.0
* @date 2018-11-19
* @desc description
* @param array $params [description]
* @param [array] $params [输入参数]
*/
public static function AppCenterNav($params = [])
{
// 缓存
$key = SystemService::CacheKey('shopxo.cache_app_user_center_navigation_key').APPLICATION_CLIENT_TYPE;
$data = MyCache($key);
if(empty($data))
{
$field = 'id,name,images_url,event_value,event_type,desc';

View File

@ -40,7 +40,7 @@ class AppHomeNavService
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,60',
'error_msg' => '名称长度 2~60 个字符',
'error_msg' => MyLang('common_service.apphomenav.form_item_name_message'),
],
[
'checked_type' => 'in',
@ -142,7 +142,6 @@ class AppHomeNavService
{
return DataReturn(MyLang('delete_success'), 0);
}
return DataReturn(MyLang('delete_fail'), -100);
}
@ -166,7 +165,7 @@ class AppHomeNavService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '操作字段有误',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',

View File

@ -52,7 +52,7 @@ class AppMiniService
// 小程序类型校验
if(!array_key_exists(self::$application_name, MyLang('common_appmini_type')))
{
return DataReturn('小程序类型有误['.self::$application_name.']', -1);
return DataReturn(MyLang('common_service.appmini.appmini_type_error_tips').'['.self::$application_name.']', -1);
}
// 原包地址/操作地址
@ -102,7 +102,6 @@ class AppMiniService
self::$application_name = 'weixin';
}
}
return 'common_app_mini_'.self::$application_name.'_default_theme';
}
@ -193,7 +192,7 @@ class AppMiniService
$type = ResourcesService::ZipExtTypeList();
if(!in_array($_FILES['theme']['type'], $type))
{
return DataReturn('文件格式有误请上传zip压缩包', -2);
return DataReturn(MyLang('form_upload_zip_message'), -2);
}
// 上传处理
@ -224,7 +223,7 @@ class AppMiniService
// 目录是否有权限
if(!is_writable($dir))
{
return DataReturn('视图目录没权限['.$dir.']', -10);
return DataReturn(MyLang('view_dir_power_tips').'['.$dir.']', -10);
}
// 开始解压文件
@ -232,7 +231,7 @@ class AppMiniService
$resource = $zip->open($package_file);
if($resource != true)
{
return DataReturn('压缩包打开失败['.$resource.']', -11);
return DataReturn(MyLang('form_open_zip_message').'['.$resource.']', -11);
}
for($i=0; $i<$zip->numFiles; $i++)
{
@ -283,7 +282,6 @@ class AppMiniService
}
// 关闭zip
$zip->close();
return DataReturn(MyLang('install_success'), 0);
}
@ -302,7 +300,7 @@ class AppMiniService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '模板id有误',
'error_msg' => MyLang('common_service.appmini.template_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -322,19 +320,19 @@ class AppMiniService
$id = htmlentities(str_replace(array('.', '/', '\\', ':'), '', strip_tags($params['id'])));
if(empty($id))
{
return DataReturn('主题名称有误', -1);
return DataReturn(MyLang('common_service.appmini.theme_name_error_tips'), -1);
}
// default不能删除
if($id == 'default')
{
return DataReturn('系统模板不能删除', -2);
return DataReturn(MyLang('common_service.appmini.system_theme_not_delete_tips'), -2);
}
// 不能删除正在使用的主题
if(self::$default_theme == $id)
{
return DataReturn('不能删除正在使用的主题', -2);
return DataReturn(MyLang('common_service.appmini.current_use_theme_error_tips'), -2);
}
// 开始删除主题
@ -361,7 +359,7 @@ class AppMiniService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '模板id有误',
'error_msg' => MyLang('common_service.appmini.template_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -380,14 +378,14 @@ class AppMiniService
// 是否开启开发者模式
if(MyConfig('shopxo.is_develop') !== true)
{
return DataReturn('请先开启开发者模式', -1);
return DataReturn(MyLang('not_open_developer_mode_tips'), -1);
}
// 防止路径回溯
$theme = htmlentities(str_replace(array('.', '/', '\\', ':'), '', strip_tags($params['id'])));
if(empty($theme))
{
return DataReturn('主题名称有误', -1);
return DataReturn(MyLang('common_service.appmini.theme_name_error_tips'), -1);
}
// 获取配置信息
@ -408,7 +406,7 @@ class AppMiniService
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir) != true)
{
return DataReturn('项目包复制失败', -2);
return DataReturn(MyLang('project_copy_fail_tips'), -2);
}
}
@ -423,7 +421,7 @@ class AppMiniService
$zip = new \base\ZipFolder();
if(!$zip->zip($new_dir.'.zip', $new_dir))
{
return DataReturn('压缩包生成失败', -100);
return DataReturn(MyLang('form_generate_zip_message'), -100);
}
// 生成成功删除目录
@ -436,7 +434,7 @@ class AppMiniService
{
@unlink($new_dir.'.zip');
} else {
return DataReturn('下载失败', -100);
return DataReturn(MyLang('download_fail'), -100);
}
}
@ -463,12 +461,12 @@ class AppMiniService
$config_file = self::$old_path.DS.$theme.DS.'config.json';
if(!file_exists($config_file))
{
return DataReturn('小程序主题配置文件不存在', -1);
return DataReturn(MyLang('common_service.appmini.config_file_no_exist_tips'), -1);
}
$config = json_decode(file_get_contents($config_file), true);
if(empty($config))
{
return DataReturn('主小程序题配置信息有误', -1);
return DataReturn(MyLang('common_service.appmini.config_error_tips'), -1);
}
return DataReturn('success', 0, $config);
}
@ -532,7 +530,7 @@ class AppMiniService
{
if(__MY_HTTP__ != 'https')
{
return DataReturn('请使用https协议', -1);
return DataReturn(MyLang('common_service.appmini.please_use_https_tips'), -1);
}
}
@ -548,7 +546,7 @@ class AppMiniService
$describe = MyC('common_app_mini_'.self::$application_name.'_describe');
if(empty($title) || empty($describe))
{
return DataReturn('配置信息不能为空', -1);
return DataReturn(MyLang('common_service.appmini.config_empty_tips'), -1);
}
// 源码目录不存在则创建
@ -557,13 +555,13 @@ class AppMiniService
// 源码目标目录是否存在
if(!is_dir(self::$new_root))
{
return DataReturn('源码目标目录不存在['.self::$new_root.']', -1);
return DataReturn(MyLang('common_service.appmini.package_target_no_exist_tips').'['.self::$new_root.']', -1);
}
// 源码目标目录没有权限
if(!is_writable(self::$new_root))
{
return DataReturn('源码目标目录没有权限['.self::$new_root.']', -1);
return DataReturn(MyLang('common_service.appmini.package_target_no_power_tips').'['.self::$new_root.']', -1);
}
// 包目录
@ -573,7 +571,7 @@ class AppMiniService
// 源码包是否存在
if(!is_dir($old_dir))
{
return DataReturn('源码包不存在['.self::$default_theme.']', -1);
return DataReturn(MyLang('common_service.appmini.package_no_exist_tips').'['.self::$default_theme.']', -1);
}
// 目录不存在则创建
@ -582,13 +580,13 @@ class AppMiniService
// 复制包目录
if(\base\FileUtil::CopyDir($old_dir, $new_dir) != true)
{
return DataReturn('项目包复制失败', -2);
return DataReturn(MyLang('project_copy_fail_tips'), -2);
}
// 校验基础文件是否存在
if(!file_exists($new_dir.DS.'app.js') || !file_exists($new_dir.DS.'app.json'))
{
return DataReturn('包基础文件不存在,请重新生成', -3);
return DataReturn(MyLang('common_service.appmini.base_config_file_no_exist_tips'), -3);
}
// 替换内容
@ -608,14 +606,14 @@ class AppMiniService
$status = file_put_contents($new_dir.DS.'app.js', str_replace($search, $replace, file_get_contents($new_dir.DS.'app.js')));
if($status === false)
{
return DataReturn('基础配置替换失败', -4);
return DataReturn(MyLang('common_service.appmini.base_config_replace_fail_tips'), -4);
}
// app.json
$status = file_put_contents($new_dir.DS.'app.json', str_replace(['{{application_title}}'], [$title], file_get_contents($new_dir.DS.'app.json')));
if($status === false)
{
return DataReturn('基础配置替换失败', -4);
return DataReturn(MyLang('common_service.appmini.base_config_replace_fail_tips'), -4);
}
// 小程序额外处理
@ -646,12 +644,11 @@ class AppMiniService
$zip = new \base\ZipFolder();
if(!$zip->zip($new_dir.'.zip', $new_dir))
{
return DataReturn('压缩包生成失败', -100);
return DataReturn(MyLang('form_generate_zip_message'), -100);
}
// 生成成功删除目录
\base\FileUtil::UnlinkDir($new_dir);
return DataReturn(MyLang('created_success'), 0);
}
@ -689,7 +686,7 @@ class AppMiniService
];
if(@file_put_contents($file, JsonFormat($config)) === false)
{
return DataReturn('新应用配置文件更新失败', -11);
return DataReturn(MyLang('common_service.appmini.new_config_file_update_fail_tips'), -11);
}
}
@ -718,7 +715,7 @@ class AppMiniService
];
if(file_put_contents($file, JsonFormat($config)) === false)
{
return DataReturn('直播配置失败', -50);
return DataReturn(MyLang('common_service.appmini.liveplayer_config_fail_tips'), -50);
}
}
}
@ -796,8 +793,7 @@ class AppMiniService
{
return DataReturn(MyLang('delete_fail'), -100);
}
return DataReturn('成功['.$sucs.'],失败['.$fail.']');
return DataReturn(MyLang('success_title').'['.$sucs.'],'.MyLang('fail_title').'['.$fail.']');
}
/**
@ -843,8 +839,7 @@ class AppMiniService
return $res;
}
}
return DataReturn('无插件数据', 0);
return DataReturn(MyLang('common_service.appmini.plugins_no_data_tips'), 0);
}
}
?>

View File

@ -70,7 +70,7 @@ class AppMiniUserService
$user = UserService::AppUserInfoHandle(null, 'alipay_openid', $ret['data']['user_id']);
if(empty($user))
{
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['user_id']]);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['user_id']]);
} else {
// 用户状态
$ret = UserService::UserStatusCheck('id', $user['id']);
@ -78,12 +78,12 @@ class AppMiniUserService
{
// 标记用户存在
$user['is_user_exist'] = 1;
$ret = DataReturn('授权登录成功', 0, $user);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, $user);
}
}
}
} else {
$ret = DataReturn('授权码为空', -1);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_code_empty_tips'), -1);
}
return $ret;
}
@ -104,12 +104,12 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'openid',
'error_msg' => 'openid为空',
'error_msg' => MyLang('common_service.appminiuser.open_id_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'auth_data',
'error_msg' => '授权数据为空',
'error_msg' => MyLang('common_service.appminiuser.auth_data_empty_tips'),
]
];
$ret = ParamsChecked($params, $p);
@ -173,7 +173,7 @@ class AppMiniUserService
// 微信已无用户端获取用户基础信息、直接添加用户
$params['openid'] = $ret['data']['openid'];
$params['weixin_unionid'] = $unionid;
$params['nickname'] = '微信用户';
$params['nickname'] = MyLang('common_service.appminiuser.default_nickname_weiixn');
$ret = UserService::AuthUserProgram($params, 'weixin_openid');
// 存在用户id则添加用户存在标记
if(!empty($ret['data']['id']))
@ -212,7 +212,7 @@ class AppMiniUserService
{
// 标记用户存在
$user['is_user_exist'] = 1;
$ret = DataReturn('授权登录成功', 0, $user);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, $user);
}
}
}
@ -235,12 +235,12 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'openid',
'error_msg' => 'openid为空',
'error_msg' => MyLang('common_service.appminiuser.open_id_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'auth_data',
'error_msg' => '授权数据为空',
'error_msg' => MyLang('common_service.appminiuser.auth_data_empty_tips'),
]
];
$ret = ParamsChecked($params, $p);
@ -304,10 +304,10 @@ class AppMiniUserService
{
// 标记用户存在
$user['is_user_exist'] = 1;
$ret = DataReturn('授权登录成功', 0, $user);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, $user);
}
} else {
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['openid']]);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['openid']]);
}
}
return $ret;
@ -329,12 +329,12 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'openid',
'error_msg' => 'openid为空',
'error_msg' => MyLang('common_service.appminiuser.open_id_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'auth_data',
'error_msg' => '授权数据为空',
'error_msg' => MyLang('common_service.appminiuser.auth_data_empty_tips'),
]
];
$ret = ParamsChecked($params, $p);
@ -350,12 +350,12 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'encrypted_data',
'error_msg' => '解密数据为空',
'error_msg' => MyLang('common_service.appminiuser.decrypt_data_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'iv',
'error_msg' => 'iv为空,请重试',
'error_msg' => MyLang('common_service.appminiuser.decrypt_iv_empty_tips'),
]
];
$ret = ParamsChecked($auth_data, $p);
@ -426,7 +426,7 @@ class AppMiniUserService
}
if(empty($user))
{
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['openid'], 'unionid'=>$unionid]);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['openid'], 'unionid'=>$unionid]);
} else {
$status = false;
// 如果用户openid为空则绑定到用户下面
@ -459,7 +459,7 @@ class AppMiniUserService
{
// 标记用户存在
$user['is_user_exist'] = 1;
$ret = DataReturn('授权登录成功', 0, $user);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, $user);
}
}
}
@ -482,12 +482,12 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'openid',
'error_msg' => 'openid为空',
'error_msg' => MyLang('common_service.appminiuser.open_id_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'auth_data',
'error_msg' => '授权数据为空',
'error_msg' => MyLang('common_service.appminiuser.auth_data_empty_tips'),
]
];
$ret = ParamsChecked($params, $p);
@ -541,7 +541,7 @@ class AppMiniUserService
$user = UserService::AppUserInfoHandle(null, 'kuaishou_openid', $ret['data']['openid']);
if(empty($user))
{
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['openid']]);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['openid']]);
} else {
// 用户状态
$ret = UserService::UserStatusCheck('id', $user['id']);
@ -549,7 +549,7 @@ class AppMiniUserService
{
// 标记用户存在
$user['is_user_exist'] = 1;
$ret = DataReturn('授权登录成功', 0, $user);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, $user);
}
}
}
@ -572,12 +572,12 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'openid',
'error_msg' => 'openid为空',
'error_msg' => MyLang('common_service.appminiuser.open_id_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'auth_data',
'error_msg' => '授权数据为空',
'error_msg' => MyLang('common_service.appminiuser.auth_data_empty_tips'),
]
];
$ret = ParamsChecked($params, $p);
@ -638,7 +638,7 @@ class AppMiniUserService
}
if(empty($user))
{
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['openid'], 'unionid'=>$unionid]);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, ['is_user_exist'=>0, 'openid'=>$ret['data']['openid'], 'unionid'=>$unionid]);
} else {
$status = false;
// 如果用户openid为空则绑定到用户下面
@ -671,12 +671,12 @@ class AppMiniUserService
{
// 标记用户存在
$user['is_user_exist'] = 1;
$ret = DataReturn('授权登录成功', 0, $user);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_login_success_tips'), 0, $user);
}
}
}
} else {
$ret = DataReturn('授权码为空', -1);
$ret = DataReturn(MyLang('common_service.appminiuser.auth_code_empty_tips'), -1);
}
return $ret;
}
@ -697,12 +697,12 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'openid',
'error_msg' => 'openid为空',
'error_msg' => MyLang('common_service.appminiuser.open_id_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'auth_data',
'error_msg' => '授权数据为空',
'error_msg' => MyLang('common_service.appminiuser.auth_data_empty_tips'),
]
];
$ret = ParamsChecked($params, $p);
@ -718,12 +718,12 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'encrypted_data',
'error_msg' => '解密数据为空',
'error_msg' => MyLang('common_service.appminiuser.decrypt_data_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'iv',
'error_msg' => 'iv为空,请重试',
'error_msg' => MyLang('common_service.appminiuser.decrypt_iv_empty_tips'),
]
];
$ret = ParamsChecked($auth_data, $p);
@ -775,7 +775,7 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'openid',
'error_msg' => 'openid为空',
'error_msg' => MyLang('common_service.appminiuser.open_id_empty_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -795,7 +795,7 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'code',
'error_msg' => '临时code为空',
'error_msg' => MyLang('common_service.appminiuser.temp_code_empty_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -821,12 +821,12 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'encrypted_data',
'error_msg' => '解密数据为空',
'error_msg' => MyLang('common_service.appminiuser.decrypt_data_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'iv',
'error_msg' => 'iv为空,请重试',
'error_msg' => MyLang('common_service.appminiuser.decrypt_iv_empty_tips'),
]
];
$ret = ParamsChecked($params, $p);
@ -857,12 +857,12 @@ class AppMiniUserService
[
'checked_type' => 'empty',
'key_name' => 'encrypted_data',
'error_msg' => '解密数据为空',
'error_msg' => MyLang('common_service.appminiuser.decrypt_data_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'iv',
'error_msg' => 'iv为空,请重试',
'error_msg' => MyLang('common_service.appminiuser.decrypt_iv_empty_tips'),
]
];
$ret = ParamsChecked($params, $p);
@ -887,11 +887,11 @@ class AppMiniUserService
// 默认
default :
return DataReturn(APPLICATION_CLIENT_TYPE.'平台还未开发手机一键登录', -1);
return DataReturn(APPLICATION_CLIENT_TYPE.MyLang('common_service.appminiuser.platform_not_mobile_login_tips'), -1);
}
if(empty($mobile))
{
return DataReturn('手机号码为空', -1);
return DataReturn(MyLang('common_service.appminiuser.mobile_empty_tips'), -1);
}
// 用户信息处理

View File

@ -33,6 +33,7 @@ class AppService
$data = [];
if(!empty($params['page']))
{
$lang = MyLang('app_goods_nav_more_list_data');
switch($params['page'])
{
// 商品页面
@ -42,17 +43,17 @@ class AppService
case 'goods' :
$data = [
[
'name' => '我的收藏',
'name' => $lang['goodsfavor'],
'url' => '/pages/user-favor/user-favor',
'icon' => 'heart'
],
[
'name' => '我浏览过',
'name' => $lang['goodsbrowse'],
'url' => '/pages/user-goods-browse/user-goods-browse',
'icon' => 'eye'
],
[
'name' => '回到首页',
'name' => $lang['home'],
'url' => '/pages/index/index',
'icon' => 'home'
]
@ -91,14 +92,15 @@ class AppService
// name 名称(必填)
// icon 图标必填、参考uniapp扩展图标文档
// url 访问地址(可选)
$lang = MyLang('app_home_right_list_data');
$data = [
[
'name' => '我的收藏',
'name' => $lang['goodsfavor'],
'icon' => 'heart',
'url' => '/pages/user-favor/user-favor',
],
[
'name' => '我的消息',
'name' => $lang['usermessage'],
'icon' => 'chat',
'badge' => $message_total,
'url' => '/pages/message/message',

View File

@ -0,0 +1,242 @@
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( https://opensource.org/licenses/mit-license.php )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\service;
use think\facade\Db;
/**
* 文章分类服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class ArticleCategoryService
{
/**
* 文章分类
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryList($params = [])
{
$field = empty($params['field']) ? '*' : $params['field'];
$order_by = empty($params['order_by']) ? 'sort asc' : trim($params['order_by']);
$data = Db::name('ArticleCategory')->where(['is_enable'=>1])->field($field)->order($order_by)->select()->toArray();
return DataReturn(MyLang('handle_success'), 0, self::CategoryDataHandle($data));
}
/**
* 分类处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2021-11-08
* @desc description
* @param [array] $data [分类数据]
*/
public static function CategoryDataHandle($data)
{
if(!empty($data))
{
foreach($data as &$v)
{
$v['url'] = (APPLICATION == 'web') ? MyUrl('index/article/category', ['id'=>$v['id']]) : '/pages/article-category/article-category?id='.$v['id'];
}
}
return $data;
}
/**
* 获取分类信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2021-11-08
* @desc description
* @param [array] $params [输入参数]
* @param [array] $data [指定分类数据列表]
*/
public static function ArticleCategoryInfo($params = [], $data = [])
{
// 数据不存在则读取
if(!empty($params['id']))
{
if(empty($data))
{
$data = Db::name('ArticleCategory')->where(['is_enable'=>1,'id'=>intval($params['id'])])->field('*')->order('sort asc')->select()->toArray();
} else {
$temp = array_column($data, null, 'id');
$data = array_key_exists($params['id'], $temp) ? [$temp[$params['id']]] : [];
}
} else {
$data = [];
}
$data = self::CategoryDataHandle($data);
return (empty($data) || empty($data[0])) ? null : $data[0];
}
/**
* 获取文章分类节点数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-16T23:54:46+0800
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryNodeSon($params = [])
{
// id
$id = isset($params['id']) ? intval($params['id']) : 0;
// 获取数据
$field = '*';
$data = Db::name('ArticleCategory')->field($field)->where(['pid'=>$id])->order('sort asc')->select()->toArray();
if(!empty($data))
{
foreach($data as &$v)
{
$v['is_son'] = (Db::name('ArticleCategory')->where(['pid'=>$v['id']])->count() > 0) ? 'ok' : 'no';
$v['json'] = json_encode($v);
}
return DataReturn(MyLang('operate_success'), 0, $data);
}
return DataReturn(MyLang('no_data'), -100);
}
/**
* 文章分类保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-17T01:04:03+0800
* @param [array] $params [输入参数]
*/
public static function ArticleCategorySave($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,16',
'error_msg' => MyLang('common_service.articlecategory.form_item_name_message'),
],
];
$ret = ParamsChecked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 数据
$data = [
'name' => $params['name'],
'pid' => isset($params['pid']) ? intval($params['pid']) : 0,
'sort' => isset($params['sort']) ? intval($params['sort']) : 0,
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
];
// 添加
if(empty($params['id']))
{
$data['add_time'] = time();
$data['id'] = Db::name('ArticleCategory')->insertGetId($data);
if($data['id'] <= 0)
{
return DataReturn(MyLang('insert_fail'), -100);
}
} else {
$data['upd_time'] = time();
if(Db::name('ArticleCategory')->where(['id'=>intval($params['id'])])->update($data) === false)
{
return DataReturn(MyLang('edit_fail'), -100);
} else {
$data['id'] = $params['id'];
}
}
return DataReturn(MyLang('operate_success'), 0, $data);
}
/**
* 文章分类删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-17T02:40:29+0800
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryDelete($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => MyLang('data_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'admin',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 开始删除
if(Db::name('ArticleCategory')->where(['id'=>intval($params['id'])])->delete())
{
return DataReturn(MyLang('delete_success'), 0);
}
return DataReturn(MyLang('delete_fail'), -100);
}
/**
* 获取分类和所有文章
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryListContent($params = [])
{
$data = Db::name('ArticleCategory')->field('id,name')->where(['is_enable'=>1])->order('id asc, sort asc')->select()->toArray();
if(!empty($data))
{
foreach($data as &$v)
{
$items = Db::name('Article')->field('id,title,title_color')->where(['article_category_id'=>$v['id'], 'is_enable'=>1])->select()->toArray();
if(!empty($items))
{
foreach($items as &$vs)
{
// url
$vs['url'] = (APPLICATION == 'web') ? MyUrl('index/article/index', ['id'=>$vs['id']]) : '/pages/article-detail/article-detail?id='.$vs['id'];
}
}
$v['items'] = $items;
}
}
return DataReturn(MyLang('handle_success'), 0, $data);
}
}
?>

View File

@ -200,25 +200,25 @@ class ArticleService
'checked_type' => 'length',
'key_name' => 'title',
'checked_data' => '2,60',
'error_msg' => '标题长度 2~60 个字符',
'error_msg' => MyLang('common_service.article.form_item_title_message'),
],
[
'checked_type' => 'empty',
'key_name' => 'article_category_id',
'error_msg' => '请选择文章分类',
'error_msg' => MyLang('common_service.article.form_item_article_category_message'),
],
[
'checked_type' => 'fun',
'key_name' => 'jump_url',
'checked_data' => 'CheckUrl',
'is_checked' => 1,
'error_msg' => '跳转url地址格式有误',
'error_msg' => MyLang('common_service.article.form_item_jump_url_message'),
],
[
'checked_type' => 'length',
'key_name' => 'content',
'checked_data' => '10,105000',
'error_msg' => '内容 10~105000 个字符',
'error_msg' => MyLang('common_service.article.form_item_content_message'),
],
[
'checked_type' => 'length',
@ -331,73 +331,6 @@ class ArticleService
return false;
}
/**
* 文章分类
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryList($params = [])
{
$field = empty($params['field']) ? '*' : $params['field'];
$order_by = empty($params['order_by']) ? 'sort asc' : trim($params['order_by']);
$data = Db::name('ArticleCategory')->where(['is_enable'=>1])->field($field)->order($order_by)->select()->toArray();
return DataReturn(MyLang('handle_success'), 0, self::CategoryDataHandle($data));
}
/**
* 分类处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2021-11-08
* @desc description
* @param [array] $data [分类数据]
*/
public static function CategoryDataHandle($data)
{
if(!empty($data))
{
foreach($data as &$v)
{
$v['url'] = (APPLICATION == 'web') ? MyUrl('index/article/category', ['id'=>$v['id']]) : '/pages/article-category/article-category?id='.$v['id'];
}
}
return $data;
}
/**
* 获取分类信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2021-11-08
* @desc description
* @param [array] $params [输入参数]
* @param [array] $data [指定分类数据列表]
*/
public static function ArticleCategoryInfo($params = [], $data = [])
{
// 数据不存在则读取
if(!empty($params['id']))
{
if(empty($data))
{
$data = Db::name('ArticleCategory')->where(['is_enable'=>1,'id'=>intval($params['id'])])->field('*')->order('sort asc')->select()->toArray();
} else {
$temp = array_column($data, null, 'id');
$data = array_key_exists($params['id'], $temp) ? [$temp[$params['id']]] : [];
}
} else {
$data = [];
}
$data = self::CategoryDataHandle($data);
return (empty($data) || empty($data[0])) ? null : $data[0];
}
/**
* 删除
* @author Devil
@ -449,7 +382,7 @@ class ArticleService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '操作字段有误',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',
@ -472,126 +405,6 @@ class ArticleService
return DataReturn(MyLang('edit_fail'), -100);
}
/**
* 获取文章分类节点数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-16T23:54:46+0800
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryNodeSon($params = [])
{
// id
$id = isset($params['id']) ? intval($params['id']) : 0;
// 获取数据
$field = '*';
$data = Db::name('ArticleCategory')->field($field)->where(['pid'=>$id])->order('sort asc')->select()->toArray();
if(!empty($data))
{
foreach($data as &$v)
{
$v['is_son'] = (Db::name('ArticleCategory')->where(['pid'=>$v['id']])->count() > 0) ? 'ok' : 'no';
$v['json'] = json_encode($v);
}
return DataReturn(MyLang('operate_success'), 0, $data);
}
return DataReturn(MyLang('no_data'), -100);
}
/**
* 文章分类保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-17T01:04:03+0800
* @param [array] $params [输入参数]
*/
public static function ArticleCategorySave($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,16',
'error_msg' => '名称格式 2~16 个字符',
],
];
$ret = ParamsChecked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 数据
$data = [
'name' => $params['name'],
'pid' => isset($params['pid']) ? intval($params['pid']) : 0,
'sort' => isset($params['sort']) ? intval($params['sort']) : 0,
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
];
// 添加
if(empty($params['id']))
{
$data['add_time'] = time();
$data['id'] = Db::name('ArticleCategory')->insertGetId($data);
if($data['id'] <= 0)
{
return DataReturn(MyLang('insert_fail'), -100);
}
} else {
$data['upd_time'] = time();
if(Db::name('ArticleCategory')->where(['id'=>intval($params['id'])])->update($data) === false)
{
return DataReturn(MyLang('edit_fail'), -100);
} else {
$data['id'] = $params['id'];
}
}
return DataReturn(MyLang('operate_success'), 0, $data);
}
/**
* 文章分类删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-17T02:40:29+0800
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryDelete($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '删除数据id有误',
],
[
'checked_type' => 'empty',
'key_name' => 'admin',
'error_msg' => '用户信息有误',
],
];
$ret = ParamsChecked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 开始删除
if(Db::name('ArticleCategory')->where(['id'=>intval($params['id'])])->delete())
{
return DataReturn(MyLang('delete_success'), 0);
}
return DataReturn(MyLang('delete_fail'), -100);
}
/**
* 上一篇、下一篇数据
* @author Devil
@ -625,36 +438,5 @@ class ArticleService
'next' => empty($next) ? null : $next[0],
];
}
/**
* 获取分类和所有文章
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-10-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function ArticleCategoryListContent($params = [])
{
$data = Db::name('ArticleCategory')->field('id,name')->where(['is_enable'=>1])->order('id asc, sort asc')->select()->toArray();
if(!empty($data))
{
foreach($data as &$v)
{
$items = Db::name('Article')->field('id,title,title_color')->where(['article_category_id'=>$v['id'], 'is_enable'=>1])->select()->toArray();
if(!empty($items))
{
foreach($items as &$vs)
{
// url
$vs['url'] = (APPLICATION == 'web') ? MyUrl('index/article/index', ['id'=>$vs['id']]) : '/pages/article-detail/article-detail?id='.$vs['id'];
}
}
$v['items'] = $items;
}
}
return DataReturn(MyLang('handle_success'), 0, $data);
}
}
?>

View File

@ -83,7 +83,7 @@ class BrandCategoryService
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,16',
'error_msg' => '名称格式 2~16 个字符',
'error_msg' => MyLang('common_service.brandcategory.form_item_name_message'),
],
];
$ret = ParamsChecked($params, $p);
@ -133,12 +133,12 @@ class BrandCategoryService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '删除数据id有误',
'error_msg' => MyLang('data_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'admin',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -222,33 +222,33 @@ class BrandService
'checked_type' => 'length',
'key_name' => 'name',
'checked_data' => '2,30',
'error_msg' => '名称格式 2~30 个字符',
],
[
'checked_type' => 'length',
'key_name' => 'describe',
'checked_data' => '230',
'is_checked' => 1,
'error_msg' => '描述最多200个字符',
'error_msg' => MyLang('common_service.brand.form_item_name_message'),
],
[
'checked_type' => 'unique',
'key_name' => 'name',
'checked_data' => 'Brand',
'checked_key' => 'id',
'error_msg' => '品牌已存在[{$var}]',
'error_msg' => MyLang('common_service.brand.save_name_already_exist_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'brand_category_id',
'error_msg' => '请选择品牌分类',
'error_msg' => MyLang('common_service.brand.form_item_brand_category_id_message'),
],
[
'checked_type' => 'length',
'key_name' => 'describe',
'checked_data' => '230',
'is_checked' => 1,
'error_msg' => MyLang('common_service.brand.form_item_describe_message'),
],
[
'checked_type' => 'fun',
'key_name' => 'website_url',
'checked_data' => 'CheckUrl',
'is_checked' => 1,
'error_msg' => '官网地址格式有误',
'error_msg' => MyLang('common_service.brand.form_item_website_url_message'),
],
[
'checked_type' => 'max',
@ -318,37 +318,39 @@ class BrandService
// 启动事务
Db::startTrans();
if(empty($params['id']))
{
$data['add_time'] = time();
$brand_id = Db::name('Brand')->insertGetId($data);
if($brand_id <= 0)
{
Db::rollback();
return DataReturn(MyLang('insert_fail'), -100);
}
} else {
$data['upd_time'] = time();
$brand_id = intval($params['id']);
if(Db::name('Brand')->where(['id'=>$brand_id])->update($data) === false)
{
Db::rollback();
return DataReturn(MyLang('edit_fail'), -100);
}
}
// 添加分类
$ret = self::BrandCategoryInsert(explode(',', $params['brand_category_id']), $brand_id);
if($ret['code'] != 0)
{
// 回滚事务
// 捕获异常
try {
if(empty($params['id']))
{
$data['add_time'] = time();
$brand_id = Db::name('Brand')->insertGetId($data);
if($brand_id <= 0)
{
throw new \Exception(MyLang('insert_fail'));
}
} else {
$data['upd_time'] = time();
$brand_id = intval($params['id']);
if(Db::name('Brand')->where(['id'=>$brand_id])->update($data) === false)
{
throw new \Exception(MyLang('edit_fail'));
}
}
// 添加分类
$ret = self::BrandCategoryInsert(explode(',', $params['brand_category_id']), $brand_id);
if($ret['code'] != 0)
{
throw new \Exception($ret['msg']);
}
// 提交事务
Db::commit();
return DataReturn(MyLang('operate_success'), 0);
} catch(\Exception $e) {
Db::rollback();
return $ret;
return DataReturn($e->getMessage(), -1);
}
// 提交事务
Db::commit();
return DataReturn(MyLang('operate_success'), 0);
}
/**
@ -409,7 +411,6 @@ class BrandService
{
return DataReturn(MyLang('delete_success'), 0);
}
return DataReturn(MyLang('delete_fail'), -100);
}
@ -433,7 +434,7 @@ class BrandService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '未指定操作字段',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',

View File

@ -180,7 +180,7 @@ class BuyService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -494,7 +494,7 @@ class BuyService
[
'checked_type' => 'is_array',
'key_name' => 'goods',
'error_msg' => '商品信息有误',
'error_msg' => MyLang('gods_info_incorrect_tips'),
]
];
$ret = ParamsChecked($params, $p);
@ -602,7 +602,7 @@ class BuyService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
@ -1197,7 +1197,7 @@ class BuyService
[
'checked_type' => 'empty',
'key_name' => 'order_id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -1400,7 +1400,7 @@ class BuyService
[
'checked_type' => 'empty',
'key_name' => 'order_id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'in',
@ -1545,7 +1545,7 @@ class BuyService
[
'checked_type' => 'empty',
'key_name' => 'order_id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'empty',

View File

@ -232,7 +232,7 @@ class CustomViewService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '字段有误',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',

View File

@ -152,7 +152,7 @@ class DesignService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '字段有误',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',
@ -348,7 +348,7 @@ class DesignService
$zip = new \base\ZipFolder();
if(!$zip->zip($dir_zip, $dir))
{
return DataReturn('压缩包生成失败', -2);
return DataReturn(MyLang('form_generate_zip_message'), -2);
}
// 生成成功删除目录
@ -360,7 +360,7 @@ class DesignService
// 删除文件
@unlink($dir_zip);
} else {
return DataReturn('下载失败', -100);
return DataReturn(MyLang('download_fail'), -100);
}
return DataReturn('下载成功', 0);
}
@ -568,7 +568,7 @@ class DesignService
$type = ResourcesService::ZipExtTypeList();
if(!in_array($_FILES['file']['type'], $type))
{
return DataReturn('文件格式有误请上传zip压缩包', -2);
return DataReturn(MyLang('form_upload_zip_message'), -2);
}
// 上传处理
@ -599,7 +599,7 @@ class DesignService
$resource = $zip->open($package_file);
if($resource != true)
{
return DataReturn('压缩包打开失败['.$resource.']', -11);
return DataReturn(MyLang('form_open_zip_message').'['.$resource.']', -11);
}
// 配置信息

View File

@ -244,12 +244,12 @@ class ExpressService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '删除数据id有误',
'error_msg' => MyLang('data_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'admin',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -39,13 +39,13 @@ class FormTableService
[
'checked_type' => 'empty',
'key_name' => 'user_id',
'error_msg' => '用户id有误',
'error_msg' => MyLang('user_id_error_tips'),
],
[
'checked_type' => 'in',
'key_name' => 'user_type',
'checked_data' => [0,1],
'error_msg' => '用户类型有误',
'error_msg' => MyLang('user_type_error_tips'),
],
[
'checked_type' => 'empty',
@ -96,13 +96,13 @@ class FormTableService
[
'checked_type' => 'empty',
'key_name' => 'user_id',
'error_msg' => '用户id有误',
'error_msg' => MyLang('user_id_error_tips'),
],
[
'checked_type' => 'in',
'key_name' => 'user_type',
'checked_data' => [0,1],
'error_msg' => '用户类型有误',
'error_msg' => MyLang('user_type_error_tips'),
],
[
'checked_type' => 'empty',
@ -156,7 +156,7 @@ class FormTableService
}
if(empty($user_id))
{
return DataReturn('用户信息有误', -1);
return DataReturn(MyLang('user_info_incorrect_tips'), -1);
}
if(empty($params['md5_key']))
{

View File

@ -41,12 +41,12 @@ class GoodsBrowseService
[
'checked_type' => 'empty',
'key_name' => 'goods_id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
[
'checked_type' => 'is_array',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -42,7 +42,7 @@ class GoodsCartService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -216,7 +216,7 @@ class GoodsCartService
[
'checked_type' => 'empty',
'key_name' => 'goods_id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
[
'checked_type' => 'empty',
@ -232,7 +232,7 @@ class GoodsCartService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -364,12 +364,12 @@ class GoodsCartService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '数据id有误',
'error_msg' => MyLang('data_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'goods_id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
[
'checked_type' => 'empty',
@ -385,7 +385,7 @@ class GoodsCartService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -509,7 +509,7 @@ class GoodsCartService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -40,7 +40,7 @@ class GoodsCommentsService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'empty',
@ -50,7 +50,7 @@ class GoodsCommentsService
[
'checked_type' => 'empty',
'key_name' => 'goods_id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
[
'checked_type' => 'empty',
@ -65,7 +65,7 @@ class GoodsCommentsService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -584,7 +584,7 @@ class GoodsCommentsService
'checked_type' => 'in',
'key_name' => 'field',
'checked_data' => ['is_anonymous', 'is_show', 'is_reply'],
'error_msg' => '操作字段有误',
'error_msg' => MyLang('operate_field_error_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -41,12 +41,12 @@ class GoodsFavorService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -121,12 +121,12 @@ class GoodsFavorService
[
'checked_type' => 'empty',
'key_name' => 'goods_id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -285,7 +285,7 @@ class GoodsParamsService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '未指定操作字段',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',

View File

@ -2158,7 +2158,7 @@ class GoodsService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '未指定操作字段',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',
@ -2330,7 +2330,7 @@ class GoodsService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
[
'checked_type' => 'empty',
@ -2477,7 +2477,7 @@ class GoodsService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
[
'checked_type' => 'empty',
@ -2581,7 +2581,7 @@ class GoodsService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
[
'checked_type' => 'empty',
@ -2766,12 +2766,12 @@ class GoodsService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '删除数据id有误',
'error_msg' => MyLang('data_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'admin',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -236,7 +236,7 @@ class GoodsSpecService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '未指定操作字段',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',

View File

@ -196,7 +196,7 @@ class IntegralService
[
'checked_type' => 'empty',
'key_name' => 'order_id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
]
];
$ret = ParamsChecked($params, $p);
@ -304,7 +304,7 @@ class IntegralService
[
'checked_type' => 'empty',
'key_name' => 'order_id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'empty',

View File

@ -237,7 +237,7 @@ class LinkService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '未指定操作字段',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',

View File

@ -160,7 +160,7 @@ class MessageService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -264,7 +264,7 @@ class MessageService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
]
];
$ret = ParamsChecked($params, $p);

View File

@ -605,7 +605,7 @@ class NavigationService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '未指定操作字段',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',

View File

@ -91,7 +91,7 @@ class OrderAftersaleService
[
'checked_type' => 'empty',
'key_name' => 'order_id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'empty',
@ -126,7 +126,7 @@ class OrderAftersaleService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -299,7 +299,7 @@ class OrderAftersaleService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -599,7 +599,7 @@ class OrderAftersaleService
'checked_type' => 'empty',
'is_checked' => 2,
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -53,7 +53,7 @@ class OrderService
[
'checked_type' => 'empty',
'key_name' => 'ids',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -419,7 +419,7 @@ class OrderService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -812,7 +812,7 @@ class OrderService
// 订单数据不存在、并且日志订单非支付状态则报错
if(empty($order_list) && $pay_log_data['status'] != 1)
{
return DataReturn('订单信息有误', -1);
return DataReturn(MyLang('order_info_incorrect_tips'), -1);
}
return DataReturn(MyLang('get_success'), 0, [
@ -1827,12 +1827,12 @@ class OrderService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'user_id',
'error_msg' => '用户id有误',
'error_msg' => MyLang('user_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -1936,12 +1936,12 @@ class OrderService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'user_id',
'error_msg' => '用户id有误',
'error_msg' => MyLang('user_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -2069,12 +2069,12 @@ class OrderService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'user_id',
'error_msg' => '用户id有误',
'error_msg' => MyLang('user_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -2177,12 +2177,12 @@ class OrderService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'user_id',
'error_msg' => '用户id有误',
'error_msg' => MyLang('user_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -2262,17 +2262,17 @@ class OrderService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'user_id',
'error_msg' => '用户id有误',
'error_msg' => MyLang('user_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'user_type',
'error_msg' => '用户类型有误',
'error_msg' => MyLang('user_type_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -2296,7 +2296,7 @@ class OrderService
}
if(empty($delete_field))
{
return DataReturn('用户类型有误['.$user_type.']', -2);
return DataReturn(MyLang('user_type_error_tips').'['.$user_type.']', -2);
}
// 获取订单信息
@ -2394,7 +2394,7 @@ class OrderService
{
if(empty($params['user']))
{
return DataReturn('用户信息有误', 0, $result);
return DataReturn(MyLang('user_info_incorrect_tips'), 0, $result);
}
// 增加用户条件
@ -2478,7 +2478,7 @@ class OrderService
[
'checked_type' => 'empty',
'key_name' => 'order_id',
'error_msg' => '订单id有误',
'error_msg' => MyLang('order_id_error_tips'),
],
[
'checked_type' => 'in',
@ -2551,7 +2551,7 @@ class OrderService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -307,7 +307,7 @@ class PackageInstallService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
[
'checked_type' => 'empty',

View File

@ -473,7 +473,7 @@ class PaymentService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '未指定操作字段',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',
@ -542,7 +542,7 @@ class PaymentService
$type = ResourcesService::ZipExtTypeList();
if(!in_array($_FILES['file']['type'], $type))
{
return DataReturn('文件格式有误请上传zip压缩包', -2);
return DataReturn(MyLang('form_upload_zip_message'), -2);
}
// 上传处理
@ -576,7 +576,7 @@ class PaymentService
$resource = $zip->open($package_file);
if($resource != true)
{
return DataReturn('压缩包打开失败['.$resource.']', -11);
return DataReturn(MyLang('form_open_zip_message').'['.$resource.']', -11);
}
$success = 0;

View File

@ -1034,7 +1034,7 @@ php;
$type = ResourcesService::ZipExtTypeList();
if(!in_array($_FILES['file']['type'], $type))
{
return DataReturn('文件格式有误请上传zip压缩包', -2);
return DataReturn(MyLang('form_upload_zip_message'), -2);
}
// 上传处理
@ -1110,7 +1110,7 @@ php;
$resource = $zip->open($package_file);
if($resource != true)
{
return DataReturn('压缩包打开失败['.$resource.']', -11);
return DataReturn(MyLang('form_open_zip_message').'['.$resource.']', -11);
}
// 文件第一个目录为当前插件名称
@ -1301,7 +1301,7 @@ php;
// 是否开启开发者模式
if(MyConfig('shopxo.is_develop') !== true)
{
return DataReturn('请先开启开发者模式', -1);
return DataReturn(MyLang('not_open_developer_mode_tips'), -1);
}
// 获取应用标记
@ -1329,7 +1329,7 @@ php;
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir.DS.'_controller_'.DS.$plugins) != true)
{
return DataReturn('项目包复制失败[控制器]', -2);
return DataReturn(MyLang('project_copy_fail_tips').'[控制器]', -2);
}
}
@ -1339,7 +1339,7 @@ php;
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir.DS.'_view_'.DS.$plugins) != true)
{
return DataReturn('项目包复制失败[视图]', -2);
return DataReturn(MyLang('project_copy_fail_tips').'[视图]', -2);
}
}
@ -1349,7 +1349,7 @@ php;
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir.DS.'_css_'.DS.$plugins) != true)
{
return DataReturn('项目包复制失败[css]', -2);
return DataReturn(MyLang('project_copy_fail_tips').'[css]', -2);
}
}
@ -1359,7 +1359,7 @@ php;
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir.DS.'_js_'.DS.$plugins) != true)
{
return DataReturn('项目包复制失败[js]', -2);
return DataReturn(MyLang('project_copy_fail_tips').'[js]', -2);
}
}
@ -1369,7 +1369,7 @@ php;
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir.DS.'_images_'.DS.$plugins) != true)
{
return DataReturn('项目包复制失败[images]', -2);
return DataReturn(MyLang('project_copy_fail_tips').'[images]', -2);
}
}
@ -1379,7 +1379,7 @@ php;
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir.DS.'_uploadimages_'.DS.'plugins_'.$plugins) != true)
{
return DataReturn('项目包复制失败[uploadimages]', -2);
return DataReturn(MyLang('project_copy_fail_tips').'[uploadimages]', -2);
}
}
@ -1389,7 +1389,7 @@ php;
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir.DS.'_uploadvideo_'.DS.'plugins_'.$plugins) != true)
{
return DataReturn('项目包复制失败[uploadvideo]', -2);
return DataReturn(MyLang('project_copy_fail_tips').'[uploadvideo]', -2);
}
}
@ -1399,7 +1399,7 @@ php;
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir.DS.'_uploadfile_'.DS.'plugins_'.$plugins) != true)
{
return DataReturn('项目包复制失败[uploadfile]', -2);
return DataReturn(MyLang('project_copy_fail_tips').'[uploadfile]', -2);
}
}
@ -1428,7 +1428,7 @@ php;
$zip = new \base\ZipFolder();
if(!$zip->zip($new_dir.'.zip', $new_dir))
{
return DataReturn('压缩包生成失败', -100);
return DataReturn(MyLang('form_generate_zip_message'), -100);
}
// 生成成功删除目录
@ -1443,7 +1443,7 @@ php;
// 插件事件回调
PluginsService::PluginsEventCall($plugins, 'Download', $params);
} else {
return DataReturn('下载失败', -100);
return DataReturn(MyLang('download_fail'), -100);
}
}

View File

@ -165,7 +165,7 @@ class QuickNavService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '操作字段有误',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',

View File

@ -200,12 +200,12 @@ class RegionService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '删除数据id有误',
'error_msg' => MyLang('data_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'admin',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -55,7 +55,7 @@ class SafetyService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -171,11 +171,11 @@ class SafetyService
$verify = new \base\Verify($verify_params);
if(!$verify->CheckExpire())
{
return DataReturn('验证码已过期', -11);
return DataReturn(MyLang('verify_code_expire_tips'), -11);
}
if(!$verify->CheckCorrect($params['verify']))
{
return DataReturn('验证码错误', -12);
return DataReturn(MyLang('verify_code_error_tips'), -12);
}
return DataReturn(MyLang('operate_success'), 0, $verify);
}
@ -202,7 +202,7 @@ class SafetyService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -296,12 +296,12 @@ class SafetyService
[
'checked_type' => 'empty',
'key_name' => 'verify',
'error_msg' => '验证码不能为空',
'error_msg' => MyLang('verify_code_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -332,7 +332,7 @@ class SafetyService
// 是否已过期
if(!$obj->CheckExpire())
{
return DataReturn('验证码已过期', -10);
return DataReturn(MyLang('verify_code_expire_tips'), -10);
}
// 是否正确
if($obj->CheckCorrect($params['verify']))
@ -345,7 +345,7 @@ class SafetyService
return DataReturn('正确', 0);
}
return DataReturn('验证码错误', -11);
return DataReturn(MyLang('verify_code_error_tips'), -11);
}
/**
@ -373,12 +373,12 @@ class SafetyService
[
'checked_type' => 'empty',
'key_name' => 'verify',
'error_msg' => '验证码不能为空',
'error_msg' => MyLang('verify_code_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -411,12 +411,12 @@ class SafetyService
// 是否已过期
if(!$obj->CheckExpire())
{
return DataReturn('验证码已过期', -10);
return DataReturn(MyLang('verify_code_expire_tips'), -10);
}
// 是否正确
if(!$obj->CheckCorrect($params['verify']))
{
return DataReturn('验证码错误', -11);
return DataReturn(MyLang('verify_code_error_tips'), -11);
}
// 更新帐号
@ -472,7 +472,7 @@ class SafetyService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -121,12 +121,12 @@ class ScreeningPriceService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '删除数据id有误',
'error_msg' => MyLang('data_id_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'admin',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -164,7 +164,7 @@ class SlideService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '未指定操作字段',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',

View File

@ -146,7 +146,7 @@ class SystemUpgradeService
$resource = $zip->open($package_file);
if($resource != true)
{
return DataReturn('压缩包打开失败['.$resource.']', -11);
return DataReturn(MyLang('form_open_zip_message').'['.$resource.']', -11);
}
// 需要处理的文件
@ -198,7 +198,7 @@ class SystemUpgradeService
$resource = $zip->open($package_file);
if($resource != true)
{
return DataReturn('压缩包打开失败['.$resource.']', -11);
return DataReturn(MyLang('form_open_zip_message').'['.$resource.']', -11);
}
for($i=0; $i<$zip->numFiles; $i++)
{

View File

@ -120,7 +120,7 @@ class ThemeService
$type = ResourcesService::ZipExtTypeList();
if(!in_array($_FILES['theme']['type'], $type))
{
return DataReturn('文件格式有误请上传zip压缩包', -2);
return DataReturn(MyLang('form_upload_zip_message'), -2);
}
// 上传处理
@ -160,7 +160,7 @@ class ThemeService
$resource = $zip->open($package_file);
if($resource != true)
{
return DataReturn('压缩包打开失败['.$resource.']', -11);
return DataReturn(MyLang('form_open_zip_message').'['.$resource.']', -11);
}
$success = 0;
for($i=0; $i<$zip->numFiles; $i++)
@ -320,7 +320,7 @@ class ThemeService
// 是否开启开发者模式
if(MyConfig('shopxo.is_develop') !== true)
{
return DataReturn('请先开启开发者模式', -1);
return DataReturn(MyLang('not_open_developer_mode_tips'), -1);
}
// 防止路径回溯
@ -348,7 +348,7 @@ class ThemeService
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir.DS.'_html_') != true)
{
return DataReturn('项目包复制失败[视图]', -2);
return DataReturn(MyLang('project_copy_fail_tips').'[视图]', -2);
}
}
@ -358,7 +358,7 @@ class ThemeService
{
if(\base\FileUtil::CopyDir($old_dir, $new_dir.DS.'_static_') != true)
{
return DataReturn('项目包复制失败[静态文件]', -2);
return DataReturn(MyLang('project_copy_fail_tips').'[静态文件]', -2);
}
}
@ -387,7 +387,7 @@ class ThemeService
$zip = new \base\ZipFolder();
if(!$zip->zip($new_dir.'.zip', $new_dir))
{
return DataReturn('压缩包生成失败', -100);
return DataReturn(MyLang('form_generate_zip_message'), -100);
}
// 生成成功删除目录
@ -398,7 +398,7 @@ class ThemeService
{
@unlink($new_dir.'.zip');
} else {
return DataReturn('下载失败', -100);
return DataReturn(MyLang('download_fail'), -100);
}
}

View File

@ -157,7 +157,7 @@ class UserAddressService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -231,7 +231,7 @@ class UserAddressService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -269,7 +269,7 @@ class UserAddressService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -471,7 +471,7 @@ class UserAddressService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -503,7 +503,7 @@ class UserAddressService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -554,7 +554,7 @@ class UserAddressService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);

View File

@ -667,7 +667,7 @@ class UserService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -826,12 +826,12 @@ class UserService
'checked_type' => 'in',
'key_name' => 'type',
'checked_data' => array_column(MyLang('common_login_type_list'), 'value'),
'error_msg' => '登录类型有误',
'error_msg' => MyLang('login_type_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'accounts',
'error_msg' => '登录账号不能为空',
'error_msg' => MyLang('accounts_empty_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -843,7 +843,7 @@ class UserService
// 是否开启用户注册
if(!in_array($params['type'], MyC('home_user_login_type', [], true)))
{
return DataReturn('暂时关闭登录', -1);
return DataReturn(MyLang('login_close_tips'), -1);
}
// 账户校验
@ -906,7 +906,7 @@ class UserService
// 未知的字段
default :
return DataReturn('验证类型有误', -1);
return DataReturn(MyLang('verify_type_error_tips'), -1);
}
// 验证码校验
@ -916,12 +916,12 @@ class UserService
// 是否已过期
if(!$obj->CheckExpire())
{
return DataReturn('验证码已过期', -10);
return DataReturn(MyLang('verify_code_expire_tips'), -10);
}
// 是否正确
if(!$obj->CheckCorrect($params['verify']))
{
return DataReturn('验证码错误', -11);
return DataReturn(MyLang('verify_code_error_tips'), -11);
}
}
}
@ -930,7 +930,7 @@ class UserService
$user = self::UserInfo($ac['data'], $params['accounts']);
if(empty($user))
{
return DataReturn('帐号不存在', -3);
return DataReturn(MyLang('accounts_error_tips'), -3);
}
// 密码校验
@ -940,7 +940,7 @@ class UserService
$pwd = LoginPwdEncryption($params['pwd'], $user['salt']);
if($pwd != $user['pwd'])
{
return DataReturn('密码错误', -4);
return DataReturn(MyLang('password_error_tips'), -4);
}
}
@ -1082,24 +1082,24 @@ class UserService
[
'checked_type' => 'empty',
'key_name' => 'accounts',
'error_msg' => '账号不能为空',
'error_msg' => MyLang('accounts_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'pwd',
'error_msg' => '密码不能为空',
'error_msg' => MyLang('password_empty_tips'),
],
[
'checked_type' => 'in',
'key_name' => 'type',
'checked_data' => array_column(MyLang('common_user_reg_type_list'), 'value'),
'error_msg' => '注册类型有误',
'error_msg' => MyLang('register_type_error_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'verify',
'is_checked' => 2,
'error_msg' => '验证码不能为空',
'error_msg' => MyLang('verify_code_empty_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -1123,7 +1123,7 @@ class UserService
// 是否开启用户注册
if(!in_array($params['type'], MyC('home_user_reg_type', [], true)))
{
return DataReturn('暂时关闭用户注册', -1);
return DataReturn(MyLang('register_close_tips'), -1);
}
// 账户校验
@ -1187,12 +1187,12 @@ class UserService
// 是否已过期
if(!$obj->CheckExpire())
{
return DataReturn('验证码已过期', -10);
return DataReturn(MyLang('verify_code_expire_tips'), -10);
}
// 是否正确
if(!$obj->CheckCorrect($params['verify']))
{
return DataReturn('验证码错误', -11);
return DataReturn(MyLang('verify_code_error_tips'), -11);
}
}
@ -1222,13 +1222,13 @@ class UserService
} else {
$result = $user_ret['data'];
}
return DataReturn('注册成功', 0, $result);
return DataReturn(MyLang('register_success'), 0, $result);
}
return DataReturn('注册成功,请到登录页面登录帐号');
} else {
return $user_ret;
}
return DataReturn('注册失败', -100);
return DataReturn(MyLang('register_fail'), -100);
}
/**
@ -1248,7 +1248,7 @@ class UserService
// 手机号码格式
if(!CheckMobile($params['accounts']))
{
return DataReturn('手机号码格式错误', -2);
return DataReturn(MyLang('mobile_format_error_tips'), -2);
}
// 手机号码是否已存在
@ -1263,7 +1263,7 @@ class UserService
// 电子邮箱格式
if(!CheckEmail($params['accounts']))
{
return DataReturn('电子邮箱格式错误', -2);
return DataReturn(MyLang('email_format_error_tips'), -2);
}
// 电子邮箱是否已存在
@ -1318,16 +1318,16 @@ class UserService
{
if(empty($params['verify']))
{
return DataReturn('图片验证码为空', -10);
return DataReturn(MyLang('verify_images_empty_tips'), -10);
}
$verify = new \base\Verify($verify_params);
if(!$verify->CheckExpire())
{
return DataReturn('验证码已过期', -11);
return DataReturn(MyLang('verify_code_expire_tips'), -11);
}
if(!$verify->CheckCorrect($params['verify']))
{
return DataReturn('验证码错误', -12);
return DataReturn(MyLang('verify_code_error_tips'), -12);
}
return DataReturn(MyLang('operate_success'), 0, $verify);
}
@ -1352,13 +1352,13 @@ class UserService
// 手机号码格式
if(!CheckMobile($params['accounts']))
{
return DataReturn('手机号码格式错误', -2);
return DataReturn(MyLang('mobile_format_error_tips'), -2);
}
// 手机号码是否不存在
if(!self::IsExistAccounts($params['accounts'], 'mobile'))
{
return DataReturn('手机号码不存在、请先注册!', -3);
return DataReturn(MyLang('mobile_no_exist_error_tips'), -3);
}
$field = 'mobile';
break;
@ -1368,13 +1368,13 @@ class UserService
// 电子邮箱格式
if(!CheckEmail($params['accounts']))
{
return DataReturn('电子邮箱格式错误', -2);
return DataReturn(MyLang('email_format_error_tips'), -2);
}
// 电子邮箱是否不存在
if(!self::IsExistAccounts($params['accounts'], 'email'))
{
return DataReturn('电子邮箱不存在、请先注册!', -3);
return DataReturn(MyLang('email_no_exist_error_tips'), -3);
}
$field = 'email';
break;
@ -1386,7 +1386,7 @@ class UserService
// 帐号是否不存在
if(!self::IsExistAccounts($params['accounts'], 'username|mobile|email'))
{
return DataReturn('登录帐号不存在', -3);
return DataReturn(MyLang('accounts_error_tips'), -3);
}
break;
}
@ -1408,13 +1408,13 @@ class UserService
[
'checked_type' => 'empty',
'key_name' => 'accounts',
'error_msg' => '账号不能为空',
'error_msg' => MyLang('accounts_empty_tips'),
],
[
'checked_type' => 'in',
'key_name' => 'type',
'checked_data' => array_column(MyLang('common_login_type_list'), 'value'),
'error_msg' => '登录类型有误',
'error_msg' => MyLang('login_type_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -1426,7 +1426,7 @@ class UserService
// 是否开启用户登录
if(!in_array($params['type'], MyC('home_user_login_type', [], true)))
{
return DataReturn('暂时关闭登录', -1);
return DataReturn(MyLang('login_close_tips'), -1);
}
// 验证码基础参数
@ -1477,7 +1477,7 @@ class UserService
// 默认
default :
return DataReturn('该类型不支持验证码发送', -2);
return DataReturn(MyLang('verify_code_not_support_send_error_tips'), -2);
}
// 状态
@ -1510,13 +1510,13 @@ class UserService
[
'checked_type' => 'empty',
'key_name' => 'accounts',
'error_msg' => '账号不能为空',
'error_msg' => MyLang('accounts_empty_tips'),
],
[
'checked_type' => 'in',
'key_name' => 'type',
'checked_data' => array_column(MyLang('common_user_reg_type_list'), 'value'),
'error_msg' => '注册类型有误',
'error_msg' => MyLang('register_type_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -1528,7 +1528,7 @@ class UserService
// 是否开启用户注册
if(!in_array($params['type'], MyC('home_user_reg_type', [], true)))
{
return DataReturn('暂时关闭用户注册', -1);
return DataReturn(MyLang('register_close_tips'), -1);
}
// 验证码基础参数
@ -1579,7 +1579,7 @@ class UserService
// 默认
default :
return DataReturn('该类型不支持验证码发送', -2);
return DataReturn(MyLang('verify_code_not_support_send_error_tips'), -2);
}
// 状态
@ -1725,17 +1725,17 @@ class UserService
[
'checked_type' => 'empty',
'key_name' => 'accounts',
'error_msg' => '账号不能为空',
'error_msg' => MyLang('accounts_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'pwd',
'error_msg' => '密码不能为空',
'error_msg' => MyLang('password_empty_tips'),
],
[
'checked_type' => 'empty',
'key_name' => 'verify',
'error_msg' => '验证码不能为空',
'error_msg' => MyLang('verify_code_empty_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -1777,12 +1777,12 @@ class UserService
// 是否已过期
if(!$obj->CheckExpire())
{
return DataReturn('验证码已过期', -10);
return DataReturn(MyLang('verify_code_expire_tips'), -10);
}
// 是否正确
if(!$obj->CheckCorrect($params['verify']))
{
return DataReturn('验证码错误', -11);
return DataReturn(MyLang('verify_code_error_tips'), -11);
}
// 获取用户信息
@ -1839,7 +1839,7 @@ class UserService
[
'checked_type' => 'empty',
'key_name' => 'user',
'error_msg' => '用户信息有误',
'error_msg' => MyLang('user_info_incorrect_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -2477,7 +2477,7 @@ class UserService
[
'checked_type' => 'empty',
'key_name' => 'verify',
'error_msg' => '验证码不能为空',
'error_msg' => MyLang('verify_code_empty_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -2501,7 +2501,7 @@ class UserService
// 手机号码格式
if(!CheckMobile($params['mobile']))
{
return DataReturn('手机号码格式错误', -2);
return DataReturn(MyLang('mobile_format_error_tips'), -2);
}
// 验证码校验
@ -2514,12 +2514,12 @@ class UserService
// 是否已过期
if(!$obj->CheckExpire())
{
return DataReturn('验证码已过期', -10);
return DataReturn(MyLang('verify_code_expire_tips'), -10);
}
// 是否正确
if(!$obj->CheckCorrect($params['verify']))
{
return DataReturn('验证码错误', -11);
return DataReturn(MyLang('verify_code_error_tips'), -11);
}
// 用户更新数据

View File

@ -218,7 +218,7 @@ class WarehouseGoodsService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '操作字段有误',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',
@ -376,7 +376,7 @@ class WarehouseGoodsService
[
'checked_type' => 'empty',
'key_name' => 'goods_id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -428,7 +428,7 @@ class WarehouseGoodsService
[
'checked_type' => 'empty',
'key_name' => 'goods_id',
'error_msg' => '商品id有误',
'error_msg' => MyLang('goods_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -480,7 +480,7 @@ class WarehouseGoodsService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '数据id有误',
'error_msg' => MyLang('data_id_error_tips'),
],
];
$ret = ParamsChecked($params, $p);
@ -598,7 +598,7 @@ class WarehouseGoodsService
[
'checked_type' => 'empty',
'key_name' => 'id',
'error_msg' => '数据id有误',
'error_msg' => MyLang('data_id_error_tips'),
],
[
'checked_type' => 'empty',

View File

@ -334,7 +334,7 @@ class WarehouseService
[
'checked_type' => 'empty',
'key_name' => 'field',
'error_msg' => '操作字段有误',
'error_msg' => MyLang('operate_field_error_tips'),
],
[
'checked_type' => 'in',