[Tableaux] Collapsable Nested Tree Récursivité !
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:
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:
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
Citation:
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:
Citation:
About Page
-hello
--Why
Contact Us
si je suis à contact us ça donne
Citation:
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