开发平台:Windows XP SP2
测试平台:FreeBSD 7.0
开发工具:Netbeans 6.1
使用框架:Zend Framework 1.5.2
数据库: MySQL 5.0.51a

**********************************

所需的数据库表和ZF相关目录以及文件:

一、表:(可以按MZ中的数据库来设计,视情况而定)

字段名      字段的具体说明

id           节点ID(不可为0,可以是数字或字符) parentId    本节点的父节点ID(若本节点已为根节点,此处填0)

text        节点的显示文本(一般不允许为空,不过有一种情况例外,即根节点,若根节点文本为空,这个根节点将不会在页面里显示)

hint        节点的说明注解

icon        节点的图标,MzTreeView 1.0允许每个节点拥有不同的图标(对应的名字在类里的icons和iconsExpand定义)

data       节点挂的数据,格式是 param=value&param=value&... url里?后的那串字符串格式,

url         每个节点允许拥有不同的链接,它为空或者为#时,树里这个节点的链接,点击将无反应

target      每个节点的链接允许在不同的target里打开,为空时取类里的默认值

method    点击该链接时所想触发的脚本语句

特注:每个字段值中不可有冒号: 不可以换行 引号酌情考虑应不与节点字符串的引号相冲突

我的为:

mysql> select * from module_tree;

+----+-----+----------+------+------+------+------+--------+--------+

| id | pid | text     | hint | icon | data | url  | target | method |

+----+-----+----------+------+------+------+------+--------+--------+

|  1 |   0 | aaa      | aaaa | a    | a    | b    | main   |        |

|  2 |   1 | computer | aaaa | a    | a    | b    | main   |        |

|  3 |   1 | pet      | aaaa | a    | a    | b    | main   |        |

|  4 |   1 | ant      | aaaa | a    | a    | b    | main   |        |

|  5 |   2 | ketty    | aaaa | a    | a    | b    | main   |        |

|  6 |   2 | fav      | aaaa | a    | a    | b    | main   |        |

|  7 |   3 | pig      | aaaa | a    | a    | b    | main   |        |

|  8 |   3 | dog      | aaaa | a    | a    | b    | main   |        |

|  9 |   6 | cat      | aaaa | a    | a    | b    | main   |        |

| 10 |   6 | apache   | aaaa | a    | a    | b    | main   |        |

| 11 |   9 | tomcat   | aaaa | a    | a    | b    | main   |        |

| 12 |  10 | pet      | aaaa | a    | a    | b    | main   |        |

| 13 |  11 | vert     | aaaa | a    | a    | b    | main   |        |

| 13 |  11 | vert     | aaaa | a    | a    | b    | main   |        |

+----+-----+----------+------+------+------+------+--------+--------+

二、目录:

三、相关文件:

1.index.php //入口文件

2.TestDbCon.phhp //数据库连接文件

3.ModuleTree //抽象出来的数据库表文件

4.TestController.php //控制器

5.mz-tree.phtml //树状菜单生成页面,包含mzTree.js对象,并根据服务器取回的数据生成的树状菜单。

相关文件内容:

1.index.php //入口文件

   1. <?php
2.
3. set_include_path('.' . PATH_SEPARATOR .'../library' . PATH_SEPARATOR . get_include_path() . PATH_SEPARATOR . '../application/modules/default/models' . PATH_SEPARATOR . '../application/modules/admin/models');
4.
5. require_once 'Zend/Controller/Front.php';
6.
7. require_once 'Zend/Controller/Router/Route.php';
8.
9.
10.
11. $ctrl=Zend_Controller_Front::getInstance();
12.
13. $ctrl->addModuleDirectory('../application/modules');
14.
15. $ctrl->throwExceptions(true);
16.
17. $ctrl->dispatch();
18.
19. ?>   

2.TestDbCon.phhp //数据库连接文件

   1. <?php
2.
3.     require_once 'Zend/Db.php';
4.
5.     require_once 'Zend/Registry.php';
6.
7.
8.
9.     class  TestDbCon{
10.
11.         public static function getTestDbCon(){
12.
13.             $params=array(
14.
15.             'host'=>'localhost',
16.
17.             'username'=>'root',
18.
19.             'password'=>'123456',
20.
21.             'dbname'=>'test'
22.
23.             );
24.
25.             $con=Zend_Db::factory('Pdo_Mysql',$params);
26.
27.             return $con;
28.
29.         }
30.
31.     }
32.
33. ?>  

3.ModuleTree //抽象出来的数据库表文件

<?php
/**
* PHP Template.
*/
require_once 'Zend/Db/Table/Abstract.php';
class ModuleTree extends Zend_Db_Table_Abstract
{
protected $_name='module_tree';
protected $_primary='id';
protected $_sequence=TRUE;
}
?>

4.TestController.php //控制器

<?php
require_once 'Zend/Controller/Action.php';
require_once 'Zend/View.php';
require_once 'ModuleTree.php';
require_once 'TestDbCon.php';
class TestController extends Zend_Controller_Action{
public function mzTreeAction(){
$dbCon=DbCon::getDbCon();
$mt_tb=new ModuleTree(array('db'=>$dbCon));
$rowSet=$mt_tb->fetchAll();
$this->view->rowSet = $rowSet;
$this->render();
}
}
?>

