提交 74bf3d50 编写于 作者: D devil_gong

应用

上级 620043d0
......@@ -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
......@@ -21,7 +21,7 @@
<!-- 轮播上内容 -->
<div class="am-container slideall">
<!-- 轮播右侧-手机导航 -->
<!-- 轮播-手机导航 -->
{{if !empty($navigation)}}
<div class="am-g am-g-fixed small-nav">
{{foreach $navigation as $nav}}
......@@ -37,7 +37,7 @@
</div>
{{/if}}
<!--轮播右侧-聚合内容 -->
<!-- 轮播-聚合内容 -->
<div class="marqueen">
<div class="mod-vip">
<div class="m-baseinfo">
......@@ -99,7 +99,56 @@
</div>
</div>
<!-- 主内容 -->
<ul data-am-widget="gallery" class="am-gallery am-avg-sm-2 am-avg-md-4 am-avg-lg-4 am-gallery-overlay am-container" data-am-gallery="{ pureview: true }" >
<li>
<div class="am-gallery-item">
<a href="http://s.amazeui.org/media/i/demos/bing-1.jpg" class="">
<img src="http://wxcs.niuteam.cn/upload/default/adv_pc_index_recommend1.png" alt="远方 有一个地方 那里种有我们的梦想"/>
</a>
</div>
</li>
<li>
<div class="am-gallery-item">
<a href="http://s.amazeui.org/media/i/demos/bing-2.jpg" class="">
<img src="http://wxcs.niuteam.cn/upload/default/adv_pc_index_recommend2.png" alt="某天 也许会相遇 相遇在这个好地方"/>
</a>
</div>
</li>
<li>
<div class="am-gallery-item">
<a href="http://s.amazeui.org/media/i/demos/bing-3.jpg" class="">
<img src="http://wxcs.niuteam.cn/upload/default/adv_pc_index_recommend3.png" alt="不要太担心 只因为我相信"/>
</a>
</div>
</li>
<li>
<div class="am-gallery-item">
<a href="http://s.amazeui.org/media/i/demos/bing-4.jpg" class="">
<img src="http://wxcs.niuteam.cn/upload/default/adv_pc_index_recommend4.png" alt="终会走过这条遥远的道路"/>
</a>
</div>
</li>
</ul>
<!-- 楼层数据上面 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
<div class="plugins-tag">
<span>plugins_view_home_floor_top</span>
</div>
{{/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}}
<!-- 楼层-主内容 -->
<div class="home-floor">
<!-- 楼层 -->
{{if !empty($goods_floor_list)}}
......
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\homemiddleadv;
use think\Controller;
use app\plugins\homemiddleadv\Service;
use app\service\PluginsService;
/**
* 首页中间广告插件 - 管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Admin extends Controller
{
/**
* 首页
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function index($params = [])
{
$ret = PluginsService::PluginsData('homemiddleadv', null, false);
if($ret['code'] == 0)
{
// 数据列表
$list = Service::DataList();
$this->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
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\homemiddleadv;
use think\Controller;
use app\plugins\homemiddleadv\Service;
/**
* 首页中间广告插件 - 钩子入口
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Hook extends Controller
{
/**
* 应用响应入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-09T14:25:44+0800
* @param [array] $params [输入参数]
*/
public function run($params = [])
{
if(!empty($params['hook_name']))
{
switch($params['hook_name'])
{
// 楼层数据上面
case 'plugins_view_home_floor_top' :
$ret = $this->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
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\homemiddleadv;
use app\service\PluginsService;
use app\service\ResourcesService;
use app\service\AnswerService;
/**
* 首页中间广告服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Service
{
/**
* 获取数据列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-04-22
* @desc description
* @param [array] $params [输入参数]
*/
public static function DataList($params = [])
{
$ret = PluginsService::PluginsData('homemiddleadv', null, false);
$data = (empty($ret['data']) || empty($ret['data']['data_list'])) ? [] : $ret['data']['data_list'];
if(!empty($data))
{
$common_is_enable_tips = lang('common_is_enable_tips');
$common_is_text_list = lang('common_is_text_list');
foreach($data as &$v)
{
// 是否新创建
$v['is_new_window_open_text'] = $common_is_text_list[$v['is_new_window_open']]['name'];
// 是否启用
$v['is_enable_text'] = $common_is_enable_tips[$v['is_enable']]['name'];
// 图片地址
$v['images_url_old'] = $v['images_url'];
$v['images_url'] = ResourcesService::AttachmentPathViewHandle($v['images_url']);
// 时间
$v['operation_time_time'] = empty($v['operation_time']) ? '' : date('Y-m-d H:i:s', $v['operation_time']);
$v['operation_time_date'] = empty($v['operation_time']) ? '' : date('Y-m-d', $v['operation_time']);
}
}
// 是否读取单条
if(!empty($params['get_id']) && isset($data[$params['get_id']]))
{
$data = $data[$params['get_id']];
}
return DataReturn('处理成功', 0, $data);
}
/**
* 数据列表保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-04-22
* @desc description
* @param [array] $params [输入参数]
*/
public static function DataSave($params = [])
{
// 请求类型
$p = [
[
'checked_type' => '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
{
"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
......@@ -22,8 +22,8 @@
<th>名称</th>
<th>图片</th>
<th>url地址</th>
<th>是否启用</th>
<th>创建时间</th>
<th class="am-hide-sm-only">是否启用</th>
<th class="am-hide-sm-only">创建时间</th>
<th>操作</th>
</tr>
</thead>
......@@ -43,9 +43,9 @@
</td>
<td>{{$v.url}}</td>
<td class="am-hide-sm-only">
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_enable'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:PluginsAdminUrl('answers', 'admin', 'sliderstatusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_enable']}}" data-is-update-status="1"></a>
</td>
<td>{{$v.add_time_time}}</td>
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_enable'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:PluginsAdminUrl('answers', 'admin', 'sliderstatusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_enable']}}" data-is-update-status="1"></a>
</td>
<td class="am-hide-sm-only">{{$v.add_time_time}}</td>
<td class="view-operation">
<a href="{{:PluginsAdminUrl('answers', 'admin', 'sliderinfo', ['id'=>$v['id']])}}">
<button class="am-btn am-btn-secondary am-btn-xs am-radius am-icon-edit"> 编辑</button>
......@@ -55,7 +55,7 @@
</tr>
{{/foreach}}
{{else /}}
<tr><td colspan="5" class="table-no">没有相关数据</td></tr>
<tr><td colspan="6" class="table-no">没有相关数据</td></tr>
{{/if}}
</tbody>
</table>
......
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<legend>
<span class="fs-16">首页中间广告</span>
<a href="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="homemiddleadv-content">
<!-- operation start -->
<div class="am-g m-t-15">
<a href="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'datainfo')}}" class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-plus"> 新增</a>
</div>
<!-- operation end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10">
<thead>
<tr>
<th>名称</th>
<th>图片</th>
<th>url地址</th>
<th class="am-hide-sm-only">是否新窗口打开</th>
<th class="am-hide-sm-only">是否启用</th>
<th class="am-hide-sm-only">操作时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr id="data-list-{{$v.id}}" {{if $v['is_enable'] eq 0}}class="am-active"{{/if}}>
<td>{{$v.name}}</td>
<td {{if !empty($v['bg_color'])}}style="background-color:{{$v.bg_color}};"{{/if}}>
{{if !empty($v['images_url'])}}
<a href="{{$v['images_url']}}" target="_blank">
<img src="{{$v['images_url']}}" class="am-radius" width="100" height="60" />
</a>
{{else /}}
<span class="cr-ddd">暂无图片</span>
{{/if}}
</td>
<td>{{$v.url}}</td>
<td class="am-hide-sm-only">
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_new_window_open'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'datastatusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_new_window_open']}}" data-field="is_new_window_open"></a>
</td>
<td class="am-hide-sm-only">
<a href="javascript:;" class="am-icon-btn am-icon-check submit-state {{if $v['is_enable'] eq 1}}am-success{{else /}}am-default{{/if}}" data-url="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'datastatusupdate')}}" data-id="{{$v.id}}" data-state="{{$v['is_enable']}}" data-field="is_enable" data-is-update-status="1"></a>
</td>
<td class="am-hide-sm-only">{{$v.operation_time_time}}</td>
<td class="view-operation">
<a href="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'datainfo', ['id'=>$v['id']])}}">
<button class="am-btn am-btn-secondary am-btn-xs am-radius am-icon-edit"> 编辑</button>
</a>
<button class="am-btn am-btn-danger am-btn-xs am-radius am-icon-trash-o submit-delete" data-url="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'datadelete')}}" data-id="{{$v.id}}"> 删除</button>
</td>
</tr>
{{/foreach}}
{{else /}}
<tr><td colspan="7" class="table-no">没有相关数据</td></tr>
{{/if}}
</tbody>
</table>
<!-- list end -->
</div>
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<legend>
<span class="fs-16">
{{if empty($data['id'])}}
首页中间广告添加
{{else /}}
首页中间广告编辑
{{/if}}
</span>
<a href="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'dataindex')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="homemiddleadv-content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'datasave')}}" method="POST" request-type="ajax-url" request-value="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'dataindex')}}" enctype="multipart/form-data">
<div class="am-form-group">
<label>名称</label>
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="60" data-validation-message="名称格式 2~60 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.name}}"{{/if}} required />
</div>
<div class="am-form-group">
<label>url地址<span class="am-form-group-label-tips">带http://或https://</span></label>
<input type="url" placeholder="url地址" name="url" data-validation-message="url格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.url}}"{{/if}} />
</div>
<div class="am-form-group am-form-file">
<label class="block">图片</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="请上传图片" required />
<img src="{{if !empty($data['images_url'])}}{{$data.images_url}}{{else /}}{{$attachment_host}}/static/plugins/images/homemiddleadv/default-images.jpg{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.slide-images_url-images-view">+上传图片</div>
</div>
<div class="am-form-group">
<label class="block">是否新窗口打开</label>
<input name="is_new_window_open" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if isset($data['is_new_window_open']) and $data['is_new_window_open'] eq 1}}checked="true"{{/if}} />
</div>
<div class="am-form-group">
<label class="block">是否启用</label>
<input name="is_enable" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or empty($data)}}checked="true"{{/if}} />
</div>
<div class="am-form-group am-form-group-refreshing">
<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 w100" data-am-loading="{loadingText:'处理中...'}">保存</button>
</div>
</form>
<!-- form end -->
</div>
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<legend>
<span class="fs-16">首页中间广告</span>
<a href="{{:MyUrl('admin/pluginsadmin/index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="homemiddleadv-content">
<!-- 基础数据 -->
<div class="am-panel am-panel-secondary homemiddleadv-middle-banner">
<div class="am-panel-hd">
<span class="am-panel-title">基础数据</span>
<a class="am-fr" href="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'baseinfo')}}">编辑</a>
</div>
<div class="am-panel-bd">
<div class="items">
<label>应用导航名称</label>
<div>
{{if empty($data['application_name'])}}
未设置应用导航名称
{{else /}}
{{$data.application_name}}
{{/if}}
</div>
</div>
<div class="items">
<label>右侧推荐问答名称</label>
<div>
{{if empty($data['right_top_rec_name'])}}
推荐问答
{{else /}}
{{$data.right_top_rec_name}}
{{/if}}
</div>
</div>
<div class="items">
<label>中间最新问答名称</label>
<div>
{{if empty($data['middle_new_name'])}}
最新问答
{{else /}}
{{$data.middle_new_name}}
{{/if}}
</div>
</div>
</div>
</div>
<!-- 广告图片 -->
<div class="am-panel am-panel-secondary homemiddleadv-data-list">
<div class="am-panel-hd">
<span class="am-panel-title">广告图片</span>
<a class="am-fr" href="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'dataindex')}}">编辑</a>
</div>
<div class="am-panel-bd">
{{if !empty($data_list)}}
<ul data-am-widget="gallery" class="am-gallery am-avg-sm-2 am-avg-md-4 am-avg-lg-4 am-gallery-overlay am-container" data-am-gallery="{}">
{{foreach $data_list as $k=>$v}}
<li>
<div class="am-gallery-item">
<a href="{{if empty($v['url'])}}javascript:;{{else /}}{{$v.url}}{{/if}}" {{if isset($v['is_new_window_open']) and $v['is_new_window_open'] eq 1}}target="_blank"{{/if}}>
<img src="{{$v.images_url}}" alt="{{$v.name}}" />
</a>
</div>
</li>
{{/foreach}}
</ul>
{{else /}}
没有数据
{{/if}}
</div>
</div>
</div>
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'save')}}" method="POST" request-type="ajax-url" request-value="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'index')}}" enctype="multipart/form-data">
<legend>
<span class="fs-16">首页中间广告</span>
<a href="{{:PluginsAdminUrl('homemiddleadv', 'admin', 'index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="am-alert am-alert-secondary" data-am-alert>
<div class="am-form-group am-form-file">
<label class="block">广告1-图片<span class="am-form-group-label-tips">建议290像数X150像数</span></label>
<ul class="plug-file-upload-view plugins-ad1_images-view" data-form-name="ad1_images" data-max-number="1" data-delete="0" data-dialog-type="images">
<li>
<input type="text" name="ad1_images" value="{{if !empty($data['ad1_images_old'])}}{{$data.ad1_images_old}}{{/if}}" data-validation-message="请上传图片" required />
<img src="{{if !empty($data['ad1_images'])}}{{$data.ad1_images}}{{else /}}{{$attachment_host}}/static/plugins/images/homemiddleadv/default-images.jpg{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.plugins-ad1_images-view">+上传图片</div>
</div>
<div class="am-form-group">
<label>广告1-链接地址<span class="am-form-group-label-tips">带http://或https://</span></label>
<input type="url" placeholder="广告1-链接地址" name="ad1_url" data-validation-message="广告1-链接地址格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.ad1_url}}"{{/if}} />
</div>
</div>
<div class="am-alert am-alert-secondary" data-am-alert>
<div class="am-form-group am-form-file">
<label class="block">广告2-图片<span class="am-form-group-label-tips">建议290像数X150像数</span></label>
<ul class="plug-file-upload-view plugins-ad2_images-view" data-form-name="ad2_images" data-max-number="1" data-delete="0" data-dialog-type="images">
<li>
<input type="text" name="ad2_images" value="{{if !empty($data['ad2_images_old'])}}{{$data.ad2_images_old}}{{/if}}" data-validation-message="请上传图片" required />
<img src="{{if !empty($data['ad2_images'])}}{{$data.ad2_images}}{{else /}}{{$attachment_host}}/static/plugins/images/homemiddleadv/default-images.jpg{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.plugins-ad2_images-view">+上传图片</div>
</div>
<div class="am-form-group">
<label>广告2-链接地址<span class="am-form-group-label-tips">带http://或https://</span></label>
<input type="url" placeholder="广告2-链接地址" name="ad2_url" data-validation-message="广告2-链接地址格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.ad2_url}}"{{/if}} />
</div>
</div>
<div class="am-alert am-alert-secondary" data-am-alert>
<div class="am-form-group am-form-file">
<label class="block">广告3-图片<span class="am-form-group-label-tips">建议290像数X150像数</span></label>
<ul class="plug-file-upload-view plugins-ad3_images-view" data-form-name="ad3_images" data-max-number="1" data-delete="0" data-dialog-type="images">
<li>
<input type="text" name="ad3_images" value="{{if !empty($data['ad3_images_old'])}}{{$data.ad3_images_old}}{{/if}}" data-validation-message="请上传图片" required />
<img src="{{if !empty($data['ad3_images'])}}{{$data.ad3_images}}{{else /}}{{$attachment_host}}/static/plugins/images/homemiddleadv/default-images.jpg{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.plugins-ad3_images-view">+上传图片</div>
</div>
<div class="am-form-group">
<label>广告3-链接地址<span class="am-form-group-label-tips">带http://或https://</span></label>
<input type="url" placeholder="广告3-链接地址" name="ad3_url" data-validation-message="广告3-链接地址格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.ad3_url}}"{{/if}} />
</div>
</div>
<div class="am-alert am-alert-secondary" data-am-alert>
<div class="am-form-group am-form-file">
<label class="block">广告4-图片<span class="am-form-group-label-tips">建议290像数X150像数</span></label>
<ul class="plug-file-upload-view plugins-ad4_images-view" data-form-name="ad4_images" data-max-number="1" data-delete="0" data-dialog-type="images">
<li>
<input type="text" name="ad4_images" value="{{if !empty($data['ad4_images_old'])}}{{$data.ad4_images_old}}{{/if}}" data-validation-message="请上传图片" required />
<img src="{{if !empty($data['ad4_images'])}}{{$data.ad4_images}}{{else /}}{{$attachment_host}}/static/plugins/images/homemiddleadv/default-images.jpg{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.plugins-ad4_images-view">+上传图片</div>
</div>
<div class="am-form-group">
<label>广告4-链接地址<span class="am-form-group-label-tips">带http://或https://</span></label>
<input type="url" placeholder="广告4-链接地址" name="ad4_url" data-validation-message="广告4-链接地址格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.ad4_url}}"{{/if}} />
</div>
</div>
<div class="am-form-group">
<label>是否新窗口打开</label>
<div>
{{foreach $is_whether_list as $v}}
<label class="am-radio-inline m-r-10">
<input type="radio" name="is_new_window_open" value="{{$v.id}}" {{if isset($data['is_new_window_open']) and $data['is_new_window_open'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_new_window_open']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
</div>
<div class="am-form-group">
<label>有效时间<span class="am-form-group-label-tips">留空则不限制</span></label>
<div class="form-date">
<input type="text" autocomplete="off" name="time_start" class="Wdate am-radius" placeholder="起始时间" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if !empty($data['time_start'])}}value="{{$data.time_start}}"{{/if}}/>
<span>~</span>
<input type="text" autocomplete="off" class="Wdate am-radius" placeholder="结束时间" name="time_end" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if !empty($data['time_end'])}}value="{{$data.time_end}}"{{/if}}/>
</div>
</div>
<div class="am-form-group am-form-group-refreshing">
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm w100" data-am-loading="{loadingText:'处理中...'}">保存</button>
</div>
</form>
<!-- form end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{if !empty($data_list)}}
<ul data-am-widget="gallery" class="am-gallery am-avg-sm-2 am-avg-md-4 am-avg-lg-4 am-gallery-overlay am-container" data-am-gallery="{}">
{{foreach $data_list as $k=>$v}}
<li>
<div class="am-gallery-item">
<a href="{{if empty($v['url'])}}javascript:;{{else /}}{{$v.url}}{{/if}}" {{if isset($v['is_new_window_open']) and $v['is_new_window_open'] eq 1}}target="_blank"{{/if}}>
<img src="{{$v.images_url}}" alt="{{$v.name}}" />
</a>
</div>
</li>
{{/foreach}}
</ul>
{{/if}}
\ No newline at end of file
......@@ -66,7 +66,7 @@ class PluginsService
cache($key, $data);
}
}
return DataReturn('处理成功', 0, $data);
return DataReturn('处理成功', 0, empty($data) ? [] : $data);
}
/**
......
......@@ -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
......@@ -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;
......
/**
* 首页
*/
.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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册