Phpgrid 2.0使用手册

目录

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开发类库(工具) . 主要功能如下:

1简介

1.1概览/原理

Phpgrid 组件由如下模块组成:




Phpgrid 依赖与XajaxPDO库,使用 Xajax 使我们只需要写一些php函数,就可以实现一些ajax功能了。 该版本使用PDOMYSQL进行交互,因此PHP版本必须为5.0以上。此次版本



1.2安装

首先您需要PHP的运行环境,Windows下推荐使用wamp或者xampp.这两个环境集成了apache,php,mysql,区别在于xampp附带了更多的功能,适合部署到正式的环境中.最低需要的执行环境为:php5.0.0以上版本,启用了PDO 扩展,启用了SESSION会话,Mysql3.0以上版本。

zip代码解压到PHP的发行应用程序(网站)的任意目录下,如Apache下的htdocs下。

如果你需要使用代码生成工具,需要将phpgrid文件夹设置权限为可读可写。


2 快速开始

为了能运行如下的一些例子,请将源代码中的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


3 基本设置

3.1 选择类型

如果你想生成拥有添加删除修改甚至表单的页面,那么你需要实例化于ScrollTable类,而如果你只想显示数据那么你只需要实例化于ScrollTableView


3.2 配置CRUD

可以设置是否可以新增,删除,修改的权限,这对于需要进行权限控制的程序来说很实用。代码很简单,只要修改以下代码即可

$template ->readonly=0; //是否可以对表格中进行实时编辑

$template ->can_add=1; //是否可以显示新增按钮

$template ->can_edit=1; //是否显示编辑的列

$template ->can_delete=1; //是否显示删除的列

$template ->can_page=1; //是否显示分页,如果显示,请修改46行的常量数

$template ->can_show_sum=0; //是否显示总计

$template ->can_search=1; //是否显示总计
$template ->can_sort=0; //是否可以进行排序

3.3 多表查询

当需要进行多表查询的时候,只需要给$template ->table_name $template ->f_names 赋予相应的 表和字段名称即可.
例如:
$template ->table_name=”staff A,dept B”;
$template ->
f_names=”A.id,A.name,B.deptname ”;

3.4 数据查询


当您需要进行数据查询时,首先需要设置$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','地址');

}

3.5 表单项类型设置


表单类型
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的配置文件.

4.高级应用

扩展PHP类,在遇到比较复杂的业务需求时,基本设置里已经不能满足运行的需要了 ,Phpgrid 采用面向对象技术,因此可以对Factorty(factotry.inc.php)ScrollTablexPhpgrid .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函数,例如:


运行结果:

5 疑难解答


1问 :为什么代码生成根据不能生成代码或不能预览结果:

答:请确认libs/phpgrid目录是否用于可读可写的权限,另外PHP版本为5.0以上才可以预览结果


2 问:为什么出现 从服务器上获取的xml无效…,如下图:


答:请仔细检查您输入的数据库表名,字段名,主键等是否正确,因为这些错误将导致SQL语句执行错误,所以会报以上错误。


3 问:我如何才能调试我的应用程序,使用ajax技术进行开发时感觉调试非常复杂,我该怎么办呢?


答:一个简单的办法就是将变量名用print_r()函数输出即可。另外现在已经很多PHPIDE支持强大的调试功能包括delphi for php ,zend studio ,eclipsePDT


4.我觉得这些功能否不能满足我项目需要,我怎么样才能修改小的代码量呢。

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函数进行自定义 验证表单。


。。