-
Notifications
You must be signed in to change notification settings - Fork 0
/
export.php
117 lines (84 loc) · 2.91 KB
/
export.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
109
110
111
112
113
114
115
116
117
<?php
/*
* To be used for exporting simulations as CSV for git update/upload
*/
require('libs/Smarty.class.php');
$smarty = new Smarty;
include('admin/config.php');
$smarty->assign('simList',simulationList());
//obtain list and (if any) selected sim
$simquery = new SimulationModel(); // instantiate collection model
$results = $simquery->findAll();
foreach ($results as $sim) {
$s = $sim->getAttributes();
$simulations[$s["_id"]] = $s["name"];
}
$smarty->assign('simulations', $simulations);
if (isset($_GET['simid'])) {
$selected = $_GET['simid'];
} else {
$selected = end($simulations);
}
$smarty->assign('selectedsim',$selected);
//Make CSV
if (isset($_POST['filename'])) {
$filename = $_POST['filename'];
$smarty->assign('success', 'true');
$smarty->assign('filename', $filename);
$notices[] = "Making CSV for sim: ".$_POST['simulation'];
$simquery2 = new SimulationModel(); // instantiate collection model
$sim = $simquery2->findOne(array("_id" => (int)$_POST['simulation']));
//var_dump($sim);
$countries = $sim->getCountries();
$countriesKeys = array_keys(end($countries));
$CSVarray = array();
$fp = fopen('local/'.$filename.'sim.csv', 'w');
unset($countriesKeys['_id']);
fputcsv($fp, $countriesKeys);
foreach($countries as $country) {
$CSVarray_sub = array();
foreach($countriesKeys as $key){
if ($key == "_id") {
// remove
} else {
$CSVarray_sub[$key] = $country[$key];
}
}
fputcsv($fp, $CSVarray_sub);
//$CSVarray[] = $CSVarray_sub;
unset($CSVarray_sub);
}
$notices[] = 'local/'.$filename.'sim.csv';
fclose($fp);
// Make param CSV also
unset($fp);
$fp = fopen('local/'.$filename.'params.csv', 'w');
$simData[] = array('name' => $sim->getName());
$simData[] = array('classname' => $sim->getClassname());
$simData[] = array('finishTime' => $sim->getFinishTime());
$simData[] = array('description' => $sim->getDescription());
$simData[] = array('author' => $sim->getAuthor());
$parameterDave = $sim->getParameters();
while ($p = current($parameterDave)) {
$Pkey = key($parameterDave);
$simData[] = array("param.".$Pkey => $p);
next($parameterDave);
}
/*
while ($line = current($simData)) {
fputcsv($fp, array(key($simData),$line));
next($simData);
}*/
for ($i = 0; $i<count($simData); $i++) {
$dave = key($simData[$i]);
fputcsv($fp, array($dave,$simData[$i][$dave]));
}
fclose($fp);
$notices[] = 'local/'.$filename.'params.csv';
$smarty->assign('notices',$notices);
} else {
$smarty->assign('filename', 'mynewdata');
}
//Render page
$smarty->display('views/export.tpl');
?>