[moodle] / contrib / plugins / grade / report / visual / visual_settings.php Repository:

Annotation of /contrib/plugins/grade/report/visual/visual_settings.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (view) (download)

1 : dservos 1.1 <?php
2 : dservos 1.3 ///////////////////////////////////////////////////////////////////////////
3 :     // //
4 :     // NOTICE OF COPYRIGHT //
5 :     // //
6 :     // Moodle - Modular Object-Oriented Dynamic Learning Environment //
7 :     // http://moodle.org //
8 :     // //
9 :     // Copyright (C) 1999 onwards Martin Dougiamas http://moodle.com //
10 :     // //
11 :     // This program is free software; you can redistribute it and/or modify //
12 :     // it under the terms of the GNU General Public License as published by //
13 :     // the Free Software Foundation; either version 2 of the License, or //
14 :     // (at your option) any later version. //
15 :     // //
16 :     // This program is distributed in the hope that it will be useful, //
17 :     // but WITHOUT ANY WARRANTY; without even the implied warranty of //
18 :     // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
19 :     // GNU General Public License for more details: //
20 :     // //
21 :     // http://www.gnu.org/copyleft/gpl.html //
22 :     // //
23 :     ///////////////////////////////////////////////////////////////////////////
24 :    
25 :     /**
26 :     * Generates XML output that describes a visualization and is
27 :     * sent to the flash/flex front end. The output is based on the
28 :     * visualizations classes found in ./visualizations
29 :     */
30 :    
31 : dservos 1.2 /// Get a session id from the URI request and make a cookie
32 :     /// for it temparaly. This is needed as the flex application will
33 :     /// not have the users oringal cookie and only the session information
34 :     /// witch is passed to it.
35 :     $cookiewasset = false;
36 :     if(empty($_COOKIE) && isset($_GET['sessionid']) && isset($_GET['sessioncookie']) && isset($_GET['sessiontest'])) {
37 :     $_COOKIE['MoodleSession' . $_GET['sessioncookie']] = $_GET['sessionid'];
38 :     $_COOKIE['MoodleSessionTest' . $_GET['sessioncookie']] = $_GET['sessiontest'];
39 :     $cookiewasset = true;
40 :     }
41 :    
42 : dservos 1.1 require_once '../../../config.php';
43 :     require_once $CFG->dirroot.'/grade/report/visual/lib.php';
44 :     require_once $CFG->libdir.'/phpxml/xml.php';
45 :    
46 :     $visname = required_param('visid');
47 : dservos 1.2 $courseid = required_param('id');
48 :    
49 :     /// basic access checks
50 :     if(isset($DB) && !is_null($DB)) {
51 :     $course = $DB->get_record('course', array('id' => $courseid));
52 :     } else {
53 :     $course = get_record('course', 'id', $courseid);
54 :     }
55 :     if (!$course) {
56 :     print_error('nocourseid');
57 :     }
58 :     require_login($course);
59 :     $context = get_context_instance(CONTEXT_COURSE, $course->id);
60 :     require_capability('gradereport/visual:view', $context);
61 :    
62 : dservos 1.3 $vis = grade_report_visual::get_visualization($visname, $context);
63 :    
64 :     /// Make sure the user is allowed see this visualization
65 :     require_capability($vis->capability, $context);
66 : dservos 1.1
67 : dservos 1.3 /// Turn of error reporting as hummans will not be seeing
68 :     /// this and it will be read by the front end. Notices and
69 :     /// warnings will break the XML format and stop the
70 :     /// front end from working.
71 : dservos 1.1 error_reporting(0);
72 :    
73 : dservos 1.3 /// Define array that repersents the XML output from the
74 :     /// visualization class selected.
75 : dservos 1.1 $settings = array();
76 :     $settings['visualization'] = array();
77 :    
78 :     $settings['visualization']['name'] = $vis->name;
79 :     $settings['visualization']['classname'] = get_class($vis);
80 :    
81 :     $settings['visualization']['layout'] = array();
82 :     $settings['visualization']['layout']['type'] = $vis->layout;
83 :    
84 :     $settings['visualization']['layout']['xaxis'] = array();
85 :     $settings['visualization']['layout']['yaxis'] = array();
86 :     $settings['visualization']['layout']['xaxis']['field'] = 'data.' . $vis->xaxis;
87 :     $settings['visualization']['layout']['yaxis']['field'] = 'data.' . $vis->yaxis;
88 :     $settings['visualization']['layout']['xaxis']['labelformat'] = $vis->xaxislabelformat;
89 :     $settings['visualization']['layout']['yaxis']['labelformat'] = $vis->yaxislabelformat;
90 :     $settings['visualization']['layout']['xaxis']['min'] = $vis->xaxismin;
91 :     $settings['visualization']['layout']['xaxis']['max'] = $vis->xaxismax;
92 :     $settings['visualization']['layout']['yaxis']['min'] = $vis->yaxismin;
93 :     $settings['visualization']['layout']['yaxis']['max'] = $vis->yaxismax;
94 :     $settings['visualization']['layout']['yaxis']['xoffset'] =$vis->yaxisxoffset;
95 :     $settings['visualization']['layout']['yaxis']['yoffset'] =$vis->yaxisyoffset;
96 :     $settings['visualization']['layout']['xaxis']['xoffset'] =$vis->xaxisxoffset;
97 :     $settings['visualization']['layout']['xaxis']['yoffset'] =$vis->xaxisyoffset;
98 :    
99 : dservos 1.2 if($vis->layoutsettings != null) {
100 :     $settings['visualization']['layout']['setting'] = array();
101 :     for($i = 0; $i < count($vis->layoutsettings); $i++) {
102 :     $settings['visualization']['layout']['setting'][$i] = $vis->layoutsettings[$i];
103 :     }
104 : dservos 1.1 }
105 :    
106 : dservos 1.2 if($vis->edges != null) {
107 :     $settings['visualization']['edge'] = array();
108 :     for($i = 0; $i < count($vis->edges); $i++) {
109 :     $settings['visualization']['edge'][$i] = array();
110 : dservos 1.1
111 : dservos 1.2 if(is_array($vis->edges[$i]->sortby)) {
112 :     $settings['visualization']['edge'][$i]['sortby'] = array();
113 : dservos 1.1
114 : dservos 1.2 for($k = 0; $k < count($vis->edges[$i]->sortby); $k++) {
115 :     $settings['visualization']['edge'][$i]['sortby'][$k] = 'data.' . $vis->edges[$i]->sortby[$k];
116 :     }
117 :     } else {
118 :     $settings['visualization']['edge'][$i]['sortby'] = 'data.' . $vis->edges[$i]->sortby;
119 :     }
120 :    
121 :     if(is_array($vis->edges[$i]->groupby)) {
122 :     $settings['visualization']['edge'][$i]['groupby'] = array();
123 :    
124 :     for($k = 0; $k < count($vis->edges[$i]->groupby); $k++) {
125 :     $settings['visualization']['edge'][$i]['groupby'][$k] = 'data.' . $vis->edges[$i]->groupby[$k];
126 :     }
127 :     } else {
128 :     $settings['visualization']['edge'][$i]['groupby'] = 'data.' . $vis->edges[$i]->groupby;
129 : dservos 1.1 }
130 :     }
131 : dservos 1.2 }
132 :    
133 :     if($vis->encoders != null) {
134 :     $settings['visualization']['encoder'] = array();
135 :     for($i = 0; $i < count($vis->encoders); $i++) {
136 :     $settings['visualization']['encoder'][$i] = array();
137 :     $settings['visualization']['encoder'][$i]['id'] = $vis->encoders[$i]->id;
138 :     $settings['visualization']['encoder'][$i]['type'] = $vis->encoders[$i]->type;
139 :     $settings['visualization']['encoder'][$i]['datafield'] = 'data.' . $vis->encoders[$i]->datafield;
140 : dservos 1.1
141 : dservos 1.2 if($vis->encoders[$i]->settings != null) {
142 :     $settings['visualization']['encoder'][$i]['setting'] = array();
143 :     for($j = 0; $j < count($vis->encoders[$i]->settings); $j++) {
144 :     $settings['visualization']['encoder'][$i]['setting'][$j] = $vis->encoders[$i]->settings[$j];
145 :     }
146 : dservos 1.1 }
147 :     }
148 :     }
149 :    
150 : dservos 1.2 if($vis->legends != null) {
151 :     $settings['visualization']['legend'] = array();
152 :     for($i = 0; $i < count($vis->legends); $i++) {
153 :     $settings['visualization']['legend'][$i] = array();
154 :     $settings['visualization']['legend'][$i]['encoderid'] = $vis->legends[$i]->encoder->id;
155 :     $settings['visualization']['legend'][$i]['datafield'] = 'data.' . $vis->legends[$i]->encoder->datafield;
156 :    
157 :     if($vis->legends[$i]->show != null) {
158 :     $settings['visualization']['legend'][$i]['show'] = array();
159 :     for($j = 0; $j < count($vis->legends[$i]->show); $j++) {
160 :     $settings['visualization']['legend'][$i]['show'][$j] = $vis->legends[$i]->show[$j];
161 :     }
162 :     }
163 : dservos 1.1 }
164 :     }
165 :    
166 : dservos 1.2 if($vis->selectors != null) {
167 :     $settings['visualization']['selector'] = array();
168 :     for($i = 0; $i < count($vis->selectors); $i++) {
169 :     $settings['visualization']['selector'][$i] = array();
170 :     $settings['visualization']['selector'][$i]['param'] = $vis->selectors[$i]->param;
171 :     $settings['visualization']['selector'][$i]['active'] = $vis->selectors[$i]->active;
172 :    
173 :    
174 :     if($vis->selectors[$i]->options != null) {
175 :     $settings['visualization']['selector'][$i]['option'] = array();
176 :     $k = 0;
177 :     foreach($vis->selectors[$i]->options as $value=>$title) {
178 :     $settings['visualization']['selector'][$i]['option'][$k] = array();
179 :     $settings['visualization']['selector'][$i]['option'][$k]['title'] = $title;
180 :     $settings['visualization']['selector'][$i]['option'][$k]['value'] = $value;
181 :     $k++;
182 :     }
183 :     }
184 :     }
185 : dservos 1.1 }
186 :    
187 :     /// TODO: add in capabilities data
188 :     $settings['visualization']['capabilities'] = array();
189 :    
190 :     $settings['visualization']['flash'] = array();
191 :     $settings['visualization']['flash']['width'] = $vis->width;
192 :     $settings['visualization']['flash']['height'] = $vis->height;
193 :     $settings['visualization']['flash']['framerate'] = $vis->framerate;
194 :     $settings['visualization']['flash']['quality'] = $vis->quality;
195 :    
196 :     $settings['visualization']['labels'] = array();
197 :     $settings['visualization']['labels']['xaxis'] = $vis->xaxislabel;
198 :     $settings['visualization']['labels']['yaxis'] = $vis->yaxislabel;
199 :     $settings['visualization']['labels']['title'] = $vis->title;
200 :    
201 :     $settings['visualization']['style'] = array();
202 :     $settings['visualization']['style']['nodeshape'] = $vis->nodeshape;
203 :     $settings['visualization']['style']['edgeshape'] = $vis->edgeshape;
204 :     $settings['visualization']['style']['bgcolor'] = $vis->backgroundcolor;
205 :    
206 :     $settings['visualization']['style']['text'] = array();
207 :     $settings['visualization']['style']['text']['font'] = $vis->font;
208 :     $settings['visualization']['style']['text']['size'] = $vis->fontsize;
209 :    
210 :     $settings['visualization']['style']['button'] = array();
211 :     $settings['visualization']['style']['button']['bgcolor'] = $vis->buttonbgcolor;
212 :     $settings['visualization']['style']['button']['alpha'] = $vis->buttonbgalpha;
213 :     $settings['visualization']['style']['button']['text'] = array();
214 :     $settings['visualization']['style']['button']['text']['font'] = $vis->buttonfont;
215 :     $settings['visualization']['style']['button']['text']['size'] = $vis->buttonfontsize;
216 :     $settings['visualization']['style']['button']['line'] = array();
217 :     $settings['visualization']['style']['button']['line']['size'] = $vis->buttonlinesize;
218 :     $settings['visualization']['style']['button']['line']['color'] = $vis->buttonlinecolor;
219 :     $settings['visualization']['style']['button']['line']['alpha'] = $vis->buttonlinealpha;
220 :    
221 :     $settings['visualization']['style']['popup'] = array();
222 :     $settings['visualization']['style']['popup']['bgcolor'] = $vis->popupbgcolor;
223 :     $settings['visualization']['style']['popup']['alpha'] = $vis->popupbgalpha;
224 :     $settings['visualization']['style']['popup']['text'] = array();
225 :     $settings['visualization']['style']['popup']['text']['font'] = $vis->popupfont;
226 :     $settings['visualization']['style']['popup']['text']['size'] = $vis->popupfontsize;
227 :     $settings['visualization']['style']['popup']['line'] = array();
228 :     $settings['visualization']['style']['popup']['line']['size'] = $vis->popuplinesize;
229 :     $settings['visualization']['style']['popup']['line']['color'] = $vis->popuplinecolor;
230 :     $settings['visualization']['style']['popup']['line']['alpha'] = $vis->popuplinealpha;
231 :    
232 :     $settings['visualization']['lang'] = array();
233 :     $settings['visualization']['lang']['hide'] = get_string('hide', 'gradereport_visual');
234 :     $settings['visualization']['lang']['show'] = get_string('show', 'gradereport_visual');
235 :     $settings['visualization']['lang']['xlabels'] = get_string('xlabels', 'gradereport_visual');
236 :     $settings['visualization']['lang']['ylabels'] = get_string('ylabels', 'gradereport_visual');
237 :     $settings['visualization']['lang']['axes'] = get_string('axes', 'gradereport_visual');
238 :     $settings['visualization']['lang']['invertaxes'] = get_string('invertaxes', 'gradereport_visual');
239 :    
240 : dservos 1.3 /// Turn array into XML string and output.
241 : dservos 1.1 $xml = XML_serialize($settings);
242 :     echo $xml;
243 :    
244 : dservos 1.2 /// Clean up cookie if it was created.
245 :     if($cookiewasset) {
246 :     $_COOKIE['MoodleSession' . $_GET['sessioncookie']] = null;
247 :     $_COOKIE['MoodleSessionTest' . $_GET['sessioncookie']] = null;
248 :     }
249 : dservos 1.1 ?>

Moodle CVS Admin
ViewVC Help
Powered by ViewVC 1.0.7