File: /www/wwwroot/www.xxlht.com/application/admin/template/download/edit.htm
{include file="public/layout" /}
<link rel="stylesheet" type="text/css" href="__PUBLIC__/plugins/webuploader/webuploader.css">
<script type="text/javascript" src="__PUBLIC__/plugins/laydate/laydate.js"></script>
{load href="__PUBLIC__/plugins/Ueditor/ueditor.config.js" /}
{load href="__PUBLIC__/plugins/Ueditor/ueditor.all.min.js" /}
{load href="__PUBLIC__/plugins/Ueditor/lang/zh-cn/zh-cn.js" /}
<body style="background-color: #FFF; overflow: auto;min-width:auto;">
<div id="toolTipLayer" style="position: absolute; z-index: 9999; display: none; visibility: visible; left: 95px; top: 573px;"></div>
<div id="append_parent"></div>
<div id="ajaxwaitid"></div>
<div class="page" style="min-width:auto;box-shadow:none;">
<div class="fixed-bar">
<div class="item-title"><a class="back" href="javascript:history.back();" title="返回列表"><i class="fa fa-chevron-left"></i></a>
<div class="subject">
<h3>编辑下载</h3>
<h5></h5>
</div>
<ul class="tab-base nc-row">
<li><a href="javascript:void(0);" data-index='1' class="tab current"><span>常规选项</span></a></li>
<li><a href="javascript:void(0);" data-index='2' class="tab"><span>SEO选项</span></a></li>
<li><a href="javascript:void(0);" data-index='3' class="tab"><span>其他选项</span></a></li>
</ul>
</div>
</div>
<form class="form-horizontal" id="post_form" action="{:url('Download/edit')}" method="post">
<!-- 常规信息 -->
<div class="ncap-form-default tab_div_1">
<dl class="row">
<dt class="tit">
<label for="title"><em>*</em>标题</label>
</dt>
<dd class="opt">
<input type="text" name="title" value="{$field.title}" id="title" class="input-txt" maxlength="100">
<span class="err"></span>
<p class="notic"></p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label for="title"><em>*</em>所属栏目</label>
</dt>
<dd class="opt">
<select name="typeid" id="typeid">
{$arctype_html}
</select>
<span class="err"></span>
<p class="notic"></p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>文档属性</label>
</dt>
<dd class="opt">
<label><input type="checkbox" name="is_head" value="1" {if condition="$field.is_head == 1"}checked{/if}>头条[h]</label>
<label><input type="checkbox" name="is_recom" value="1" {if condition="$field.is_recom == 1"}checked{/if}>推荐[c]</label>
<label><input type="checkbox" name="is_special" value="1" {if condition="$field.is_special == 1"}checked{/if}>特荐[a]</label>
<label><input type="checkbox" name="is_b" value="1" {if condition="$field.is_b == 1"}checked{/if}>加粗[b]</label>
<label><input type="checkbox" name="is_litpic" value="1" {if condition="$field.is_litpic == 1"}checked{/if}>图片[p]</label>
<label><input type="checkbox" name="is_jump" value="1" {if condition="$field.is_jump == 1"}checked{/if}>跳转[j]</label>
<span class="err"></span>
<p class="notic"></p>
</dd>
</dl>
<dl class="row {if condition="$field.is_jump != 1"}none{/if} dl_jump">
<dt class="tit">
<label>跳转网址</label>
</dt>
<dd class="opt">
<input type="text" value="{$field.jumplinks}" name="jumplinks" id="jumplinks" class="input-txt" placeholder="http://">
<span class="err"></span>
<p class="notic">请输入完整的URL网址(包含http或https),设置后访问该条信息将直接跳转到设置的网址</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>缩略图</label>
</dt>
<dd class="opt">
<div class="input-file-show div_litpic_local" {neq name="$field.is_remote" value="0"}style="display: none;"{/neq}>
<span class="show">
<a id="img_a" target="_blank" class="nyroModal" rel="gal" href="{$field.litpic_local|default='javascript:void(0);'}">
<i id="img_i" class="fa fa-picture-o" {notempty name="$field.litpic_local"}onmouseover="layer_tips=layer.tips('<img src={$field.litpic_local} class=\'layer_tips_img\'>',this,{tips: [1, '#fff']});"{/notempty} onmouseout="layer.close(layer_tips);"></i>
</a>
</span>
<span class="type-file-box">
<input type="text" id="litpic_local" name="litpic_local" value="{$field.litpic_local|default=''}" class="type-file-text">
<input type="button" name="button" id="button1" value="选择上传..." class="type-file-button">
<input class="type-file-file" onClick="GetUploadify(1,'','allimg','img_call_back')" size="30" hidefocus="true" nc_type="change_site_logo"
title="点击前方预览图可查看大图,点击按钮选择文件并提交表单后上传生效">
</span>
</div>
<input type="text" id="litpic_remote" name="litpic_remote" value="{$field.litpic_remote|default=''}" placeholder="http://" class="input-txt" onKeyup="keyupRemote(this, 'litpic');" {neq name="$field.is_remote" value="1"}style="display: none;"{/neq}>
<label><input type="checkbox" name="is_remote" id="is_remote" value="1" {eq name="$field.is_remote" value="1"}checked="checked"{/eq} onClick="clickRemote(this, 'litpic');">远程图片</label>
<span class="err"></span>
<p class="notic">当没有手动上传图片时候,会自动提取正文的第一张图片作为缩略图</p>
<a href="javascript:void(0);" onclick="system_thumb();" class="ncap-btn ncap-btn-green">缩略图配置</a>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>下载限制</label>
</dt>
<dd class="opt">
<select name="arc_level_id" id="arc_level_id">
<option value="0">不限会员</option>
{volist name="users_level" id="vo"}
<option value="{$vo.level_id}" {eq name='$vo.level_id' value='$field.arc_level_id'} selected {/eq}>{$vo.level_name}</option>
{/volist}
</select>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>上传文件</label>
</dt>
<dd class="opt">
<div class="layui-upload">
<button type="button" class="layui-btn layui-btn-normal" id="buttonList">选择多文件</button>
<label><input type="checkbox" value="1" {eq name='$is_remote_file' value='1'}checked{/eq} onclick="ClickRemoteFile(this);">远程地址</label>
<a href="javascript:void(0);" data-url="{:url('Download/template_set')}" onclick="TemplateSet(this);" {neq name='$is_remote_file' value='1'} style="display: none;" {/neq} id='TemplateSet'>[参数设置]</a>
<div class="layui-upload-list">
<table class="layui-table">
<thead>
<tr>
<th>文件名</th>
<th>大小</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody id="demoList">
{volist name="downfile_list" id="vo"}
{empty name='$vo.is_remote'}
<tr>
<td><a href="{$vo.file_url}" target="_blank">{$vo.file_name}</a></td>
<td>{$vo.file_size|format_bytes=###}</td>
<td><span style="color: #5FB878;">上传成功</span></td>
<td>
<span class="layui-btn layui-btn-xs layui-btn-danger" onclick="DeleteFile(this)">移除</span>
<input type="hidden" name="fileupload[file_url][]" value="{$vo.file_url}">
<input type="hidden" name="fileupload[file_mime][]" value="{$vo.file_mime}">
<input type="hidden" name="fileupload[file_name][]" value="{$vo.file_name}">
<input type="hidden" name="fileupload[file_ext][]" value="{$vo.file_ext}">
<input type="hidden" name="fileupload[file_size][]" value="{$vo.file_size}">
<input type="hidden" name="fileupload[uhash][]" value="{$vo.uhash}">
<input type="hidden" name="fileupload[md5file][]" value="{$vo.md5file}">
</td>
</tr>
{/empty}
{/volist}
</tbody>
</table>
</div>
<div {neq name='$is_remote_file' value='1'} style="display: none;" {/neq} id='ClickRemoteFile'>
<div id='Template'>
{empty name="$is_remote_file"}
<div class="template_div">
远程地址1:<input type="text" name="remote_file[]" value="" placeholder="http://" style="width: 50%;">
{volist name="attr_field" id="vo"}
<span class="ey_{$vo.field_name}">
<span class="title_{$vo.field_name}">{$vo.field_title}</span>:<input type="text" name="{$vo.field_name}[]" style="width: 7%;">
</span>
{/volist}
</div>
<div class="template_div">
远程地址2:<input type="text" name="remote_file[]" value="" placeholder="http://" style="width: 50%;">
{volist name="attr_field" id="vo"}
<span class="ey_{$vo.field_name}">
<span class="title_{$vo.field_name}">{$vo.field_title}</span>:<input type="text" name="{$vo.field_name}[]" style="width: 7%;">
</span>
{/volist}
</div>
{else /}
{volist name="$downfile_list" id="vo"}
{eq name='$vo.is_remote' value='1'}
<div class="template_div">
远程地址{php} static $num = 1; echo $num++; {/php}:<input type="text" name="remote_file[]" value="{$vo.file_url}" placeholder="http://" style="width: 50%;">
{volist name="attr_field" id="f_vo"}
<span class="ey_{$f_vo.field_name}">
<span class="title_{$f_vo.field_name}">{$f_vo.field_title}</span>:<input type="text" name="{$f_vo.field_name}[]" value="{$vo[$f_vo.field_name]}" style="width: 7%;">
</span>
{/volist}
</div>
{/eq}
{/volist}
{/empty}
</div>
<a onclick="GetTemplateAddr(2);">
更多远程地址
</a>
</div>
<input type="hidden" name="fileName" id="fileName" value="{$file_name}" style="width: 100%;">
<button style="display:none;" type="button" class="layui-btn" id="buttonListAction">批量重传</button>
</div>
</dd>
</dl>
{include file="field/addonextitem" /}
</div>
<!-- 常规信息 -->
<!-- SEO参数 -->
<div class="ncap-form-default tab_div_2" style="display:none;">
<dl class="row">
<dt class="tit">
<label>TAG标签</label>
</dt>
<dd class="opt">
<input type="text" value="{$field.tags}" name="tags" id="tags" class="input-txt">
<a href="javascript:void(0);" onclick="tags_list(this);" class="ncap-btn ncap-btn-green">管理</a>
<span class="err"></span>
<p class="notic">多个标签用英文逗号(,)分开,单个标签小于12字节</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label for="seo_title">SEO标题</label>
</dt>
<dd class="opt">
<input type="text" value="{$field.seo_title}" name="seo_title" id="seo_title" class="input-txt">
<p class="notic">一般不超过80个字符,为空时系统自动构成,可以到 <a href="{:url('Seo/index', array('inc_type'=>'seo'))}">SEO设置 - SEO基础</a> 中设置构成规则。</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>SEO关键词</label>
</dt>
<dd class="opt">
<textarea rows="5" cols="60" id="seo_keywords" name="seo_keywords" style="height:40px;">{$field.seo_keywords}</textarea>
<span class="err"></span>
<p class="notic">一般不超过100个字符,多个关键词请用英文逗号(,)隔开,建议3到5个关键词。</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>SEO描述</label>
</dt>
<dd class="opt">
<textarea rows="5" cols="60" id="seo_description" name="seo_description" style="height:60px;">{$field.seo_description}</textarea>
<span class="err"></span>
<p class="notic">一般不超过200个字符,不填写时系统自动提取正文的前200个字符</p>
</dd>
</dl>
</div>
<!-- SEO参数 -->
<!-- 其他参数 -->
<div class="ncap-form-default tab_div_3" style="display:none;">
<dl class="row">
<dt class="tit">
<label for="author">作者</label>
</dt>
<dd class="opt">
<input type="text" value="{$field.author}" name="author" id="author" class="input-txt">
<a href="javascript:void(0);" onclick="set_author();" class="ncap-btn ncap-btn-green">设置</a>
<p class="notic">设置作者默认名称(将同步至管理员笔名)</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>浏览量</label>
</dt>
<dd class="opt">
<input type="text" value="{$field.click}" name="click" id="click" class="input-txt">
<span class="err"></span>
<p class="notic"></p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>下载量</label>
</dt>
<dd class="opt">
<input type="text" value="{$field.downcount|default='0'}" name="downcount" id="downcount" class="input-txt">
<span class="err"></span>
<p class="notic"></p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>阅读权限</label>
</dt>
<dd class="opt">
<select name="arcrank" id="arcrank">
{volist name="arcrank_list" id="vo"}
<option value="{$vo.rank}" {eq name="vo.rank" value="$field.arcrank"}selected{/eq}>{$vo.name}</option>
{/volist}
</select>
<span class="err"></span>
<p class="notic"></p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label for="articleForm">发布时间</label>
</dt>
<dd class="opt">
<input type="text" class="input-txt" id="add_time" name="add_time" value="{$field.add_time|date='Y-m-d H:i:s',###}" autocomplete="off">
<span class="add-on input-group-addon">
<i class="glyphicon glyphicon-calendar fa fa-calendar"></i>
</span>
<span class="err"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label for="tempview">文档模板</label>
</dt>
<dd class="opt">
<select name="tempview" id="tempview">
{volist name='$templateList' id='vo'}
<option value="{$vo}" {eq name='$vo' value='$tempview'}selected{/eq}>{$vo}</option>
{/volist}
</select>
<input type="hidden" name="type_tempview" value="{$tempview}" />
<span class="err"></span>
</dd>
</dl>
<dl class="row" {neq name='$seo_pseudo' value='2'}style="display: none;"{/neq}>
<dt class="tit">
<label>自定义文件名</label>
</dt>
<dd class="opt">
<input type="text" value="{$field.htmlfilename}" name="htmlfilename" id="htmlfilename" style="width: 120px;" onkeyup="this.value=this.value.replace(/[^\w\-]/g,'');" onpaste="this.value=this.value.replace(/[^\w\-]/g,'');">.html
<span class="err"></span>
<p class="notic">自定义文件名可由字母/数字/'_'/'-'等符号组成</p>
</dd>
</dl>
<!-- <dl class="row">
<dt class="tit">
<label>排序号</label>
</dt>
<dd class="opt">
<input type="text" value="{$field.sort_order}" name="sort_order" id="sort_order" class="input-txt">
<span class="err"></span>
<p class="notic">越小越靠前</p>
</dd>
</dl> -->
</div>
<!-- 其他参数 -->
<div class="ncap-form-default">
<div class="bot">
<input type="hidden" name="gourl" value="{$gourl}">
<input type="hidden" name="aid" value="{$field.aid}">
<a href="JavaScript:void(0);" onclick="check_submit();" class="ncap-btn-big ncap-btn-green" id="submitBtn">确认提交</a>
</div>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/plugins/webuploader/webuploader.min.js"></script>
<script type="text/javascript">
var uploader_swf = '__PUBLIC__/plugins/webuploader/Uploader.swf';
// var server_url="{:url('Ueditor/downFileUp',array('savepath'=>'soft','nowfilename'=>-1))}";
var server_url = "{:url('Ueditor/DownloadUploadFile',array('savepath'=>'soft'))}";
</script>
<script src="__SKIN__/js/getting-started.js"></script>
<script type="text/javascript">
// 远程/本地上传文件切换
function ClickRemoteFile(obj)
{
if ($(obj).is(':checked')) {
$('#ClickRemoteFile').show();
$('#TemplateSet').show();
} else {
$('#ClickRemoteFile').hide();
$('#TemplateSet').hide();
}
}
// 远程地址参数设置
function TemplateSet(th){
var url = $(th).attr('data-url');
//iframe窗
layer.open({
type: 2,
title: '参数设置',
fixed: true, //不固定
shadeClose: false,
shade: 0.3,
maxmin: true, //开启最大化最小化按钮
area: ['40%', '60%'],
content: url
});
}
// 获取模板属性数据
function GetTemplateAddr(num = 1){
$.ajax({
url: "{:url('Download/get_template', ['_ajax'=>1])}",
data: {num:num},
type:'post',
dataType:'json',
success: function(res){
// 拼装模板属性并追加
AddTemplateAddr(num,res.data);
},
});
}
// 删除对应的文件及文件信息
function DeleteFile(obj){
$(obj).parent().parent().remove();
}
// 拼装模板属性并追加
function AddTemplateAddr(num = 1,data = ''){
// 获取指定div数量
var SerialNum = $('#Template div').length;
// 初始化数组
var html_div = [];
// 拼装html
if (num > 1) {
for (var i = 0; i < num; i++) {
SerialNum++;
html_div +=
[
'<div class="template_div">'+
'远程地址'+SerialNum+':<input type="text" name="remote_file[]" value="" placeholder="http://" style="width: 50%;"> '
];
if (data) {
for (var j = 0; j < data.length; j++) {
html_div +=
[
'<span class="ey_'+data[j]['field_name']+'"> '+
'<span class="title_'+data[j]['field_name']+'"> '+data[j]['field_title']+'</span>:<input type="text" name="'+data[j]['field_name']+'[]" style="width: 7%;">'+
'</span>'
];
}
}
html_div +=
[
'</div>'
];
}
}else{
SerialNum++;
html_div +=
[
'<div class="template_div">'+
'远程地址'+SerialNum+':<input type="text" name="remote_file[]" value="" placeholder="http://" style="width: 50%;">'
];
if (data) {
for (var j = 0; j < data.length; j++) {
html_div +=
[
'<span class="ey_'+data[j]['field_name']+'">'+
'<span class="title_'+data[j]['field_name']+'"> '+data[j]['field_title']+'</span>:<input type="text" name="'+data[j]['field_name']+'[]" style="width: 7%;">'+
'</span>'
];
}
}
html_div +=
[
'</div>'
];
}
// 追加html
$('#Template').append(html_div);
}
// 文件上传JS
layui.use('upload', function(){
var $ = layui.jquery,upload = layui.upload;
// 多文件列表示例
var demoListView = $('#demoList'),uploadListIns = upload.render({
elem: '#buttonList',
url: server_url,
accept: 'file',
multiple: true,
auto: true,
bindAction: '#buttonListAction',
choose: function(obj){
// 将每次选择的文件追加到文件队列
var files = this.files = obj.pushFile();
// 读取本地文件
obj.preview(function(index, file, result){
var tr = $(
[
'<tr id="upload-'+ index +'">',
'<td>'+ file.name +'</td>',
'<td>'+ (file.size/1014).toFixed(1) +' KB</td>',
'<td>等待上传</td>',
'<td>',
// '<span class="layui-btn layui-btn-xs demo-reload layui-hide">重传</span>',
'<span class="layui-btn layui-btn-xs layui-btn-danger demo-delete">移除</span>',
'</td>',
'</tr>'
].join(''));
// 单个重传
tr.find('.demo-reload').on('click', function(){
obj.upload(index, file);
});
// 移除
tr.find('.demo-delete').on('click', function(){
// 移除对应的文件
delete files[index];
tr.remove();
// 清空 input file 值,以免移除后出现同名文件不可选
uploadListIns.config.elem.next()[0].value = '';
});
demoListView.append(tr);
});
},
done: function(res, index, upload){
if(res.code == 0){
// 上传成功
// 上传成功
var html = '';
html += '<input type="hidden" name="fileupload[file_url][]" value="'+res.file_url+'">';
html += '<input type="hidden" name="fileupload[file_mime][]" value="'+res.file_mime+'">';
html += '<input type="hidden" name="fileupload[file_name][]" value="'+res.file_name+'">';
html += '<input type="hidden" name="fileupload[file_ext][]" value="'+res.file_ext+'">';
html += '<input type="hidden" name="fileupload[file_size][]" value="'+res.file_size+'">';
html += '<input type="hidden" name="fileupload[uhash][]" value="'+res.uhash+'">';
html += '<input type="hidden" name="fileupload[md5file][]" value="'+res.md5file+'">';
var tr = demoListView.find('tr#upload-'+ index),
tds = tr.children();
tds.eq(0).html(res.file_name);
tds.eq(2).html('<span style="color: #5FB878;">'+res.msg+'</span>');
tds.eq(3).html('<span class="layui-btn layui-btn-xs layui-btn-danger" onclick="DeleteFile(this);">移除</span>'+html);
// 清空操作
return delete this.files[index];// 移除文件队列已经上传成功的文件
}
this.error(res, index, upload);
},
error: function(res, index, upload){
var tr = demoListView.find('tr#upload-'+ index),
tds = tr.children();
tds.eq(2).html('<span style="color: #FF5722;">'+res.msg+'</span>');
}
});
});
</script>
<script type="text/javascript">
$(function () {
$('#add_time').layDate();
//选项卡切换列表
$('.tab-base').find('.tab').click(function(){
$('.tab-base').find('.tab').each(function(){
$(this).removeClass('current');
});
$(this).addClass('current');
var tab_index = $(this).data('index');
$(".tab_div_1, .tab_div_2, .tab_div_3").hide();
$(".tab_div_"+tab_index).show();
});
$('input[name=is_jump]').click(function(){
if ($(this).is(':checked')) {
$('.dl_jump').show();
} else {
$('.dl_jump').hide();
}
});
var dftypeid = {$field.typeid|default='0'};
$('#typeid').change(function(){
var current_channel = $(this).find('option:selected').data('current_channel');
if (0 < $(this).val() && {$channeltype} != current_channel) {
showErrorMsg('请选择对应模型的栏目!');
$(this).val(dftypeid);
} else if ({$channeltype} == current_channel) {
layer.closeAll();
}
});
});
function set_author()
{
layer.prompt({
title:'<font color="red">设置作者默认名称</font>'
},
function(val, index){
var admin_id = '{$Think.session.admin_info.admin_id}';
$.ajax({
url: "{:url('Admin/ajax_setfield', ['_ajax'=>1])}",
type: 'POST',
dataType: 'JSON',
data: {id_name:'admin_id',id_value:admin_id,field:'pen_name',value:val},
success: function(res){
if (res.code == 1) {
$('#author').val(val);
layer.msg(res.msg, {icon: 1, time:1000});
} else {
showErrorMsg(res.msg);
return false;
}
},
error: function(e){
showErrorMsg(ey_unknown_error);
return false;
}
});
layer.close(index);
}
);
}
function tags_list(obj)
{
var url = "{:url('Tags/index')}";
//iframe窗
layer.open({
type: 2,
title: 'TAG标签管理',
fixed: true, //不固定
shadeClose: false,
shade: 0.3,
maxmin: true, //开启最大化最小化按钮
area: ['80%', '80%'],
content: url
});
}
function system_thumb()
{
var url = "{:url('System/thumb', ['tabase'=>-1])}";
//iframe窗
var iframes = layer.open({
type: 2,
title: '缩略图配置',
fixed: true, //不固定
shadeClose: false,
shade: 0.3,
content: url
});
layer.full(iframes);
}
// 判断输入框是否为空
function check_submit(){
if($.trim($('input[name=title]').val()) == ''){
showErrorMsg('标题不能为空!');
$('input[name=title]').focus();
return false;
}
if ($('#typeid').val() == 0) {
showErrorMsg('请选择栏目…!');
$('#typeid').focus();
return false;
}
layer_loading('正在处理');
$('#post_form').submit();
}
function img_call_back(fileurl_tmp)
{
$("#litpic_local").val(fileurl_tmp);
$("#img_a").attr('href', fileurl_tmp);
$("#img_i").attr('onmouseover', "layer_tips=layer.tips('<img src="+fileurl_tmp+" class=\\'layer_tips_img\\'>',this,{tips: [1, '#fff']});");
$("input[name=is_litpic]").attr('checked', true); // 自动勾选属性[图片]
}
</script>
{include file="public/footer" /}