diff --git a/application/index/controller/Plugins.php b/application/index/controller/Plugins.php
index 261d04d16..be75cb43b 100644
--- a/application/index/controller/Plugins.php
+++ b/application/index/controller/Plugins.php
@@ -89,7 +89,7 @@ class Plugins extends Common
$plugins = '\app\plugins\\'.$pluginsname.'\\'.ucfirst($pluginscontrol);
if(!class_exists($plugins))
{
- $this->assign('msg', ucfirst($pluginscontrol).' 控制器未定义');
+ $this->assign('msg', ucfirst($pluginscontrol).' 应用控制器未定义');
return $this->fetch('public/error');
}
@@ -97,7 +97,7 @@ class Plugins extends Common
$obj = new $plugins();
if(!method_exists($obj, $pluginsaction))
{
- $this->assign('msg', ucfirst($pluginsaction).' 方法未定义');
+ $this->assign('msg', ucfirst($pluginsaction).' 应用方法未定义');
return $this->fetch('public/error');
}
$ret = $obj->$pluginsaction($params);
diff --git a/application/plugins/ttttttsssstest88/Admin.php b/application/plugins/ttttttsssstest88/Admin.php
new file mode 100644
index 000000000..b580fd43d
--- /dev/null
+++ b/application/plugins/ttttttsssstest88/Admin.php
@@ -0,0 +1,24 @@
+ ['hello', 'world!'],
+ 'msg' => 'hello world! admin',
+ ];
+ return DataReturn('处理成功', 0, $data);
+ }
+}
+?>
\ No newline at end of file
diff --git a/application/plugins/ttttttsssstest88/Hook.php b/application/plugins/ttttttsssstest88/Hook.php
new file mode 100644
index 000000000..2dba99515
--- /dev/null
+++ b/application/plugins/ttttttsssstest88/Hook.php
@@ -0,0 +1,27 @@
+
\ No newline at end of file
diff --git a/application/plugins/ttttttsssstest88/Index.php b/application/plugins/ttttttsssstest88/Index.php
new file mode 100644
index 000000000..a47d3c760
--- /dev/null
+++ b/application/plugins/ttttttsssstest88/Index.php
@@ -0,0 +1,24 @@
+ ['hello', 'world!'],
+ 'msg' => 'hello world! index',
+ ];
+ return DataReturn('处理成功', 0, $data);
+ }
+}
+?>
\ No newline at end of file
diff --git a/application/plugins/ttttttsssstest88/config.json b/application/plugins/ttttttsssstest88/config.json
new file mode 100644
index 000000000..1852f2fcc
--- /dev/null
+++ b/application/plugins/ttttttsssstest88/config.json
@@ -0,0 +1,21 @@
+{
+ "base":{
+ "plugins":"ttttttsssstest88",
+ "name":"测试应用",
+ "logo":"\/static\/upload\/images\/plugins_ttttttsssstest88\/2019\/02\/13\/1550050651917730.png",
+ "author":"Devil",
+ "author_url":"https:\/\/shopxo.net\/",
+ "version":"1.0.0",
+ "desc":"测试应用描述",
+ "apply_terminal":[
+ "pc"
+ ],
+ "apply_version":[
+ "1.3.0"
+ ],
+ "is_home":true
+ },
+ "hook":[
+
+ ]
+}
\ No newline at end of file
diff --git a/application/plugins/usercentertopnotice/config.json b/application/plugins/usercentertopnotice/config.json
index 7adc1ba4f..a11fb3b76 100755
--- a/application/plugins/usercentertopnotice/config.json
+++ b/application/plugins/usercentertopnotice/config.json
@@ -11,6 +11,6 @@
"is_home": false
},
"hook": {
- "plugins_common_top": ["app\\plugins\\usercentertopnotice\\Hook"]
+ "plugins_user_center_top": ["app\\plugins\\usercentertopnotice\\Hook"]
}
}
\ No newline at end of file
diff --git a/application/plugins/view/ttttttsssstest88/admin/index.html b/application/plugins/view/ttttttsssstest88/admin/index.html
new file mode 100644
index 000000000..4a8bf7fb5
--- /dev/null
+++ b/application/plugins/view/ttttttsssstest88/admin/index.html
@@ -0,0 +1,15 @@
+{{include file="public/header" /}}
+
+
+
+
+
后台管理页面
+ {{:print_r($data)}}
+
{{$msg}}
+
+
+
+
+
+{{include file="public/footer" /}}
+
\ No newline at end of file
diff --git a/application/plugins/view/ttttttsssstest88/index/index.html b/application/plugins/view/ttttttsssstest88/index/index.html
new file mode 100644
index 000000000..a2afa05ca
--- /dev/null
+++ b/application/plugins/view/ttttttsssstest88/index/index.html
@@ -0,0 +1,31 @@
+{{include file="public/header" /}}
+
+
+{{include file="public/nav" /}}
+
+
+
+{{include file="public/header_top_nav" /}}
+
+
+{{include file="public/nav_search" /}}
+
+
+{{include file="public/header_nav" /}}
+
+
+{{include file="public/goods_category" /}}
+
+
+
+
+
前端页面
+ {{:print_r($data)}}
+
{{$msg}}
+
+
+
+
+
+{{include file="public/footer" /}}
+
\ No newline at end of file
diff --git a/application/service/PluginsAdminService.php b/application/service/PluginsAdminService.php
index c437a86b6..606aa0392 100644
--- a/application/service/PluginsAdminService.php
+++ b/application/service/PluginsAdminService.php
@@ -150,11 +150,113 @@ class PluginsAdminService
// 数据更新
if(Db::name('Plugins')->where(['id'=>$params['id']])->update(['is_enable'=>intval($params['state']), 'upd_time'=>time()]))
{
+ // 钩子部署
+ $ret = self::PluginsHookDeployment();
+ if($ret['code'] != 0)
+ {
+ return $ret;
+ }
+
return DataReturn('操作成功');
}
return DataReturn('操作失败', -100);
}
+ /**
+ * 应用钩子部署
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2019-02-13
+ * @desc description
+ */
+ private static function PluginsHookDeployment()
+ {
+ // 钩子配置文件
+ $tags_file = APP_PATH.'tags.php';
+ if(!is_writable($tags_file))
+ {
+ return DataReturn('钩子配置文件没有操作权限'.'['.$tags_file.']', -3);
+ }
+
+ // 钩子容器
+ $result = [];
+
+ // 系统自带钩子处理
+ if(file_exists($tags_file))
+ {
+ $tags = require $tags_file;
+ if(!empty($tags) && is_array($tags))
+ {
+ $system_hook_list = [
+ 'app_init',
+ 'app_dispatch',
+ 'app_begin',
+ 'module_init',
+ 'action_begin',
+ 'view_filter',
+ 'app_end',
+ 'log_write',
+ 'log_level',
+ 'response_send',
+ 'response_end'
+ ];
+ foreach($system_hook_list as $system_hook)
+ {
+ if(isset($tags[$system_hook]))
+ {
+ $result[$system_hook] = $tags[$system_hook];
+ }
+ }
+ }
+ }
+
+ // 处理应用钩子
+ $data = Db::name('Plugins')->where(['is_enable'=>1])->column('plugins');
+ if(!empty($data))
+ {
+ foreach($data as $plugins)
+ {
+ if(file_exists(APP_PATH.'plugins'.DS.$plugins.DS.'config.json'))
+ {
+ $config = json_decode(file_get_contents(APP_PATH.'plugins'.DS.$plugins.DS.'config.json'), true);
+ if(!empty($config['hook']) && is_array($config['hook']))
+ {
+ foreach($config['hook'] as $hook_key=>$hook_value)
+ {
+ if(isset($result[$hook_key]))
+ {
+ $result[$hook_key] = array_merge($result[$hook_key], $hook_value);
+ } else {
+ $result[$hook_key] = $hook_value;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // 部署钩子到文件
+ $ret = @file_put_contents($tags_file, "");
+ if($ret === false)
+ {
+ return DataReturn('应用钩子部署失败', -10);
+ }
+
+ return DataReturn('处理成功', 0);
+ }
+
/**
* 删除
* @author Devil
@@ -305,16 +407,16 @@ class PluginsAdminService
return DataReturn($ret, -1);
}
- // 应用唯一标记
- $plugins = trim($params['plugins']);
-
// 权限校验
- $ret = self::PowerCheck($plugins);
+ $ret = self::PowerCheck();
if($ret['code'] != 0)
{
return $ret;
}
+ // 应用唯一标记
+ $plugins = trim($params['plugins']);
+
// 应用不存在则添加
$ret = self::PluginsExistInsert($params, $plugins);
if($ret['code'] != 0)
@@ -642,7 +744,7 @@ php;
$temp_plugins = Db::name('Plugins')->where(['plugins'=>$plugins])->value('plugins');
if(empty($temp_plugins))
{
- if(Db::name('Plugins')->insertGetId(['plugins'=>$plugins, 'add_time'=>time()]) <= 0)
+ if(Db::name('Plugins')->insertGetId(['plugins'=>$plugins, 'is_enable'=>0, 'add_time'=>time()]) <= 0)
{
return DataReturn('应用添加失败', -1);
}
@@ -661,9 +763,8 @@ php;
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-09-29T00:01:49+0800
- * @param [string] $plugins [应用唯一标记]
*/
- private static function PowerCheck($plugins)
+ private static function PowerCheck()
{
// 应用目录
$app_dir = APP_PATH.'plugins';
@@ -701,5 +802,85 @@ php;
}
return DataReturn('权限正常', 0);
}
+
+ /**
+ * 应用上传
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @datetime 2018-12-19T00:53:45+0800
+ * @param [array] $params [输入参数]
+ */
+ public static function PluginsUpload($params = [])
+ {
+ // 文件上传校验
+ $error = FileUploadError('file');
+ if($error !== true)
+ {
+ return DataReturn($error, -1);
+ }
+
+ // 文件格式化校验
+ $type = array('application/zip', 'application/octet-stream');
+ if(!in_array($_FILES['file']['type'], $type))
+ {
+ return DataReturn('文件格式有误,请上传zip压缩包', -2);
+ }
+
+ // 权限校验
+ $ret = self::PowerCheck();
+ if($ret['code'] != 0)
+ {
+ return $ret;
+ }
+
+ // 开始解压文件
+ $resource = zip_open($_FILES['file']['tmp_name']);
+ while(($temp_resource = zip_read($resource)) !== false)
+ {
+ if(zip_entry_open($resource, $temp_resource))
+ {
+ // 当前压缩包中项目名称
+ $file = zip_entry_name($temp_resource);
+
+ // 排除临时文件和临时目录
+ if(strpos($file, '/.') === false && strpos($file, '__') === false)
+ {
+ // 拼接路径
+ if(strpos($file, '_controller') !== false)
+ {
+ $file = ROOT.self::$html_path.$file;
+ } else if(strpos($file, '_static') !== false)
+ {
+ $file = ROOT.self::$static_path.$file;
+ } else {
+ continue;
+ }
+ $file = str_replace(array('_static/', '_html/'), '', $file);
+
+ // 截取文件路径
+ $file_path = substr($file, 0, strrpos($file, '/'));
+
+ // 路径不存在则创建
+ if(!is_dir($file_path))
+ {
+ mkdir($file_path, 0777, true);
+ }
+
+ // 如果不是目录则写入文件
+ if(!is_dir($file))
+ {
+ // 读取这个文件
+ $file_size = zip_entry_filesize($temp_resource);
+ $file_content = zip_entry_read($temp_resource, $file_size);
+ file_put_contents($file, $file_content);
+ }
+ // 关闭目录项
+ zip_entry_close($temp_resource);
+ }
+ }
+ }
+ return DataReturn('操作成功');
+ }
}
?>
\ No newline at end of file
diff --git a/application/tags.php b/application/tags.php
index dd059bde7..fd97c4ffa 100755
--- a/application/tags.php
+++ b/application/tags.php
@@ -10,26 +10,36 @@
// +----------------------------------------------------------------------
// 应用行为扩展定义文件
-return [
- // 应用初始化
- 'app_init' => [],
- // 应用开始
- 'app_begin' => [],
- // 模块初始化
- 'module_init' => [],
- // 操作开始执行
- 'action_begin' => [],
- // 视图内容过滤
- 'view_filter' => [],
- // 日志写入
- 'log_write' => [],
- // 应用结束
- 'app_end' => [],
-
- // 钩子测试
- 'plugins_common_top' => ['app\\plugins\\commontopmaxpicture\\Hook', 'app\\plugins\\commontopnotice\\Hook'],
-
- // 用户中心
- 'plugins_user_center_top' => ['app\\plugins\\usercentertopnotice\\Hook'],
-];
+return array (
+ 'app_init' =>
+ array (
+ ),
+ 'app_begin' =>
+ array (
+ ),
+ 'module_init' =>
+ array (
+ ),
+ 'action_begin' =>
+ array (
+ ),
+ 'view_filter' =>
+ array (
+ ),
+ 'app_end' =>
+ array (
+ ),
+ 'log_write' =>
+ array (
+ ),
+ 'plugins_common_top' =>
+ array (
+ 0 => 'app\\plugins\\commontopmaxpicture\\Hook',
+ 1 => 'app\\plugins\\commontopnotice\\Hook',
+ ),
+ 'plugins_user_center_top' =>
+ array (
+ 0 => 'app\\plugins\\usercentertopnotice\\Hook',
+ ),
+);
?>
\ No newline at end of file
diff --git a/config/shopxo.sql b/config/shopxo.sql
index 8cae1c2e7..cb61dcf43 100644
--- a/config/shopxo.sql
+++ b/config/shopxo.sql
@@ -1,18 +1,20 @@
/*
- Navicat MySQL Data Transfer
+ Navicat Premium Data Transfer
Source Server : 本机
- Source Server Version : 50716
+ Source Server Type : MySQL
+ Source Server Version : 50722
Source Host : localhost
- Source Database : shopxo_ttt
+ Source Database : shopxo_test
- Target Server Version : 50716
+ Target Server Type : MySQL
+ Target Server Version : 50722
File Encoding : utf-8
- Date: 02/12/2019 23:18:29 PM
+ Date: 02/13/2019 18:14:28 PM
*/
-SET NAMES utf8;
+SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
@@ -273,7 +275,7 @@ CREATE TABLE `s_custom_view` (
-- Records of `s_custom_view`
-- ----------------------------
BEGIN;
-INSERT INTO `s_custom_view` VALUES ('1', '测试自定义页面22', '
ShopXO
秀,身材苗条!
在欧美的排版业界中,使用 Arial 的作品意即是「不使用 Helvetica 的作品」,会被认為是设计师对字体的使用没有概念或是太容易妥协,基本上我大致也是同意。
因為 Helvetica 只有 Mac 上才有內建,Windows 用戶除非花錢買,不然是沒有 Helvetica 能用,所以使用 Arial 的設計師往往被看成是不願意對 Typography 花錢,專業素養不到家的人。除了在確保網頁相容性等絕對必需的情況外,幾乎可以說是不應該使用的字體。
在欧美的排版业界中,使用 Arial 的作品意即是「不使用 Helvetica 的作品」,会被认為是设计师对字体的使用没有概念或是太容易妥协,基本上我大致也是同意。
因為 Helvetica 只有 Mac 上才有內建,Windows 用戶除非花錢買,不然是沒有 Helvetica 能用,所以使用 Arial 的設計師往往被看成是不願意對 Typography 花錢,專業素養不到家的人。除了在確保網頁相容性等絕對必需的情況外,幾乎可以說是不應該使用的字體。
在欧美的排版业界中,使用 Arial 的作品意即是「不使用 Helvetica 的作品」,会被认為是设计师对字体的使用没有概念或是太容易妥协,基本上我大致也是同意。
因為 Helvetica 只有 Mac 上才有內建,Windows 用戶除非花錢買,不然是沒有 Helvetica 能用,所以使用 Arial 的設計師往往被看成是不願意對 Typography 花錢,專業素養不到家的人。除了在確保網頁相容性等絕對必需的情況外,幾乎可以說是不應該使用的字體。
在欧美的排版业界中,使用 Arial 的作品意即是「不使用 Helvetica 的作品」,会被认為是设计师对字体的使用没有概念或是太容易妥协,基本上我大致也是同意。
因為 Helvetica 只有 Mac 上才有內建,Windows 用戶除非花錢買,不然是沒有 Helvetica 能用,所以使用 Arial 的設計師往往被看成是不願意對 Typography 花錢,專業素養不到家的人。除了在確保網頁相容性等絕對必需的情況外,幾乎可以說是不應該使用的字體。
在欧美的排版业界中,使用 Arial 的作品意即是「不使用 Helvetica 的作品」,会被认為是设计师对字体的使用没有概念或是太容易妥协,基本上我大致也是同意。
因為 Helvetica 只有 Mac 上才有內建,Windows 用戶除非花錢買,不然是沒有 Helvetica 能用,所以使用 Arial 的設計師往往被看成是不願意對 Typography 花錢,專業素養不到家的人。除了在確保網頁相容性等絕對必需的情況外,幾乎可以說是不應該使用的字體。
', '1', '0', '0', '0', '', '0', '758', '1484965691', '1545320526');
+INSERT INTO `s_custom_view` VALUES ('1', '测试自定义页面22', '
ShopXO
秀,身材苗条!
在欧美的排版业界中,使用 Arial 的作品意即是「不使用 Helvetica 的作品」,会被认為是设计师对字体的使用没有概念或是太容易妥协,基本上我大致也是同意。
因為 Helvetica 只有 Mac 上才有內建,Windows 用戶除非花錢買,不然是沒有 Helvetica 能用,所以使用 Arial 的設計師往往被看成是不願意對 Typography 花錢,專業素養不到家的人。除了在確保網頁相容性等絕對必需的情況外,幾乎可以說是不應該使用的字體。
在欧美的排版业界中,使用 Arial 的作品意即是「不使用 Helvetica 的作品」,会被认為是设计师对字体的使用没有概念或是太容易妥协,基本上我大致也是同意。
因為 Helvetica 只有 Mac 上才有內建,Windows 用戶除非花錢買,不然是沒有 Helvetica 能用,所以使用 Arial 的設計師往往被看成是不願意對 Typography 花錢,專業素養不到家的人。除了在確保網頁相容性等絕對必需的情況外,幾乎可以說是不應該使用的字體。
在欧美的排版业界中,使用 Arial 的作品意即是「不使用 Helvetica 的作品」,会被认為是设计师对字体的使用没有概念或是太容易妥协,基本上我大致也是同意。
因為 Helvetica 只有 Mac 上才有內建,Windows 用戶除非花錢買,不然是沒有 Helvetica 能用,所以使用 Arial 的設計師往往被看成是不願意對 Typography 花錢,專業素養不到家的人。除了在確保網頁相容性等絕對必需的情況外,幾乎可以說是不應該使用的字體。
在欧美的排版业界中,使用 Arial 的作品意即是「不使用 Helvetica 的作品」,会被认為是设计师对字体的使用没有概念或是太容易妥协,基本上我大致也是同意。
因為 Helvetica 只有 Mac 上才有內建,Windows 用戶除非花錢買,不然是沒有 Helvetica 能用,所以使用 Arial 的設計師往往被看成是不願意對 Typography 花錢,專業素養不到家的人。除了在確保網頁相容性等絕對必需的情況外,幾乎可以說是不應該使用的字體。
在欧美的排版业界中,使用 Arial 的作品意即是「不使用 Helvetica 的作品」,会被认為是设计师对字体的使用没有概念或是太容易妥协,基本上我大致也是同意。
因為 Helvetica 只有 Mac 上才有內建,Windows 用戶除非花錢買,不然是沒有 Helvetica 能用,所以使用 Arial 的設計師往往被看成是不願意對 Typography 花錢,專業素養不到家的人。除了在確保網頁相容性等絕對必需的情況外,幾乎可以說是不應該使用的字體。
', '1', '0', '0', '0', '', '0', '759', '1484965691', '1545320526');
COMMIT;
-- ----------------------------
@@ -346,7 +348,7 @@ CREATE TABLE `s_goods` (
-- Records of `s_goods`
-- ----------------------------
BEGIN;
-INSERT INTO `s_goods` VALUES ('1', '2', 'MIUI/小米 小米手机4 小米4代 MI4智能4G手机包邮 黑色 D-LTE(4G)/TD-SCD', '', '', '0', '125', '步', '/static/upload/images/goods/2019/01/14/1547450781101144.jpg', '3200.00', '3200.00', '3200.00', '2100.00', '2100.00', '2100.00', '10', '1', '0', '1', '1', '1', '


', '2', '0', '6', '', '/static/upload/images/goods/2019/01/14/1547450781101144.jpg', '0', '1547450921', '1549959519'), ('2', '3', '苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G', '', 'iPhone 6 Plus', '0', '1711', '步', '/static/upload/images/goods/2019/01/14/1547451274847894.jpg', '6000.00-7600.00', '6000.00', '7600.00', '4500.00-6800.00', '4500.00', '6800.00', '30', '1', '0', '1', '1', '1', '


', '2', '0', '8', '/static/upload/video/goods/2019/01/14/1547458876723311.mp4', '/static/upload/images/goods/2019/01/14/1547451274847894.jpg', '0', '1547451624', '1547458880'), ('3', '0', 'Samsung/三星 SM-G8508S GALAXY Alpha四核智能手机 新品 闪耀白', '', '', '0', '235', '步', '/static/upload/images/goods/2019/01/14/1547451909951171.jpg', '6866.00', '6866.00', '6866.00', '3888.00', '3888.00', '3888.00', '20', '1', '0', '1', '1', '1', '



', '2', '0', '2', '', '/static/upload/images/goods/2019/01/14/1547451909951171.jpg', '0', '1547452007', '1547452007'), ('4', '4', 'Huawei/华为 H60-L01 荣耀6 移动4G版智能手机 安卓', '', '', '0', '537', '步', '/static/upload/images/goods/2019/01/14/1547452474332334.jpg', '2300.00', '2300.00', '2300.00', '1999.00', '1999.00', '1999.00', '19', '1', '0', '1', '1', '1', '


', '2', '0', '15', '', '/static/upload/images/goods/2019/01/14/1547452474332334.jpg', '0', '1547452553', '1547452553'), ('5', '7', 'Meizu/魅族 MX4 Pro移动版 八核大屏智能手机 黑色 16G', '', '', '0', '436', '步', '/static/upload/images/goods/2019/01/14/1547452714324599.jpg', '3200.00', '3200.00', '3200.00', '2499.00', '2499.00', '2499.00', '56', '1', '0', '1', '1', '1', '


', '2', '0', '10', '', '/static/upload/images/goods/2019/01/14/1547452714324599.jpg', '0', '1547452798', '1547452798'), ('6', '0', 'vivo X5MAX L 移动4G 八核超薄大屏5.5吋双卡手机vivoX5max', '', '', '0', '321', '步', '/static/upload/images/goods/2019/01/14/1547453000703308.jpg', '3200.00', '3200.00', '3200.00', '2998.90', '2998.90', '2998.90', '65', '1', '0', '1', '1', '1', ' X5L/SL/V/M (5.0寸) X5max钢化膜(5.5寸) X5pro钢化膜(5.2寸)



', '2', '0', '9', '', '/static/upload/images/goods/2019/01/14/1547453000703308.jpg', '0', '1547453135', '1547453157'), ('7', '6', '纽芝兰包包女士2018新款潮百搭韩版时尚单肩斜挎包少女小挎包链条', '', '', '0', '320', '件', '/static/upload/images/goods/2019/01/14/1547453895416529.jpg', '760.00', '760.00', '760.00', '168.00', '168.00', '168.00', '11', '1', '0', '1', '1', '1', '


', '2', '0', '5', '', '/static/upload/images/goods/2019/01/15/1547540603500383.jpg', '0', '1547453967', '1547540607'), ('8', '6', 'MARNI Trunk 女士 中号拼色十字纹小牛皮 斜挎风琴包', '', '', '0', '35', '件', '/static/upload/images/goods/2019/01/14/1547454145355962.jpg', '672.00', '672.00', '672.00', '356.00', '356.00', '356.00', '8', '1', '0', '1', '1', '1', '


', '2', '0', '4', '', '/static/upload/images/goods/2019/01/14/1547454145355962.jpg', '0', '1547454269', '1547454269'), ('9', '7', '睡衣女长袖春秋季纯棉韩版女士大码薄款春夏季全棉家居服两件套装', '', '', '0', '598', '件', '/static/upload/images/goods/2019/01/14/1547454702543219.jpg', '160.00-216.00', '160.00', '216.00', '120.00-158.00', '120.00', '158.00', '2', '1', '0', '1', '1', '1', '



', '3', '0', '4', '', '/static/upload/images/goods/2019/01/14/1547454567172116.jpg', '0', '1547454786', '1547454828'), ('10', '8', '夏装女装古力娜扎明星同款一字领露肩蓝色蕾丝修身显瘦连衣裙礼服', '', '', '0', '36', '件', '/static/upload/images/goods/2019/01/14/1547455240794230.jpg', '568.00', '568.00', '568.00', '228.00', '228.00', '228.00', '28', '1', '0', '1', '1', '1', '【品牌】欧单 学媛风 猫咪良品
【吊牌】xueyuanfeng 猫咪良品
【面料质地】涤棉拼接蕾丝 后中拉链 有内衬(非专业机构鉴定,介意请慎拍)
好的衣服需要好好呵护,务必请冷水手洗(切记别浸泡)拧干就晾晒或则干洗哦~
【商品颜色】实物拍摄 蓝色 颜色很难拍有小色差属正常现象哦
【商品尺寸】XS/S/M/L 小高腰设计 胸口纽扣是装饰的哦
XS码尺寸: 悬挂衣长81CM.胸围80内合适.腰围63CM.臀围86CM
S码尺寸: 悬挂衣长82CM.胸围84内合适.腰围67CM.臀围90CM
M码尺寸: 悬挂衣长83CM.胸围88内合适.腰围71CM.臀围94CM
L码尺寸: 悬挂衣长84CM.胸围92内合适.腰围75CM.臀围98CM
(测量单位是CM,每个人的测量方式不一样,测量的尺寸数据可能会有1~3厘米的差异,请MM们谅解哦)
PS:常规码数,可按平时号选择哦。修身版型~如果上身偏大可以适当考虑大1号~下摆蕾丝拼接不会很平整的哦~
蕾丝花是手工修剪出来的,每件都有不同和不规则的哦,有小线头和节点是正常现象哦~请亲们谅解哦~


', '2', '0', '4', '', '/static/upload/images/goods/2019/01/14/1547455222990904.jpg', '0', '1547455375', '1547455375'), ('11', '9', '夏季复古ins风格网红SP同款 短袖大圆领香槟色蕾丝绣花钉珠连衣裙', '', '', '0', '367', '件', '/static/upload/images/goods/2019/01/14/1547455601314107.jpg', '268.00', '268.00', '268.00', '258.00', '258.00', '258.00', '1', '1', '0', '1', '1', '1', '【品牌】欧单 学媛风 猫咪良品
【吊牌】xueyuanfeng 猫咪良品
【面料质地】网纱绣花钉珠拼接蕾丝 有拉链有内衬(非专业机构鉴定,介意请慎拍)
好的衣服需要好好呵护,务必请冷水手洗(切记别浸泡)拧干就晾晒或则干洗哦~
【商品颜色】实物拍摄 香槟色 颜色很难拍有小色差属正常现象哦
【商品尺寸】XS/S/M/L 小高腰设计 胸那考虑撑开因素哦 微弹的哦
XS码尺寸: 衣长82CM.胸围80内合适.腰围63CM.臀围86CM
S码尺寸: 衣长83CM.胸围84内合适.腰围67CM.臀围90CM
M码尺寸: 衣长84CM.胸围88内合适.腰围71CM.臀围94CM
L码尺寸: 衣长85CM.胸围92内合适.腰围75CM.臀围98CM
(测量单位是CM,每个人的测量方式不一样,测量的尺寸数据可能会有1~3厘米的差异,请MM们谅解哦)
PS:常规码数,可按平时号选择哦。修身版型,如果腰粗可以适当考虑大1号哦~
大圆领,每个人的身材曲线不同,领口不会很平的哦,请谅解~
肩膀那有暗扣哦,可以很好的隐藏了内衣的肩带哦~袖子那略硬哦~




', '4', '0', '4', '', '/static/upload/images/goods/2019/01/14/1547455566118614.jpg', '0', '1547455700', '1547455700'), ('12', '9', 'ZK星星绣花雪纺连衣裙中长款sukol裙少女心温柔超仙女chic裙子夏', '', 'xxxxhhhhhh商品型号', '0', '246', '件', '/static/upload/images/goods/2019/01/14/1547455890402147.jpg', '150.00-188.00', '150.00', '188.00', '118.00-128.00', '118.00', '128.00', '3', '1', '0', '1', '1', '1', '



', '3', '0', '7', '', '/static/upload/images/goods/2019/01/14/1547455890402147.jpg', '0', '1547456230', '1548054454');
+INSERT INTO `s_goods` VALUES ('1', '2', 'MIUI/小米 小米手机4 小米4代 MI4智能4G手机包邮 黑色 D-LTE(4G)/TD-SCD', '', '', '0', '125', '步', '/static/upload/images/goods/2019/01/14/1547450781101144.jpg', '3200.00', '3200.00', '3200.00', '2100.00', '2100.00', '2100.00', '10', '1', '0', '1', '1', '1', '


', '2', '0', '6', '', '/static/upload/images/goods/2019/01/14/1547450781101144.jpg', '0', '1547450921', '1549959519'), ('2', '3', '苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G', '', 'iPhone 6 Plus', '0', '1711', '步', '/static/upload/images/goods/2019/01/14/1547451274847894.jpg', '6000.00-7600.00', '6000.00', '7600.00', '4500.00-6800.00', '4500.00', '6800.00', '30', '1', '0', '1', '1', '1', '


', '2', '0', '8', '/static/upload/video/goods/2019/01/14/1547458876723311.mp4', '/static/upload/images/goods/2019/01/14/1547451274847894.jpg', '0', '1547451624', '1547458880'), ('3', '0', 'Samsung/三星 SM-G8508S GALAXY Alpha四核智能手机 新品 闪耀白', '', '', '0', '235', '步', '/static/upload/images/goods/2019/01/14/1547451909951171.jpg', '6866.00', '6866.00', '6866.00', '3888.00', '3888.00', '3888.00', '20', '1', '0', '1', '1', '1', '



', '2', '0', '2', '', '/static/upload/images/goods/2019/01/14/1547451909951171.jpg', '0', '1547452007', '1547452007'), ('4', '4', 'Huawei/华为 H60-L01 荣耀6 移动4G版智能手机 安卓', '', '', '0', '537', '步', '/static/upload/images/goods/2019/01/14/1547452474332334.jpg', '2300.00', '2300.00', '2300.00', '1999.00', '1999.00', '1999.00', '19', '1', '0', '1', '1', '1', '


', '2', '0', '15', '', '/static/upload/images/goods/2019/01/14/1547452474332334.jpg', '0', '1547452553', '1547452553'), ('5', '7', 'Meizu/魅族 MX4 Pro移动版 八核大屏智能手机 黑色 16G', '', '', '0', '436', '步', '/static/upload/images/goods/2019/01/14/1547452714324599.jpg', '3200.00', '3200.00', '3200.00', '2499.00', '2499.00', '2499.00', '56', '1', '0', '1', '1', '1', '


', '2', '0', '10', '', '/static/upload/images/goods/2019/01/14/1547452714324599.jpg', '0', '1547452798', '1547452798'), ('6', '0', 'vivo X5MAX L 移动4G 八核超薄大屏5.5吋双卡手机vivoX5max', '', '', '0', '321', '步', '/static/upload/images/goods/2019/01/14/1547453000703308.jpg', '3200.00', '3200.00', '3200.00', '2998.90', '2998.90', '2998.90', '65', '1', '0', '1', '1', '1', ' X5L/SL/V/M (5.0寸) X5max钢化膜(5.5寸) X5pro钢化膜(5.2寸)



', '2', '0', '9', '', '/static/upload/images/goods/2019/01/14/1547453000703308.jpg', '0', '1547453135', '1547453157'), ('7', '6', '纽芝兰包包女士2018新款潮百搭韩版时尚单肩斜挎包少女小挎包链条', '', '', '0', '320', '件', '/static/upload/images/goods/2019/01/14/1547453895416529.jpg', '760.00', '760.00', '760.00', '168.00', '168.00', '168.00', '11', '1', '0', '1', '1', '1', '


', '2', '0', '5', '', '/static/upload/images/goods/2019/01/15/1547540603500383.jpg', '0', '1547453967', '1547540607'), ('8', '6', 'MARNI Trunk 女士 中号拼色十字纹小牛皮 斜挎风琴包', '', '', '0', '35', '件', '/static/upload/images/goods/2019/01/14/1547454145355962.jpg', '672.00', '672.00', '672.00', '356.00', '356.00', '356.00', '8', '1', '0', '1', '1', '1', '


', '2', '0', '4', '', '/static/upload/images/goods/2019/01/14/1547454145355962.jpg', '0', '1547454269', '1547454269'), ('9', '7', '睡衣女长袖春秋季纯棉韩版女士大码薄款春夏季全棉家居服两件套装', '', '', '0', '598', '件', '/static/upload/images/goods/2019/01/14/1547454702543219.jpg', '160.00-216.00', '160.00', '216.00', '120.00-158.00', '120.00', '158.00', '2', '1', '0', '1', '1', '1', '



', '3', '0', '5', '', '/static/upload/images/goods/2019/01/14/1547454567172116.jpg', '0', '1547454786', '1547454828'), ('10', '8', '夏装女装古力娜扎明星同款一字领露肩蓝色蕾丝修身显瘦连衣裙礼服', '', '', '0', '36', '件', '/static/upload/images/goods/2019/01/14/1547455240794230.jpg', '568.00', '568.00', '568.00', '228.00', '228.00', '228.00', '28', '1', '0', '1', '1', '1', '【品牌】欧单 学媛风 猫咪良品
【吊牌】xueyuanfeng 猫咪良品
【面料质地】涤棉拼接蕾丝 后中拉链 有内衬(非专业机构鉴定,介意请慎拍)
好的衣服需要好好呵护,务必请冷水手洗(切记别浸泡)拧干就晾晒或则干洗哦~
【商品颜色】实物拍摄 蓝色 颜色很难拍有小色差属正常现象哦
【商品尺寸】XS/S/M/L 小高腰设计 胸口纽扣是装饰的哦
XS码尺寸: 悬挂衣长81CM.胸围80内合适.腰围63CM.臀围86CM
S码尺寸: 悬挂衣长82CM.胸围84内合适.腰围67CM.臀围90CM
M码尺寸: 悬挂衣长83CM.胸围88内合适.腰围71CM.臀围94CM
L码尺寸: 悬挂衣长84CM.胸围92内合适.腰围75CM.臀围98CM
(测量单位是CM,每个人的测量方式不一样,测量的尺寸数据可能会有1~3厘米的差异,请MM们谅解哦)
PS:常规码数,可按平时号选择哦。修身版型~如果上身偏大可以适当考虑大1号~下摆蕾丝拼接不会很平整的哦~
蕾丝花是手工修剪出来的,每件都有不同和不规则的哦,有小线头和节点是正常现象哦~请亲们谅解哦~


', '2', '0', '4', '', '/static/upload/images/goods/2019/01/14/1547455222990904.jpg', '0', '1547455375', '1547455375'), ('11', '9', '夏季复古ins风格网红SP同款 短袖大圆领香槟色蕾丝绣花钉珠连衣裙', '', '', '0', '367', '件', '/static/upload/images/goods/2019/01/14/1547455601314107.jpg', '268.00', '268.00', '268.00', '258.00', '258.00', '258.00', '1', '1', '0', '1', '1', '1', '【品牌】欧单 学媛风 猫咪良品
【吊牌】xueyuanfeng 猫咪良品
【面料质地】网纱绣花钉珠拼接蕾丝 有拉链有内衬(非专业机构鉴定,介意请慎拍)
好的衣服需要好好呵护,务必请冷水手洗(切记别浸泡)拧干就晾晒或则干洗哦~
【商品颜色】实物拍摄 香槟色 颜色很难拍有小色差属正常现象哦
【商品尺寸】XS/S/M/L 小高腰设计 胸那考虑撑开因素哦 微弹的哦
XS码尺寸: 衣长82CM.胸围80内合适.腰围63CM.臀围86CM
S码尺寸: 衣长83CM.胸围84内合适.腰围67CM.臀围90CM
M码尺寸: 衣长84CM.胸围88内合适.腰围71CM.臀围94CM
L码尺寸: 衣长85CM.胸围92内合适.腰围75CM.臀围98CM
(测量单位是CM,每个人的测量方式不一样,测量的尺寸数据可能会有1~3厘米的差异,请MM们谅解哦)
PS:常规码数,可按平时号选择哦。修身版型,如果腰粗可以适当考虑大1号哦~
大圆领,每个人的身材曲线不同,领口不会很平的哦,请谅解~
肩膀那有暗扣哦,可以很好的隐藏了内衣的肩带哦~袖子那略硬哦~




', '4', '0', '4', '', '/static/upload/images/goods/2019/01/14/1547455566118614.jpg', '0', '1547455700', '1547455700'), ('12', '9', 'ZK星星绣花雪纺连衣裙中长款sukol裙少女心温柔超仙女chic裙子夏', '', 'xxxxhhhhhh商品型号', '0', '246', '件', '/static/upload/images/goods/2019/01/14/1547455890402147.jpg', '150.00-188.00', '150.00', '188.00', '118.00-128.00', '118.00', '128.00', '3', '1', '0', '1', '1', '1', '



', '3', '0', '7', '', '/static/upload/images/goods/2019/01/14/1547455890402147.jpg', '0', '1547456230', '1548054454');
COMMIT;
-- ----------------------------
@@ -816,13 +818,13 @@ CREATE TABLE `s_plugins` (
PRIMARY KEY (`id`),
UNIQUE KEY `plugins` (`plugins`),
KEY `is_enable` (`is_enable`)
-) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='应用';
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='应用';
-- ----------------------------
-- Records of `s_plugins`
-- ----------------------------
BEGIN;
-INSERT INTO `s_plugins` VALUES ('1', 'commontopmaxpicture', '{\"images\":\"http:\\/\\/tp5-dev.com\\/static\\/upload\\/images\\/plugins_commontopmaxpicture\\/2019\\/02\\/09\\/1549671733978860.jpg\",\"bg_color\":\"#ce0000\",\"url\":\"https:\\/\\/shopxo.net\",\"is_new_window_open\":\"1\",\"is_overall\":\"1\",\"time_start\":\"\",\"time_end\":\"\",\"pluginsname\":\"commontopmaxpicture\",\"pluginscontrol\":\"admin\",\"pluginsaction\":\"save\"}', '1', '0', '1549959875'), ('2', 'commontopnotice', '{\"content\":\"\\u6b22\\u8fce\\u6765\\u5230ShopXO\\u4f01\\u4e1a\\u7ea7B2C\\u5f00\\u6e90\\u7535\\u5546\\u7cfb\\u7edf\\u3001\\u6f14\\u793a\\u7ad9\\u70b9\\u8bf7\\u52ff\\u53d1\\u8d77\\u652f\\u4ed8\\u3001\\u4ee5\\u514d\\u7ed9\\u60a8\\u5e26\\u6765\\u4e0d\\u5fc5\\u8981\\u7684\\u8d22\\u4ea7\\u635f\\u5931\\u3002\",\"is_overall\":\"1\",\"time_start\":\"\",\"time_end\":\"\",\"pluginsname\":\"commontopnotice\",\"pluginscontrol\":\"admin\",\"pluginsaction\":\"save\"}', '1', '0', '1549976916'), ('3', 'usercentertopnotice', '{\"content\":\"\\u7528\\u6237\\u4e2d\\u5fc3\\u516c\\u544a\\u6587\\u5b57\\uff0c\\u540e\\u53f0\\u914d\\u7f6e\\u4fee\\u6539\\u3002\",\"time_start\":\"\",\"time_end\":\"\",\"pluginsname\":\"usercentertopnotice\",\"pluginscontrol\":\"admin\",\"pluginsaction\":\"save\"}', '1', '0', '1549964037');
+INSERT INTO `s_plugins` VALUES ('1', 'commontopmaxpicture', '{\"images\":\"http:\\/\\/tp5-dev.com\\/static\\/upload\\/images\\/plugins_commontopmaxpicture\\/2019\\/02\\/09\\/1549671733978860.jpg\",\"bg_color\":\"#ce0000\",\"url\":\"https:\\/\\/shopxo.net\",\"is_new_window_open\":\"1\",\"is_overall\":\"1\",\"time_start\":\"\",\"time_end\":\"\",\"pluginsname\":\"commontopmaxpicture\",\"pluginscontrol\":\"admin\",\"pluginsaction\":\"save\"}', '1', '0', '1550049324'), ('2', 'commontopnotice', '{\"content\":\"\\u6b22\\u8fce\\u6765\\u5230ShopXO\\u4f01\\u4e1a\\u7ea7B2C\\u5f00\\u6e90\\u7535\\u5546\\u7cfb\\u7edf\\u3001\\u6f14\\u793a\\u7ad9\\u70b9\\u8bf7\\u52ff\\u53d1\\u8d77\\u652f\\u4ed8\\u3001\\u4ee5\\u514d\\u7ed9\\u60a8\\u5e26\\u6765\\u4e0d\\u5fc5\\u8981\\u7684\\u8d22\\u4ea7\\u635f\\u5931\\u3002\",\"is_overall\":\"1\",\"time_start\":\"\",\"time_end\":\"\",\"pluginsname\":\"commontopnotice\",\"pluginscontrol\":\"admin\",\"pluginsaction\":\"save\"}', '1', '0', '1550049314'), ('3', 'usercentertopnotice', '{\"content\":\"\\u7528\\u6237\\u4e2d\\u5fc3\\u516c\\u544a\\u6587\\u5b57\\uff0c\\u540e\\u53f0\\u914d\\u7f6e\\u4fee\\u6539\\u3002\",\"time_start\":\"\",\"time_end\":\"\",\"pluginsname\":\"usercentertopnotice\",\"pluginscontrol\":\"admin\",\"pluginsaction\":\"save\"}', '1', '0', '1550049323'), ('6', 'ttttttsssstest88', null, '0', '1550050705', '0');
COMMIT;
-- ----------------------------
@@ -1073,7 +1075,7 @@ CREATE TABLE `s_user` (
-- Records of `s_user`
-- ----------------------------
BEGIN;
-INSERT INTO `s_user` VALUES ('77', '2088502175420842-', '', '', '0', '255773', '70da5937905ce1d1a8c6a8a4ab5c72b3', '', '龚哥哥', '13250814883', 'fuxiang.gong@qq.com', '2', 'https://tfs.alipayobjects.com/images/partner/T10d8lXm4dXXXXXXXX', '上海', '上海市', '1540915200', '', '967', '0', '0', '0', '0', '1545099005'), ('90', '2088502175420842', '', '', '0', '309891', 'db1a237a08f804e81d4db1dc088203e6', '', '魔鬼', '17602128368', '', '2', '', '上海', '上海市', '666201600', '', '0', '0', '0', '0', '1539167253', '1549962447');
+INSERT INTO `s_user` VALUES ('77', '2088502175420842-', '', '', '0', '255773', '70da5937905ce1d1a8c6a8a4ab5c72b3', '', '龚哥哥', '13250814883', 'fuxiang.gong@qq.com', '2', 'https://tfs.alipayobjects.com/images/partner/T10d8lXm4dXXXXXXXX', '上海', '上海市', '1540915200', '', '967', '0', '0', '0', '0', '1545099005'), ('90', '2088502175420842', '', '', '0', '437481', '89e01b6059ab8151c32a1c6358a2f1cf', '', '魔鬼', '17602128368', '', '2', '', '上海', '上海市', '666201600', '', '0', '0', '0', '0', '1539167253', '1550048957');
COMMIT;
-- ----------------------------
diff --git a/public/static/plugins/css/ttttttsssstest88/admin.css b/public/static/plugins/css/ttttttsssstest88/admin.css
new file mode 100644
index 000000000..acff607b2
--- /dev/null
+++ b/public/static/plugins/css/ttttttsssstest88/admin.css
@@ -0,0 +1,7 @@
+h1 {
+ font-size: 60px;
+}
+.msg {
+ font-size: 38px;
+ color: #F00;
+}
\ No newline at end of file
diff --git a/public/static/plugins/css/ttttttsssstest88/index.css b/public/static/plugins/css/ttttttsssstest88/index.css
new file mode 100644
index 000000000..05bc22523
--- /dev/null
+++ b/public/static/plugins/css/ttttttsssstest88/index.css
@@ -0,0 +1,7 @@
+h1 {
+ font-size: 60px;
+}
+.msg {
+ font-size: 68px;
+ color: #4CAF50;
+}
\ No newline at end of file
diff --git a/public/static/upload/images/plugins_ttttttsssstest88/2019/02/13/1550050651917730.png b/public/static/upload/images/plugins_ttttttsssstest88/2019/02/13/1550050651917730.png
new file mode 100644
index 000000000..cf6efd24c
Binary files /dev/null and b/public/static/upload/images/plugins_ttttttsssstest88/2019/02/13/1550050651917730.png differ