giuliomoro@15
|
1 <?php
|
giuliomoro@15
|
2 /*
|
giuliomoro@15
|
3 Get Tests
|
giuliomoro@15
|
4
|
giuliomoro@15
|
5 This script returns the XML test names available, plus the number of tests
|
giuliomoro@15
|
6 */
|
giuliomoro@15
|
7
|
giuliomoro@15
|
8 include "rel2abs.php";
|
giuliomoro@15
|
9
|
giuliomoro@15
|
10 // XML Saves location - assumes it will be saves/
|
giuliomoro@15
|
11 $data = array();
|
giuliomoro@15
|
12 $saves = glob("../saves/*.xml");
|
giuliomoro@15
|
13 if (is_array($saves))
|
giuliomoro@15
|
14 {
|
giuliomoro@15
|
15 foreach($saves as $filename) {
|
giuliomoro@15
|
16 $xml_string = file_get_contents($filename, FILE_TEXT);
|
giuliomoro@15
|
17 $xml_object = simplexml_load_string($xml_string);
|
giuliomoro@15
|
18 if ($xml_object) {
|
giuliomoro@15
|
19 $filename = rel2abs($filename,"http://".$_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
|
giuliomoro@15
|
20 $waet = $xml_object->waet[0];
|
giuliomoro@15
|
21 $testName = urldecode($waet["url"]);
|
giuliomoro@15
|
22 if(array_key_exists($testName,$data)) {
|
giuliomoro@15
|
23 // Key exists
|
giuliomoro@15
|
24 array_push($data[$testName],$filename);
|
giuliomoro@15
|
25 } else {
|
giuliomoro@15
|
26 // Key does not exist
|
giuliomoro@15
|
27 $data[$testName] = array($filename);
|
giuliomoro@15
|
28 }
|
giuliomoro@15
|
29 }
|
giuliomoro@15
|
30 }
|
giuliomoro@15
|
31 }
|
giuliomoro@15
|
32
|
giuliomoro@15
|
33 // Now read the format response
|
giuliomoro@15
|
34 $format = "JSON";
|
giuliomoro@15
|
35 if (array_key_exists("format",$_GET)) {
|
giuliomoro@15
|
36 $format = $_GET["format"];
|
giuliomoro@15
|
37 }
|
giuliomoro@15
|
38 switch($format) {
|
giuliomoro@15
|
39 case "JSON":
|
giuliomoro@15
|
40 // Return JSON
|
giuliomoro@15
|
41 $doc_root = '{"tests": [';
|
giuliomoro@15
|
42 $keys = array_keys($data);
|
giuliomoro@15
|
43 $numTests = count($data);
|
giuliomoro@15
|
44 for ($testIndex = 0; $testIndex < $numTests; $testIndex++) {
|
giuliomoro@15
|
45 $test_root = '{"testName": "'.$keys[$testIndex].'", "files": [';
|
giuliomoro@15
|
46 $numFiles = count($data[$keys[$testIndex]]);
|
giuliomoro@15
|
47 for ($countIndex=0; $countIndex < $numFiles; $countIndex++) {
|
giuliomoro@15
|
48 $test_root = $test_root.'"'.$data[$keys[$testIndex]][$countIndex].'"';
|
giuliomoro@15
|
49 if ($countIndex == $numFiles-1) {
|
giuliomoro@15
|
50 $test_root = $test_root.']}';
|
giuliomoro@15
|
51 } else {
|
giuliomoro@15
|
52 $test_root = $test_root.',';
|
giuliomoro@15
|
53 }
|
giuliomoro@15
|
54 }
|
giuliomoro@15
|
55 $doc_root = $doc_root.$test_root;
|
giuliomoro@15
|
56 if ($testIndex == $numTests-1) {
|
giuliomoro@15
|
57 $doc_root = $doc_root.']}';
|
giuliomoro@15
|
58 } else {
|
giuliomoro@15
|
59 $doc_root = $doc_root.',';
|
giuliomoro@15
|
60 }
|
giuliomoro@15
|
61 }
|
giuliomoro@15
|
62 echo $doc_root;
|
giuliomoro@15
|
63 break;
|
giuliomoro@15
|
64 default:
|
giuliomoro@15
|
65 echo '{"error": "format can only be JSON"}';
|
giuliomoro@15
|
66 }
|
giuliomoro@15
|
67
|
giuliomoro@15
|
68 ?> |