Phpgrid 2.0使用手册 1
前言 1
1简介 1
1.1概览/原理 1
1.2安装 2
2 快速开始 2
3 基本设置 3
3.1 选择类型 3
3.2 配置CRUD 4
3.3 多表查询 4
3.4 数据查询 4
3.5 表单项类型设置
4
4.高级应用 5
5 疑难解答 6
1问 :为什么代码生成根据不能生成代码或不能预览结果: 6
2 问:为什么出现 从服务器上获取的xml无效…,如下图: 6
3 问:我如何才能调试我的应用程序,使用ajax技术进行开发时感觉调试非常复杂,我该怎么办呢? 6
4.我觉得这些功能否不能满足我项目需要,我怎么样才能修改小的代码量呢。 6
Phpgrid 是用于快速开发网站后台,管理系统(ERP,OA,CRM等)的PHP开发类库(工具) . 主要功能如下:
简单,不需要花较多的时间去学习
可以不需要编写一行代码,便可自动生成CRUD(添加,显示,删除,修改)页面
Ajax技术,可实时编辑表格中的数据
快速导入,导出数据
自动生成表单,并可以自定义表单
内置表单验证功能
代码模块化设计
很容易的集成Fckeditor
容易扩展,当框架无法满足您复杂的业务需求时,您可以轻松的扩展该框架
Phpgrid 组件由如下模块组成:
Phpgrid 依赖与Xajax和PDO库,使用 Xajax 使我们只需要写一些php函数,就可以实现一些ajax功能了。 该版本使用PDO与MYSQL进行交互,因此PHP版本必须为5.0以上。此次版本
附加了一个自动生成Phpgrid 的代码工具,只要鼠标轻轻一点,即可生成
精简了CSS样式,更改界面将很轻松,CSS文件位于Phpgrid /skin/blue/template .css
增加了一个View类,相对于Template ,View只用于显示数据,不具有添加,删除等功能
常用的扩展函数: replaceValue($arr,$key,$value)中的 参数$key不再是字段的序号,而是字段的名称
表单内容可以从模板中读取(位于Phpgrid /template)
修正导入导出打印功能等BUG
首先您需要PHP的运行环境,在Windows下推荐使用wamp或者xampp.这两个环境集成了apache,php,mysql,区别在于xampp附带了更多的功能,适合部署到正式的环境中.最低需要的执行环境为:php5.0.0以上版本,启用了PDO 扩展,启用了SESSION会话,Mysql3.0以上版本。
将zip代码解压到PHP的发行应用程序(网站)的任意目录下,如Apache下的htdocs下。
如果你需要使用代码生成工具,需要将phpgrid文件夹设置权限为可读可写。
为了能运行如下的一些例子,请将源代码中的sql.sql建立一个数据库。
运行源代码根目录的index.php,以执行自动代码生成工具。输入连接数据库的用户名和密码之后。进入主界面。界面风格类似于phpmyadmin.操作方式也类似,因此很容易上手。
在左边页面中选择刚才创建的数据库,再点击出现的”plan”表,现在您的页面应该如下:
说如已经出现了如上图页面。说明已经可以正确的链接数据库了。下面通过上部得导航菜单操作来生成代码
点击“显示设置”,这是会出现要生成页面的设置选项,根据您的需求而定,最后点击“生成代码”即可。
如果你选择使用表单,工具将会给您生成一个带模板的表单文件,然后您还可以自己定义表单内容。您只需要将表单项的名称和默认值用{}包裹,并和表中字段名一致,
即可在编辑表单中绑定数据。您可以查看例子中代码。
在“生成的代码”中可以在线编辑代码,确定后还可以预览结果。
下面解释生成的代码
Plan .php的代码:
<?php
session_start();
define(LOG_ENABLED, true);
ini_set('include_path',dirname($_SERVER['SCRIPT_FILENAME']).'/include');
require_once ('include/server.inc.php');
$template=new ScrollTable();
//以下是界面和权限设置
$template->limit=50;
$template->limit=30;
$template->readonly=1;
$template->can_add=1;
$template->can_edit=1;
$template->can_delete=1;
$template->can_page=1;
$template->can_show_sum=0;
$template->can_search=0;
$template->can_sort=1;
$template->can_displayTop=1;
$template->can_displayHeader=1;
//以下是获取数据的设置
$template->table_name=' plan';
$template->f_id='plan_id';
$template->where=' ';
$template->f_names=array("plan_id","plan_name","plan_customer","plan_content");
$template->f_shows=array("plan_id","plan_name","plan_customer","plan_content");
//以下是表单设置
$template->add_edit_table='plan';
$template->f_add_edit_names =array("plan_id","plan_name","plan_customer","plan_content");
$template->f_add_edit_display=array("plan_id","plan_name","plan_customer","plan_content");
$template->f_add_edit_type =array("text","textarea","text","text");
$template->loadFormTemplateFile='template/plan_form_2008-10-14.html';
$template->display($template);
require_once('./foot.php');
?>
$template ->table_name 变量设置送数据库中获得数据的表,这里为staff表。变量$template ->f_id为查询表的主键名,主要用于更新和修改数据时使用到。$ template -> where变量为进行SQL语句的查询条件,$ template ->add_edit_table 为当编辑和新增数据要插入到的数据库表(主要用于多表查询). $template ->f_names为进行查询时所需要的字段名,在表格中显示的列数量等于该变量的元素数量。变量$ template ->table_name,$ template ->f_id,$template ->f_names, $template ->where 组成了一个完整的SQL语句: Select id,name,dept,email from staff
如果你想生成拥有添加删除修改甚至表单的页面,那么你需要实例化于ScrollTable类,而如果你只想显示数据那么你只需要实例化于ScrollTableView类
可以设置是否可以新增,删除,修改的权限,这对于需要进行权限控制的程序来说很实用。代码很简单,只要修改以下代码即可:
$template
->readonly=0;
//是否可以对表格中进行实时编辑
$template ->can_add=1; //是否可以显示新增按钮
$template ->can_edit=1; //是否显示编辑的列
$template ->can_delete=1; //是否显示删除的列
$template ->can_page=1; //是否显示分页,如果显示,请修改4,6行的常量数
$template ->can_show_sum=0; //是否显示总计
$template ->can_search=1;
//是否显示总计
$template
->can_sort=0; //是否可以进行排序
当需要进行多表查询的时候,只需要给$template
->table_name 和
$template
->f_names 赋予相应的
表和字段名称即可.
例如:
$template
->table_name=”staff
A,dept B”;
$template ->f_names=”A.id,A.name,B.deptname
”;
当您需要进行数据查询时,首先需要设置$template
->can_search=1; 然后给分别给变量$template
->f_search和$template
->f_search_name赋予查询的字段名和字段名称。例如:
if($template
->can_search){
$template ->f_search=array('Firstname','Lastname','address');
$template ->f_search_name=array('Firstname(姓名)','Lastname','地址');
}
表单类型
Phpgrid
支持多种类型的表单项,目前支持如下表单项:label,input,memo,checkbox,file(文件上传),date(时间),select(特殊,另有说明),fckeditor,您只需要给变量$template
->f_add_edit_type
赋予相应的值即可,$template
->f_add_edit_type中数组的值与变量$template
->f_add_edit_names数组的值相对应,例如:
$template
->f_add_edit_names
=array('name','dept','email');
$template ->f_add_edit_display=array('名称','部门','Email');
$template
->f_add_edit_type
=array('input','input'
,'memo');
//表单的类型
'name'对应的表单类型为input,’dept’对应input,’email’对应memo
表单的属性设置
下面可以给各表单项设置HTML的属性,例如给name表单项设置背景颜色为#999933.
$customer->f_add_edit_setup =array('name'=>' style="background-color:#999933" ',
'dept'=>'',
'email'=>'');
(SELECT)下拉菜单
下拉菜单在应用开发中相对于其他的表单项(如memo,input)复杂得多,但在Phpgrid
里较为简单,但是一个下拉菜单需要只要一个表的支持,也就是说这个下拉菜单项的值和标签必须存在在一个表里.以国家的下拉菜单为例:
首先在数据库中首先建立一个country表,Sql语句:
CREATE
TABLE `county` (
`cty_id` int(11) NOT NULL auto_increment,
`cty_name` varchar(40) character set utf8 default NULL,
PRIMARY
KEY (`cty_id`) ) ;
INSERT INTO `county` VALUES (1, '中国(大陆)');
INSERT INTO `county` VALUES (2, '美国');
INSERT INTO `county` VALUES (3, '德国');
INSERT INTO `county` VALUES (4, '意大利');
INSERT
INTO `county` VALUES (5, '其他');
然后在代码中加如如下代码:
$template
->f_replace_fields=
array('country');
$template
->f_replace_values = array('country'
=>array('cty_name','cty_name','county'));
$template ->f_replace_fields为下拉菜单的字段,$template
->f_replace_values为下拉菜单对应的值,标签以及表名,
集成在线编辑器Fckeditor2.0
在$template ->f_add_edit_type中对应的表单项设置为fckediotr即可,可以在 server.inc.php文件中的loadFckeditor 函数找到载入代码,如果需要详细的配置,请自行修改fckeditor的配置文件.
扩展PHP类,在遇到比较复杂的业务需求时,基本设置里已经不能满足运行的需要了 ,Phpgrid 采用面向对象技术,因此可以对Factorty(factotry.inc.php中)和ScrollTable(xPhpgrid .inc.php中)类进行继承,这样无需要修改基类的代码。例如
字段值的替换
ScrollTable类的replaceValue 函数可以对每一个字段值进行替换,例如加上 颜色或者超链接,代码:
/**
* 扩展类,以满足更复杂的需求
*/
class MyTable extends ScrollTable{
function replaceValue($arr,$key,$value){
switch ($key) {
case "name": //根据字段名称,重写字段中的值
$value="<a href=customer_plan.php?costomerid=".$arr["name"]. ">客户安排</a>";
break;
}
return $value;
}
}
$table = new MyTable();
replaceValue函数的$arr为数据中每一行的值,case后为字段的字段名称。
全部代码,可点击此处。运行结果:
更高级的表单
当您需要更复杂的表单时, 需要扩展ScrollTable类的formAdd ,formEdit函数,例如:
运行结果:
答:请确认libs/phpgrid目录是否用于可读可写的权限,另外PHP版本为5.0以上才可以预览结果
答:请仔细检查您输入的数据库表名,字段名,主键等是否正确,因为这些错误将导致SQL语句执行错误,所以会报以上错误。
答:一个简单的办法就是将变量名用print_r()函数输出即可。另外现在已经很多PHP的IDE支持强大的调试功能包括delphi for php ,zend studio ,eclipse的PDT。
Phpgrid 采用面向对象技术,因此可以很好的扩展许多函数,例如:您想更改数据库中某一个值,您可以这么做:
在index.php文件加入如下代码:
class test extends ScrollTable{
function replaceValue($arr,$key,$value){
$test=(string)$key;
switch ($test) {
case "name":
$value="<strong><font color=blue>".$value."</font></strong>";
break;
}
return $value;
$table = new test();
即可
运行后界面:
另外您还可以开展checkAllData函数进行自定义 验证表单。
。。