Ik loop weer eens tegen de grenzen van mijn PHP capaciteiten aan 
Ik probeer een script te bouwen welke een recursieve directory laat zien, en wel in de vorm van een tree. Voor de weergave van de tree gebruik ik een javascript (onvolprezen btw: dtree). Het ogenschijnlijk simpele probleem is dat ik een output moet genereren als dit:
Het mag duidelijk zijn dat dtree aan de hand van de nummering de hierarchie vastlegt, warna het script een keurige tree laat zien.
Met wat ik tot dusver heb gebrouwen gaat dat ook prima. Zij het niet dat er geen sprake is van recursiviteit. In mijn script worden slechts 2 levels zichtbaar aangezien het script gewoon niet dieper gaat:
Ik heb uiteraard mijn script al de nodige keren getracht uit te breiden door o.a. te werken met functies. Maar geen van de pogingen is geslaagd. Voorbeelden en tutorials op het net werken vrijwel allemaal met PHP Arrays, maar ik wil vanwege de goede ervaring graag gebruik maken van dtree.
Na een dag zoeken, sleutel en teleurstellingen ben ik redelijk gefrustreerd...
Wie geeft me een zetje in de rug...
Ik probeer een script te bouwen welke een recursieve directory laat zien, en wel in de vorm van een tree. Voor de weergave van de tree gebruik ik een javascript (onvolprezen btw: dtree). Het ogenschijnlijk simpele probleem is dat ik een output moet genereren als dit:
code:
1
2
3
4
5
6
7
8
| d.add(1,0, main directory1); d.add(2,1, first subdir from main directory1); d.add(3,1, second subdir from main directory1); d.add(4,0, main directory2); d.add(5,4, first subdir from main directory2); d.add(6,4, second subdir from main directory2); d.add(7,6, first subdir from second subdir frommain directory 2); etc. |
Het mag duidelijk zijn dat dtree aan de hand van de nummering de hierarchie vastlegt, warna het script een keurige tree laat zien.
Met wat ik tot dusver heb gebrouwen gaat dat ook prima. Zij het niet dat er geen sprake is van recursiviteit. In mijn script worden slechts 2 levels zichtbaar aangezien het script gewoon niet dieper gaat:
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
| <div class="dtree"> <script type="text/javascript"> d = new dTree('d'); d.add(0,-1,'Hoofd directory'); <? $dir = "testdata/"; if ($handle = opendir($dir)) { $teller = 1; $basis = 0; while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if (!is_dir($dir.$file)) { echo "d.add($teller,$basis,'$file','#');\n"; } else { $basis2 = $teller; echo "d.add($teller,$basis,'<strong>$file</strong>','#');\n"; $teller++; if ($handle2 = opendir($dir.$file."/")) { while (false !== ($file2 = readdir($handle2))) { if ($file2 != "." && $file2 != "..") { echo "d.add($teller,$basis2,'$file2','#');\n"; $teller++; } } closedir($handle2); } } $teller++; } } closedir($handle); echo " document.write(d);"; } ?> </script> </div> |
Ik heb uiteraard mijn script al de nodige keren getracht uit te breiden door o.a. te werken met functies. Maar geen van de pogingen is geslaagd. Voorbeelden en tutorials op het net werken vrijwel allemaal met PHP Arrays, maar ik wil vanwege de goede ervaring graag gebruik maken van dtree.
Na een dag zoeken, sleutel en teleurstellingen ben ik redelijk gefrustreerd...

Wie geeft me een zetje in de rug...