From 74bf3d507caaeaa3c9750856ab98e7f670ff0d46 Mon Sep 17 00:00:00 2001 From: devil_gong Date: Mon, 22 Apr 2019 18:35:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/index/controller/Index.php | 23 ++ .../index/view/default/index/index.html | 55 ++++- application/plugins/homemiddleadv/Admin.php | 192 +++++++++++++++ application/plugins/homemiddleadv/Hook.php | 68 ++++++ application/plugins/homemiddleadv/Service.php | 225 ++++++++++++++++++ application/plugins/homemiddleadv/config.json | 24 ++ .../plugins/view/answers/admin/slider.html | 12 +- .../view/homemiddleadv/admin/dataindex.html | 74 ++++++ .../view/homemiddleadv/admin/datainfo.html | 64 +++++ .../view/homemiddleadv/admin/index.html | 86 +++++++ .../view/homemiddleadv/admin/saveinfo.html | 112 +++++++++ .../view/homemiddleadv/index/content.html | 13 + application/service/PluginsService.php | 2 +- application/tags.php | 4 + public/static/index/default/css/common.css | 5 +- .../plugins/css/homemiddleadv/admin.css | 43 ++++ .../plugins/css/homemiddleadv/index.html | 1 + .../images/homemiddleadv/default-images.jpg | Bin 0 -> 13755 bytes .../plugins/images/homemiddleadv/index.html | 1 + .../2019/04/22/1555917416820968.jpg | Bin 0 -> 2783 bytes 20 files changed, 991 insertions(+), 13 deletions(-) create mode 100755 application/plugins/homemiddleadv/Admin.php create mode 100755 application/plugins/homemiddleadv/Hook.php create mode 100644 application/plugins/homemiddleadv/Service.php create mode 100644 application/plugins/homemiddleadv/config.json create mode 100644 application/plugins/view/homemiddleadv/admin/dataindex.html create mode 100644 application/plugins/view/homemiddleadv/admin/datainfo.html create mode 100755 application/plugins/view/homemiddleadv/admin/index.html create mode 100755 application/plugins/view/homemiddleadv/admin/saveinfo.html create mode 100755 application/plugins/view/homemiddleadv/index/content.html create mode 100755 public/static/plugins/css/homemiddleadv/admin.css create mode 100755 public/static/plugins/css/homemiddleadv/index.html create mode 100644 public/static/plugins/images/homemiddleadv/default-images.jpg create mode 100755 public/static/plugins/images/homemiddleadv/index.html create mode 100644 public/static/upload/images/plugins_homemiddleadv/2019/04/22/1555917416820968.jpg diff --git a/application/index/controller/Index.php b/application/index/controller/Index.php index b9a5e6770..acc1cbd36 100755 --- a/application/index/controller/Index.php +++ b/application/index/controller/Index.php @@ -10,6 +10,7 @@ // +---------------------------------------------------------------------- namespace app\index\controller; +use think\facade\Hook; use app\service\BannerService; use app\service\GoodsService; use app\service\ArticleService; @@ -69,8 +70,30 @@ class Index extends Common // 用户订单状态 $user_order_status = OrderService::OrderStatusStepTotal(['user_type'=>'user', 'user'=>$this->user, 'is_comments'=>1]); $this->assign('user_order_status', $user_order_status['data']); + + // 钩子 + $this->PluginsHook(); return $this->fetch(); } + + /** + * 钩子处理 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2019-04-22 + * @desc description + * @param [array] $params [输入参数] + */ + private function PluginsHook($params = []) + { + // 楼层数据上面 + $this->assign('plugins_view_home_floor_top_data', Hook::listen('plugins_view_home_floor_top', + [ + 'hook_name' => 'plugins_view_home_floor_top', + 'is_backend' => false, + ])); + } } ?> \ No newline at end of file diff --git a/application/index/view/default/index/index.html b/application/index/view/default/index/index.html index 5f139a0bc..6f9a9210f 100755 --- a/application/index/view/default/index/index.html +++ b/application/index/view/default/index/index.html @@ -21,7 +21,7 @@
- + {{if !empty($navigation)}}
{{foreach $navigation as $nav}} @@ -37,7 +37,7 @@
{{/if}} - +
@@ -99,7 +99,56 @@
- + + + + + + + +{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}} +
+ plugins_view_home_floor_top +
+{{/if}} +{{if !empty($plugins_view_home_floor_top_data) and is_array($plugins_view_home_floor_top_data)}} + {{foreach $plugins_view_home_floor_top_data as $hook}} + {{if is_string($hook) or is_int($hook)}} + {{$hook|raw}} + {{/if}} + {{/foreach}} +{{/if}} + +
{{if !empty($goods_floor_list)}} diff --git a/application/plugins/homemiddleadv/Admin.php b/application/plugins/homemiddleadv/Admin.php new file mode 100755 index 000000000..29c3b4f70 --- /dev/null +++ b/application/plugins/homemiddleadv/Admin.php @@ -0,0 +1,192 @@ +assign('data_list', $list['data']); + + $this->assign('data', $ret['data']); + return $this->fetch('../../../plugins/view/homemiddleadv/admin/index'); + } else { + return $ret['msg']; + } + } + + /** + * 编辑页面 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @datetime 2019-02-07T08:21:54+0800 + * @param [array] $params [输入参数] + */ + public function saveinfo($params = []) + { + $ret = PluginsService::PluginsData('homemiddleadv', null, false); + if($ret['code'] == 0) + { + $this->assign('data', $ret['data']); + return $this->fetch('../../../plugins/view/homemiddleadv/admin/saveinfo'); + } else { + return $ret['msg']; + } + } + + /** + * 数据保存 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @datetime 2019-02-07T08:21:54+0800 + * @param [array] $params [输入参数] + */ + public function save($params = []) + { + $list = Service::DataList(); + $params['data_list'] = $list['data']; + return PluginsService::PluginsDataSave(['plugins'=>'homemiddleadv', 'data'=>$params]); + } + + + + /** + * 数据列表页面 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @datetime 2019-02-07T08:21:54+0800 + * @param [array] $params [输入参数] + */ + public function dataindex($params = []) + { + $list = Service::DataList(); + if($list['code'] == 0) + { + $this->assign('data_list', $list['data']); + return $this->fetch('../../../plugins/view/homemiddleadv/admin/dataindex'); + } else { + return $list['msg']; + } + } + + /** + * 数据列表编辑 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @datetime 2019-02-07T08:21:54+0800 + * @param [array] $params [输入参数] + */ + public function datainfo($params = []) + { + // 数据 + $data = []; + if(!empty($params['id'])) + { + $data_params = [ + 'get_id' => $params['id'], + ]; + $ret = Service::DataList($data_params); + $data = empty($ret['data']) ? [] : $ret['data']; + } + $this->assign('data', $data); + + return $this->fetch('../../../plugins/view/homemiddleadv/admin/datainfo'); + } + + /** + * 数据列表保存 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @datetime 2019-02-07T08:21:54+0800 + * @param [array] $params [输入参数] + */ + public function datasave($params = []) + { + // 是否ajax请求 + if(!IS_AJAX) + { + return $this->error('非法访问'); + } + + // 开始处理 + return Service::DataSave($params); + } + + /** + * 数据列表删除 + * @author Devil + * @blog http://gong.gg/ + * @version 0.0.1 + * @datetime 2016-12-15T11:03:30+0800 + * @param [array] $params [输入参数] + */ + public function datadelete($params = []) + { + // 是否ajax请求 + if(!IS_AJAX) + { + return $this->error('非法访问'); + } + + // 开始处理 + return Service::DataDelete($params); + } + + /** + * 数据列表状态更新 + * @author Devil + * @blog http://gong.gg/ + * @version 0.0.1 + * @datetime 2017-01-12T22:23:06+0800 + * @param [array] $params [输入参数] + */ + public function datastatusupdate($params = []) + { + // 是否ajax请求 + if(!IS_AJAX) + { + return $this->error('非法访问'); + } + + // 开始处理 + return Service::DataStatusUpdate($params); + } +} +?> \ No newline at end of file diff --git a/application/plugins/homemiddleadv/Hook.php b/application/plugins/homemiddleadv/Hook.php new file mode 100755 index 000000000..88310f9e2 --- /dev/null +++ b/application/plugins/homemiddleadv/Hook.php @@ -0,0 +1,68 @@ +HomeFloorTopAdv($params); + break; + default : + $ret = ''; + } + return $ret; + } + } + + /** + * 首页楼层顶部广告 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @datetime 2019-02-06T16:16:34+0800 + * @param [array] $params [输入参数] + */ + public function HomeFloorTopAdv($params = []) + { + $ret = Service::DataList(); + if($ret['code'] == 0 && !empty($ret['data'])) + { + $this->assign('data_list', $ret['data']); + return $this->fetch('../../../plugins/view/homemiddleadv/index/content'); + } + return ''; + } +} +?> \ No newline at end of file diff --git a/application/plugins/homemiddleadv/Service.php b/application/plugins/homemiddleadv/Service.php new file mode 100644 index 000000000..42d25fbb2 --- /dev/null +++ b/application/plugins/homemiddleadv/Service.php @@ -0,0 +1,225 @@ + 'length', + 'key_name' => 'name', + 'checked_data' => '2,60', + 'error_msg' => '名称长度 2~60 个字符', + ], + [ + 'checked_type' => 'empty', + 'key_name' => 'images_url', + 'checked_data' => '255', + 'error_msg' => '请上传图片', + ], + [ + 'checked_type' => 'fun', + 'key_name' => 'url', + 'is_checked' => 1, + 'checked_data' => 'CheckUrl', + 'error_msg' => 'url格式有误', + ], + ]; + $ret = ParamsChecked($params, $p); + if($ret !== true) + { + return DataReturn($ret, -1); + } + + // 附件 + $data_fields = ['images_url']; + $attachment = ResourcesService::AttachmentParams($params, $data_fields); + + // 数据 + $data = [ + 'name' => $params['name'], + 'url' => $params['url'], + 'images_url' => $attachment['data']['images_url'], + 'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0, + 'is_new_window_open' => isset($params['is_new_window_open']) ? intval($params['is_new_window_open']) : 0, + 'operation_time' => time(), + ]; + + // 原有数据 + $ret = PluginsService::PluginsData('homemiddleadv', null, false); + + // 数据id + $data['id'] = (empty($params['id']) || empty($ret['data']) || empty($ret['data']['data_list'][$params['id']])) ? date('YmdHis').GetNumberCode(6) : $params['id']; + $ret['data']['data_list'][$data['id']] = $data; + + // 保存 + return PluginsService::PluginsDataSave(['plugins'=>'homemiddleadv', 'data'=>$ret['data']]); + } + + /** + * 数据列表删除 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2018-12-18 + * @desc description + * @param [array] $params [输入参数] + */ + public static function DataDelete($params = []) + { + // 请求参数 + $p = [ + [ + 'checked_type' => 'empty', + 'key_name' => 'id', + 'error_msg' => '操作id有误', + ], + ]; + $ret = ParamsChecked($params, $p); + if($ret !== true) + { + return DataReturn($ret, -1); + } + + // 原有数据 + $ret = PluginsService::PluginsData('homemiddleadv', null, false); + $ret['data']['data_list'] = (empty($ret['data']) || empty($ret['data']['data_list'])) ? [] : $ret['data']['data_list']; + + // 删除操作 + if(isset($ret['data']['data_list'][$params['id']])) + { + unset($ret['data']['data_list'][$params['id']]); + } + + // 保存 + return PluginsService::PluginsDataSave(['plugins'=>'homemiddleadv', 'data'=>$ret['data']]); + } + + /** + * 数据列表删除 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2018-12-18 + * @desc description + * @param [array] $params [输入参数] + */ + public static function DataStatusUpdate($params = []) + { + // 请求参数 + $p = [ + [ + 'checked_type' => 'empty', + 'key_name' => 'id', + 'error_msg' => '操作id有误', + ], + [ + 'checked_type' => 'empty', + 'key_name' => 'field', + 'error_msg' => '操作字段有误', + ], + [ + 'checked_type' => 'in', + 'key_name' => 'state', + 'checked_data' => [0,1], + 'error_msg' => '状态有误', + ], + ]; + $ret = ParamsChecked($params, $p); + if($ret !== true) + { + return DataReturn($ret, -1); + } + + // 原有数据 + $ret = PluginsService::PluginsData('homemiddleadv', null, false); + $ret['data']['data_list'] = (empty($ret['data']) || empty($ret['data']['data_list'])) ? [] : $ret['data']['data_list']; + + // 删除操作 + if(isset($ret['data']['data_list'][$params['id']]) && isset($ret['data']['data_list'][$params['id']][$params['field']])) + { + $ret['data']['data_list'][$params['id']][$params['field']] = intval($params['state']); + $ret['data']['data_list'][$params['id']]['operation_time'] = time(); + } + + // 保存 + return PluginsService::PluginsDataSave(['plugins'=>'homemiddleadv', 'data'=>$ret['data']]); + } +} +?> \ No newline at end of file diff --git a/application/plugins/homemiddleadv/config.json b/application/plugins/homemiddleadv/config.json new file mode 100644 index 000000000..deadc44dd --- /dev/null +++ b/application/plugins/homemiddleadv/config.json @@ -0,0 +1,24 @@ +{ + "base":{ + "plugins":"homemiddleadv", + "name":"首页中间广告", + "logo":"\/static\/upload\/images\/plugins_homemiddleadv\/2019\/04\/22\/1555917416820968.jpg", + "author":"Devil", + "author_url":"https:\/\/shopxo.net\/", + "version":"1.0.0", + "desc":"首页中间广告,4个推荐位", + "apply_terminal":[ + "pc", + "h5" + ], + "apply_version":[ + "1.5.0" + ], + "is_home":false + }, + "hook":{ + "plugins_view_home_floor_top":[ + "app\\plugins\\homemiddleadv\\Hook" + ] + } +} \ No newline at end of file diff --git a/application/plugins/view/answers/admin/slider.html b/application/plugins/view/answers/admin/slider.html index 382002e0e..b360ac7f8 100644 --- a/application/plugins/view/answers/admin/slider.html +++ b/application/plugins/view/answers/admin/slider.html @@ -22,8 +22,8 @@ 名称 图片 url地址 - 是否启用 - 创建时间 + 是否启用 + 创建时间 操作 @@ -43,9 +43,9 @@ {{$v.url}} - - - {{$v.add_time_time}} + + + {{$v.add_time_time}} @@ -55,7 +55,7 @@ {{/foreach}} {{else /}} - 没有相关数据 + 没有相关数据 {{/if}} diff --git a/application/plugins/view/homemiddleadv/admin/dataindex.html b/application/plugins/view/homemiddleadv/admin/dataindex.html new file mode 100644 index 000000000..f65b16092 --- /dev/null +++ b/application/plugins/view/homemiddleadv/admin/dataindex.html @@ -0,0 +1,74 @@ +{{include file="public/header" /}} + + +
+
+ + 首页中间广告 + 返回 + + +
+ +
+ 新增 +
+ + + + + + + + + + + + + + + + + {{if !empty($data_list)}} + {{foreach $data_list as $v}} + + + + + + + + + + {{/foreach}} + {{else /}} + + {{/if}} + +
名称图片url地址是否新窗口打开是否启用操作时间操作
{{$v.name}} + {{if !empty($v['images_url'])}} + + + + {{else /}} + 暂无图片 + {{/if}} + {{$v.url}} + + + + {{$v.operation_time_time}} + + + + +
没有相关数据
+ +
+
+
+ + + +{{include file="public/footer" /}} + \ No newline at end of file diff --git a/application/plugins/view/homemiddleadv/admin/datainfo.html b/application/plugins/view/homemiddleadv/admin/datainfo.html new file mode 100644 index 000000000..69d3dfdea --- /dev/null +++ b/application/plugins/view/homemiddleadv/admin/datainfo.html @@ -0,0 +1,64 @@ +{{include file="public/header" /}} + + +
+
+ + + {{if empty($data['id'])}} + 首页中间广告添加 + {{else /}} + 首页中间广告编辑 + {{/if}} + + 返回 + + +
+ +
+
+ + +
+ +
+ + +
+ +
+ +
    +
  • + + +
  • +
+
+上传图片
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+
+ + + +{{include file="public/footer" /}} + \ No newline at end of file diff --git a/application/plugins/view/homemiddleadv/admin/index.html b/application/plugins/view/homemiddleadv/admin/index.html new file mode 100755 index 000000000..ade85988f --- /dev/null +++ b/application/plugins/view/homemiddleadv/admin/index.html @@ -0,0 +1,86 @@ +{{include file="public/header" /}} + + +
+
+ + 首页中间广告 + 返回 + + +
+ +
+
+ 基础数据 + 编辑 +
+
+
+ +
+ {{if empty($data['application_name'])}} + 未设置应用导航名称 + {{else /}} + {{$data.application_name}} + {{/if}} +
+
+ +
+ +
+ {{if empty($data['right_top_rec_name'])}} + 推荐问答 + {{else /}} + {{$data.right_top_rec_name}} + {{/if}} +
+
+ +
+ +
+ {{if empty($data['middle_new_name'])}} + 最新问答 + {{else /}} + {{$data.middle_new_name}} + {{/if}} +
+
+ +
+
+ + +
+
+ 广告图片 + 编辑 +
+
+ {{if !empty($data_list)}} + + {{else /}} + 没有数据 + {{/if}} +
+
+
+
+
+ + + +{{include file="public/footer" /}} + \ No newline at end of file diff --git a/application/plugins/view/homemiddleadv/admin/saveinfo.html b/application/plugins/view/homemiddleadv/admin/saveinfo.html new file mode 100755 index 000000000..fbaf34b2d --- /dev/null +++ b/application/plugins/view/homemiddleadv/admin/saveinfo.html @@ -0,0 +1,112 @@ +{{include file="public/header" /}} + + +
+
+ +
+ + 首页中间广告 + 返回 + + +
+
+ +
    +
  • + + +
  • +
+
+上传图片
+
+
+ + +
+
+ +
+
+ +
    +
  • + + +
  • +
+
+上传图片
+
+
+ + +
+
+ +
+
+ +
    +
  • + + +
  • +
+
+上传图片
+
+
+ + +
+
+ +
+
+ +
    +
  • + + +
  • +
+
+上传图片
+
+
+ + +
+
+ +
+ +
+ {{foreach $is_whether_list as $v}} + + {{/foreach}} +
+
+ +
+ +
+ + ~ + +
+
+ +
+ +
+
+ +
+
+ + + +{{include file="public/footer" /}} + \ No newline at end of file diff --git a/application/plugins/view/homemiddleadv/index/content.html b/application/plugins/view/homemiddleadv/index/content.html new file mode 100755 index 000000000..bae255c42 --- /dev/null +++ b/application/plugins/view/homemiddleadv/index/content.html @@ -0,0 +1,13 @@ +{{if !empty($data_list)}} + +{{/if}} \ No newline at end of file diff --git a/application/service/PluginsService.php b/application/service/PluginsService.php index ad8e826f7..d99691b9e 100755 --- a/application/service/PluginsService.php +++ b/application/service/PluginsService.php @@ -66,7 +66,7 @@ class PluginsService cache($key, $data); } } - return DataReturn('处理成功', 0, $data); + return DataReturn('处理成功', 0, empty($data) ? [] : $data); } /** diff --git a/application/tags.php b/application/tags.php index 4e5edac69..63f37a17a 100755 --- a/application/tags.php +++ b/application/tags.php @@ -132,5 +132,9 @@ return array ( array ( 0 => 'app\\plugins\\share\\Hook', ), + 'plugins_view_home_floor_top' => + array ( + 0 => 'app\\plugins\\homemiddleadv\\Hook', + ), ); ?> \ No newline at end of file diff --git a/public/static/index/default/css/common.css b/public/static/index/default/css/common.css index 47075a774..77ac630e3 100755 --- a/public/static/index/default/css/common.css +++ b/public/static/index/default/css/common.css @@ -58,6 +58,8 @@ h5{float: right;color: #666;padding-right:20px;} input.add,input.min{width:15px} .c-p {cursor:pointer;} .last{border-right:none !important;} +.am-container { margin: 0 auto; } + /*选项卡样式定义*/ .am-nav-tabs,.am-tabs-bd{border-color:transparent ;} .am-nav-tabs > li.am-active > a, .am-nav-tabs > li.am-active > a:hover, .am-nav-tabs > li.am-active > a:focus,.am-nav-tabs > li > a:hover ,.am-nav-tabs > li > a:focus { @@ -432,9 +434,6 @@ background:url(../images/ibar_sprites.png) no-repeat;background-position:0px -23 .am-footer-default a { font-size: 12px; color: #b1b1b1; -} -.am-footer-default .am-container { - } .footer-nav-list { overflow: hidden; diff --git a/public/static/plugins/css/homemiddleadv/admin.css b/public/static/plugins/css/homemiddleadv/admin.css new file mode 100755 index 000000000..78a043567 --- /dev/null +++ b/public/static/plugins/css/homemiddleadv/admin.css @@ -0,0 +1,43 @@ +/** + * 首页 + */ +.homemiddleadv-content .items { + margin: 10px 0 20px 0; + border-bottom: 1px dashed #f1f1f1; + padding-bottom: 20px; +} +.homemiddleadv-content .items .immages-tag { + text-align: left; +} +.homemiddleadv-content .items .immages-tag img { + max-width: 100%; + border: 1px dashed #eee; + padding: 5px; +} +.homemiddleadv-content .edit-submit { + margin-bottom: 20px; +} +.homemiddleadv-content img { + max-width: 100%; +} +.homemiddleadv-content .am-slider-c3 .am-slider-counter { + background-color: #d13a49; +} +@media only screen and (min-width:640px) { + .homemiddleadv-data-list .am-gallery-overlay .am-gallery-item img { + width: auto; + max-height: 150px; + } +} + +@media only screen and (max-width:640px) { + +} + + +/** + * 幻灯片编辑 + */ +ul.plug-file-upload-view li { + width: 300px; +} \ No newline at end of file diff --git a/public/static/plugins/css/homemiddleadv/index.html b/public/static/plugins/css/homemiddleadv/index.html new file mode 100755 index 000000000..0519ecba6 --- /dev/null +++ b/public/static/plugins/css/homemiddleadv/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/static/plugins/images/homemiddleadv/default-images.jpg b/public/static/plugins/images/homemiddleadv/default-images.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c3eb8295d5dccdf43cc0f267496b92adecb86493 GIT binary patch literal 13755 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 I(S7ZI08)Sl(f|Me literal 0 HcmV?d00001 diff --git a/public/static/plugins/images/homemiddleadv/index.html b/public/static/plugins/images/homemiddleadv/index.html new file mode 100755 index 000000000..0519ecba6 --- /dev/null +++ b/public/static/plugins/images/homemiddleadv/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/static/upload/images/plugins_homemiddleadv/2019/04/22/1555917416820968.jpg b/public/static/upload/images/plugins_homemiddleadv/2019/04/22/1555917416820968.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aadc09fbb93cf1be884e23e5a8967df824499a3a GIT binary patch literal 2783 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 literal 0 HcmV?d00001