<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"> <?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> </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>