...
 
Commits (7)
    https://gitcode.net/phpchina/shopxo/-/commit/2b61fa20893f4f61999107f48b88211d16dbe5d6 sql 2023-04-07T10:43:59+08:00 gongfuxiang fuxiang.gong@qq.com https://gitcode.net/phpchina/shopxo/-/commit/655de43ebc3420fc0900948dfaa093f16cc87c31 log 2023-04-07T11:38:46+08:00 gongfuxiang fuxiang.gong@qq.com https://gitcode.net/phpchina/shopxo/-/commit/d51eff5ab59762ad046589b2b43863b206556bcc 商品多规格下单仅单买优化 2023-04-07T20:15:32+08:00 gongfuxiang fuxiang.gong@qq.com https://gitcode.net/phpchina/shopxo/-/commit/043e84a0b81b119592b3b37fcec986471295d62d PC端右侧顶部导航去掉缓存 2023-04-07T20:41:30+08:00 gongfuxiang fuxiang.gong@qq.com https://gitcode.net/phpchina/shopxo/-/commit/efaf46019aad4c135890294d8597ac3fb8e030ad 细节优化 2023-04-08T19:20:54+08:00 gongfuxiang fuxiang.gong@qq.com https://gitcode.net/phpchina/shopxo/-/commit/9edf628bcd307edda3690b31736a29a89d746e5c 细节优化 2023-04-08T22:12:21+08:00 gongfuxiang fuxiang.gong@qq.com https://gitcode.net/phpchina/shopxo/-/commit/696fad39a8ff2706a84df191f5746464d9a9e2b6 去除多余的语言 2023-04-08T22:27:23+08:00 gongfuxiang fuxiang.gong@qq.com
