[原創]PHP欄目導航類
來源:互聯網
上載者:User
原創 function bars($code,$title,$url){
$path = "";
$msg = "缺少必須參數..";
if(empty($code)){
return $msg;
}
if($url[0]=="*"){
$cl=substr($url,1,strlen($url));
}else{
$cl="a01";//預設連結的class--為了修改顏色
}
$sql=$this->getsql("select * from path where symbol='$code'");
$path_="<a href=\"".$sql[0][url]."\" class=$cl>".$sql[0][title]."</a>";//目前的目錄與名稱
for($int_a=0;$int_a<$sql[0][level];$int_a++){
$sql_=$this->getsql("select * from path where id='".$sql[0][vlevel]."'");
$pathi[]="<a href=\"".$sql_[0][url]."\" class=$cl>".$sql_[0][title]."</a> → ";
$sql[0][vlevel]=$sql_[0][vlevel];
if($sql_[0][id]==$sql_[0][vlevel]){
break;
}
}
reset($pathi);
sort($pathi);
while(list($key,$values)=each($pathi)){
$path.=$values;
}
$path.=$path_;
if($title!="" && $url!=""){
$path.=" → <a href=\"$url\">$title</a>";
}
return $path;
}
————————————————————————————————
以上為本人所使用的欄目導航類...(原創,非盜版!)
————————————————————————————————
表格結構為:
CREATE TABLE path (
id int(8) unsigned NOT NULL auto_increment,
symbol varchar(10) NOT NULL default 'a-1',
level int(8) unsigned NOT NULL default '1',
vlevel int(8) unsigned default '1',
title varchar(50) NOT NULL default '',
url varchar(100) NOT NULL default '/',
PRIMARY KEY (id),
UNIQUE KEY id (id),
KEY id_2 (id,symbol,level,vlevel)
) TYPE=MyISAM;
________________________________________________________
說明,其中getsql的方法我就不貼出來了啊,主要是將記錄返回
調用的時候採用
<?php
$C = new classname;
$C->bars("頁面代碼","當前傳遞參數","串連地址或class名");
//示範一:$C-bars("a-1","","");//顯示表中symbol為a-1的頁面名稱,eg. 首頁
//示範二:$C-bars("a-2","資訊列目","$PHP_SELF");//顯示表中symbol為a-1的頁面名稱. eg. 首頁 -> 資訊諮詢 -> 資訊列目
//注意a-2對應的是[資訊諮詢]--均有連結...如果您定義了a 的一些偽屬性,如果預設的為白色,則這裡的顏色都為白色,如果您希望修改顏色可以這樣
//示範三:$C-bars("a-2","資訊列目","*newclassname");//顯示表中symbol為a-1的頁面名稱. eg. 首頁 -> 資訊諮詢 -> 資訊列目
//則所有導航的連結均改為newclassname這個class屬性了,如果您需要在最後仍然需要link的話請處理這個參數~,可以再加個|來切割一下了!~
?>