You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

202 lines
8.9 KiB
HTML

5 years ago
<extend name="Public/base" />
<block name="style">
<link rel="stylesheet" href="__JS__/codemirror/codemirror.css">
<link rel="stylesheet" href="__JS__/codemirror/theme/{:C('codemirror_theme')}.css">
<style>
.CodeMirror,#preview_window{
width:700px;
height:500px;
}
#preview_window.loading{
background: url('__STATIC__/thinkbox/skin/default/tips_loading.gif') no-repeat center;
}
#preview_window textarea{
display: none;
}
</style>
</block>
<block name="body">
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">新增插件</h3>
<p class="description_text"></p>
</div>
<div class="tab-content tabcon1711 tabcon17112">
<!-- 表单 -->
<form id="form" action="{:U('build')}" method="post" class="form-horizontal form_info_ml doc-modal-form">
<ul class="form_info tabul1711 form_info_addons_create">
<li><label>标识名</label><div class="form_main"><input name="info[name]" value="Example" type="text" class=""></div><i class="form_hint">请输入插件标识</i></li>
<li><label>插件名</label><div class="form_main"><input name="info[title]" value="示列" type="text" class=""></div><i class="form_hint">请输入插件名</i></li>
<li><label>版本</label><div class="form_main"><input name="info[version]" value="0.1" type="text" class=""></div><i class="form_hint">请输入插件版本</i></li>
<li><label>作者</label><div class="form_main"><input name="info[author]" value="无名" type="text" class=""></div><i class="form_hint">请输入插件作者</i></li>
<li><label>描述</label><div class="form_main form_textarea_edit"><textarea name="info[description]">这是一个临时描述</textarea></div><i class="form_hint">请输入描述</i></li>
<li><label>安装后是否启用</label><div class="form_main form_checkbox"><input name="info[status]" value="1" type="checkbox" checked></div><i class="form_hint"></i></li>
<li><label>是否需要配置</label><div class="form_main form_checkbox">
<div class="form_main_sub"><input name="has_config" id="has_config" value="1" type="checkbox" ></div>
<div class="form_main_sub form_main_sub_textarea"><textarea class=" has_config hidden" name="config">
&lt;?php
return array(
'random'=>array(//配置在表单中的键名 ,这个会是config[random]
'title'=>'是否开启随机:',//表单的文字
'type'=>'radio', //表单的类型text、textarea、checkbox、radio、select等
'options'=>array( //select 和radion、checkbox的子选项
'1'=>'开启', //值=>文字
'0'=>'关闭',
),
'value'=>'1', //表单的默认值
),
);
</textarea></div></div><i class="form_hint"></i></li>
<li><label>是否需要外部访问</label><div class="form_main form_checkbox"><input name="has_outurl" value="1" type="checkbox" ></div><i class="form_hint"></i></li>
<li><label>实现的钩子方法</label><div class="form_main form_select_multiple"><span class="form_select"><select class="select" name="hook[]" size="10" multiple required>
<volist name="Hooks" id="vo">
<option value="{$vo.name}" title="{$vo.description}">{$vo.name}</option>
</volist>
</select></span></div><i class="form_hint"></i></li>
<li><label>是否需要后台列表</label><div class="form_main form_checkbox"><input type="checkbox" id="has_adminlist" name="has_adminlist" value="1" /> 勾选,扩展里已装插件后台列表会出现插件名的列表菜单,如系统的附件</div><i class="form_hint"></i></li>
<li class="has_adminlist hidden"><label>&nbsp;</label><div class="form_main form_textarea_edit"><span class="form_textarea form_main_sub"><textarea name="admin_list">
'model'=>'Example', //要查的表
'fields'=>'*', //要查的字段
'map'=>'', //查询条件, 如果需要可以再插件类的构造方法里动态重置这个属性
'order'=>'id desc', //排序,
'list_grid'=>array( //这里定义的是除了id序号外的表格里字段显示的表头名和模型一样支持函数和链接
'cover_id|preview_pic:封面',
'title:书名',
'description:描述',
'link_id|get_link:外链',
'update_time|time_format:更新时间',
'id:操作:[EDIT]|编辑,[DELETE]|删除'
),
</textarea></span>
</div><i class="form_hint"></i></li>
<li class="has_adminlist hidden"><label>自定义模板</label><div class="form_main"><input type="text" class="" name="custom_adminlist" placeholder="请输入模板名称"></div><i class="form_hint">注意:自定义模板里的列表变量为$_list这种,遍历后可以用listkey可以控制表头显示,也可以完全手写,分页变量用$_page</i></li>
</ul>
<div class="form-item">
<button class="submit_btn mlspacing" type="button" id="preview">预 览</button>
<button class=" ajax-post_custom submit_btn" target-form="form-horizontal" id="submit">确 定</button>
<button class=" submit_btn" onclick="javascript:history.back(-1);return false;">返 回</button>
</div>
</form>
</div>
</block>
<block name="script">
<script type="text/javascript" src="__JS__/codemirror/codemirror.js"></script>
<script type="text/javascript" src="__JS__/codemirror/xml.js"></script>
<script type="text/javascript" src="__JS__/codemirror/javascript.js"></script>
<script type="text/javascript" src="__JS__/codemirror/clike.js"></script>
<script type="text/javascript" src="__JS__/codemirror/php.js"></script>
<script type="text/javascript" src="__STATIC__/thinkbox/jquery.thinkbox.js"></script>
<script type="text/javascript">
function bindShow(radio_bind, selectors){
$(radio_bind).click(function(){
$(selectors).toggleClass('hidden');
})
}
//配置的动态
bindShow('#has_config','.has_config');
bindShow('#has_adminlist','.has_adminlist');
$('#preview').click(function(){
var preview_url = '{:U("preview")}';
console.log($('#form').serialize());
$.post(preview_url, $('#form').serialize(),function(data){
$.thinkbox('<div id="preview_window" class="loading"><textarea></textarea></div>',{
afterShow:function(){
var codemirror_option = {
lineNumbers :true,
matchBrackets :true,
mode :"application/x-httpd-php",
indentUnit :4,
gutter :true,
fixedGutter :true,
indentWithTabs:true,
readOnly :true,
lineWrapping :true,
height :500,
enterMode :"keep",
tabMode :"shift",
theme: "{:C('CODEMIRROR_THEME')}"
};
var preview_window = $("#preview_window").removeClass(".loading").find("textarea");
var editor = CodeMirror.fromTextArea(preview_window[0], codemirror_option);
editor.setValue(data);
$(window).resize();
},
title:'预览插件主文件',
unload: true,
actions:['close'],
drag:true
});
});
return false;
});
$('.ajax-post_custom').click(function(){
var target,query,form;
var target_form = $(this).attr('target-form');
var check_url = '{:U('checkForm')}';
$.ajax({
type: "POST",
url: check_url,
dataType: 'json',
async: false,
data: $('#form').serialize(),
success: function(data){
if(data.status){
if( ($(this).attr('type')=='submit') || (target = $(this).attr('href')) || (target = $(this).attr('url')) ){
form = $('.'+target_form);
if ( form.get(0).nodeName=='FORM' ){
target = form.get(0).action;
query = form.serialize();
}else if( form.get(0).nodeName=='INPUT' || form.get(0).nodeName=='SELECT' || form.get(0).nodeName=='TEXTAREA') {
query = form.serialize();
}else{
query = form.find('input,select,textarea').serialize();
}
$.post(target,query).success(function(data){
if (data.status==1) {
if (data.url) {
updateAlert(data.info + ' 页面即将自动跳转~','alert-success');
}else{
updateAlert(data.info + ' 页面即将自动刷新~');
}
setTimeout(function(){
if (data.url) {
location.href=data.url;
}else{
location.reload();
}
},1500);
}else{
updateAlert(data.info);
}
});
}
}else{
updateAlert(data.info);
}
}
});
return false;
});
//导航高亮
highlight_subnav('{:U('Addons/index')}');
</script>
</block>