Bonjour,
ça fait trois heure que je pense au problème et j'ai la tête qui a arrêté de tourner..
j'ai un tableau de la forme:

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Array
(
    [2] => Array
        (
            [Page] => Array
                (
                    [id] => 2
                    [parentid] => 0
                    [name] => About Page
                    [urlval] => about
                    [sort_order] => 0
                )
            [Parent] => Array
                (
                    [id] => 
                    [parentid] => 
                    [name] => 
                    [urlval] => 
                    [sort_order] => 
                )
            [childs] => Array
                (
                    [3] => Array
                        (
                            [Page] => Array
                                (
                                    [id] => 3
                                    [parentid] => 2
                                    [name] => Why
                                    [urlval] => why
                                    [sort_order] => 0
                                )
                            [Parent] => Array
                                (
                                    [id] => 2
                                    [parentid] => 0
                                    [name] => About Page
                                    [urlval] => about
                                    [sort_order] => 0
                                )
                            [childs] => Array
                                (
                                    [6] => Array
                                        (
                                            [Page] => Array
                                                (
                                                    [id] => 6
                                                    [parentid] => 3
                                                    [name] => Show Room
                                                    [urlval] => showroom
                                                    [sort_order] => 0
                                                )
                                            [Parent] => Array
                                                (
                                                    [id] => 3
                                                    [parentid] => 2
                                                    [name] => Why
                                                    [urlval] => why
                                                    [sort_order] => 0
                                                )
                                        )
                                )
                        )
                )
        )
  [5] => Array
        (
            [Page] => Array
                (
                    [id] => 5
                    [parentid] => 0
                    [name] => Contact Us
                    [urlval] => contact
                    [sort_order] => 0
                )
            [Parent] => Array
                (
                    [id] => 
                    [parentid] => 
                    [name] => 
                    [urlval] => 
                    [sort_order] => 
                )
        )
)

Pour afficher l'arbre entière j'utilise un truc du genre:

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
	function expanded($current)
	{
		$this->_expanded($this->tree,$current);
	}
	function _expanded($tr,$current,$level = 0)
	{
		foreach($tr as $t)
		{
			echo str_repeat('  ',$level);
			if($t['Page']['urlval'] == $current) 
			{
				echo $t['Page']['name'];			
			}
			else
			{
				echo $this->Html->link($t['Page']['name'], "/mod/show/".$t['Page']['urlval'],null,false,true,true);
			}
 
			echo "<br/>";
 
			if(isset($t['childs'])) 
			{
				$this->_expanded($t['childs'],$current,$level + 1);
			}
		}
	}
ça donne quelque chose comme ça

About Page
-hello
-Why
--Show Room
Contact Us

maintenant, je veux afficher l'arbre mais de la forme collapsable:
c'est à dire si je suis à hello:
About Page
-hello
--Why
Contact Us
si je suis à contact us ça donne
About Page
Contact Us
est ce que quelqu'un à une idée, une approche ? ou un code prêt que je pourais étudier ?

Merci d'avance