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&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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值