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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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>