-
Notifications
You must be signed in to change notification settings - Fork 5
/
index.php
executable file
·108 lines (89 loc) · 3.09 KB
/
index.php
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
/*
Copyright (C) 2012 Robert Jensen, Thomas Andersen and Kenneth Nielsen
The CINF Data Presentation Website is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software
Foundation, either version 3 of the License, or
(at your option) any later version.
The CINF Data Presentation Website is distributed in the hope
that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public License
along with The CINF Data Presentation Website. If not, see
<http://www.gnu.org/licenses/>.
*/
include("common_functions_v2.php");
echo(html_header($root="", $title="Data logged at SurfCat", $includehead="",
$charset="UTF-8", $width=null, $html5=true));
#$g = simplexml_load_file("index.xml");
class IndexSpec
{
private $index_xml = null;
public function __construct(){
$this->index_xml = simplexml_load_file("index.xml");
}
public function generate_table(){
/* Generate the table with all the setups and linkes */
echo("\n\n<!-- GENERATED TABLE -->\n");
echo("<table class=\"frontpage\">\n");
$setups = $this->index_xml->xpath("//setup");
$three_setups = Array();
foreach ($setups as $setup){
$three_setups[] = $setup;
if (count($three_setups) == 3){
$this->generate_group_rows($three_setups);
$three_setups = Array();
}
}
// Pick up the tail
if (count($three_setups) > 0){
$this->generate_group_rows($three_setups);
}
echo("</table>\n\n\n");
}
private function generate_group_rows($setups){
/* Generate a the two rows used for one group of up to 3 setups */
echo("\n<tr>\n");
# Generate the toggle row
foreach($setups as $setup){
$codename = $setup['codename'];
echo("<td>" .
"<a href=\"javascript:toggle('$codename')\"><h2>{$setup->setup_title}</h2></a>" .
"</td>\n");
}
for($i=0; $i < 3 - count($setups) % 3; $i++){
echo("<td></td>\n");
}
echo("</tr>\n");
# Generate each setup td
echo("\n<tr>\n");
foreach($setups as $setup){
$this->generate_setup($setup);
}
for($i=0; $i < 3 - count($setups) % 3; $i++){
echo("<td></td>\n");
}
echo("</tr>\n");
}
private function generate_setup($setup){
$codename = $setup['codename'];
echo("<td>\n");
echo("<ul id=\"$codename\" style=\"display:none\">\n");
foreach ($setup->xpath("link") as $link){
$formatted_link = $link->ref;
$formatted_link = str_replace("&", "&", $formatted_link);
$formatted_link = str_replace("[", "%5B", $formatted_link);
$formatted_link = str_replace("]", "%5D", $formatted_link);
echo("<li><a href=\"{$formatted_link}\" >{$link->title}</a></li>\n");
}
echo("</ul>\n");
echo("</td>\n");
}
}
$index_spec = new IndexSpec();
$index_spec->generate_table();
echo(html_footer("", true));
?>