...@@ -146,10 +146,7 @@ class Common extends BaseController ...@@ -146,10 +146,7 @@ class Common extends BaseController
if(empty($this->user)) if(empty($this->user))
{ {
exit(json_encode(DataReturn(MyLang('login_failure_tips'), -400))); exit(json_encode(DataReturn(MyLang('login_failure_tips'), -400)));
} else { }
// token验证
$this->TokenCheck();
}
} }
/** /**
...@@ -217,21 +214,6 @@ class Common extends BaseController ...@@ -217,21 +214,6 @@ class Common extends BaseController
$this->page_size = 10; $this->page_size = 10;
} }
/**
* token验证
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-04-18T16:20:58+0800
*/
private function TokenCheck()
{
if(!empty($this->user) && !empty($this->data_request['token']) && $this->data_request['token'] != ApiService::CreatedUserToken($this->user['id']))
{
exit(json_encode(DataReturn(MyLang('token_error_tips'), -1000)));
}
}
/** /**
* 空方法响应 * 空方法响应
* @author Devil * @author Devil
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'token非法',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => '文章不存在或已删除', 'article_no_data_tips' => '文章不存在或已删除',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'Illegales Token',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => 'Artikel existiert nicht oder wurde gelöscht', 'article_no_data_tips' => 'Artikel existiert nicht oder wurde gelöscht',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'Illegal token',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => 'Article does not exist or has been deleted', 'article_no_data_tips' => 'Article does not exist or has been deleted',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'Token illégal',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => 'Article inexistant ou supprimé', 'article_no_data_tips' => 'Article inexistant ou supprimé',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'token illegale',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => 'Larticolo non esiste o è stato soppresso', 'article_no_data_tips' => 'Larticolo non esiste o è stato soppresso',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'トークン不正',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => '記事が存在しないか削除されました', 'article_no_data_tips' => '記事が存在しないか削除されました',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'token 불법',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => '문서가 없거나 삭제됨', 'article_no_data_tips' => '문서가 없거나 삭제됨',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'Illegale token',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => 'Artikel bestaat niet of is geschrapt', 'article_no_data_tips' => 'Artikel bestaat niet of is geschrapt',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'Токен незаконный',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => 'Статья не существует или удалена.', 'article_no_data_tips' => 'Статья не существует или удалена.',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'Token ilegal',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => 'El artículo no existe o ha sido eliminado', 'article_no_data_tips' => 'El artículo no existe o ha sido eliminado',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'Olaglig token',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => 'Artikel finns inte eller har utgått', 'article_no_data_tips' => 'Artikel finns inte eller har utgått',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'โทเคนผิดกฎหมาย',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => 'บทความไม่มีอยู่หรือถูกลบไปแล้ว', 'article_no_data_tips' => 'บทความไม่มีอยู่หรือถูกลบไปแล้ว',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'Token bất hợp pháp',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => 'Bài viết không tồn tại hoặc đã bị xóa', 'article_no_data_tips' => 'Bài viết không tồn tại hoặc đã bị xóa',
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
* @datetime 2016-12-01T21:51:08+0800 * @datetime 2016-12-01T21:51:08+0800
*/ */
return [ return [
// 基础公共
'token_error_tips' => 'token非法',
// 文章 // 文章
'article' => [ 'article' => [
'article_no_data_tips' => '文章不存在或已删除', 'article_no_data_tips' => '文章不存在或已删除',
......
...@@ -64,7 +64,7 @@ class ApiService ...@@ -64,7 +64,7 @@ class ApiService
} }
} }
sort($data); sort($data);
return md5(md5(implode('', $data)).md5($user_id)); return md5(md5(md5(implode('', $data)).md5($user_id).time().GetNumberCode()));
} }
} }
?> ?>
\ No newline at end of file
...@@ -507,10 +507,10 @@ class BuyService ...@@ -507,10 +507,10 @@ class BuyService
} }
// 是否需要校验商品类型、is_buy、1校验、默认0不校验 // 是否需要校验商品类型、is_buy、1校验、默认0不校验
// 商品小于等于1不校验
$is_check_goods_site_type = (isset($params['is_buy']) && $params['is_buy'] == 1) ? 1 : 0; $is_check_goods_site_type = (isset($params['is_buy']) && $params['is_buy'] == 1) ? 1 : 0;
// 商品小于等于1不校验
if($is_check_goods_site_type == 1 && if($is_check_goods_site_type == 1 &&
count($params['goods']) <= 1) count(array_unique(array_column($params['goods'], 'goods_id'))) <= 1)
{ {
$is_check_goods_site_type = 0; $is_check_goods_site_type = 0;
} }
......
...@@ -604,101 +604,92 @@ class NavigationService ...@@ -604,101 +604,92 @@ class NavigationService
*/ */
public static function HomeHavTopRight($params = []) public static function HomeHavTopRight($params = [])
{ {
// 从缓存获取 // 列表
$key = SystemService::CacheKey('shopxo.cache_header_navigation_top_right_key'); $lang = MyLang('common_service.navigation.header_top_nav_right');
$data = MyCache($key); $data = [
if($data === null || MyEnv('app_debug')) [
{ 'name' => $lang['user_center'],
// 列表 'type' => 'center',
$lang = MyLang('common_service.navigation.header_top_nav_right'); 'is_login' => 1,
$data = [ 'badge' => null,
[ 'icon' => 'am-icon-user',
'name' => $lang['user_center'], 'url' => MyUrl('index/user/index'),
'type' => 'center', 'items' => [],
'is_login' => 1, ],
'badge' => null, [
'icon' => 'am-icon-user', 'name' => $lang['user_shop'],
'url' => MyUrl('index/user/index'), 'type' => 'myself',
'items' => [], 'is_login' => 1,
], 'badge' => null,
[ 'icon' => 'am-icon-cube',
'name' => $lang['user_shop'], 'url' => '',
'type' => 'myself', 'items' => [
'is_login' => 1, [
'badge' => null, 'name' => $lang['user_order'],
'icon' => 'am-icon-cube', 'url' => MyUrl('index/order/index'),
'url' => '',
'items' => [
[
'name' => $lang['user_order'],
'url' => MyUrl('index/order/index'),
],
], ],
], ],
[ ],
'name' => $lang['favor'], [
'type' => 'favor', 'name' => $lang['favor'],
'is_login' => 1, 'type' => 'favor',
'badge' => null, 'is_login' => 1,
'icon' => 'am-icon-heart', 'badge' => null,
'url' => '', 'icon' => 'am-icon-heart',
'items' => [ 'url' => '',
[ 'items' => [
'name' => $lang['goods_favor'], [
'url' => MyUrl('index/usergoodsfavor/index'), 'name' => $lang['goods_favor'],
], 'url' => MyUrl('index/usergoodsfavor/index'),
], ],
], ],
[ ],
'name' => $lang['cart'], [
'type' => 'cart', 'name' => $lang['cart'],
'is_login' => 1, 'type' => 'cart',
'badge' => -1, 'is_login' => 1,
'icon' => 'am-icon-shopping-cart', 'badge' => -1,
'url' => MyUrl('index/cart/index'), 'icon' => 'am-icon-shopping-cart',
'items' => [], 'url' => MyUrl('index/cart/index'),
], 'items' => [],
[ ],
'name' => $lang['message'], [
'type' => 'message', 'name' => $lang['message'],
'is_login' => 1, 'type' => 'message',
'badge' => 0, 'is_login' => 1,
'icon' => 'am-icon-bell', 'badge' => 0,
'url' => MyUrl('index/message/index'), 'icon' => 'am-icon-bell',
'items' => [], 'url' => MyUrl('index/message/index'),
], 'items' => [],
]; ],
];
// 追加多语言 // 追加多语言
if(MyC('home_use_multilingual_status') == 1) if(MyC('home_use_multilingual_status') == 1)
{
$multilingual_data = MultilingualService::MultilingualData();
if(!empty($multilingual_data) && !empty($multilingual_data['data']) && !empty($multilingual_data['default']))
{ {
$multilingual_data = MultilingualService::MultilingualData(); $data[] = [
if(!empty($multilingual_data) && !empty($multilingual_data['data']) && !empty($multilingual_data['default'])) 'name' => MyLang('lang_title').'['.$multilingual_data['default']['name'].']',
{ 'is_login' => 0,
$data[] = [ 'badge' => null,
'name' => MyLang('lang_title').'['.$multilingual_data['default']['name'].']', 'icon' => 'am-icon-language',
'is_login' => 0, 'url' => '',
'badge' => null, 'items' => $multilingual_data['data'],
'icon' => 'am-icon-language', ];
'url' => '',
'items' => $multilingual_data['data'],
];
}
} }
// 顶部小导航右侧钩子
$hook_name = 'plugins_service_header_navigation_top_right_handle';
MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'params' => &$params,
'data' => &$data,
]);
// 存储缓存
MyCache($key, $data, 180);
} }
// 顶部小导航右侧钩子
$hook_name = 'plugins_service_header_navigation_top_right_handle';
MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'params' => &$params,
'data' => &$data,
]);
// 实时数据处理 // 实时数据处理
if(!empty($data) && !empty($params['user'])) if(!empty($data) && !empty($params['user']))
{ {
......
+=========================================================+
ShopXO 2.3.3 Release 20230410 http://shopxo.net
+=========================================================+
1. 立即购买支持多个商品
2. 新增公共加入购物车操作
3. 订单分组多订单场景下仅支持快递模式
4. 起购数和限购数提升到规格层级
5. 新增视频扫码组件
6. 自提订单取货支持扫码操作
7. 自定义页面改为html+css+javascript代码编辑模式
8. 多端多系统标识调支持用户信息共享
9. 用户新增所属平台标记
10. api接口token各端独立,并加强token加密
11. 内置多语言模块(前后端及语言可控)
12. 可视化设计支持鼠标悬停图片放大控制
13. 可视化页面支持自定义协议url
14. 订单、订单售后、消息新增钩子
15. 图标导航支持纯净模式
16. 地区支持唯一编号快捷选择
17. 弹窗支持拖动和双击全屏缩小
18. 后台管理窗口支持多窗口并行
19. 单独售后仅退款自动退数量优化
20. 进销存支持与商城双向同步和运单打印及商品标签打印
21. 新增商品服务插件
22. 新增组合搭配插件
23. 新增批量下单插件
24. 小程序整体结构及功能细节优化
+=========================================================+ +=========================================================+
ShopXO 2.3.2 Release 20221130 http://shopxo.net ShopXO 2.3.2 Release 20221130 http://shopxo.net
+=========================================================+ +=========================================================+
......
此差异已折叠。
...@@ -20,7 +20,7 @@ html input[disabled] { cursor: default !important; color: #b1b1b1 !important; ba ...@@ -20,7 +20,7 @@ html input[disabled] { cursor: default !important; color: #b1b1b1 !important; ba
/* 没数据 */ /* 没数据 */
.table-no { .table-no {
text-align: center; text-align: center;
padding: 20px 0; padding: 50px 0;
background: #FFF; background: #FFF;
color: #b9b7b7; color: #b9b7b7;
} }
......
...@@ -454,6 +454,7 @@ ul.am-dropdown-content > .am-active > a:focus, ...@@ -454,6 +454,7 @@ ul.am-dropdown-content > .am-active > a:focus,
.am-nav > li.am-active > a:hover, .am-nav > li.am-active > a:hover,
.am-nav > li.am-active > a:focus { .am-nav > li.am-active > a:focus {
color: #d2354c !important; color: #d2354c !important;
background-color: transparent;
} }
.am-article-title.blog-title{ .am-article-title.blog-title{
......