5.mz-tree.phtml //树状菜单生成页面,包含mzTree.js对象,并根据服务器取回的数据生成的树状菜单。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">
<head>
<title>MzTree test</title>
<script language="JavaScript" src="/public/scripts/MzTreeView10.js"></script>
</head>
<body>
<div >
<script language="JavaScript">
var tree = new MzTreeView("tree");
tree.setIconPath("/public/images/"); //注意这里的路经
tree.icons["property"] = "property.gif";
tree.icons["css"] = "collection.gif";
tree.icons["book"]  = "book.gif";
tree.iconsExpand["book"] = "bookopen.gif"; //展开时对应的图片
<?php
foreach ($this->rowSet as $row){
echo "tree.nodes[/"" . $row->pid . "_" . $row->id . "/"] =  /"text:" . $row->text . "; url:" . $row->url . "; target:" . $row->target . "/";";
}
?>
tree.setURL("Catalog.asp");
tree.setTarget("MzMain");
document.write(tree.toString());
</script>
</div>
</body>
</head>

zend framework 1.5.2 中实现梅花雪1.0树状菜单相关推荐

  1. 梅花雪2.0树数据库数据绑定实例(vs2008)

    梅花雪2.0树型结构sqlserver数据库数据绑定,IDE是VS2008,数据库是sql server2005,部分代码如下,代码实例[点击这里]下载. 效果图 数据库结构代码: CREATE TA ...

  2. web tree dojo 0.3 和 梅花雪 MzTreeView1.0

    开始: 首先大家先了解一下json. json主要是来传输数据.起着和xml文件相同的作用,用于后台java和前台js的数据交互. 优点:简单,易于操作.可以看做是java中的map 确定:由于简单不 ...

  3. 用中值排序基数法实现树状结构 (转)

    在BBS的编写中,经常有人问怎样实现树状结构?一个比较不负责任的回答是:使用递归算法.当然,递归是一个可行的办法 (二叉树的历遍也好象只能使用递归算法),但对于BBS来说,这样做势必要进行大量的Sql ...

  4. Zend Framework 入门教程(简体中文版)

    Zend Framework 入门教程(简体中文版) Getting Started With the Zend Framework Author:Rob Allen, www.akrabat.com ...

  5. Struts结合梅花雪实现动态生成树

    昨天终于完成了动态树的测试,虽然还没有正式用于产品. 测试用到的知识点:struts,jsp,梅花雪1.0,Ms SQL2000. 部分代码如下: public ActionForward execu ...

  6. Zend Framework 2 中,定制error 的layout

    为什么80%的码农都做不了架构师?>>>    404页面在我们平常浏览网页的时候并不会经常碰到,也因此很容易被忽略,在Zend Framework 2中,项目的结构已经默认提供了4 ...

  7. Zend Framework中,执行自定义sql语句

    Zend Framework中的Zend_Db_Table类可以很好的对数据表实现select,insert,delete等操作.但是有时候还是希望自己运行一些sql语句. ZF当然也是支持的. 一种 ...

  8. zend studio mysql 配置_php 在Zend Framework中配置数据库参数

    [php]代码库我是用zend studio 7.2.1建立的zend framework project 也就是说我的框架是由zend stduio7.2.1 帮我建立了文件路径等信息的 下面讲讲如 ...

  9. 在ZF2中实现Zend Framework的Controller init/preDispatch/postDispatch方法

    在Zend Framework 1中,Controller里约定了一些默认的方法来实现钩子,包括 Controller初始化时调用的init()方法 派遣前的方法preDispatch() 派遣后的方 ...

  10. Zend Framework Mail通过网易免费邮箱发送邮件

    2019独角兽企业重金招聘Python工程师标准>>> 做为一个苦逼的个人站长,做一个小网站,本来愿意来看的人就不多,再弄一个不能找回密码的会员系统?基本上被判死刑了 .阿里云的短信 ...

最新文章

  1. PHP -Casbin: 支持 ACL、RBAC、ABAC 多种模型的 PHP 权限管理框架
  2. shell 中定义数组
  3. 千年服务器角色信息在哪个文件,千年服务端文件详解
  4. FreeBSD挂截U盘和光盘
  5. 转: vim 的编辑格式设置
  6. ES6模块与commonJS模块的差异
  7. 成都电子计算机实验中学 孙蕾,痴迷物理 成都男孩保送清华最牛的计算机专业实验班...
  8. 2020杭电多校6 1006A Very Easy Graph Problem血泪史
  9. 监控网页变化,实时推送微信消息
  10. LeetCode 247. 中心对称数
  11. python自动化测试-最常用的自动化测试框架
  12. 《编译与反编译技术》—第3章3.1语 法 分 析
  13. 极客日报:阿里回应1000万成立“元境生生”;马斯克一年上了75次热搜;微软.NET中文官网正式上线
  14. 投票小程序制作开发有哪些步骤?投票小程序开发有哪些功能?
  15. 互联网+教育时代,线下教培机构的新机遇
  16. 值得 .NET 开发者了解的15个特性
  17. 基于TerraExplorer Pro的校园三维浏览系统开发
  18. Linux无线网络架构
  19. c语言单片机与plc通讯,用c51实现单片机和plc之间通讯实例
  20. java连接mysql的驱动包的下载

热门文章

  1. 使用GNOME Tweak Tool来定制Ubuntu 18.04上的GNOME 3桌面环境
  2. C语言学习笔记《带你学C带你飞》P41-P61
  3. 计算机中year函数怎么使用,excel2010中YEAR函数的使用方法
  4. 登录samba后提示“你可能没有权限访问网络资源”的解决方法
  5. java短信接口开发完整项目_java项目接入第三方短信接口
  6. 注意力机制与V_net神经网络的介绍与实现
  7. 读丁磊内部邮件有感“丁磊点评:微信5分 陌陌4分 易信0分 来往负分”
  8. cloudera安装
  9. 计算机上机考试自我检查800字,检讨书自我反省800字考试没考好
  10. Facebook_scraper:Python获取FB用户的公开发帖【FaceBook系列 一】