<?php
/**
* 类名称: Maker
* 类功能: PHP 文件生成器。根据类中各属性取值,生成 HTML、PHP 以及 JS 文件
*/
class Maker {
// ------------------------------------------------------------------------------
// 类全局属性定义
// ------------------------------------------------------------------------------
public $errMsg; // 错误信息。当产生错误时,函数将错误信息写入本变量中
public $tableName; // 待处理的数据库表名称。本生成器只能针对一张数据库表进行处理
public $pkName; // 表主键名称数组。存放待处理表的主键名称
public $phpName; // PHP 文件名称。存放待生成的 PHP 文件名称,不包含路径及 .php 后缀名
public $phpPath; // PHP 文件路径。存放待生成的 PHP 文件所在路径
public $htmlPath; // HTML 文件路径。存放待生成的 HTML 文件所在路径
public $jsPath; // 非公用 JS 文件路径。存放待生成的 JS 文件所在路径
public $globalTitle; // 全局标题
public $dbFile; // db.php 文件相对路径
public $commonFile; // common.php 文件相对路径
public $jsFile; // 公用 JS 文件相对路径
// 表列说明
public $fields = array(); // 数据表列属性(二位数组)
/* $fields 说明
第一维下标:列名称
第二维下标:
caption -- 列中文名称(用于列标题)
datatype -- 列数据类型(与数据库一致)
datalength -- 列数据长度
nullable -- 该列是否可空(Y 可空,N 不可空)
trans_type -- 该列替换类型(0 无替换,1 SQL 查询替换,2 列表替换)
trans_content -- 当需要替换时所使用的替换内容(若 trans_type = 1,书写 SQL 语句,其中第一列为被替换列的内容-代码列,第二列为替换内容-名称列;若 trans_type = 2,书写替换列表,形式为”代码1=>名称1,代码2=>名称2,...“
list_used -- 在 List 页面中是否使用该列作查询(0 不使用,1 使用)1
list_display -- 该列是否显示在 List 页面中(0 不显示,1 显示)1
list_search -- 该列是否在 List 页面中作为搜索条件(0 不作为搜索条件,1 作为搜索条件)0
list_search_type -- 该列作为搜索条件时的类型(0 文本输入TEXT,1 下拉选择SELECT)0
list_search_where -- 该列搜索时 where 使用的 where 条件(0 等于,1 like)
list_disp_type -- 该列在 List 页面显示时使用的方式(0 TEXT,1 TEXT_TRANS,3 TEXT_PASSWORD)
view_used -- 在 View 页面中是否使用该列作查询(0 不使用,1 使用)1
view_display -- 该列是否显示在 View 页面中(0 不显示,1 显示)1
view_disp_type -- 该列在 View 页面显示时使用的方式(0 TEXT,1 TEXT_TRANS,3 TEXT_PASSWORD,10 TEXT_AREA)
add_used -- 在 Add 页面中是否使用该列(0 不使用,1 使用)1
add_display -- 该列是否显示在 Add 页面中(0 不显示,1 显示)1
add_disp_type -- 该列在 Add 页面显示时使用的方式(0 TEXT,2 TEXT_SELECT,3 TEXT_PASSWORD,10 TEXT_AREA,11 TEXT_DATE,12 TEXT_FILE,13 RICHTEXT)
add_default_value -- 该列在 Add 页面中使用的缺省值 ???????
edit_used -- 在 Edit 页面中是否使用该列(0 不使用,1 使用)1
edit_display -- 该列是否显示在 Edit 页面中(0 不显示,1 显示)2
edit_disp_type -- 该列在 Edit 页面显示时使用的方式(0 TEXT,2 TEXT_SELECT,3 TEXT_PASSWORD,10 TEXT_AREA,11 TEXT_DATE,12 TEXT_FILE,13 RICHTEXT)
edit_display_only -- 该列在 Edit 页面显示时是否可修改仅显示(0 否,可修改,1 是,仅显示)
*/
/* _disp_type 类型定义
0 TEXT。直接显示文字,在 LIST/VIEW 页面中为纯文字,在 ADD/EDIT 页面中为 type="text" 的 input 标签
1 TEXT_TRANS。显示代码替换的文字,仅用于 LIST/VIEW 页面,显示纯文字
2 TEXT_SELECT。通过下拉列表显示代码替换,仅用于 ADD/EDIT 页面,使用 select 标签
3 TEXT_PASSWORD。显示加密文字,在 LIST/VIEW 页面中为 ******,在 ADD/EDIT 页面中为 type="password" 的 input 标签
-- 以下类型均对 LIST 页面无效
10 TEXT_AREA。多行文本域,使用 textarea 标签,在 VIEW 页面中使用 readonly 属性,确保不被修改
11 TEXT_DATE。带日期控件的日期型数据输入框,仅用于 EDIT/ADD 页面
12 TEXT_FILE。带文件上传的文本输入框。仅用于 EDIT/ADD 页面
13 RICHTEXT。使用 RichText 控件的复杂文本编辑控件。仅用于 EDIT/ADD 页面
*/
// LIST 页面
public $genList; // 是否生成 List 页面(填写:0 不生成,1 生成)
public $listTitle; // List 页面标题
public $searchInList; // List 页面中是否包含"搜索栏"(填写:0 不包含,1 包含)
public $morepagePosition; // List 页面中分页栏位置(填写:0 不分页,1 分页栏在列表上方,2 分页栏在列表下方,3 列表上下方均放置分页栏)
public $moreLevel; // List 页面中是否使用多级显示(填写:0 不使用,1 使用。注意:当使用多级显示时,将不包含搜索栏及分页功能)
public $operInList; // List 页面中是否包含"操作栏"(填写:0 不包含,1 包含)
public $mlConnect; // 当 List 页面中使用多级显示时,SQL 查询语句中的 CONNECT BY 子句内容
public $mlStart; // 当 List 页面中使用多级显示时,SQL 查询语句中的 START WITH 子句内容
public $genView; // 是否生成 View 页面(填写:0 不生成,1 生成)
public $viewTitle; // View 页面标题
public $genAdd; // 是否生成 Add 页面(填写:0 不生成,1 生成)
public $addTitle; // Add 页面标题
public $genEdit; // 是否生成 Edit 页面(填写:0 不生成,1 生成)
public $editTitle; // Edit 页面标题
// 内部变量
private $search_type = array("text","select");
private $search_datatype = array("CHAR"=>"string","VARCHAR2"=>"string","NUMBER"=>"number","DATE"=>"string");
private $search_operate = array("=","like");
private $js_datatype = array("CHAR"=>"STRING","VARCHAR2"=>"STRING","NUMBER"=>"NUM","DATE"=>"DATE");
//***************************************************************************
function getSelect($keyName) {
// 获取列名称数组
$fldKeys = array_keys($this->fields);
// 获取查询列列表
$colList = '';
foreach($fldKeys as $col) {
if ($this->fields[$col][$keyName] == 1) {
$colList .= $col .',';
}
}
$colList = substr($colList,0,strlen($colList) - 1);
return $colList;
}
function getOperate() {
$chr = "";
foreach($this->pkName as $pk) {
$chr .= '\'' .strtolower($pk) .'=\' .$datarow["' .$pk .'"]' .' .\'&\' .';
}
$chr = substr($chr,0,strlen($chr) - 7);
return $chr;
}
function genJS() {
// 检查 JS 文件路径是否存在
// 如果不存在,则创建
if (!file_exists($this->jsPath)) {
$rtn = mkdir($this->jsPath);
if (!$rtn) {
$this->errMsg = "无法创建 JS 文件所在目录:" .$this->jsPath;
return false;
}
}
// 创建 List 页面文件,并写入相关内容
if ($this->genAdd == 1 || $this->genEdit == 1) {
$jsFileName = $this->jsPath ."/" .$this->phpName .".js";
$fileHandle = fopen($jsFileName,"w");
if (!$fileHandle) {
$this->errMsg = "无法打开 JS 文件:" .$jsFileName;
return false;
}
$jsStr = array();
$fldKeys = array_keys($this->fields);
$jsStr[] = 'function checkForm() {';
$jsStr[] = ' //为空判断';
$nullColArr = array();
$nullMsgArr = a
没有合适的资源?快使用搜索试试~ 我知道了~
PHP 代码生成器适合新手练习
共32个文件
php:13个
html:6个
gif:5个
4星 · 超过85%的资源 需积分: 10 275 下载量 56 浏览量
2010-05-10
13:23:53
上传
评论 4
收藏 53KB RAR 举报
温馨提示
本资源可以快速搭建网站后体程序,方便操作! 资源本身可以作为新手的学习资料,例如类的使用! 目前是oracle数据库为例,可自行修改程序,适用其他数据库!
资源推荐
资源详情
资源评论
收起资源包目录
gen.rar (32个子文件)
gen
index.php 1KB
main
dm_czry_add.html 168B
dm_czry_edit.html 169B
dm_czry_view.html 153B
main.php 2KB
dm_czry.php 13KB
particular.html.php 5KB
dm_czry_list.html 170B
dm_czry.js 1KB
login_check.php 1KB
tree
menu.php 469B
include
config.php 343B
maker.class.php 60KB
gen.php 10KB
db.php 16KB
welcome.php 560B
top.php 3KB
styles
general.css 2KB
main.css 4KB
tab.css 715B
images
menu_arrow.gif 67B
menu_plus.gif 67B
arrow_right.gif 413B
arrow_left.gif 417B
Thumbs.db 10KB
purch_logo.jpg 17KB
menu_minus.gif 64B
js
tab.js 8KB
templates
main_view.html 7KB
menu_tree.html 2KB
drag.htm 2KB
login.php 2KB
共 32 条
- 1
syy870714
- 粉丝: 16
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页