Bonjour,
J'ai encore besoin de vos lumières pour l'enregistrement d'un tableau avec une fonction récursive .
voilà ma fonction :
La fonction read retourne une tableau via "fetchAll()"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public function GetMenu($uid,$level='0'){ $Param = array('id'=> $uid,'pid'=>$level); $query = "SELECT P.page_id,P.parent_id,P.page_name,P.url,P.hierarchy FROM ".$this->__get('db_prefix')."_backend_pages P INNER JOIN ".$this->__get('db_prefix')."_groups G ON FIND_IN_SET( G.group_id, P.group_id ) INNER JOIN ".$this->__get('db_prefix')."_users U ON U.group_id = G.group_id WHERE U.user_id = :id AND P.parent_id = :pid ORDER BY hierarchy"; $menu = $this->GetDb()->read( $query,$Param); for($i = 0 ; $i < count($menu); $i++) { $ListItem[$i] = array('page_id'=>$menu[$i]['page_id'],'parent_id'=>$menu[$i]['parent_id'],'page_name'=>constant($menu[$i]['page_name']),'url'=>$menu[$i]['url']); array_push($ListItem[$i],self::GetMenu($uid,$menu[$i]['page_id'])); } return $ListItem; }
Ce que j'obtiens :
Ce que je voudrais obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Array ( [0] => Array ( [page_id] => 1 [parent_id] => 0 [page_name] => page1 [url] => page1.php [0] => Array ( [0] => Array ( [page_id] => 8 [parent_id] => 1 [page_name] => page1_1 [url] => page1_1.php [0] => ) [1] => Array ( [page_id] => 9 [parent_id] => 1 [page_name] => page1_2 [url] => page1_2.php [0] => ) [2] => Array ( [page_id] => 10 [parent_id] => 1 [page_name] => page1_3 [url] => page1_3.php [0] => ) ) ) [1] => Array ( [page_id] => 2 [parent_id] => 0 [page_name] => page2 [url] => page2.php [0] => Array ( [0] => Array ( [page_id] => 11 [parent_id] => 2 [page_name] => page2_1 [url] => page2_1.php [0] => ) ) ) )
Ce tableau me permettra d'afficher un menu dans un template smarty.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Array ( [0] => Array ( [page_id] => 0 [parent_id] => 0 [page_name] => page1 [page_url] => page1.php [0] => Array ( [page_id] => 8 [parent_id] => 0 [page_name] => page1_1 [page_url] => page1_1.php ) [1] => Array ( [page_id] => 9 [parent_id] => 0 [page_name] => page1_2 [page_url] => page1_2.php ) ) [1] => Array( [page_id] => 0 [parent_id] => 0 [page_name] => page2 [page_url] => page2.php [0] => Array ( [page_id] => 8 [parent_id] => 0 [page_name] => page2_1 [page_url] => page2_1.php ) [1] => Array ( [page_id] => 9 [parent_id] => 0 [page_name] => page2_2 [page_url] => page2_2.php ) ) )
une idée ?
Merci.
Partager