开发需知
- 插件图标为插件根目录下与插件同名的png图片文件.
配置文件
config.xml
<?xml version="_1.0" encoding="UTF-8"?>
<root>
<item id="name"><![CDATA[名称]]></item>
<item id="server_version"><![CDATA[[免费/收费]]></item>
<item id="type"><![CDATA[plugin/module/template]]></item>
<item id="identifier"><![CDATA[标识]]></item>
<item id="description"><![CDATA[简介]]></item>
<item id="copyright"><![CDATA[版权所有者名称]]></item>
<item id="sort"><![CDATA[排序]]></item>
<!-- 如果需要则添加系统菜单字段 -->
<item id="menu">
<item id="0">
<item id="displayorder"><![CDATA[显示排序]]></item>
<!-- 根目录:1-全局.2-商品.3-订单.4-会员.5-运营.6-站点.7-统计.8-云平台 -->
<item id="type"><![CDATA[更目录]]></item>
<item id="name"><![CDATA[链接标识]]></item>
<item id="menu"><![CDATA[显示名称]]></item>
<!-- 自定义管理模板:1-自定义.0-通过系统设计 -->
<item id="setting"><![CDATA[1]]></item>
</item>
</item>
<item id="version"><![CDATA[版本号]]></item>
<item id="author"><![CDATA[作者名称]]></item>
<item id="apply_version">
<item id="develop"><![CDATA[最低兼容开发版本号]]></item>
<item id="stable"><![CDATA[最低兼容稳定版本号]]></item>
</item>
<item id="installfile"><![CDATA[install.php]]></item>
<item id="installsql"><![CDATA[install.sql]]></item>
<item id="uninstallsql"><![CDATA[uninstall.sql]]></item>
<item id="uninstallfile"><![CDATA[uninstall.php]]></item>
</root>
使用钩子
hooks/hook.class.php
<?php
// 继承自plugin类,可使用$this
class plugin_appname_hook extends plugin
{
// 根据业务调用不同的钩子 完成应用功能。
}
注册钩子
inculde/hook.inc.php
<?php
return array(
// 注册应用中使用到的钩子。
'hookname' => 'hook',
);
管理模板
template/index.php
<?php include template('header', 'admin'); ?>
<!--管理 插件导航-->
<div class="fixed-nav layout">
<ul>
<li class="first">插件名称<a id="addHome" title="添加到首页快捷菜单">[+]</a></li>
<li class="spacer-gray"></li>
<!--这里可以遍历插件的菜单 注意选中样式-->
<li><a class="labelbox current" href="">插件菜单</a></li>
</ul>
<div class="hr-gray"></div>
</div>
<div class="content padding-big have-fixed-nav">
<!--管理 插件提示-->
<div class="tips margin-tb">
<div class="tips-info border">
<h6>温馨提示</h6>
<a id="show-tip" data-open="true" href="javascript:;">关闭操作提示</a>
</div>
<div class="tips-txt padding-small-top layout">
<p>- 插件使用提示。</p>
</div>
</div>
<div class="hr-gray"></div>
<!--继续编写请求表单 或数据列表-->
</div>
代码片段 - 请求表单
<form action="" method="post">
<!-- 使用系统分装form类 完成表单组装 system/library/form.class.php -->
<?php echo form::input('text')); ?>
<div class="form-group">
<input type="submit" class="button bg-main" value="提交"/>
<a class="button margin-left bg-gray" href="">返回</a>
</div>
</form>
代码片段 - 数据列表
<!--分页数据列表-->
<div class="table check-table resize-table paging-table clearfix">
<div class="tr">
<div class="th check-option" data-resize="false"><input id="check-all" type="checkbox" /></div>
<div class="th" data-width="30">标题一</div>
<div class="th" data-width="40">标题二</div>
<div class="th" data-width="30">标题三</div>
</div>
<div class="tr">
<div class="td check-option"><input type="checkbox" /></div>
<div class="td">td1</div>
<div class="td">td2</div>
<div class="td">td3</div>
</div>
<div class="paging padding-tb">
<?php echo $page;?>
</div>
</div>
<script>
window.onload = function(){
$(".table").resizableColumns();
$(".paging-table").fixedPaging();
}
</script>
代码片段 - 选择分类
<div class="padding-lr">
<div class="form-group">
<span class="label">上级分类:</span>
<div class="box ">
<div class="field">
<input class="goods-class-text input input-readonly" id="choosecat" value="" title="" readonly="readonly" type="text" placeholder="请选择商品分类" data-reset="false" />
<input class="goods-class-btn" type="button" value="选择" id="choose-class" data-reset="false" />
<input type="hidden" name="parent_id" data-value="" value="">
</div>
</div>
<p class="desc">选择分类隶属哪个商品分类下,如是顶级分类,请直接选择顶级分类</p>
</div>
<div class="form-group">
<span class="label">关联类型:</span>
<div class="box ">
<div class="field">
<input class="goods-class-text input input-readonly" id="choosetype" value="" title="" readonly="readonly" type="text" placeholder="请选择商品类型" data-reset="false" />
<input class="goods-class-btn" type="button" value="选择" id="choose-type" data-reset="false" />
<input type="hidden" name="type_id" value="">
</div>
</div>
<p class="desc">每个分类可以管理一个商品类型,用于前台筛选及商品类型添加</p>
</div>
</div>
<script>
$('#choose-class').bind('click',function(){
var url = "<?php echo url('goods/category/category_main')?>";
var pid = $('input[name=parent_id]').val(),
pname = $('#choosecat').val(),
pvalue = $('input[name=parent_id]').attr('data-value'),
id = "";
var data = [pid,pname,pvalue,id];
top.dialog({
url: url,
title: '加载中...',
width: 930,
data: data,
onclose: function () {
if(this.returnValue){
var catname = this.returnValue.html().replace(/>/g,'>');
$('#choosecat').val(catname);
var catids = this.returnValue.attr('data-id').split(',');
var catid = catids[catids.length-1];
$('input[name=parent_id]').attr('data-value',this.returnValue.attr('data-id'));
$('input[name=parent_id]').val(catid);
if(catid != 0){
$('input[name="show_in_nav"]').parents('.form-group').removeClass('hidden');
}else{
$('input[name="show_in_nav"]').parents('.form-group').addClass('hidden');
}
}
}
})
.showModal();
})
$('#choose-type').bind('click',function(){
var url = "<?php echo url('goods/category/category_relation')?>";
var tid = $('input[name=type_id]').val();
var tname = $('#choosetype').val();
var data = [tid,tname];
top.dialog({
url: url,
title: '关联规格',
data: data,
width: 500,
onclose: function () {
if(this.returnValue){
$('#choosetype').val(this.returnValue.html());
$('input[name=type_id]').val(this.returnValue.attr('data-id'));
}
}
})
.showModal();
});
$(function(){
if(!$('[name="parent_id"]').val()){
$('input[name="show_in_nav"]').parents('.form-group').addClass('hidden');
}
var $val=$("input[type=text]").first().val();
$("input[type=text]").first().focus().val($val);
});
</script>