|
控制器代码
PHP复制代码
function index()
{
$this->load->model('tree_model');
$data=$this->tree_model->get_group_id_by_admin_id($_SESSION["ADMIN_ID"]);
$gpid=$data['gpid'];
$arr=$this->tree_model->getMenuData($_SESSION["ADMIN_ID"],$gpid);//$arr的数据已获得了,如下
/*
Array ( [0] => Array ( [id] => 35 [name] => 群组管理 [link] => index.php?type=system&do=group [parent_id] => 34 [hide_sub] => 0 ) [1] => Array ( [id] => 36 [name] => 帳號管理 [link] => index.php?type=system&do=user [parent_id] => 34 [hide_sub] => 0 ) [2] => Array ( [id] => 37 [name] => 權限管理 [link] => index.php?type=system&do=group_permission [parent_id] => 34 [hide_sub] => 0 ) [3] => Array ( [id] => 16 [name] => 產品 分類 [link] => index.php?type=web&do=list&cn=product_category&langid=1&ntype=1 [parent_id] => 15 [hide_sub] => 0 ) [4] => Array ( [id] => 44 [name] => 相關鏈接分類 [link] => index.php?type=web&do=list&cn=news_category&ntype=6&langid=1 [parent_id] => 42 [hide_sub] => 0 ) [5] => Array ( [id] => 118 [name] => Biotech 分類 [link] => index.php?type=web&do=list&cn=product_category&langid=1&ntype=2 [parent_id] => 117 [hide_sub] => 0 ) [6] => Array ( [id] => 125 [name] => 消息管理 [link] => [parent_id] => 0 [hide_sub] => 1 ) [7] => Array ( [id] => 5 [name] => 消息分類 [link] => index.php?type=web&do=list&cn=news_category&ntype=2&langid=1 [parent_id] => 3 [hide_sub] => 0 ) [8] => Array ( [id] => 17 [name] => 產品 列表 [link] => index.php?type=web&do=list&cn=product&langid=1&ntype=1 [parent_id] => 15 [hide_sub] => 0 ) [9] => Array ( [id] => 43 [name] => 相關鏈接列表 [link] => index.php?type=web&do=list&cn=news&ntype=6&langid=1 [parent_id] => 42 [hide_sub] => 0 ) [10] => Array ( [id] => 119 [name] => Biotech 列表 [link] => index.php?type=web&do=list&cn=product&langid=1&ntype=2 [parent_id] => 117 [hide_sub] => 0 ) [11] => Array ( [id] => 127 [name] => 消息分類 [link] => index.php?type=web&do=list&cn=news_category&ntype=8&langid=1 [parent_id] => 125 [hide_sub] => 0 ) [12] => Array ( [id] => 4 [name] => 消息列表 [link] => index.php?type=web&do=list&cn=news&ntype=2&langid=1 [parent_id] => 3 [hide_sub] => 0 ) [13] => Array ( [id] => 15 [name] => 產品 管理 [link] => [parent_id] => 0 [hide_sub] => 1 ) [14] => Array ( [id] => 126 [name] => 消息列表 [link] => index.php?type=web&do=list&cn=news&ntype=8&langid=1 [parent_id] => 125 [hide_sub] => 0 ) [15] => Array ( [id] => 128 [name] => 留言列表 [link] => index.php?type=web&do=list&cn=contact&ntype=2 [parent_id] => 0 [hide_sub] => 0 ) [16] => Array ( [id] => 21 [name] => 幻燈片管理 [link] => index.php?type=web&do=list&cn=slider [parent_id] => 0 [hide_sub] => 1 ) [17] => Array ( [id] => 30 [name] => 系統管理 [link] => [parent_id] => 0 [hide_sub] => 1 ) [18] => Array ( [id] => 34 [name] => 管理權限 [link] => [parent_id] => 30 [hide_sub] => 0 ) )
*/
$data['menu']=$this->tree_model->createmenu($arr,base_url(),"admin");
$this->load->view('_frameset',$data);
//$this->getMenuData('sadf');
}
复制代码
tree_mode模型代碼
PHP复制代码
<?
class Tree_model extends CI_Model {
function __construct (){
parent ::__construct ();
}
function resetArray ($parent_id,$array){
$retVal=array();
//$retVal[count($retVal)-1] = '';
foreach($array as $val){
if($parent_id==$val["parent_id"]){
$retVal[]=$val;
//$retVal[count($retVal)-1]['indent'].=' ';
$tmp=array();
$tmp=$this->resetArray($val["id"],$array);
if($tmp){
foreach($tmp as $val2){
$retVal[]=$val2;
$retVal[count($retVal)-1]['indent'].=' ';
$retVal[count($retVal)-1]['flag']++;
}
}
unset($tmp);
}
}
return $retVal;
}
function get_group_id_by_admin_id ($admin_id){
if(empty($admin_id)) return false;
global $webdb;
$query="select * from _sys_admin where id=".$admin_id;
$row=$this->db->query($query);
return $row->row_array();
}
function getMenuData ($admin_id,$gpid){
//echo $admin_id;
if(empty($admin_id)) return false;
global $webdb;
$where =" or admin_id=".$admin_id;
$group_id=$gpid;
if($group_id) $where.=" or group_id=".$group_id;
$sql="select s.id,s.name,s.link,s.parent_id,s.hide_sub from _sys_section s inner join _sys_group_perm p on p.perm_id=s.id where (1 ".$where." ) AND status=1 group by s.id order by s.sort,s.id asc";
$row=$this->db->query($sql);
//print_r($row->result_array());
return $row->result_array();
}
function hasSub ($id,$array){
$retVal=false;
foreach($array as $ary){
if($ary["parent_id"]==$id){
$retVal=true;
break;
}
}
return $retVal;
}
function createmenu ($array,$imgRootPath,$divIdPrefix="",$parent_id=0){
$result="";
$rs=$this->resetArray($parent_id,$array);
$result= '<div class="tree_menu" id="'.$divIdPrefix.'_tree_menu" >';
for($i=0;$i<count($rs);$i++){
$result.="<div width='100%'>";
for($j=0;$j<$rs[$i]["flag"];$j++){
if($rs[$i]["name"]&&(($j+1)==$rs[$i]["flag"])){
if($rs[$i+1]["parent_id"]==$rs[$i]["parent_id"]){
$result.= '<img src="'.$imgRootPath.'style/tree/H.gif">';
}else{
if($rs[$i]["flag"]<=($rs[$i+1]["flag"]+1)){
$result.= '<img src="'.$imgRootPath.'style/tree/H.gif">';
}else{
$result.= '<img src="'.$imgRootPath.'style/tree/L.gif">';
}
}
//echo "<hr />";
}else{
$result.= '<img src="'.$imgRootPath.'style/tree/I.gif">';
}
}
$rsid=$rs[$i]["id"];
$flag_img="nfolder.gif";
$onclick="";
$A_onclick="";
if($this->hasSub($rs[$i]["id"],$array)){
$flag_img="ofolder.gif";
//隱藏
if($rs[$i]["hide_sub"]==1) $flag_img="folder.gif";
$onclick=' ';
$A_onclick="javascript:OnClickOutline('".$imgRootPath."',".$rsid.")";
}
$result.= '<img class="Outline" id="ID'.$rsid.'" style="CURSOR: pointer" '.$onclick.' alt="" src="'.$imgRootPath.'style/tree/'.$flag_img.'" /> ';
if($rs[$i]["link"]){
if($rsid==105){
$result.='<a href="javascript:;">';
}else{
$result.='<a href="'.$rs[$i]["link"].'">';
}
}else{
if($A_onclick){
$result.='<a href='.$A_onclick;
}else{
$result.='<a href="javascript:void(0);"';
}
$result.='>';
}
$result.= $rs[$i]["name"];
$result.='</a>';
$result.="</div>";
// if($rs[$i]["pid"]==0) $result.= "<br />";
//</div>
if($rs[$i]["flag"]>$rs[$i+1]["flag"]){
$div_n=$rs[$i]["flag"]-$rs[$i+1]["flag"];
for($div_i=0;$div_i<$div_n;$div_i++){
$result.= "</div>";
}
}
//end </div>
//<div>
if($this->hasSub($rs[$i]["id"],$array)){
$result.= '<div id="ID'.$rsid.'d"';
if($rs[$i]["hide_sub"]==1) $result.= ' style="display:none" ';
$result.= '>';
}
//end <div>
}
//$result.= ' <div id="infodisplay"><font color="#999999">點擊+展開節點</font></div>';
$result.= '</div>';
$result.="<script>";
$result.=" $('#".$divIdPrefix."_tree_menu a').click(function (){";
$result.=" if($(this).attr('href')!='javascript:void(0);') {";
$result.=" SetCookie('".$divIdPrefix."_tree_menu',$(this).attr('href'));";
$result.=" SetCookie('".$divIdPrefix."_menu_name',$(this).text());";
$result.=" }});";
$result.=" tree_menu_setNow(GetCookie('".$divIdPrefix."_tree_menu'),'".$divIdPrefix."_tree_menu');";
$result.="</script>";
return $result;
}
}
?>
复制代码
为什么我使用 createmenu函数,在调用resetArray函数是,会报错的??
A PHP Error was encountered
Severity: Notice
Message: Undefined index: indent
Filename: models/tree_model.php
Line Number: 44
A PHP Error was encountered
Severity: Notice
Message: Undefined index: flag
Filename: models/tree_model.php
Line Number: 45
刚玩ci几天,不是很会玩,求解!!
|
|