nicholas@2224
|
1 <?php
|
nicholas@2224
|
2 //http://stackoverflow.com/questions/4444475/transfrom-relative-path-into-absolute-url-using-php
|
nicholas@2283
|
3 include "rel2abs.php";
|
nicholas@2224
|
4
|
nicholas@2224
|
5 /*
|
nicholas@2224
|
6 This looks for files that pass the filtering response
|
nicholas@2224
|
7 The filtering system uses key-value pairs
|
nicholas@2224
|
8 The key is double encoded using a '-'. The first part is the ID of the item to filter,
|
nicholas@2224
|
9 the second is the method:
|
nicholas@2224
|
10 min - Minimum Inclusive
|
nicholas@2224
|
11 max - Maximum Inclusive
|
nicholas@2224
|
12 exclude-# - exclude, followed by a number to uniquely add, (will create a triple [], ignore the third as random)
|
nicholas@2224
|
13 */
|
nicholas@2283
|
14 $keys = array();
|
nicholas@2224
|
15 $waet_url = null;
|
nicholas@2224
|
16 foreach ($_GET as $key => $value) {
|
nicholas@2224
|
17 $key = explode("-",$key);
|
nicholas@2224
|
18 if ($key[0] == "url") {
|
nicholas@2224
|
19 $waet_url = $value;
|
nicholas@2224
|
20 } else {
|
nicholas@2283
|
21 $v_pair = array($key[1],$value);
|
nicholas@2224
|
22 if(array_key_exists($key[0],$keys)) {
|
nicholas@2224
|
23 // We have some data
|
nicholas@2224
|
24 array_push($keys[$key[0]],$v_pair);
|
nicholas@2224
|
25 } else {
|
nicholas@2224
|
26 // Create new key data
|
nicholas@2283
|
27 $keys[$key[0]] = array($v_pair);
|
nicholas@2224
|
28 }
|
nicholas@2224
|
29 }
|
nicholas@2224
|
30 }
|
nicholas@2224
|
31
|
nicholas@2283
|
32 $files = array();
|
nicholas@2224
|
33 $saves = glob("../saves/*.xml");
|
nicholas@2224
|
34 if (is_array($saves))
|
nicholas@2224
|
35 {
|
nicholas@2224
|
36 foreach($saves as $filename) {
|
nicholas@2224
|
37 $xml_string = file_get_contents($filename, FILE_TEXT);
|
nicholas@2224
|
38 $xml_object = simplexml_load_string($xml_string);
|
nicholas@2224
|
39 if ($xml_object) {
|
nicholas@2224
|
40 // First we must check the URLs match
|
nicholas@2224
|
41 $waet = $xml_object->waet[0];
|
nicholas@2224
|
42 if (urldecode($waet["url"])==$waet_url) {
|
nicholas@2224
|
43 // It is part of the dataset, so now perform checks
|
nicholas@2224
|
44 $continue = true;
|
nicholas@2224
|
45 foreach($keys as $keyId => $keyArr) {
|
nicholas@2224
|
46 $elem = $xml_object->xpath("//*[@ref='".$keyId."']");
|
nicholas@2224
|
47 $elem = $elem[0]; // Can only be one.
|
nicholas@2224
|
48 switch ($elem["type"]) {
|
nicholas@2224
|
49 case "number":
|
nicholas@2224
|
50 // Number, we must check for min/max
|
nicholas@2224
|
51 $value = (real)$elem->response;
|
nicholas@2224
|
52 foreach ($keyArr as $keyCheck) {
|
nicholas@2224
|
53 if ($keyCheck[0] == 'min' && $value < $keyCheck[1]) {
|
nicholas@2224
|
54 $continue = false;
|
nicholas@2224
|
55 break;
|
nicholas@2224
|
56 } else if ($keyCheck[0] == 'max' && $value > $keyCheck[1]) {
|
nicholas@2224
|
57 $continue = false;
|
nicholas@2224
|
58 break;
|
nicholas@2224
|
59 }
|
nicholas@2224
|
60 }
|
nicholas@2224
|
61 break;
|
nicholas@2224
|
62 case "checkbox":
|
nicholas@2224
|
63 // Will have an array of <response>
|
nicholas@2224
|
64 foreach ($elem->response as $response) {
|
nicholas@2224
|
65 foreach ($keyArr as $keyCheck) {
|
nicholas@2224
|
66 if ($response["name"] == $keyCheck[1]) {
|
nicholas@2224
|
67 if($response["checked"] == "true" && $keyCheck[0] == "exclude") {
|
nicholas@2224
|
68 $continue = false;
|
nicholas@2224
|
69 break;
|
nicholas@2224
|
70 }
|
nicholas@2224
|
71 }
|
nicholas@2224
|
72 }
|
nicholas@2224
|
73 if($continue == false) {
|
nicholas@2224
|
74 break;
|
nicholas@2224
|
75 }
|
nicholas@2224
|
76 }
|
nicholas@2224
|
77 break;
|
nicholas@2224
|
78 case "radio":
|
nicholas@2224
|
79 foreach ($keyArr as $keyCheck) {
|
nicholas@2224
|
80 if ($keyCheck[0] == "exclude" && $elem->response["name"] == $keyCheck[1]) {
|
nicholas@2224
|
81
|
nicholas@2224
|
82 $continue = false;
|
nicholas@2224
|
83 break;
|
nicholas@2224
|
84 }
|
nicholas@2224
|
85 }
|
nicholas@2224
|
86 break;
|
nicholas@2224
|
87 default:
|
nicholas@2224
|
88 break;
|
nicholas@2224
|
89 }
|
nicholas@2224
|
90 if ($continue == false) {
|
nicholas@2224
|
91 break;
|
nicholas@2224
|
92 }
|
nicholas@2224
|
93 }
|
nicholas@2224
|
94 if ($continue) {
|
nicholas@2224
|
95 array_push($files,rel2abs($filename,"http://".$_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']));
|
nicholas@2224
|
96 }
|
nicholas@2224
|
97 }
|
nicholas@2224
|
98 }
|
nicholas@2224
|
99 }
|
nicholas@2224
|
100 }
|
nicholas@2224
|
101 if (count($files) == 0) {
|
nicholas@2224
|
102 echo '{"urls": []}';
|
nicholas@2224
|
103 } else {
|
nicholas@2224
|
104 echo '{"urls": ["'.implode('","',$files).'"]}';
|
nicholas@2224
|
105 }
|
nicholas@2224
|
106
|
nicholas@2224
|
107 ?> |