当前位置:Linux教程 - Php - 一个菜单类满好用的

一个菜单类满好用的

<?php
/*
使用方法如下:
$sm_1 = new submenu;
$sm_1->create("1");
$sm_1->add('','本类数据库');
$sm_1->add("./shk/","企位库");
$sm_1->add("./garden/","园区库","这里能查询园区数据");
$sm_1->add("./gr/","信息库");

$sm_2 = new submenu;
$sm_2->create("2");
$sm_2->add("","国类数据库");
$sm_2->add("./error.php?err=对不起!在开发中...","位库");
$sm_2->add("./error.php?err=对不起!在开发中...","区库");
$sm_2->add("./error.php?err=对不起!在开发中...","信息库");
...
...

$MainMenu = new menu;
$MainMenu->create();

$MainMenu->add($sm_1);
$MainMenu->add($sm_2);
$MainMenu->add($sm_3);
$MainMenu->add($sm_4);

<TABLE class="shadow" align="center" width="100%">
<TR>
        <TD>
        <?php
        if (empty($_GET["action"]) &amp;&amp; empty($_POST["action"])) {
            $MainMenu->show();
        }

        if ($_POST["action"]=='open' || $_GET["action"]=='open') {
            $MainMenu->id=(!$_GET["id"])?$_POST["id"]:$_GET["id"];
            $MainMenu->show();
        }
        ?>
        </TD>
</TR>
</TABLE>

*/
class submenu { /* 子目录类 */
var $urls;      /* 网址     */
var $desps;     /* 名称     */
var $mytitle;   /* 链接说明 */
var $cot;       /* 序号     */
var $id;        /* 执行id   */

function create($id) { /*本身*/
    
$this->cot=0;
    
$this->id=$id;
}

function
add($url, $desp, $stitle="") { /*方法_增加子目录内容*/
    
$this->urls[$this->cot]=$url;
    
$this->desps[$this->cot]=$desp;
        
$this->mytitle[$this->cot]=$stitle;
    
$this->cot++;
}

function
open() { /*方法_打开子目录*/
    
$i=0;
    echo
'<table width="100%" border="0" align="center">';
    while(
$i<=$this->cot) {
        if (
$i==0) { /*子目录本身*/
            
echo '<tr><td align="center" bgcolor="#000080"><font color="White">';
            echo
$this->desps[0];
            echo
'</font></td></tr>';
        }
        else {
            echo
'<tr><td align="center" ><font size="-1">';
            echo
'<a href="'.$this->urls[$i].'" title="'.$this->mytitle[$i].'">'.$this->desps[$i].'</a>';
            echo
'</font></td></tr>';
        }
        
$i++;
    }
    echo
'</table>';
}

function
close() { /* 结束 */
    
echo '<table width="100%" border="0" align="center">';
    echo
'<tr><td align="center" bgcolor="#C0C0C0"><font color="White">';
    echo
'<a href="?action=open&amp;id='.$this->id.'">'.$this->desps[0].'</a>';
    echo
'</font></td></tr>';
    echo
'</table>';
}

}
//end class

class menu { /*主目录类*/

var $submenus; /*定义子目录阵列*/
var $cot; /*阵列内容序号*/
var $id; /*执行id*/

function create() { /*constructor*/
    
$this->cot=0;
    
$this->id=0;
}

function
add($submenu) { /*方法_增加子目录*/
    
$this->submenus[$this->cot]=new submenu;
    
$this->submenus[$this->cot]=$submenu;
    
$this->cot++;
}

function
show() { /*方法_显示目录*/
    
$i=0;
    
$tmp = new submenu;
    while (
$i<$this->cot) {
        
$tmp=$this->submenus[$i];
        if (
$tmp->id==(string)$this->id) {
            
$tmp->open();
        }
        else {
            
$tmp->close();
        }
        
$i++;
    }
}

}
// end class


将   class submenu { /* 子目录类 */ 以上的代码另存为一个文件.执行就可以了