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以及开源框架