海盗插件 开发教程

开发需知

  • 插件图标为插件根目录下与插件同名的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(/&gt;/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>

转载于:https://my.oschina.net/chmen/blog/863679

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值