zend framework 1.5.2 中实现梅花雪1.0树状菜单
开发平台: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¶m=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树状菜单相关推荐
- 梅花雪2.0树数据库数据绑定实例(vs2008)
梅花雪2.0树型结构sqlserver数据库数据绑定,IDE是VS2008,数据库是sql server2005,部分代码如下,代码实例[点击这里]下载. 效果图 数据库结构代码: CREATE TA ...
- web tree dojo 0.3 和 梅花雪 MzTreeView1.0
开始: 首先大家先了解一下json. json主要是来传输数据.起着和xml文件相同的作用,用于后台java和前台js的数据交互. 优点:简单,易于操作.可以看做是java中的map 确定:由于简单不 ...
- 用中值排序基数法实现树状结构 (转)
在BBS的编写中,经常有人问怎样实现树状结构?一个比较不负责任的回答是:使用递归算法.当然,递归是一个可行的办法 (二叉树的历遍也好象只能使用递归算法),但对于BBS来说,这样做势必要进行大量的Sql ...
- Zend Framework 入门教程(简体中文版)
Zend Framework 入门教程(简体中文版) Getting Started With the Zend Framework Author:Rob Allen, www.akrabat.com ...
- Struts结合梅花雪实现动态生成树
昨天终于完成了动态树的测试,虽然还没有正式用于产品. 测试用到的知识点:struts,jsp,梅花雪1.0,Ms SQL2000. 部分代码如下: public ActionForward execu ...
- Zend Framework 2 中,定制error 的layout
为什么80%的码农都做不了架构师?>>> 404页面在我们平常浏览网页的时候并不会经常碰到,也因此很容易被忽略,在Zend Framework 2中,项目的结构已经默认提供了4 ...
- Zend Framework中,执行自定义sql语句
Zend Framework中的Zend_Db_Table类可以很好的对数据表实现select,insert,delete等操作.但是有时候还是希望自己运行一些sql语句. ZF当然也是支持的. 一种 ...
- zend studio mysql 配置_php 在Zend Framework中配置数据库参数
[php]代码库我是用zend studio 7.2.1建立的zend framework project 也就是说我的框架是由zend stduio7.2.1 帮我建立了文件路径等信息的 下面讲讲如 ...
- 在ZF2中实现Zend Framework的Controller init/preDispatch/postDispatch方法
在Zend Framework 1中,Controller里约定了一些默认的方法来实现钩子,包括 Controller初始化时调用的init()方法 派遣前的方法preDispatch() 派遣后的方 ...
- Zend Framework Mail通过网易免费邮箱发送邮件
2019独角兽企业重金招聘Python工程师标准>>> 做为一个苦逼的个人站长,做一个小网站,本来愿意来看的人就不多,再弄一个不能找回密码的会员系统?基本上被判死刑了 .阿里云的短信 ...
最新文章
- PHP -Casbin: 支持 ACL、RBAC、ABAC 多种模型的 PHP 权限管理框架
- shell 中定义数组
- 千年服务器角色信息在哪个文件,千年服务端文件详解
- FreeBSD挂截U盘和光盘
- 转: vim 的编辑格式设置
- ES6模块与commonJS模块的差异
- 成都电子计算机实验中学 孙蕾,痴迷物理 成都男孩保送清华最牛的计算机专业实验班...
- 2020杭电多校6 1006A Very Easy Graph Problem血泪史
- 监控网页变化,实时推送微信消息
- LeetCode 247. 中心对称数
- python自动化测试-最常用的自动化测试框架
- 《编译与反编译技术》—第3章3.1语 法 分 析
- 极客日报:阿里回应1000万成立“元境生生”;马斯克一年上了75次热搜;微软.NET中文官网正式上线
- 投票小程序制作开发有哪些步骤?投票小程序开发有哪些功能?
- 互联网+教育时代,线下教培机构的新机遇
- 值得 .NET 开发者了解的15个特性
- 基于TerraExplorer Pro的校园三维浏览系统开发
- Linux无线网络架构
- c语言单片机与plc通讯,用c51实现单片机和plc之间通讯实例
- java连接mysql的驱动包的下载
热门文章
- 使用GNOME Tweak Tool来定制Ubuntu 18.04上的GNOME 3桌面环境
- C语言学习笔记《带你学C带你飞》P41-P61
- 计算机中year函数怎么使用,excel2010中YEAR函数的使用方法
- 登录samba后提示“你可能没有权限访问网络资源”的解决方法
- java短信接口开发完整项目_java项目接入第三方短信接口
- 注意力机制与V_net神经网络的介绍与实现
- 读丁磊内部邮件有感“丁磊点评:微信5分 陌陌4分 易信0分 来往负分”
- cloudera安装
- 计算机上机考试自我检查800字,检讨书自我反省800字考试没考好
- Facebook_scraper:Python获取FB用户的公开发帖【FaceBook系列 一】