]> git.proxmox.com Git - extjs.git/blame - extjs/build/examples/classic/tree/get-nodes.php
add extjs 6.0.1 sources
[extjs.git] / extjs / build / examples / classic / tree / get-nodes.php
CommitLineData
6527f429
DM
1<?php\r
2// from php manual page\r
3function formatBytes($val, $digits = 3, $mode = 'SI', $bB = 'B'){ //$mode == 'SI'|'IEC', $bB == 'b'|'B'\r
4 $si = array('', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y');\r
5 $iec = array('', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi');\r
6 switch(strtoupper($mode)) {\r
7 case 'SI' : $factor = 1000; $symbols = $si; break;\r
8 case 'IEC' : $factor = 1024; $symbols = $iec; break;\r
9 default : $factor = 1000; $symbols = $si; break;\r
10 }\r
11 switch($bB) {\r
12 case 'b' : $val *= 8; break;\r
13 default : $bB = 'B'; break;\r
14 }\r
15 for($i=0;$i<count($symbols)-1 && $val>=$factor;$i++)\r
16 $val /= $factor;\r
17 $p = strpos($val, '.');\r
18 if($p !== false && $p > $digits) $val = round($val);\r
19 elseif($p !== false) $val = round($val, $digits-$p);\r
20 return round($val, $digits) . ' ' . $symbols[$i] . $bB;\r
21}\r
22\r
23// grab the custom params\r
24$path = isset($_REQUEST['path'])&&$_REQUEST['path'] == 'extjs' ? '../../../' : '../../';\r
25\r
26$node = isset($_REQUEST['node']) ? $_REQUEST['node'] : '';\r
27$isXml = isset($_REQUEST['isXml']);\r
28\r
29if(strpos($node, '..') !== false){\r
30 die('Nice try buddy.');\r
31}\r
32\r
33$nodes = array();\r
34$directory = $path.$node;\r
35if (is_dir($directory)){\r
36 $d = dir($directory);\r
37 while($f = $d->read()){\r
38 if($f == '.' || $f == '..' || substr($f, 0, 1) == '.') continue;\r
39\r
40 $filename = $directory . '/' . $f;\r
41 date_default_timezone_set('America/Los_Angeles');\r
42 $lastmod = date('M j, Y, g:i a', filemtime($filename));\r
43\r
44 if(is_dir($directory.'/'.$f)){\r
45 $qtip = 'Type: Folder<br />Last Modified: '.$lastmod;\r
46 $nodes[] = array(\r
47 'text' => $f,\r
48 'id' => $node.'/'.$f,\r
49 'cls' => 'folder',\r
50 'qtip' => $qtip\r
51 );\r
52 } else {\r
53 $size = formatBytes(filesize($filename), 2);\r
54 $qtip = 'Type: JavaScript File<br />Last Modified: '.$lastmod.'<br />Size: '.$size;\r
55 $nodes[] = array(\r
56 'text' => $f,\r
57 'id' => $node.'/'.$f,\r
58 'leaf' => true,\r
59 'cls' => 'file',\r
60 'qtip' => $qtip\r
61 );\r
62 }\r
63 }\r
64 $d->close();\r
65}\r
66\r
67if ($isXml) {\r
68 $xmlDoc = new DOMDocument();\r
69 $root = $xmlDoc->appendChild($xmlDoc->createElement("nodes"));\r
70 foreach ($nodes as $node) {\r
71 $xmlNode = $root->appendChild($xmlDoc->createElement("node"));\r
72 $xmlNode->appendChild($xmlDoc->createElement("text", $node['text']));\r
73 $xmlNode->appendChild($xmlDoc->createElement("id", $node['id']));\r
74 $xmlNode->appendChild($xmlDoc->createElement("cls", $node['cls']));\r
75 $xmlNode->appendChild($xmlDoc->createElement("leaf", isset($node['leaf'])));\r
76 }\r
77 header("Content-Type: text/xml");\r
78 $xmlDoc->formatOutput = true;\r
79 echo $xmlDoc->saveXml();\r
80} else {\r
81 header("Content-Type: text/json");\r
82 echo json_encode($nodes);\r
83}