phpwind插件开发框架与常用函数

 插件结构
所有插件被放置在“/hack/”目录下管理。一般插件包含以下几个文件:
1、info.xml  插件默认安装基本信息
2、admin.php  插件后台管理 程序页面
3、index.php  插件前台运行 程序页面
4、template  插件所需模板文件 此文件夹一般包含 admin.htm 和 index.htm
5、sql.txt  创建插件需要的数据表

 

Sql.txt语法规则:
CREATE TABLE `pw_tablename1` (
 `lottery_id` smallint(6) unsigned NOT NULL,
 `user_uid` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `draw_count` int(3) unsigned NOT NULL DEFAULT '0',
 KEY `lottery_id` (`lottery_id`,`user_uid`)
) ENGINE=MyISAM;

CREATE TABLE ` pw_tablename2` (
 `win_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
 `lottery_id` smallint(6) NOT NULL DEFAULT '0',
 `win_time` int(10) unsigned NOT NULL DEFAULT '0',
 `user_uid` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `user_name` varchar(15) NOT NULL,
 `award_content` text NOT NULL,
 PRIMARY KEY (`win_id`),
 KEY `lottery_id` (`lottery_id`),
 KEY `user_uid` (`user_uid`)
) ENGINE=MyISAM;

每一个创建语句末尾用“;”结束,create语句间有一行间隔,数据表的名称自定义创建。

 

Info.xml语法规则:
<?xml version="1.0" ?>
<hack>
<hackname>插件名称</hackname>
<ifopen>0/1/2 </ifopen>     前版本会将插件菜单显示为:隐藏、下拉显示、直接显示,8.7以上版本暂无用处
</hack>

 
使用“<<<标记”输出大段的HTML

print <<<EOT
<html>
<head></head>
<body>
$value;
<img src="$img">
...
</body>
<html>
EOT;

含义:
<<< 运算符,将由自定义分界符间的内容视为字符串,可对其间的变量做处理;
EOT 自定义分界符,结束时必须位于行首;
在同一页面中使用

 

<<<标记
标记;

注:标记名为配对出现,同一页面中不允许同名出现两个以上标记名;
另:配对标记名的结尾标记名应单独一行,前后均不允许输出字符...(例如空格等不可见但存在的字符..)。
优点:这样可以输出大段的HTML 而且不用把里面的引号转义 就是不用 \" 这样自动替换里面的变量

 

常用函数与对象:

InitGP($keys, $method = null, $cvtype = 1)
从请求中获取$_GET或$_POST变量,并以key为变量名注册为全局变量
所属文件:/require/common.php
关联引用:/require/security.php   [S::gp($keys, $method, $cvtype)]

 

Char_cv($mixed, $isint = false, $istrim = false)
过滤数据,防xss攻击
所属文件:/require/common.php
关联引用:/require/security.php   [S:: escapeChar($mixed, $isint, $istrim)]

 

PwStrtoTime($dateString)
日期字符串转为时间戳
所属文件:/require/common.php

 

get_date($timestamp, $format = null)
格式化时间戳为日期字符串
所属文件:/require/common.php

 

DB
数据库操作类
所属文件:/require/db_connects.php
一般此文件不会直接被调用,而是通过“/require/db_mysql.php”或“/require/db_mysqli.php”里面包包含调用了db_connects.php文件。
在“/require/sql_config.php”文件中的$database变量定义的值决定了使用那种数据库操作方式。
->update(sql)  执行insert、update等更新性数据库操作的sql语句。
->insert_id()   获取新插入记录的自动编号ID
$xxx=$db->get_one(sql)  获取一条select记录集并返回给$xxx变量。
$xxx=$db->query(sql)  执行一条sql语句并将执行结果返回给$xxx变量(select语句中最常用)。

 

adminmsg($msg,$jumpurl='',$t=2,$langtype='admin')
弹出执行结果提示,常用形式如:adminmsg('活动名称不能为空!');
所属文件:/admin/admincp.php

 

pwGetIp()
获取客户端IP
所属文件:/require/common.php

 

numofpage($count, $page, $numofpage, $url, $max = null, $ajaxCallBack = '')
生成分页html,以“&page=x”代表分页
所属文件:/require/common.php


 

制作人:飞虎                                           无兄弟不编程!

====================================================

欢迎加QQ群进行更多交流:305397511     专注于php、mysql以及开源框架

posted @ 2012-03-24 17:17  飞虎cnblog  阅读(816)  评论(1编辑  收藏  举报
友情链接:技术迷 | JSM官方博客 | 阿旭博客 | 有声小说在线听