|
|
<extend name="Public/base" />
|
|
|
|
|
|
<!-- 子导航 -->
|
|
|
|
|
|
|
|
|
<block name="body">
|
|
|
<script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="cf main-place top_nav_list navtab_list">
|
|
|
{:W('Index/CateGroupTree',array('cate_id'=>I('cate_id')))}
|
|
|
<h3 class="page_title">编辑文章</h3>
|
|
|
<p class="description_text"></p>
|
|
|
</div>
|
|
|
|
|
|
<!-- 标签页导航 -->
|
|
|
<div class="tab-wrap">
|
|
|
<div class="tab_nav stabnav17112 jstabnav ">
|
|
|
<ul>
|
|
|
<volist name=":parse_config_attr($model['field_group'])" id="group">
|
|
|
<li data-tab="tab{$key}" <eq name="key" value="1">class="current"</eq>><a href="javascript:void(0);">{$group}</a></li>
|
|
|
</volist>
|
|
|
</ul></div>
|
|
|
<div class="tab-content tabcon1711 tabcon17112">
|
|
|
<!-- 表单 -->
|
|
|
<form id="form" action="{:U('update')}" method="post" class="form-horizontal form_info_ml">
|
|
|
<!-- 基础文档模型 -->
|
|
|
<volist name=":parse_config_attr($model['field_group'])" id="group">
|
|
|
<div id="tab{$key}" class="tab-pane <eq name="key" value="1">in</eq> tab{$key}">
|
|
|
<table border="0" cellspacing="0" cellpadding="0" style="width:100%;">
|
|
|
<tbody>
|
|
|
<volist name="fields[$key]" id="field">
|
|
|
<if condition="$field['is_show'] == 1 || $field['is_show'] == 3">
|
|
|
<tr class="<eq name='field.type' value='picture'>picbox<else /><eq name='field.type' value='file'>picbox</eq></eq>">
|
|
|
<if condition="$field['title'] eq '标题' || $field['title'] eq '文章内容' || $field['title'] eq '封面'"><td class="l noticeinfo"><eq name='field.title' value='封面'><switch name='Think.get.cate_id'><case value='41' break='0'></case><case value='42' break='0'></case><case value='43' break='0'></case><case value='48' break='0'></case><case value='49' break='0'></case><case value='47'><i class="mustmark" style="margin-left:-7px">*</i></case></switch><else /><i class="mustmark" style="margin-left:-7px">*</i></eq>{$field['title']}</td>
|
|
|
<else/><td class="l noticeinfo">{$field['title']}</td></if>
|
|
|
<td class="r table_radio">
|
|
|
<switch name="field.type">
|
|
|
<case value="num">
|
|
|
<input type="text" class="text input-mid" name="{$field.name}" value="{$data[$field['name']]}">
|
|
|
|
|
|
</case>
|
|
|
<case value="string">
|
|
|
<input type="text" class="text input-large" name="{$field.name}" value="{$data[$field['name']]}">
|
|
|
|
|
|
</case>
|
|
|
<case value="textarea">
|
|
|
<span class="form_textarea"><textarea name="{$field.name}">{$data[$field['name']]}</textarea>
|
|
|
</span>
|
|
|
</case>
|
|
|
<case value="date">
|
|
|
<div class="form_input"><input type="text" name="{$field.name}" class="text date" value="{$data[$field['name']]|date='Y-m-d',###}" placeholder="请选择日期" />
|
|
|
</div>
|
|
|
</case>
|
|
|
<case value="datetime">
|
|
|
<div class="form_input"><input type="text" name="{$field.name}" class="text time" value="{:set_show_time($data[$field['name']],'','other')}" placeholder="请选择时间" />
|
|
|
</div>
|
|
|
</case>
|
|
|
<case value="bool">
|
|
|
<span class="form_select"><select name="{$field.name}">
|
|
|
<volist name=":parse_field_attr($field['extra'])" id="vo">
|
|
|
<option value="{$key}" <eq name="data[$field['name']]" value="$key">selected</eq>>{$vo}</option>
|
|
|
</volist>
|
|
|
</select></span>
|
|
|
</case>
|
|
|
<case value="select">
|
|
|
<if condition="$field.name eq self_id">
|
|
|
<span class="form_select"><select name="{$field.name}">
|
|
|
<option value="" <if condition="$data[$field['name']] eq ''"> selected="selected"</if>>选择所属游戏</option>
|
|
|
<volist name=":get_list_data('selfbuilt')" id="vo">
|
|
|
<option value="{$vo.id}" <eq name="data[$field['name']]" value="$vo['id']">selected</eq>>{:get_gamename($vo['gameid'])}</option>
|
|
|
</volist>
|
|
|
</select></span>
|
|
|
<else/>
|
|
|
<span class="form_select"><select name="{$field.name}">
|
|
|
<volist name=":parse_field_attr($field['extra'])" id="vo">
|
|
|
<option value="{$key}" <eq name="data[$field['name']]" value="$key">selected</eq>>{$vo}</option>
|
|
|
</volist>
|
|
|
</select></span>
|
|
|
</if>
|
|
|
</case>
|
|
|
<case value="radio">
|
|
|
|
|
|
<span class="form_radio">
|
|
|
<volist name=":parse_field_attr($field['extra'])" id="vo">
|
|
|
<label>
|
|
|
<input type="radio" value="{$key}" name="{$field.name}" <eq name="data[$field['name']]" value="$key">checked="checked"</eq>> {$vo}
|
|
|
</label>
|
|
|
</volist></span>
|
|
|
|
|
|
</case>
|
|
|
<case value="checkbox">
|
|
|
|
|
|
<span class="form_checkbox">
|
|
|
<volist name=":parse_field_attr($field['extra'])" id="vo">
|
|
|
<label>
|
|
|
<input type="checkbox" value="{$key}" name="{$field.name}[]" <if condition="check_document_position($data[$field['name']],$key)">checked="checked"</if>> {$vo}
|
|
|
</label>
|
|
|
</volist>
|
|
|
</div>
|
|
|
</case>
|
|
|
<case value="editor">
|
|
|
<span class="form_textarea">
|
|
|
<textarea name="{$field.name}">{$data[$field['name']]}</textarea>
|
|
|
{:hook('adminArticleEdit', array('name'=>$field['name'],'value'=>$data[$field['name']]))}
|
|
|
</span>
|
|
|
</case>
|
|
|
<case value="picture"><div class="form_main form_picture">
|
|
|
<div class="controls">
|
|
|
<input type="file" id="upload_picture_{$field.name}">
|
|
|
<input type="hidden" name="{$field.name}" id="cover_id_{$field.name}" value="{$data[$field['name']]}"/>
|
|
|
<div class="upload-img-box">
|
|
|
<notempty name="data[$field['name']]">
|
|
|
<div class="upload-pre-item">
|
|
|
<span class="placeholder-graphic placeholder-graphic_{:strtolower($field['name'])}"><img src="{$data[$field['name']]|get_cover='path'}"/></span>
|
|
|
</div>
|
|
|
</notempty>
|
|
|
</div>
|
|
|
</div>
|
|
|
<script type="text/javascript">
|
|
|
//上传图片
|
|
|
/* 初始化上传插件 */
|
|
|
$("#upload_picture_{$field.name}").uploadify({
|
|
|
"height" : 30,
|
|
|
"swf" : "__STATIC__/uploadify/uploadify.swf",
|
|
|
"fileObjName" : "download",
|
|
|
"buttonText" : "上传图片",
|
|
|
"uploader" : "{:U('File/uploadPicture',array('session_id'=>session_id(),'flag'=>true))}",
|
|
|
"width" : 120,
|
|
|
'removeTimeout' : 1,
|
|
|
'fileTypeExts' : '*.jpg; *.jpeg; *.png; *.gif;',
|
|
|
"onUploadSuccess" : uploadPicture{$field.name},
|
|
|
'onFallback' : function() {
|
|
|
alert('未检测到兼容版本的Flash.');
|
|
|
}
|
|
|
});
|
|
|
function uploadPicture{$field.name}(file, data){
|
|
|
var data = $.parseJSON(data);
|
|
|
var src = '';
|
|
|
if(data.status){
|
|
|
$("#cover_id_{$field.name}").val(data.id);
|
|
|
src = data.url || '__ROOT__' + data.path
|
|
|
$("#cover_id_{$field.name}").parent().find('.upload-img-box').html(
|
|
|
'<div class="upload-pre-item"><span class="placeholder-graphic placeholder-graphic_{:strtolower($field['name'])}"><img src="' + src + '"/></span></div>'
|
|
|
);
|
|
|
} else {
|
|
|
updateAlert(data.info);
|
|
|
setTimeout(function(){
|
|
|
$('#top-alert').find('button').click();
|
|
|
$(that).removeClass('disabled').prop('disabled',false);
|
|
|
},1500);
|
|
|
}
|
|
|
}
|
|
|
</script></div>
|
|
|
</case>
|
|
|
<case value="file">
|
|
|
<div class="form_main form_file">
|
|
|
<div class="controls">
|
|
|
<input type="file" id="upload_file_{$field.name}">
|
|
|
<input type="hidden" name="{$field.name}" value="{:think_encrypt(json_encode(get_table_field($data[$field['name']],'id','','File')))}"/>
|
|
|
<div class="upload-img-box">
|
|
|
<present name="data[$field['name']]">
|
|
|
<div class="upload-pre-file"><span class="upload_icon_all"></span>{$data[$field['name']]|get_table_field=###,'id','name','File'}</div>
|
|
|
</present>
|
|
|
</div>
|
|
|
</div>
|
|
|
<script type="text/javascript">
|
|
|
//上传图片
|
|
|
/* 初始化上传插件 */
|
|
|
$("#upload_file_{$field.name}").uploadify({
|
|
|
"height" : 30,
|
|
|
"swf" : "__STATIC__/uploadify/uploadify.swf",
|
|
|
"fileObjName" : "download",
|
|
|
"buttonText" : "上传附件",
|
|
|
"uploader" : "{:U('File/upload',array('session_id'=>session_id(),'flag'=>true))}",
|
|
|
"width" : 120,
|
|
|
'removeTimeout' : 1,
|
|
|
"onUploadSuccess" : uploadFile{$field.name},
|
|
|
'onFallback' : function() {
|
|
|
alert('未检测到兼容版本的Flash.');
|
|
|
}
|
|
|
});
|
|
|
function uploadFile{$field.name}(file, data){
|
|
|
var data = $.parseJSON(data);
|
|
|
if(data.status){
|
|
|
var name = "{$field.name}";
|
|
|
$("input[name="+name+"]").val(data.data);
|
|
|
$("input[name="+name+"]").parent().find('.upload-img-box').html(
|
|
|
"<div class=\"upload-pre-file\"><span class=\"upload_icon_all\"></span>" + data.info + "</div>"
|
|
|
);
|
|
|
} else {
|
|
|
updateAlert(data.info);
|
|
|
setTimeout(function(){
|
|
|
$('#top-alert').find('button').click();
|
|
|
$(that).removeClass('disabled').prop('disabled',false);
|
|
|
},1500);
|
|
|
}
|
|
|
}
|
|
|
</script></div>
|
|
|
</case>
|
|
|
<default/>
|
|
|
<input type="text" class="text input-large" name="{$field.name}" value="{$data[$field['name']]}">
|
|
|
|
|
|
</switch>
|
|
|
|
|
|
<span class="notice-text"><notempty name="field['remark']">({$field['remark']})</notempty></span>
|
|
|
</td>
|
|
|
</tr>
|
|
|
</if>
|
|
|
</volist>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
</volist>
|
|
|
|
|
|
<div class="form-item cf">
|
|
|
<button class="submit_btn ajax-post mlspacing" id="submit" type="submit" target-form="form-horizontal">确 定</button>
|
|
|
<a style="display: inline-table" class="submit_btn" href="{$Think.cookie.__forward__}">返 回</a>
|
|
|
<if condition="C('OPEN_DRAFTBOX') and (ACTION_NAME eq 'add' or $data['status'] eq 3)">
|
|
|
<button class="submit_btn" url="{:U('article/autoSave')}" target-form="form-horizontal" id="autoSave">
|
|
|
存草稿
|
|
|
</button>
|
|
|
</if>
|
|
|
<input type="hidden" name="id" value="{$data.id|default=''}"/>
|
|
|
<input type="hidden" name="pid" value="{$data.pid|default=''}"/>
|
|
|
<input type="hidden" name="model_id" value="{$data.model_id|default=''}"/>
|
|
|
<input type="hidden" name="group_id" value="{$data.group_id|default=''}"/>
|
|
|
<input type="hidden" name="category_id" value="{$data.category_id|default=''}">
|
|
|
</div>
|
|
|
</form>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="common_settings">
|
|
|
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
|
|
|
<form class="addShortcutIcon">
|
|
|
<input type="hidden" name="title" value="{$Think.const.M_TITLE}">
|
|
|
<input type="hidden" name="url" value="{$Think.const.M_URL}">
|
|
|
</form>
|
|
|
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='Think.const.COMMONSET'>已添加<else />添加至常用设置</notempty></span></a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
</block>
|
|
|
|
|
|
<block name="script">
|
|
|
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
|
|
|
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
|
|
|
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
|
|
|
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
|
|
|
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
|
|
|
<script type="text/javascript">
|
|
|
|
|
|
Think.setValue("type", {$data.type|default='""'});
|
|
|
Think.setValue("display", {$data.display|default=0});
|
|
|
highlight_subnav('{:get_highlight_subnav($_GET["cate_id"],"Article/index","cate_id")}');
|
|
|
$('#submit').click(function(){
|
|
|
$('#form').submit();
|
|
|
});
|
|
|
|
|
|
$(function(){
|
|
|
$('.date').datetimepicker({
|
|
|
format: 'yyyy-mm-dd',
|
|
|
language:"zh-CN",
|
|
|
minView:2,
|
|
|
autoclose:true
|
|
|
});
|
|
|
$('.time').datetimepicker({
|
|
|
language:"zh-CN",
|
|
|
hour: 13,
|
|
|
minute: 15
|
|
|
});
|
|
|
showTab();
|
|
|
|
|
|
<if condition="C('OPEN_DRAFTBOX') and (ACTION_NAME eq 'add' or $data['status'] eq 3)">
|
|
|
//保存草稿
|
|
|
var interval;
|
|
|
$('#autoSave').click(function(){
|
|
|
var target_form = $(this).attr('target-form');
|
|
|
var target = $(this).attr('url')
|
|
|
var form = $('.'+target_form);
|
|
|
var query = form.serialize();
|
|
|
var that = this;
|
|
|
|
|
|
$(that).addClass('disabled').attr('autocomplete','off').prop('disabled',true);
|
|
|
$.post(target,query).success(function(data){
|
|
|
if (data.status==1) {
|
|
|
updateAlert(data.info ,'alert-success');
|
|
|
$('input[name=id]').val(data.data.id);
|
|
|
}else{
|
|
|
updateAlert(data.info);
|
|
|
}
|
|
|
setTimeout(function(){
|
|
|
$('#top-alert').find('button').click();
|
|
|
$(that).removeClass('disabled').prop('disabled',false);
|
|
|
},1500);
|
|
|
})
|
|
|
|
|
|
//重新开始定时器
|
|
|
clearInterval(interval);
|
|
|
autoSaveDraft();
|
|
|
return false;
|
|
|
});
|
|
|
|
|
|
//Ctrl+S保存草稿
|
|
|
$('body').keydown(function(e){
|
|
|
if(e.ctrlKey && e.which == 83){
|
|
|
$('#autoSave').click();
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//每隔一段时间保存草稿
|
|
|
function autoSaveDraft(){
|
|
|
interval = setInterval(function(){
|
|
|
//只有基础信息填写了,才会触发
|
|
|
var title = $('input[name=title]').val();
|
|
|
var name = $('input[name=name]').val();
|
|
|
var des = $('textarea[name=description]').val();
|
|
|
if(title != '' || name != '' || des != ''){
|
|
|
$('#autoSave').click();
|
|
|
}
|
|
|
}, 1000*parseInt({:C('DRAFT_AOTOSAVE_INTERVAL')}));
|
|
|
}
|
|
|
autoSaveDraft();
|
|
|
|
|
|
</if>
|
|
|
|
|
|
});
|
|
|
</script>
|
|
|
</block>
|