Completed
Push — 1.10.x ( ef999d...bae640 )
by Julito
80:09 queued 50:37
created
main/admin/configure_homepage.php 1 patch
Indentation   +846 added lines, -846 removed lines patch added patch discarded remove patch
@@ -17,35 +17,35 @@  discard block
 block discarded – undo
17 17
  */
18 18
 function home_tabs($file_logged_in)
19 19
 {
20
-	$post = strpos($file_logged_in, "_logged_in");
21
-	if ($post !== false) {
22
-		$file_logged_out = str_replace('_logged_in','', $file_logged_in);
23
-		//variables initialization
24
-		$data_logged_out = array();
25
-		$data_logged_in  = array();
26
-
27
-		//we read the file with all links
28
-		$file = file($file_logged_in);
29
-		foreach ($file as $line) {
30
-			$line = str_replace("\n", '',$line);
31
-			//not logged user only sees public links
32
-			if (!preg_match('/::private/',$line)) {
33
-				$data_logged_out[] = $line;
34
-			}
35
-			//logged user only sees all links
36
-			$data_logged_in[] = $line;
37
-		}
38
-		//tabs file for logged out users
39
-		if (file_exists($file_logged_out)) {
40
-			$fp = fopen($file_logged_out, 'w');
41
-			fputs($fp, implode("\n", $data_logged_out));
42
-			fclose($fp);
43
-		}
44
-		//tabs file for logged in users
45
-		$fp = fopen($file_logged_in, 'w');
46
-		fputs($fp, implode("\n", $data_logged_in));
47
-		fclose($fp);
48
-	}
20
+    $post = strpos($file_logged_in, "_logged_in");
21
+    if ($post !== false) {
22
+        $file_logged_out = str_replace('_logged_in','', $file_logged_in);
23
+        //variables initialization
24
+        $data_logged_out = array();
25
+        $data_logged_in  = array();
26
+
27
+        //we read the file with all links
28
+        $file = file($file_logged_in);
29
+        foreach ($file as $line) {
30
+            $line = str_replace("\n", '',$line);
31
+            //not logged user only sees public links
32
+            if (!preg_match('/::private/',$line)) {
33
+                $data_logged_out[] = $line;
34
+            }
35
+            //logged user only sees all links
36
+            $data_logged_in[] = $line;
37
+        }
38
+        //tabs file for logged out users
39
+        if (file_exists($file_logged_out)) {
40
+            $fp = fopen($file_logged_out, 'w');
41
+            fputs($fp, implode("\n", $data_logged_out));
42
+            fclose($fp);
43
+        }
44
+        //tabs file for logged in users
45
+        $fp = fopen($file_logged_in, 'w');
46
+        fputs($fp, implode("\n", $data_logged_in));
47
+        fclose($fp);
48
+    }
49 49
 }
50 50
 
51 51
 $cidReset = true;
@@ -76,39 +76,39 @@  discard block
 block discarded – undo
76 76
 $_languages = api_get_languages();
77 77
 $selfUrl =  api_get_self();
78 78
 $interbreadcrumb[] = array(
79
-	'url' => 'index.php',
80
-	'name' => get_lang('PlatformAdmin')
79
+    'url' => 'index.php',
80
+    'name' => get_lang('PlatformAdmin')
81 81
 );
82 82
 
83 83
 if (!empty($action)) {
84
-	$interbreadcrumb[] = array(
85
-		'url' => 'configure_homepage.php',
86
-		'name' => get_lang('ConfigureHomePage')
87
-	);
88
-
89
-	switch ($action) {
90
-		case 'edit_top':
91
-			$tool_name = get_lang('EditHomePage');
92
-			break;
93
-		case 'edit_news':
94
-			$tool_name = get_lang('EditNews');
95
-			break;
96
-		case 'edit_notice':
97
-			$tool_name = get_lang('EditNotice');
98
-			break;
99
-		case 'insert_link':
100
-			$tool_name = get_lang('InsertLink');
101
-			break;
102
-		case 'edit_link':
103
-			$tool_name = get_lang('EditLink');
104
-			break;
105
-		case 'insert_tabs':
106
-			$tool_name = get_lang('InsertTabs');
107
-			break;
108
-		case 'edit_tabs':
109
-			$tool_name = get_lang('EditTabs');
110
-			break;
111
-	}
84
+    $interbreadcrumb[] = array(
85
+        'url' => 'configure_homepage.php',
86
+        'name' => get_lang('ConfigureHomePage')
87
+    );
88
+
89
+    switch ($action) {
90
+        case 'edit_top':
91
+            $tool_name = get_lang('EditHomePage');
92
+            break;
93
+        case 'edit_news':
94
+            $tool_name = get_lang('EditNews');
95
+            break;
96
+        case 'edit_notice':
97
+            $tool_name = get_lang('EditNotice');
98
+            break;
99
+        case 'insert_link':
100
+            $tool_name = get_lang('InsertLink');
101
+            break;
102
+        case 'edit_link':
103
+            $tool_name = get_lang('EditLink');
104
+            break;
105
+        case 'insert_tabs':
106
+            $tool_name = get_lang('InsertTabs');
107
+            break;
108
+        case 'edit_tabs':
109
+            $tool_name = get_lang('EditTabs');
110
+            break;
111
+    }
112 112
 }
113 113
 
114 114
 // The global logic for language priorities should be:
@@ -131,11 +131,11 @@  discard block
 block discarded – undo
131 131
 
132 132
 $lang = ''; //el for "Edit Language"
133 133
 if (!empty($_SESSION['user_language_choice'])) {
134
-	$lang = $_SESSION['user_language_choice'];
134
+    $lang = $_SESSION['user_language_choice'];
135 135
 } elseif (!empty($_SESSION['_user']['language'])) {
136
-	$lang = $_SESSION['_user']['language'];
136
+    $lang = $_SESSION['_user']['language'];
137 137
 } else {
138
-	$lang = api_get_setting('platformLanguage');
138
+    $lang = api_get_setting('platformLanguage');
139 139
 }
140 140
 
141 141
 $languageGet = isset($_GET['language']) ? Security::remove_XSS($_GET['language']) : $lang;
@@ -144,25 +144,25 @@  discard block
 block discarded – undo
144 144
 $homePath = api_get_path(SYS_APP_PATH).'home/';
145 145
 
146 146
 if (api_is_multiple_url_enabled()) {
147
-	$access_url_id = api_get_current_access_url_id();
148
-	if ($access_url_id != -1) {
149
-		$url_info = api_get_access_url($access_url_id);
150
-		$url = api_remove_trailing_slash(preg_replace('/https?:\/\//i', '', $url_info['url']));
151
-		$clean_url = api_replace_dangerous_char($url);
152
-		$clean_url = str_replace('/', '-', $clean_url);
153
-		$clean_url .= '/';
154
-
155
-		$homep = $homePath; //homep for Home Path
156
-		$homep_new = $homePath.$clean_url; //homep for Home Path added the url
157
-		$new_url_dir = $homePath.$clean_url;
158
-		//we create the new dir for the new sites
159
-		if (!is_dir($new_url_dir)) {
160
-			mkdir($new_url_dir, api_get_permissions_for_new_directories());
161
-		}
162
-	}
147
+    $access_url_id = api_get_current_access_url_id();
148
+    if ($access_url_id != -1) {
149
+        $url_info = api_get_access_url($access_url_id);
150
+        $url = api_remove_trailing_slash(preg_replace('/https?:\/\//i', '', $url_info['url']));
151
+        $clean_url = api_replace_dangerous_char($url);
152
+        $clean_url = str_replace('/', '-', $clean_url);
153
+        $clean_url .= '/';
154
+
155
+        $homep = $homePath; //homep for Home Path
156
+        $homep_new = $homePath.$clean_url; //homep for Home Path added the url
157
+        $new_url_dir = $homePath.$clean_url;
158
+        //we create the new dir for the new sites
159
+        if (!is_dir($new_url_dir)) {
160
+            mkdir($new_url_dir, api_get_permissions_for_new_directories());
161
+        }
162
+    }
163 163
 } else {
164
-	$homep_new = '';
165
-	$homep = $homePath; //homep for Home Path
164
+    $homep_new = '';
165
+    $homep = $homePath; //homep for Home Path
166 166
 }
167 167
 
168 168
 $menuf = 'home_menu'; //menuf for Menu File
@@ -177,25 +177,25 @@  discard block
 block discarded – undo
177 177
 
178 178
 // If language-specific file does not exist, create it by copying default file
179 179
 foreach ($homef as $my_file) {
180
-	if (api_is_multiple_url_enabled()) {
181
-		if (!file_exists($homep_new.$my_file.'_'.$lang.$ext)) {
182
-			if (!file_exists($homep.$my_file.$ext)) {
183
-				touch($homep.$my_file.$ext);
184
-			}
185
-			@copy($homep.$my_file.$ext, $homep_new.$my_file.'_'.$lang.$ext);
186
-		}
187
-	} else {
188
-		if (!file_exists($homep.$my_file.'_'.$lang.$ext)) {
189
-			if (!file_exists($homep.$my_file.$ext)) {
190
-				touch($homep.$my_file.$ext);
191
-			}
192
-			@copy($homep.$my_file.$ext, $homep.$my_file.'_'.$lang.$ext);
193
-		}
194
-	}
180
+    if (api_is_multiple_url_enabled()) {
181
+        if (!file_exists($homep_new.$my_file.'_'.$lang.$ext)) {
182
+            if (!file_exists($homep.$my_file.$ext)) {
183
+                touch($homep.$my_file.$ext);
184
+            }
185
+            @copy($homep.$my_file.$ext, $homep_new.$my_file.'_'.$lang.$ext);
186
+        }
187
+    } else {
188
+        if (!file_exists($homep.$my_file.'_'.$lang.$ext)) {
189
+            if (!file_exists($homep.$my_file.$ext)) {
190
+                touch($homep.$my_file.$ext);
191
+            }
192
+            @copy($homep.$my_file.$ext, $homep.$my_file.'_'.$lang.$ext);
193
+        }
194
+    }
195 195
 }
196 196
 
197 197
 if (api_is_multiple_url_enabled()) {
198
-	$homep = $homep_new;
198
+    $homep = $homep_new;
199 199
 }
200 200
 
201 201
 // Check WCAG settings and prepare edition using WCAG
@@ -204,577 +204,577 @@  discard block
 block discarded – undo
204 204
 // Filter link param
205 205
 $link = '';
206 206
 if (!empty($_GET['link'])) {
207
-	$link = $_GET['link'];
208
-	// If the link parameter is suspicious, empty it
209
-	if (strstr($link, '/') || !strstr($link, '.html') || strstr($link, '\\')) {
210
-		$link = '';
211
-		$action = '';
212
-	}
207
+    $link = $_GET['link'];
208
+    // If the link parameter is suspicious, empty it
209
+    if (strstr($link, '/') || !strstr($link, '.html') || strstr($link, '\\')) {
210
+        $link = '';
211
+        $action = '';
212
+    }
213 213
 }
214 214
 
215 215
 // Start analysing requested actions
216 216
 if (!empty($action)) {
217
-	if (!empty($_POST['formSent'])) {
218
-		// Variables used are $homep for home path, $menuf for menu file, $newsf
219
-		// for news file, $topf for top file, $noticef for noticefile,
220
-		// $ext for '.html'
221
-		switch ($action) {
222
-			case 'edit_top':
223
-				// Filter
224
-				$home_top = trim(stripslashes($_POST['home_top']));
225
-
226
-				// Write
227
-				if (is_writable($homep)) {
228
-					// Default
229
-					if (is_writable($homep.$topf.'_'.$lang.$ext)) {
230
-						$fp = fopen($homep.$topf.'_'.$lang.$ext, 'w');
231
-						fputs($fp, $home_top);
232
-						fclose($fp);
233
-
234
-						// Language
235
-						foreach ($_languages['name'] as $key => $value) {
236
-							$lang_name = $_languages['folder'][$key];
237
-							if (isset($_POST[$lang_name])) {
238
-								$fp = fopen($homep.$topf.'_'.$lang_name.$ext, 'w');
239
-								fputs($fp, $home_top);
240
-								fclose($fp);
241
-							}
242
-						}
243
-					} else {
244
-						$errorMsg = get_lang('HomePageFilesNotWritable');
245
-					}
246
-				} else {
247
-					//File does not exist
248
-					$fp = fopen($homep.$topf.'_'.$lang.$ext, 'w');
249
-					fputs($fp, $home_top);
250
-					fclose($fp);
251
-
252
-					foreach ($_languages['name'] as $key => $value) {
253
-						$lang_name = $_languages['folder'][$key];
254
-						if (isset($_POST[$lang_name])) {
255
-							if (file_exists($homep.$topf.'_'.$lang_name.$ext)) {
256
-								$fp = fopen($homep.$topf.'_'.$lang_name.$ext, 'w');
257
-								fputs($fp, $home_top);
258
-								fclose($fp);
259
-							}
260
-						}
261
-					}
262
-				}
263
-
264
-				if (EventsMail::check_if_using_class('portal_homepage_edited')) {
265
-					EventsDispatcher::events('portal_homepage_edited',array('about_user' => api_get_user_id()));
266
-				}
267
-				Event::addEvent(
268
-					LOG_HOMEPAGE_CHANGED,
269
-					'edit_top',
270
-					cut(strip_tags($home_top), 254),
271
-					api_get_utc_datetime(),
272
-					api_get_user_id()
273
-				);
274
-				break;
275
-			case 'edit_notice':
276
-				// Filter
277
-				$notice_title = trim(strip_tags(stripslashes($_POST['notice_title'])));
278
-				$notice_text = trim(str_replace(array("\r", "\n"), array('', '<br />'), strip_tags(stripslashes($_POST['notice_text']), '<a>')));
279
-				if (empty($notice_title) || empty($notice_text)) {
280
-					$errorMsg = get_lang('NoticeWillBeNotDisplayed');
281
-				}
282
-				// Write
283
-				if (file_exists($homep.$noticef.'_'.$lang.$ext)) {
284
-					if (is_writable($homep.$noticef.'_'.$lang.$ext)) {
285
-						$fp = fopen($homep.$noticef.'_'.$lang.$ext, 'w');
286
-						if ($errorMsg == '') {
287
-							fputs($fp, "<h5>$notice_title</h5><p>\n$notice_text");
288
-
289
-							foreach ($_languages['name'] as $key => $value) {
290
-								$lang_name = $_languages['folder'][$key];
291
-								if (isset($_POST[$lang_name])) {
292
-									if (file_exists($homep.$noticef.'_'.$lang_name.$ext)) {
293
-										if (is_writable($homep.$noticef.'_'.$lang_name.$ext)) {
294
-											$fp = fopen($homep.$noticef.'_'.$lang_name.$ext, 'w');
295
-											fputs($fp, "<h5>$notice_title</h5><p>\n$notice_text");
296
-											fclose($fp);
297
-										}
298
-									}
299
-								}
300
-							}
301
-						} else {
302
-							fputs($fp, '');
303
-
304
-							foreach ($_languages['name'] as $key => $value) {
305
-								$lang_name = $_languages['folder'][$key];
306
-								if (isset($_POST[$lang_name])) {
307
-									if (file_exists($homep.$noticef.'_'.$lang_name.$ext)) {
308
-										$fp1 = fopen($homep.$noticef.'_'.$lang_name.$ext, 'w');
309
-										fputs($fp1, '');
310
-										fclose($fp1);
311
-									}
312
-								}
313
-							}
314
-						}
315
-						fclose($fp);
316
-					} else {
317
-						$errorMsg .= "<br/>\n".get_lang('HomePageFilesNotWritable');
318
-					}
319
-				} else {
320
-					//File does not exist
321
-					$fp = fopen($homep.$noticef.'_'.$lang.$ext, 'w');
322
-					fputs($fp, "<h5>$notice_title</h5><p>\n$notice_text");
323
-					fclose($fp);
324
-				}
325
-				Event::addEvent(
217
+    if (!empty($_POST['formSent'])) {
218
+        // Variables used are $homep for home path, $menuf for menu file, $newsf
219
+        // for news file, $topf for top file, $noticef for noticefile,
220
+        // $ext for '.html'
221
+        switch ($action) {
222
+            case 'edit_top':
223
+                // Filter
224
+                $home_top = trim(stripslashes($_POST['home_top']));
225
+
226
+                // Write
227
+                if (is_writable($homep)) {
228
+                    // Default
229
+                    if (is_writable($homep.$topf.'_'.$lang.$ext)) {
230
+                        $fp = fopen($homep.$topf.'_'.$lang.$ext, 'w');
231
+                        fputs($fp, $home_top);
232
+                        fclose($fp);
233
+
234
+                        // Language
235
+                        foreach ($_languages['name'] as $key => $value) {
236
+                            $lang_name = $_languages['folder'][$key];
237
+                            if (isset($_POST[$lang_name])) {
238
+                                $fp = fopen($homep.$topf.'_'.$lang_name.$ext, 'w');
239
+                                fputs($fp, $home_top);
240
+                                fclose($fp);
241
+                            }
242
+                        }
243
+                    } else {
244
+                        $errorMsg = get_lang('HomePageFilesNotWritable');
245
+                    }
246
+                } else {
247
+                    //File does not exist
248
+                    $fp = fopen($homep.$topf.'_'.$lang.$ext, 'w');
249
+                    fputs($fp, $home_top);
250
+                    fclose($fp);
251
+
252
+                    foreach ($_languages['name'] as $key => $value) {
253
+                        $lang_name = $_languages['folder'][$key];
254
+                        if (isset($_POST[$lang_name])) {
255
+                            if (file_exists($homep.$topf.'_'.$lang_name.$ext)) {
256
+                                $fp = fopen($homep.$topf.'_'.$lang_name.$ext, 'w');
257
+                                fputs($fp, $home_top);
258
+                                fclose($fp);
259
+                            }
260
+                        }
261
+                    }
262
+                }
263
+
264
+                if (EventsMail::check_if_using_class('portal_homepage_edited')) {
265
+                    EventsDispatcher::events('portal_homepage_edited',array('about_user' => api_get_user_id()));
266
+                }
267
+                Event::addEvent(
268
+                    LOG_HOMEPAGE_CHANGED,
269
+                    'edit_top',
270
+                    cut(strip_tags($home_top), 254),
271
+                    api_get_utc_datetime(),
272
+                    api_get_user_id()
273
+                );
274
+                break;
275
+            case 'edit_notice':
276
+                // Filter
277
+                $notice_title = trim(strip_tags(stripslashes($_POST['notice_title'])));
278
+                $notice_text = trim(str_replace(array("\r", "\n"), array('', '<br />'), strip_tags(stripslashes($_POST['notice_text']), '<a>')));
279
+                if (empty($notice_title) || empty($notice_text)) {
280
+                    $errorMsg = get_lang('NoticeWillBeNotDisplayed');
281
+                }
282
+                // Write
283
+                if (file_exists($homep.$noticef.'_'.$lang.$ext)) {
284
+                    if (is_writable($homep.$noticef.'_'.$lang.$ext)) {
285
+                        $fp = fopen($homep.$noticef.'_'.$lang.$ext, 'w');
286
+                        if ($errorMsg == '') {
287
+                            fputs($fp, "<h5>$notice_title</h5><p>\n$notice_text");
288
+
289
+                            foreach ($_languages['name'] as $key => $value) {
290
+                                $lang_name = $_languages['folder'][$key];
291
+                                if (isset($_POST[$lang_name])) {
292
+                                    if (file_exists($homep.$noticef.'_'.$lang_name.$ext)) {
293
+                                        if (is_writable($homep.$noticef.'_'.$lang_name.$ext)) {
294
+                                            $fp = fopen($homep.$noticef.'_'.$lang_name.$ext, 'w');
295
+                                            fputs($fp, "<h5>$notice_title</h5><p>\n$notice_text");
296
+                                            fclose($fp);
297
+                                        }
298
+                                    }
299
+                                }
300
+                            }
301
+                        } else {
302
+                            fputs($fp, '');
303
+
304
+                            foreach ($_languages['name'] as $key => $value) {
305
+                                $lang_name = $_languages['folder'][$key];
306
+                                if (isset($_POST[$lang_name])) {
307
+                                    if (file_exists($homep.$noticef.'_'.$lang_name.$ext)) {
308
+                                        $fp1 = fopen($homep.$noticef.'_'.$lang_name.$ext, 'w');
309
+                                        fputs($fp1, '');
310
+                                        fclose($fp1);
311
+                                    }
312
+                                }
313
+                            }
314
+                        }
315
+                        fclose($fp);
316
+                    } else {
317
+                        $errorMsg .= "<br/>\n".get_lang('HomePageFilesNotWritable');
318
+                    }
319
+                } else {
320
+                    //File does not exist
321
+                    $fp = fopen($homep.$noticef.'_'.$lang.$ext, 'w');
322
+                    fputs($fp, "<h5>$notice_title</h5><p>\n$notice_text");
323
+                    fclose($fp);
324
+                }
325
+                Event::addEvent(
326 326
                     LOG_HOMEPAGE_CHANGED,
327 327
                     'edit_notice',
328 328
                     cut(strip_tags($notice_title), 254),
329 329
                     api_get_utc_datetime(),
330 330
                     api_get_user_id()
331 331
                 );
332
-				break;
333
-			case 'edit_news':
334
-				//Filter
335
-				$home_news = trim(stripslashes($_POST['home_news']));
336
-
337
-				//Write
338
-				if ($s_languages_news != 'all') {
339
-					if (file_exists($homep.$newsf.'_'.$s_languages_news.$ext)) {
340
-						if (is_writable($homep.$newsf.'_'.$s_languages_news.$ext)) {
341
-							$fp = fopen($homep.$newsf.'_'.$s_languages_news.$ext, 'w');
342
-							fputs($fp, $home_news);
343
-							fclose($fp);
344
-						} else {
345
-							$errorMsg = get_lang('HomePageFilesNotWritable');
346
-						}
347
-					} else {
348
-						// File does not exist
349
-						$fp = fopen($homep.$newsf.'_'.$s_languages_news.$ext, 'w');
350
-						fputs($fp, $home_news);
351
-						fclose($fp);
352
-					}
353
-				} else {
354
-					// We update all the news file
355
-					foreach ($_languages['name'] as $key => $value) {
356
-						$english_name = $_languages['folder'][$key];
357
-						if (file_exists($homep.$newsf.'_'.$english_name.$ext)) {
358
-							if (is_writable($homep.$newsf.'_'.$english_name.$ext)) {
359
-								$fp = fopen($homep.$newsf.'_'.$english_name.$ext, 'w');
360
-								fputs($fp, $home_news);
361
-								fclose($fp);
362
-							} else {
363
-								$errorMsg = get_lang('HomePageFilesNotWritable');
364
-							}
365
-						} else {
366
-							// File does not exist
367
-							$fp = fopen($homep.$newsf.'_'.$english_name.$ext, 'w');
368
-							fputs($fp, $home_news);
369
-							fclose($fp);
370
-						}
371
-					}
372
-				}
373
-				Event::addEvent(
332
+                break;
333
+            case 'edit_news':
334
+                //Filter
335
+                $home_news = trim(stripslashes($_POST['home_news']));
336
+
337
+                //Write
338
+                if ($s_languages_news != 'all') {
339
+                    if (file_exists($homep.$newsf.'_'.$s_languages_news.$ext)) {
340
+                        if (is_writable($homep.$newsf.'_'.$s_languages_news.$ext)) {
341
+                            $fp = fopen($homep.$newsf.'_'.$s_languages_news.$ext, 'w');
342
+                            fputs($fp, $home_news);
343
+                            fclose($fp);
344
+                        } else {
345
+                            $errorMsg = get_lang('HomePageFilesNotWritable');
346
+                        }
347
+                    } else {
348
+                        // File does not exist
349
+                        $fp = fopen($homep.$newsf.'_'.$s_languages_news.$ext, 'w');
350
+                        fputs($fp, $home_news);
351
+                        fclose($fp);
352
+                    }
353
+                } else {
354
+                    // We update all the news file
355
+                    foreach ($_languages['name'] as $key => $value) {
356
+                        $english_name = $_languages['folder'][$key];
357
+                        if (file_exists($homep.$newsf.'_'.$english_name.$ext)) {
358
+                            if (is_writable($homep.$newsf.'_'.$english_name.$ext)) {
359
+                                $fp = fopen($homep.$newsf.'_'.$english_name.$ext, 'w');
360
+                                fputs($fp, $home_news);
361
+                                fclose($fp);
362
+                            } else {
363
+                                $errorMsg = get_lang('HomePageFilesNotWritable');
364
+                            }
365
+                        } else {
366
+                            // File does not exist
367
+                            $fp = fopen($homep.$newsf.'_'.$english_name.$ext, 'w');
368
+                            fputs($fp, $home_news);
369
+                            fclose($fp);
370
+                        }
371
+                    }
372
+                }
373
+                Event::addEvent(
374 374
                     LOG_HOMEPAGE_CHANGED,
375 375
                     'edit_news',
376 376
                     strip_tags(cut($home_news, 254)),
377 377
                     api_get_utc_datetime(),
378 378
                     api_get_user_id()
379 379
                 );
380
-				break;
381
-			case 'insert_tabs':
382
-			case 'edit_tabs':
383
-			case 'insert_link':
384
-			case 'edit_link':
385
-				$link_index     = intval($_POST['link_index']);
386
-				$insert_where   = intval($_POST['insert_where']);
387
-				$link_name      = trim(stripslashes($_POST['link_name']));
388
-				$link_url       = trim(stripslashes($_POST['link_url']));
389
-				$add_in_tab     = intval($_POST['add_in_tab']);
390
-				$link_html = trim(stripslashes($_POST['link_html']));
391
-				$filename = trim(stripslashes($_POST['filename']));
392
-				$target_blank = $_POST['target_blank'] ? true : false;
393
-
394
-				if ($link_url == 'http://' || $link_url == 'https://') {
395
-					$link_url = '';
396
-				} elseif (!empty($link_url) && !strstr($link_url, '://')) {
397
-					$link_url='http://'.$link_url;
398
-				}
399
-				$menuf = ($action == 'insert_tabs' || $action == 'edit_tabs')? $mtloggedin : $menuf;
400
-
401
-				if (!is_writable($homep.$menuf.'_'.$lang.$ext)) {
402
-					$errorMsg = get_lang('HomePageFilesNotWritable');
403
-				} elseif (empty($link_name)) {
404
-					$errorMsg = get_lang('PleaseEnterLinkName');
405
-				} else {
406
-					// New links are added as new files in the home/ directory
407
-					if ($action == 'insert_link' || $action == 'insert_tabs' || empty($filename) || strstr($filename, '/') || !strstr($filename, '.html')) {
408
-						$filename = api_replace_dangerous_char($link_name).'.html';
409
-					}
410
-
411
-					// "home_" prefix for links are renamed to "user_" prefix (to avoid name clash with existing home page files)
412
-					if (!empty($filename)) {
413
-						$filename = str_replace('home_', 'user_', $filename);
414
-					}
415
-					// If the typical language suffix is not found in the file name,
416
-					// replace the ".html" suffix by "_en.html" or the active menu language
417
-					if (!strstr($filename,'_'.$lang.$ext)) {
418
-						$filename = str_replace($ext, '_'.$lang.$ext, $filename);
419
-					}
420
-					// Get the contents of home_menu_en.html (or active menu language
421
-					// version) into $home_menu as an array of one entry per line
422
-					$home_menu = file($homep.$menuf.'_'.$lang.$ext);
423
-					$home_menu = implode("\n", $home_menu);
424
-					$home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
425
-					$home_menu = explode("\n", $home_menu);
426
-					$home_menu = array_values(array_filter(array_map('trim', $home_menu), 'strlen'));
427
-					// Prepare place to insert the new link into (default is end of file)
428
-					if ($insert_where < -1 || $insert_where > (sizeof($home_menu) - 1)) {
429
-						$insert_where = sizeof($home_menu) - 1;
430
-					}
431
-					//
432
-					// For each line of the file, remove trailing spaces and special chars
433
-					//foreach ($home_menu as $key => $enreg) {
434
-					//	$home_menu[$key] = trim($enreg);
435
-					//}
436
-					//
437
-					// If the given link url is empty, then replace the link url by a link to the link file created
438
-
439
-					if (empty($link_url) || $link_url == 'http://' ||  $link_url == 'https://') {
440
-						$link_url = api_get_path(WEB_PATH).'index.php?include='.urlencode($filename);
441
-						// If the file doesn't exist, then create it and
442
-						// fill it with default text
443
-
444
-						$fp = @fopen($homep.$filename, 'w');
445
-						if ($fp) {
446
-							if (empty($link_html)) {
447
-								fputs($fp, get_lang('MyTextHere'));
448
-								home_tabs($homep.$filename);
449
-							} else {
450
-								fputs($fp, $link_html);
451
-								home_tabs($homep.$filename);
452
-							}
453
-							fclose($fp);
454
-						}
455
-					}
456
-					// If the requested action is to edit a link, open the file and
457
-					// write to it (if the file doesn't exist, create it)
458
-					if (in_array($action, array('edit_link'))  && !empty($link_html)) {
459
-						$fp = @fopen($homep.$filename, 'w');
460
-						if ($fp) {
461
-							fputs($fp, $link_html);
462
-							home_tabs($homep.$filename);
463
-							fclose($fp);
464
-						}
465
-					}
380
+                break;
381
+            case 'insert_tabs':
382
+            case 'edit_tabs':
383
+            case 'insert_link':
384
+            case 'edit_link':
385
+                $link_index     = intval($_POST['link_index']);
386
+                $insert_where   = intval($_POST['insert_where']);
387
+                $link_name      = trim(stripslashes($_POST['link_name']));
388
+                $link_url       = trim(stripslashes($_POST['link_url']));
389
+                $add_in_tab     = intval($_POST['add_in_tab']);
390
+                $link_html = trim(stripslashes($_POST['link_html']));
391
+                $filename = trim(stripslashes($_POST['filename']));
392
+                $target_blank = $_POST['target_blank'] ? true : false;
393
+
394
+                if ($link_url == 'http://' || $link_url == 'https://') {
395
+                    $link_url = '';
396
+                } elseif (!empty($link_url) && !strstr($link_url, '://')) {
397
+                    $link_url='http://'.$link_url;
398
+                }
399
+                $menuf = ($action == 'insert_tabs' || $action == 'edit_tabs')? $mtloggedin : $menuf;
400
+
401
+                if (!is_writable($homep.$menuf.'_'.$lang.$ext)) {
402
+                    $errorMsg = get_lang('HomePageFilesNotWritable');
403
+                } elseif (empty($link_name)) {
404
+                    $errorMsg = get_lang('PleaseEnterLinkName');
405
+                } else {
406
+                    // New links are added as new files in the home/ directory
407
+                    if ($action == 'insert_link' || $action == 'insert_tabs' || empty($filename) || strstr($filename, '/') || !strstr($filename, '.html')) {
408
+                        $filename = api_replace_dangerous_char($link_name).'.html';
409
+                    }
410
+
411
+                    // "home_" prefix for links are renamed to "user_" prefix (to avoid name clash with existing home page files)
412
+                    if (!empty($filename)) {
413
+                        $filename = str_replace('home_', 'user_', $filename);
414
+                    }
415
+                    // If the typical language suffix is not found in the file name,
416
+                    // replace the ".html" suffix by "_en.html" or the active menu language
417
+                    if (!strstr($filename,'_'.$lang.$ext)) {
418
+                        $filename = str_replace($ext, '_'.$lang.$ext, $filename);
419
+                    }
420
+                    // Get the contents of home_menu_en.html (or active menu language
421
+                    // version) into $home_menu as an array of one entry per line
422
+                    $home_menu = file($homep.$menuf.'_'.$lang.$ext);
423
+                    $home_menu = implode("\n", $home_menu);
424
+                    $home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
425
+                    $home_menu = explode("\n", $home_menu);
426
+                    $home_menu = array_values(array_filter(array_map('trim', $home_menu), 'strlen'));
427
+                    // Prepare place to insert the new link into (default is end of file)
428
+                    if ($insert_where < -1 || $insert_where > (sizeof($home_menu) - 1)) {
429
+                        $insert_where = sizeof($home_menu) - 1;
430
+                    }
431
+                    //
432
+                    // For each line of the file, remove trailing spaces and special chars
433
+                    //foreach ($home_menu as $key => $enreg) {
434
+                    //	$home_menu[$key] = trim($enreg);
435
+                    //}
436
+                    //
437
+                    // If the given link url is empty, then replace the link url by a link to the link file created
438
+
439
+                    if (empty($link_url) || $link_url == 'http://' ||  $link_url == 'https://') {
440
+                        $link_url = api_get_path(WEB_PATH).'index.php?include='.urlencode($filename);
441
+                        // If the file doesn't exist, then create it and
442
+                        // fill it with default text
443
+
444
+                        $fp = @fopen($homep.$filename, 'w');
445
+                        if ($fp) {
446
+                            if (empty($link_html)) {
447
+                                fputs($fp, get_lang('MyTextHere'));
448
+                                home_tabs($homep.$filename);
449
+                            } else {
450
+                                fputs($fp, $link_html);
451
+                                home_tabs($homep.$filename);
452
+                            }
453
+                            fclose($fp);
454
+                        }
455
+                    }
456
+                    // If the requested action is to edit a link, open the file and
457
+                    // write to it (if the file doesn't exist, create it)
458
+                    if (in_array($action, array('edit_link'))  && !empty($link_html)) {
459
+                        $fp = @fopen($homep.$filename, 'w');
460
+                        if ($fp) {
461
+                            fputs($fp, $link_html);
462
+                            home_tabs($homep.$filename);
463
+                            fclose($fp);
464
+                        }
465
+                    }
466 466
 
467 467
                     $class_add_in_tab = 'class="show_menu"';
468 468
 
469
-					if (!$add_in_tab) {
470
-						$class_add_in_tab = 'class="hide_menu"';
471
-					}
469
+                    if (!$add_in_tab) {
470
+                        $class_add_in_tab = 'class="hide_menu"';
471
+                    }
472 472
 
473
-					// If the requested action is to create a link, make some room
474
-					// for the new link in the home_menu array at the requested place
475
-					// and insert the new link there
473
+                    // If the requested action is to create a link, make some room
474
+                    // for the new link in the home_menu array at the requested place
475
+                    // and insert the new link there
476 476
                     
477
-					if ($action == 'insert_link' || $action == 'insert_tabs') {
478
-						for ($i = sizeof($home_menu); $i; $i--) {
479
-							if ($i > $insert_where) {
480
-								$home_menu[$i] = $home_menu[$i - 1];
481
-							} else {
482
-								break;
483
-							}
484
-						}
485
-						$home_menu[$insert_where + 1] = '<li ' . $class_add_in_tab . '><a href="'.$link_url.'" target="'.($target_blank ? '_blank' : '_self').'">'. $link_name .'</a></li>';
486
-					} else {
487
-						// If the request is about a link edition, change the link
488
-						$home_menu[$link_index]='<li ' . $class_add_in_tab . '><a href="'.$link_url.'" target="'.($target_blank?'_blank':'_self').'">'. $link_name .'</a></li>';
489
-					}
490
-					// Re-build the file from the home_menu array
491
-					$home_menu = implode("\n", $home_menu);
492
-					// Write
493
-					if (file_exists($homep.$menuf.'_'.$lang.$ext)) {
494
-						if (is_writable($homep.$menuf.'_'.$lang.$ext)) {
495
-							$fp = fopen($homep.$menuf.'_'.$lang.$ext, 'w');
496
-							fputs($fp, $home_menu);
497
-							home_tabs($homep.$menuf.'_'.$lang.$ext);
498
-							fclose($fp);
499
-
500
-							foreach ($_languages['name'] as $key => $value) {
501
-								$lang_name = $_languages['folder'][$key];
502
-								if (isset($_POST[$lang_name])) {
503
-									$fp = fopen($homep.$menuf.'_'.$lang_name.$ext, 'w');
504
-									fputs($fp, $home_menu);
505
-									home_tabs($homep.$menuf.'_'.$lang_name.$ext);
506
-									fclose($fp);
507
-								}
508
-							}
509
-
510
-							if (file_exists($homep.$menuf.$ext)) {
511
-								if (is_writable($homep.$menuf.$ext)) {
512
-									$fpo = fopen($homep.$menuf.$ext, 'w');
513
-									fputs($fpo, $home_menu);
514
-									home_tabs($homep.$menuf.$ext);
515
-									fclose($fpo);
516
-								}
517
-							}
518
-						} else {
519
-							$errorMsg = get_lang('HomePageFilesNotWritable');
520
-						}
521
-					} else {
522
-						//File does not exist
523
-						$fp = fopen($homep.$menuf.'_'.$lang.$ext, 'w');
524
-						fputs($fp, $home_menu);
525
-						home_tabs($homep.$menuf.'_'.$lang.$ext);
526
-						fclose($fp);
527
-
528
-						foreach ($_languages['name'] as $key => $value) {
529
-							$lang_name = $_languages['folder'][$key];
530
-							if (isset($_POST[$lang_name])) {
531
-								$fp = fopen($homep.$menuf.'_'.$lang_name.$ext, 'w');
532
-								fputs($fp, $home_menu);
533
-								home_tabs($homep.$menuf.'_'.$lang_name.$ext);
534
-								fclose($fp);
535
-							}
536
-						}
537
-					}
538
-				}
539
-				Event::addEvent(
540
-					LOG_HOMEPAGE_CHANGED,
541
-					$action,
542
-					cut($link_name . ':' . $link_url, 254),
543
-					api_get_utc_datetime(),
544
-					api_get_user_id()
545
-				);
546
-				break;
547
-		} //end of switch($action)
548
-
549
-		if (empty($errorMsg)) {
550
-			header('Location: '.$selfUrl.'?language='.$languageGet);
551
-			exit();
552
-		}
553
-	} else {
554
-		//if POST[formSent] is not set
555
-		switch ($action) {
556
-			case 'open_link':
557
-				// Previously, filtering of GET['link'] was done here but it left
558
-				// a security threat. Filtering has now been moved outside conditions
559
-				break;
560
-			case 'delete_tabs':
561
-			case 'delete_link':
562
-				// A link is deleted by getting the file into an array, removing the
563
-				// link and re-writing the array to the file
564
-				$link_index = intval($_GET['link_index']);
565
-				$menuf = ($action == 'delete_tabs')? $mtloggedin : $menuf;
566
-				$home_menu = @file($homep.$menuf.'_'.$lang.$ext);
567
-				if (empty($home_menu)) {
568
-					$home_menu = array();
569
-				}
570
-				foreach ($home_menu as $key => $enreg) {
571
-					if ($key == $link_index) {
572
-						unset($home_menu[$key]);
573
-					} else {
574
-						$home_menu[$key] = trim($enreg);
575
-					}
576
-				}
577
-				$home_menu = implode("\n", $home_menu);
578
-				$home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
579
-
580
-				$fp = fopen($homep.$menuf.'_'.$lang.$ext, 'w');
581
-				fputs($fp, $home_menu);
582
-				home_tabs($homep.$menuf.'_'.$lang.$ext);
583
-				fclose($fp);
584
-				if (file_exists($homep.$menuf.$ext)) {
585
-					if (is_writable($homep.$menuf.$ext)) {
586
-						$fpo = fopen($homep.$menuf.$ext,'w');
587
-						fputs($fpo, $home_menu);
588
-						home_tabs($homep.$menuf.$ext);
589
-						fclose($fpo);
590
-					}
591
-				}
592
-				header('Location: '.$selfUrl);
593
-				exit();
594
-				break;
595
-			case 'edit_top':
596
-				// This request is only the preparation for the update of the home_top
597
-				$home_top = '';
598
-				if (is_file($homep.$topf.'_'.$lang.$ext) && is_readable($homep.$topf.'_'.$lang.$ext)) {
599
-					$home_top = @(string)file_get_contents($homep.$topf.'_'.$lang.$ext);
600
-				} elseif (is_file($homep.$topf.$lang.$ext) && is_readable($homep.$topf.$lang.$ext)) {
601
-					$home_top = @(string)file_get_contents($homep.$topf.$lang.$ext);
602
-				} else {
603
-					$errorMsg = get_lang('HomePageFilesNotReadable');
604
-				}
605
-				$home_top = api_to_system_encoding($home_top, api_detect_encoding(strip_tags($home_top)));
606
-				break;
607
-			case 'edit_notice':
608
-				// This request is only the preparation for the update of the home_notice
609
-				$home_notice = '';
610
-				if (is_file($homep.$noticef.'_'.$lang.$ext) && is_readable($homep.$noticef.'_'.$lang.$ext)) {
611
-					$home_notice = @file($homep.$noticef.'_'.$lang.$ext);
612
-				} elseif (is_file($homep.$noticef.$lang.$ext) && is_readable($homep.$noticef.$lang.$ext)) {
613
-					$home_notice = @file($homep.$noticef.$lang.$ext);
614
-				} else {
615
-					$errorMsg = get_lang('HomePageFilesNotReadable');
616
-				}
617
-				if (empty($home_notice)) {
618
-					$home_notice = array();
619
-				}
620
-				$notice_title = strip_tags($home_notice[0]);
621
-				$notice_title = api_to_system_encoding($notice_title, api_detect_encoding($notice_title));
622
-				$notice_text = strip_tags(str_replace('<br />', "\n", $home_notice[1]), '<a>');
623
-				$notice_text = api_to_system_encoding($notice_text, api_detect_encoding(strip_tags($notice_text)));
624
-				break;
625
-			case 'edit_news':
626
-				// This request is the preparation for the update of the home_news page
627
-				$home_news = '';
628
-				if (is_file($homep.$newsf.'_'.$lang.$ext) && is_readable($homep.$newsf.'_'.$lang.$ext)) {
629
-					$home_news = @(string)file_get_contents($homep.$newsf.'_'.$lang.$ext);
630
-				} elseif (is_file($homep.$newsf.$lang.$ext) && is_readable($homep.$newsf.$lang.$ext)) {
631
-					$home_news = @(string)file_get_contents($homep.$newsf.$lang.$ext);
632
-				} else {
633
-					$errorMsg = get_lang('HomePageFilesNotReadable');
634
-				}
635
-				$home_news = api_to_system_encoding($home_news, api_detect_encoding(strip_tags($home_news)));
636
-				break;
637
-			case 'insert_link':
638
-				// This request is the preparation for the addition of an item in home_menu
639
-				$home_menu = '';
640
-				$menuf = ($action == 'edit_tabs')? $mtloggedin : $menuf;
641
-				if (is_file($homep.$menuf.'_'.$lang.$ext) && is_readable($homep.$menuf.'_'.$lang.$ext)) {
642
-					$home_menu = @file($homep.$menuf.'_'.$lang.$ext);
643
-				} elseif(is_file($homep.$menuf.$lang.$ext) && is_readable($homep.$menuf.$lang.$ext)) {
644
-					$home_menu = @file($homep.$menuf.$lang.$ext);
645
-				} else {
646
-					$errorMsg = get_lang('HomePageFilesNotReadable');
647
-				}
648
-				if (empty($home_menu)) {
649
-					$home_menu = array();
650
-				}
651
-				if (!empty($home_menu)) {
652
-					$home_menu = implode("\n", $home_menu);
653
-					$home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
654
-					$home_menu = explode("\n", $home_menu);
655
-				}
656
-				$home_menu = array_values(array_filter(array_map('trim', $home_menu), 'strlen'));
657
-				break;
658
-			case 'insert_tabs':
659
-				// This request is the preparation for the addition of an item in home_menu
660
-				$home_menu = '';
661
-				if (is_file($homep.$mtloggedin.'_'.$lang.$ext) && is_readable($homep.$mtloggedin.'_'.$lang.$ext)) {
662
-					$home_menu = @file($homep.$mtloggedin.'_'.$lang.$ext);
663
-				} elseif (is_file($homep.$mtloggedin.$lang.$ext) && is_readable($homep.$mtloggedin.$lang.$ext)) {
664
-					$home_menu = @file($homep.$mtloggedin.$lang.$ext);
665
-				} elseif (touch($homep.$mtloggedin.'_'.$lang.$ext)) {
666
-					$home_menu = @file($homep.$mtloggedin.'_'.$lang.$ext);
667
-				} else {
668
-					$errorMsg = get_lang('HomePageFilesNotReadable');
669
-				}
670
-				if (empty($home_menu)) {
671
-					$home_menu = array();
672
-				}
673
-				if (!empty($home_menu)) {
674
-					$home_menu = implode("\n", $home_menu);
675
-					$home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
676
-					$home_menu = explode("\n", $home_menu);
677
-				}
678
-				$home_menu = array_values(array_filter(array_map('trim', $home_menu), 'strlen'));
679
-				break;
680
-			case 'edit_tabs':
681
-			case 'edit_link':
682
-				// This request is the preparation for the edition of the links array
683
-				$home_menu = '';
684
-				$menuf = ($action == 'edit_tabs')? $mtloggedin : $menuf;
685
-				if (is_file($homep.$menuf.'_'.$lang.$ext) && is_readable($homep.$menuf.'_'.$lang.$ext)) {
686
-					$home_menu = @file($homep.$menuf.'_'.$lang.$ext);
687
-				} elseif(is_file($homep.$menuf.$lang.$ext) && is_readable($homep.$menuf.$lang.$ext)) {
688
-					$home_menu = @file($homep.$menuf.$lang.$ext);
689
-				} else {
690
-					$errorMsg = get_lang('HomePageFilesNotReadable');
691
-				}
692
-
693
-				if (empty($home_menu)) {
694
-					if (file_exists($homep.$menutabs.'_'.$lang.$ext)) {
695
-						$home_menu = @file($homep.$menutabs.'_'.$lang.$ext);
696
-					}
697
-				}
698
-
699
-				if (empty($home_menu)) {
700
-					$home_menu = array();
701
-				}
702
-				if (!empty($home_menu)) {
703
-					$home_menu = implode("\n", $home_menu);
704
-					$home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
705
-					$home_menu = explode("\n", $home_menu);
706
-				}
707
-
708
-				$link_index = intval($_GET['link_index']);
709
-
710
-				$target_blank = false;
711
-				$link_name = '';
712
-				$link_url = '';
713
-
714
-				//$home_menu_new = array();
715
-				//
716
-				//Cleaning array
717
-				//foreach ($home_menu as $item) {
718
-				//	if(!empty($item)) {
719
-				//		$home_menu_new[] = $item;
720
-				//	}
721
-				//}
722
-				//$home_menu = $home_menu_new;
723
-
724
-				// Cleaning the array
725
-				$home_menu = array_values(array_filter(array_map('trim', $home_menu), 'strlen'));
726
-
727
-				// For each line of the home_menu file
728
-				foreach ($home_menu as $key => $enreg) {
729
-
730
-					// Check if the current item is the one we want to update
731
-					if ($key == $link_index) {
732
-						// This is the link we want to update
733
-						// Check if the target should be "_blank"
734
-						if (strstr($enreg, 'target="_blank"')) {
735
-							$target_blank = true;
736
-						}
737
-
738
-						if (strstr($enreg, 'hide_menu')) {
739
-							$add_in_tab = false;
740
-						} else {
741
-							$add_in_tab = true;
742
-						}
743
-
744
-						// Remove dangerous HTML tags from the link itself (this is an
745
-						// additional measure in case a link previously contained
746
-						// unsecure tags)
747
-						$link_name = strip_tags($enreg);
748
-
749
-						// Get the contents of "href" attribute in $link_url
750
-						$enreg = explode('href="',$enreg);
751
-						list($link_url) = explode('"', $enreg[sizeof($enreg) - 1]);
752
-
753
-						// If the link contains the web root of this portal, then strip
754
-						// it off and keep only the name of the file that needs edition
755
-						if (strstr($link_url, '?include=')) {
756
-							$link_url = explode('?include=', $link_url);
757
-
758
-							$filename = $link_url[sizeof($link_url) - 1];
759
-
760
-							if (!strstr($filename, '/') && strstr($filename, '.html')) {
761
-								// Get oonly the contents of the link file
762
-								$link_html = @file($homep.$filename);
763
-								$link_html = implode('', $link_html);
764
-								$link_url = '';
765
-							} else {
766
-								$filename = '';
767
-							}
768
-						}
769
-						break;
770
-					}
771
-				}
772
-				break;
773
-		}//end of second switch($action) (when POST['formSent'] was not set, yet)
774
-	}// end of "else" in if($_POST['formSent']) condition
477
+                    if ($action == 'insert_link' || $action == 'insert_tabs') {
478
+                        for ($i = sizeof($home_menu); $i; $i--) {
479
+                            if ($i > $insert_where) {
480
+                                $home_menu[$i] = $home_menu[$i - 1];
481
+                            } else {
482
+                                break;
483
+                            }
484
+                        }
485
+                        $home_menu[$insert_where + 1] = '<li ' . $class_add_in_tab . '><a href="'.$link_url.'" target="'.($target_blank ? '_blank' : '_self').'">'. $link_name .'</a></li>';
486
+                    } else {
487
+                        // If the request is about a link edition, change the link
488
+                        $home_menu[$link_index]='<li ' . $class_add_in_tab . '><a href="'.$link_url.'" target="'.($target_blank?'_blank':'_self').'">'. $link_name .'</a></li>';
489
+                    }
490
+                    // Re-build the file from the home_menu array
491
+                    $home_menu = implode("\n", $home_menu);
492
+                    // Write
493
+                    if (file_exists($homep.$menuf.'_'.$lang.$ext)) {
494
+                        if (is_writable($homep.$menuf.'_'.$lang.$ext)) {
495
+                            $fp = fopen($homep.$menuf.'_'.$lang.$ext, 'w');
496
+                            fputs($fp, $home_menu);
497
+                            home_tabs($homep.$menuf.'_'.$lang.$ext);
498
+                            fclose($fp);
499
+
500
+                            foreach ($_languages['name'] as $key => $value) {
501
+                                $lang_name = $_languages['folder'][$key];
502
+                                if (isset($_POST[$lang_name])) {
503
+                                    $fp = fopen($homep.$menuf.'_'.$lang_name.$ext, 'w');
504
+                                    fputs($fp, $home_menu);
505
+                                    home_tabs($homep.$menuf.'_'.$lang_name.$ext);
506
+                                    fclose($fp);
507
+                                }
508
+                            }
509
+
510
+                            if (file_exists($homep.$menuf.$ext)) {
511
+                                if (is_writable($homep.$menuf.$ext)) {
512
+                                    $fpo = fopen($homep.$menuf.$ext, 'w');
513
+                                    fputs($fpo, $home_menu);
514
+                                    home_tabs($homep.$menuf.$ext);
515
+                                    fclose($fpo);
516
+                                }
517
+                            }
518
+                        } else {
519
+                            $errorMsg = get_lang('HomePageFilesNotWritable');
520
+                        }
521
+                    } else {
522
+                        //File does not exist
523
+                        $fp = fopen($homep.$menuf.'_'.$lang.$ext, 'w');
524
+                        fputs($fp, $home_menu);
525
+                        home_tabs($homep.$menuf.'_'.$lang.$ext);
526
+                        fclose($fp);
527
+
528
+                        foreach ($_languages['name'] as $key => $value) {
529
+                            $lang_name = $_languages['folder'][$key];
530
+                            if (isset($_POST[$lang_name])) {
531
+                                $fp = fopen($homep.$menuf.'_'.$lang_name.$ext, 'w');
532
+                                fputs($fp, $home_menu);
533
+                                home_tabs($homep.$menuf.'_'.$lang_name.$ext);
534
+                                fclose($fp);
535
+                            }
536
+                        }
537
+                    }
538
+                }
539
+                Event::addEvent(
540
+                    LOG_HOMEPAGE_CHANGED,
541
+                    $action,
542
+                    cut($link_name . ':' . $link_url, 254),
543
+                    api_get_utc_datetime(),
544
+                    api_get_user_id()
545
+                );
546
+                break;
547
+        } //end of switch($action)
548
+
549
+        if (empty($errorMsg)) {
550
+            header('Location: '.$selfUrl.'?language='.$languageGet);
551
+            exit();
552
+        }
553
+    } else {
554
+        //if POST[formSent] is not set
555
+        switch ($action) {
556
+            case 'open_link':
557
+                // Previously, filtering of GET['link'] was done here but it left
558
+                // a security threat. Filtering has now been moved outside conditions
559
+                break;
560
+            case 'delete_tabs':
561
+            case 'delete_link':
562
+                // A link is deleted by getting the file into an array, removing the
563
+                // link and re-writing the array to the file
564
+                $link_index = intval($_GET['link_index']);
565
+                $menuf = ($action == 'delete_tabs')? $mtloggedin : $menuf;
566
+                $home_menu = @file($homep.$menuf.'_'.$lang.$ext);
567
+                if (empty($home_menu)) {
568
+                    $home_menu = array();
569
+                }
570
+                foreach ($home_menu as $key => $enreg) {
571
+                    if ($key == $link_index) {
572
+                        unset($home_menu[$key]);
573
+                    } else {
574
+                        $home_menu[$key] = trim($enreg);
575
+                    }
576
+                }
577
+                $home_menu = implode("\n", $home_menu);
578
+                $home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
579
+
580
+                $fp = fopen($homep.$menuf.'_'.$lang.$ext, 'w');
581
+                fputs($fp, $home_menu);
582
+                home_tabs($homep.$menuf.'_'.$lang.$ext);
583
+                fclose($fp);
584
+                if (file_exists($homep.$menuf.$ext)) {
585
+                    if (is_writable($homep.$menuf.$ext)) {
586
+                        $fpo = fopen($homep.$menuf.$ext,'w');
587
+                        fputs($fpo, $home_menu);
588
+                        home_tabs($homep.$menuf.$ext);
589
+                        fclose($fpo);
590
+                    }
591
+                }
592
+                header('Location: '.$selfUrl);
593
+                exit();
594
+                break;
595
+            case 'edit_top':
596
+                // This request is only the preparation for the update of the home_top
597
+                $home_top = '';
598
+                if (is_file($homep.$topf.'_'.$lang.$ext) && is_readable($homep.$topf.'_'.$lang.$ext)) {
599
+                    $home_top = @(string)file_get_contents($homep.$topf.'_'.$lang.$ext);
600
+                } elseif (is_file($homep.$topf.$lang.$ext) && is_readable($homep.$topf.$lang.$ext)) {
601
+                    $home_top = @(string)file_get_contents($homep.$topf.$lang.$ext);
602
+                } else {
603
+                    $errorMsg = get_lang('HomePageFilesNotReadable');
604
+                }
605
+                $home_top = api_to_system_encoding($home_top, api_detect_encoding(strip_tags($home_top)));
606
+                break;
607
+            case 'edit_notice':
608
+                // This request is only the preparation for the update of the home_notice
609
+                $home_notice = '';
610
+                if (is_file($homep.$noticef.'_'.$lang.$ext) && is_readable($homep.$noticef.'_'.$lang.$ext)) {
611
+                    $home_notice = @file($homep.$noticef.'_'.$lang.$ext);
612
+                } elseif (is_file($homep.$noticef.$lang.$ext) && is_readable($homep.$noticef.$lang.$ext)) {
613
+                    $home_notice = @file($homep.$noticef.$lang.$ext);
614
+                } else {
615
+                    $errorMsg = get_lang('HomePageFilesNotReadable');
616
+                }
617
+                if (empty($home_notice)) {
618
+                    $home_notice = array();
619
+                }
620
+                $notice_title = strip_tags($home_notice[0]);
621
+                $notice_title = api_to_system_encoding($notice_title, api_detect_encoding($notice_title));
622
+                $notice_text = strip_tags(str_replace('<br />', "\n", $home_notice[1]), '<a>');
623
+                $notice_text = api_to_system_encoding($notice_text, api_detect_encoding(strip_tags($notice_text)));
624
+                break;
625
+            case 'edit_news':
626
+                // This request is the preparation for the update of the home_news page
627
+                $home_news = '';
628
+                if (is_file($homep.$newsf.'_'.$lang.$ext) && is_readable($homep.$newsf.'_'.$lang.$ext)) {
629
+                    $home_news = @(string)file_get_contents($homep.$newsf.'_'.$lang.$ext);
630
+                } elseif (is_file($homep.$newsf.$lang.$ext) && is_readable($homep.$newsf.$lang.$ext)) {
631
+                    $home_news = @(string)file_get_contents($homep.$newsf.$lang.$ext);
632
+                } else {
633
+                    $errorMsg = get_lang('HomePageFilesNotReadable');
634
+                }
635
+                $home_news = api_to_system_encoding($home_news, api_detect_encoding(strip_tags($home_news)));
636
+                break;
637
+            case 'insert_link':
638
+                // This request is the preparation for the addition of an item in home_menu
639
+                $home_menu = '';
640
+                $menuf = ($action == 'edit_tabs')? $mtloggedin : $menuf;
641
+                if (is_file($homep.$menuf.'_'.$lang.$ext) && is_readable($homep.$menuf.'_'.$lang.$ext)) {
642
+                    $home_menu = @file($homep.$menuf.'_'.$lang.$ext);
643
+                } elseif(is_file($homep.$menuf.$lang.$ext) && is_readable($homep.$menuf.$lang.$ext)) {
644
+                    $home_menu = @file($homep.$menuf.$lang.$ext);
645
+                } else {
646
+                    $errorMsg = get_lang('HomePageFilesNotReadable');
647
+                }
648
+                if (empty($home_menu)) {
649
+                    $home_menu = array();
650
+                }
651
+                if (!empty($home_menu)) {
652
+                    $home_menu = implode("\n", $home_menu);
653
+                    $home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
654
+                    $home_menu = explode("\n", $home_menu);
655
+                }
656
+                $home_menu = array_values(array_filter(array_map('trim', $home_menu), 'strlen'));
657
+                break;
658
+            case 'insert_tabs':
659
+                // This request is the preparation for the addition of an item in home_menu
660
+                $home_menu = '';
661
+                if (is_file($homep.$mtloggedin.'_'.$lang.$ext) && is_readable($homep.$mtloggedin.'_'.$lang.$ext)) {
662
+                    $home_menu = @file($homep.$mtloggedin.'_'.$lang.$ext);
663
+                } elseif (is_file($homep.$mtloggedin.$lang.$ext) && is_readable($homep.$mtloggedin.$lang.$ext)) {
664
+                    $home_menu = @file($homep.$mtloggedin.$lang.$ext);
665
+                } elseif (touch($homep.$mtloggedin.'_'.$lang.$ext)) {
666
+                    $home_menu = @file($homep.$mtloggedin.'_'.$lang.$ext);
667
+                } else {
668
+                    $errorMsg = get_lang('HomePageFilesNotReadable');
669
+                }
670
+                if (empty($home_menu)) {
671
+                    $home_menu = array();
672
+                }
673
+                if (!empty($home_menu)) {
674
+                    $home_menu = implode("\n", $home_menu);
675
+                    $home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
676
+                    $home_menu = explode("\n", $home_menu);
677
+                }
678
+                $home_menu = array_values(array_filter(array_map('trim', $home_menu), 'strlen'));
679
+                break;
680
+            case 'edit_tabs':
681
+            case 'edit_link':
682
+                // This request is the preparation for the edition of the links array
683
+                $home_menu = '';
684
+                $menuf = ($action == 'edit_tabs')? $mtloggedin : $menuf;
685
+                if (is_file($homep.$menuf.'_'.$lang.$ext) && is_readable($homep.$menuf.'_'.$lang.$ext)) {
686
+                    $home_menu = @file($homep.$menuf.'_'.$lang.$ext);
687
+                } elseif(is_file($homep.$menuf.$lang.$ext) && is_readable($homep.$menuf.$lang.$ext)) {
688
+                    $home_menu = @file($homep.$menuf.$lang.$ext);
689
+                } else {
690
+                    $errorMsg = get_lang('HomePageFilesNotReadable');
691
+                }
692
+
693
+                if (empty($home_menu)) {
694
+                    if (file_exists($homep.$menutabs.'_'.$lang.$ext)) {
695
+                        $home_menu = @file($homep.$menutabs.'_'.$lang.$ext);
696
+                    }
697
+                }
698
+
699
+                if (empty($home_menu)) {
700
+                    $home_menu = array();
701
+                }
702
+                if (!empty($home_menu)) {
703
+                    $home_menu = implode("\n", $home_menu);
704
+                    $home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
705
+                    $home_menu = explode("\n", $home_menu);
706
+                }
707
+
708
+                $link_index = intval($_GET['link_index']);
709
+
710
+                $target_blank = false;
711
+                $link_name = '';
712
+                $link_url = '';
713
+
714
+                //$home_menu_new = array();
715
+                //
716
+                //Cleaning array
717
+                //foreach ($home_menu as $item) {
718
+                //	if(!empty($item)) {
719
+                //		$home_menu_new[] = $item;
720
+                //	}
721
+                //}
722
+                //$home_menu = $home_menu_new;
723
+
724
+                // Cleaning the array
725
+                $home_menu = array_values(array_filter(array_map('trim', $home_menu), 'strlen'));
726
+
727
+                // For each line of the home_menu file
728
+                foreach ($home_menu as $key => $enreg) {
729
+
730
+                    // Check if the current item is the one we want to update
731
+                    if ($key == $link_index) {
732
+                        // This is the link we want to update
733
+                        // Check if the target should be "_blank"
734
+                        if (strstr($enreg, 'target="_blank"')) {
735
+                            $target_blank = true;
736
+                        }
737
+
738
+                        if (strstr($enreg, 'hide_menu')) {
739
+                            $add_in_tab = false;
740
+                        } else {
741
+                            $add_in_tab = true;
742
+                        }
743
+
744
+                        // Remove dangerous HTML tags from the link itself (this is an
745
+                        // additional measure in case a link previously contained
746
+                        // unsecure tags)
747
+                        $link_name = strip_tags($enreg);
748
+
749
+                        // Get the contents of "href" attribute in $link_url
750
+                        $enreg = explode('href="',$enreg);
751
+                        list($link_url) = explode('"', $enreg[sizeof($enreg) - 1]);
752
+
753
+                        // If the link contains the web root of this portal, then strip
754
+                        // it off and keep only the name of the file that needs edition
755
+                        if (strstr($link_url, '?include=')) {
756
+                            $link_url = explode('?include=', $link_url);
757
+
758
+                            $filename = $link_url[sizeof($link_url) - 1];
759
+
760
+                            if (!strstr($filename, '/') && strstr($filename, '.html')) {
761
+                                // Get oonly the contents of the link file
762
+                                $link_html = @file($homep.$filename);
763
+                                $link_html = implode('', $link_html);
764
+                                $link_url = '';
765
+                            } else {
766
+                                $filename = '';
767
+                            }
768
+                        }
769
+                        break;
770
+                    }
771
+                }
772
+                break;
773
+        }//end of second switch($action) (when POST['formSent'] was not set, yet)
774
+    }// end of "else" in if($_POST['formSent']) condition
775 775
 } else {
776
-	//if $action is empty, then prepare a list of the course categories to display (?)
777
-	$Categories = getCategoriesToDisplayInHomePage();
776
+    //if $action is empty, then prepare a list of the course categories to display (?)
777
+    $Categories = getCategoriesToDisplayInHomePage();
778 778
 }
779 779
 
780 780
 // Display section
@@ -782,25 +782,25 @@  discard block
 block discarded – undo
782 782
 Display::display_header($tool_name);
783 783
 
784 784
 switch ($action) {
785
-	case 'open_link':
786
-		if (!empty($link)) {
787
-			// $link is only set in case of action=open_link and is filtered
788
-			$open = @(string)file_get_contents($homep.$link);
789
-			$open = api_to_system_encoding($open, api_detect_encoding(strip_tags($open)));
790
-			echo $open;
791
-		}
792
-		break;
793
-	case 'edit_notice':
794
-		// Display for edit_notice case
795
-		?>
785
+    case 'open_link':
786
+        if (!empty($link)) {
787
+            // $link is only set in case of action=open_link and is filtered
788
+            $open = @(string)file_get_contents($homep.$link);
789
+            $open = api_to_system_encoding($open, api_detect_encoding(strip_tags($open)));
790
+            echo $open;
791
+        }
792
+        break;
793
+    case 'edit_notice':
794
+        // Display for edit_notice case
795
+        ?>
796 796
 		<form action="<?php echo $selfUrl; ?>?action=<?php echo $action; ?>" method="post" class="form-horizontal">
797 797
 			<legend><?php echo $tool_name; ?></legend>
798 798
 			<input type="hidden" name="formSent" value="1"/>
799 799
 			<?php
800
-			if (!empty($errorMsg)) {
801
-				Display::display_normal_message($errorMsg);
802
-			}
803
-			?>
800
+            if (!empty($errorMsg)) {
801
+                Display::display_normal_message($errorMsg);
802
+            }
803
+            ?>
804 804
                         <div class="row">
805 805
                             <div class="col-md-12">
806 806
                                 <p><?php echo get_lang('LetThoseFieldsEmptyToHideTheNotice'); ?></p>
@@ -838,170 +838,170 @@  discard block
 block discarded – undo
838 838
                         </div>
839 839
 		</form>
840 840
 		<?php
841
-		break;
842
-	case 'insert_tabs':
843
-	case 'edit_tabs':
844
-	case 'insert_link':
845
-	case 'edit_link':
846
-		$menuf = ($action == 'insert_tabs' || $action == 'edit_tabs') ? $mtloggedin : $menuf;
847
-		if (!empty($errorMsg)) {
848
-			Display::display_normal_message($errorMsg);
849
-		}
850
-		$default = array();
851
-		$form = new FormValidator('configure_homepage_'.$action, 'post', $selfUrl.'?action='.$action, '', array('style' => 'margin: 0px;'));
852
-		$renderer =& $form->defaultRenderer();
853
-
854
-		$form->addElement('header', '', $tool_name);
855
-		$form->addElement('hidden', 'formSent', '1');
856
-		$form->addElement('hidden', 'link_index', ($action == 'edit_link' || $action == 'edit_tabs') ? $link_index : '0');
857
-		$form->addElement('hidden', 'filename', ($action == 'edit_link' || $action == 'edit_tabs') ? (!empty($filename) ? $filename : '') : '');
858
-
859
-		$form->addElement('text', 'link_name', get_lang('LinkName'), array('size' => '30', 'maxlength' => '50'));
860
-		if (!empty($link_name)) {
861
-			$default['link_name'] = $link_name;
862
-		}
863
-		$default['link_url'] = empty($link_url) ? 'http://' : api_htmlentities($link_url, ENT_QUOTES);
864
-		$linkUrlComment = ($action == 'insert_tabs') ? get_lang('Optional').'<br />'.get_lang('GlobalLinkUseDoubleColumnPrivateToShowPrivately') : '';
865
-		$form->addElement('text', 'link_url', array(get_lang('LinkURL'), $linkUrlComment), array('size' => '30', 'maxlength' => '100', 'style' => 'width: 350px;'));
866
-
867
-		$options = array('-1' => get_lang('FirstPlace'));
868
-
869
-		$selected = '';
870
-
871
-		if ($action == 'insert_link' || $action == 'insert_tabs') {
872
-			$add_in_tab = 1;
873
-			if (is_array($home_menu)){
874
-				foreach ($home_menu as $key => $enreg) {
875
-					if (strlen($enreg = trim(strip_tags($enreg))) > 0) {
876
-						$options[$key] = get_lang('After').' &quot;'.$enreg.'&quot;';
877
-						$formSentCheck = (!empty($_POST['formSent']) ? true : false);
878
-						$selected = $formSentCheck && $insert_where == $key ? $key : '';
879
-					}
880
-				}
881
-			}
882
-			$default['insert_link'] = $selected;
883
-			$form->addElement('select', 'insert_where', get_lang('InsertThisLink') , $options);
884
-		}
885
-
886
-		$target_blank_checkbox = $form->addElement('checkbox', 'target_blank', null, get_lang('OpenInNewWindow'), 1);
887
-
888
-		if ($action == 'insert_tabs' || $action == 'edit_tabs') {
889
-			$form->addElement('checkbox', 'add_in_tab', null, get_lang('AddInMenu'), 1);
890
-			$default['add_in_tab'] = $add_in_tab;
891
-		}
892
-
893
-		if (!empty($target_blank)) { $target_blank_checkbox->setChecked(true); }
894
-
895
-		if ($action == 'edit_link' && (empty($link_url) || $link_url == 'http://' || $link_url == 'https://')) {
896
-			$default['link_html'] = isset($_POST['link_html']) ? $_POST['link_html'] : $link_html;
897
-			$form->addHtmlEditor('link_html', get_lang('Content'), false, false, array('ToolbarSet' => 'PortalHomePage', 'Width' => '100%', 'Height' => '400'));
841
+        break;
842
+    case 'insert_tabs':
843
+    case 'edit_tabs':
844
+    case 'insert_link':
845
+    case 'edit_link':
846
+        $menuf = ($action == 'insert_tabs' || $action == 'edit_tabs') ? $mtloggedin : $menuf;
847
+        if (!empty($errorMsg)) {
848
+            Display::display_normal_message($errorMsg);
849
+        }
850
+        $default = array();
851
+        $form = new FormValidator('configure_homepage_'.$action, 'post', $selfUrl.'?action='.$action, '', array('style' => 'margin: 0px;'));
852
+        $renderer =& $form->defaultRenderer();
853
+
854
+        $form->addElement('header', '', $tool_name);
855
+        $form->addElement('hidden', 'formSent', '1');
856
+        $form->addElement('hidden', 'link_index', ($action == 'edit_link' || $action == 'edit_tabs') ? $link_index : '0');
857
+        $form->addElement('hidden', 'filename', ($action == 'edit_link' || $action == 'edit_tabs') ? (!empty($filename) ? $filename : '') : '');
858
+
859
+        $form->addElement('text', 'link_name', get_lang('LinkName'), array('size' => '30', 'maxlength' => '50'));
860
+        if (!empty($link_name)) {
861
+            $default['link_name'] = $link_name;
862
+        }
863
+        $default['link_url'] = empty($link_url) ? 'http://' : api_htmlentities($link_url, ENT_QUOTES);
864
+        $linkUrlComment = ($action == 'insert_tabs') ? get_lang('Optional').'<br />'.get_lang('GlobalLinkUseDoubleColumnPrivateToShowPrivately') : '';
865
+        $form->addElement('text', 'link_url', array(get_lang('LinkURL'), $linkUrlComment), array('size' => '30', 'maxlength' => '100', 'style' => 'width: 350px;'));
866
+
867
+        $options = array('-1' => get_lang('FirstPlace'));
868
+
869
+        $selected = '';
870
+
871
+        if ($action == 'insert_link' || $action == 'insert_tabs') {
872
+            $add_in_tab = 1;
873
+            if (is_array($home_menu)){
874
+                foreach ($home_menu as $key => $enreg) {
875
+                    if (strlen($enreg = trim(strip_tags($enreg))) > 0) {
876
+                        $options[$key] = get_lang('After').' &quot;'.$enreg.'&quot;';
877
+                        $formSentCheck = (!empty($_POST['formSent']) ? true : false);
878
+                        $selected = $formSentCheck && $insert_where == $key ? $key : '';
879
+                    }
880
+                }
881
+            }
882
+            $default['insert_link'] = $selected;
883
+            $form->addElement('select', 'insert_where', get_lang('InsertThisLink') , $options);
884
+        }
885
+
886
+        $target_blank_checkbox = $form->addElement('checkbox', 'target_blank', null, get_lang('OpenInNewWindow'), 1);
887
+
888
+        if ($action == 'insert_tabs' || $action == 'edit_tabs') {
889
+            $form->addElement('checkbox', 'add_in_tab', null, get_lang('AddInMenu'), 1);
890
+            $default['add_in_tab'] = $add_in_tab;
891
+        }
892
+
893
+        if (!empty($target_blank)) { $target_blank_checkbox->setChecked(true); }
894
+
895
+        if ($action == 'edit_link' && (empty($link_url) || $link_url == 'http://' || $link_url == 'https://')) {
896
+            $default['link_html'] = isset($_POST['link_html']) ? $_POST['link_html'] : $link_html;
897
+            $form->addHtmlEditor('link_html', get_lang('Content'), false, false, array('ToolbarSet' => 'PortalHomePage', 'Width' => '100%', 'Height' => '400'));
898 898
             $form->addButtonSave(get_lang('Save'),'submit');
899 899
 
900
-		} else {
901
-			if (in_array($action, array('edit_tabs','insert_tabs'))) {
902
-				$default['link_html'] = isset($_POST['link_html']) ? $_POST['link_html'] : (!empty($link_html) ? $link_html : '');
903
-				$form->addHtmlEditor('link_html', get_lang('Content'), false, false, array('ToolbarSet' => 'PortalHomePage', 'Width' => '100%', 'Height' => '400'));
904
-			}
905
-			$form->addElement('checkbox', 'all_langs', null, get_lang('ApplyAllLanguages'), array('id' => 'all_langs'));
906
-			$form->addElement('html','<table id="table_langs" style="margin-left:159px;"><tr>');
907
-			$i = 0;
908
-			foreach ($_languages['name'] as $key => $value) {
909
-				$i++;
910
-				$lang_name = $_languages['folder'][$key];
911
-				$html_langs = '<td width="300">';
912
-				$html_langs .= '<label><input type="checkbox" id="lang" name="'.$lang_name.'" />&nbsp;'.$lang_name.'<label/>';
913
-				$html_langs .= '</td>';
914
-				if ($i % 5 == 0) {
915
-					$html_langs .= '</tr><tr>';
916
-				}
917
-				$form->addElement('html', $html_langs);
918
-			}
919
-			$form->addElement('html','</tr></table><br/>');
900
+        } else {
901
+            if (in_array($action, array('edit_tabs','insert_tabs'))) {
902
+                $default['link_html'] = isset($_POST['link_html']) ? $_POST['link_html'] : (!empty($link_html) ? $link_html : '');
903
+                $form->addHtmlEditor('link_html', get_lang('Content'), false, false, array('ToolbarSet' => 'PortalHomePage', 'Width' => '100%', 'Height' => '400'));
904
+            }
905
+            $form->addElement('checkbox', 'all_langs', null, get_lang('ApplyAllLanguages'), array('id' => 'all_langs'));
906
+            $form->addElement('html','<table id="table_langs" style="margin-left:159px;"><tr>');
907
+            $i = 0;
908
+            foreach ($_languages['name'] as $key => $value) {
909
+                $i++;
910
+                $lang_name = $_languages['folder'][$key];
911
+                $html_langs = '<td width="300">';
912
+                $html_langs .= '<label><input type="checkbox" id="lang" name="'.$lang_name.'" />&nbsp;'.$lang_name.'<label/>';
913
+                $html_langs .= '</td>';
914
+                if ($i % 5 == 0) {
915
+                    $html_langs .= '</tr><tr>';
916
+                }
917
+                $form->addElement('html', $html_langs);
918
+            }
919
+            $form->addElement('html','</tr></table><br/>');
920 920
             $form->addButtonSave(get_lang('Save'),'submit');
921
-		}
922
-
923
-		$form->setDefaults($default);
924
-		$form->display();
925
-
926
-		break;
927
-	case 'edit_top':
928
-	case 'edit_news':
929
-		if ($action == 'edit_top') {
930
-			$name = $topf;
931
-			$open = $home_top;
932
-		} else {
933
-			$name = $newsf;
934
-			$open = @(string)file_get_contents($homep.$newsf.'_'.$lang.$ext);
935
-		}
936
-		$open = api_to_system_encoding($open, api_detect_encoding(strip_tags($open)));
937
-
938
-		if (!empty($errorMsg)) {
939
-			Display::display_normal_message($errorMsg); //main API
940
-		}
941
-
942
-		$default = array();
943
-		$form = new FormValidator(
944
-			'configure_homepage_'.$action,
945
-			'post',
946
-			$selfUrl.'?action='.$action,
947
-			'',
948
-			array('style' => 'margin: 0px;')
949
-		);
950
-		$renderer =& $form->defaultRenderer();
951
-		$renderer->setHeaderTemplate('');
952
-		$renderer->setFormTemplate('<form{attributes}><table border="0" cellpadding="5" cellspacing="0" width="100%">{content}</table></form>');
953
-		$renderer->setCustomElementTemplate('<tr><td>{element}</td></tr>');
954
-		$renderer->setRequiredNoteTemplate('');
955
-		$form->addElement('hidden', 'formSent', '1');
956
-
957
-		if ($action == 'edit_news') {
958
-			$_languages = api_get_languages();
959
-			$html = '<tr><td>'.get_lang('ChooseNewsLanguage').' : ';
960
-			$html .= '<select name="news_languages">';
961
-			$html .= '<option value="all">'.get_lang('ApplyAllLanguages').'</option>';
962
-			foreach ($_languages['name'] as $key => $value) {
963
-				$english_name = $_languages['folder'][$key];
964
-				if ($language == $english_name) {
965
-					$html .= '<option value="'.$english_name.'" selected="selected">'.$value.'</option>';
966
-				} else {
967
-					$html .= '<option value="'.$english_name.'">'.$value.'</option>';
968
-				}
969
-			}
970
-			$html .= '</select></td></tr>';
971
-			$form->addElement('html', $html);
972
-		}
973
-
974
-		$default[$name] = str_replace('{rel_path}', api_get_path(REL_PATH), $open);
975
-		$form->addHtmlEditor($name, '', true, false, array('ToolbarSet' => 'PortalHomePage', 'Width' => '100%', 'Height' => '400'));
976
-		$form->addElement('checkbox', 'all_langs', null, get_lang('ApplyAllLanguages'),array('id' => 'all_langs'));
977
-		$form->addElement('html','<table id="table_langs" style="margin-left:5px;"><tr>');
978
-
979
-		$currentLanguage = api_get_interface_language();
980
-		$i = 0;
981
-		foreach ($_languages['name'] as $key => $value) {
982
-			$lang_name = $_languages['folder'][$key];
983
-			$i++;
984
-
985
-			$checked = null;
986
-			if ($languageGet == $lang_name)  {
987
-				$checked = "checked";
988
-			}
989
-			$html_langs = '<td width="300">';
990
-			$html_langs .= '<label><input type="checkbox" '.$checked.' id="lang" name="'.$lang_name.'" />&nbsp;'.$value.'<label/>';
991
-			$html_langs .= '</td>';
992
-			if ($i % 5 == 0) {
993
-				$html_langs .= '</tr><tr>';
994
-			}
995
-			$form->addElement('html', $html_langs);
996
-		}
997
-		$form->addElement('html','</tr></table><br/>');
998
-		$form->addButtonSave(get_lang('Save'));
999
-		$form->setDefaults($default);
1000
-		$form->display();
1001
-
1002
-		break;
1003
-	default: // When no action applies, default page to update campus homepage
1004
-		?>
921
+        }
922
+
923
+        $form->setDefaults($default);
924
+        $form->display();
925
+
926
+        break;
927
+    case 'edit_top':
928
+    case 'edit_news':
929
+        if ($action == 'edit_top') {
930
+            $name = $topf;
931
+            $open = $home_top;
932
+        } else {
933
+            $name = $newsf;
934
+            $open = @(string)file_get_contents($homep.$newsf.'_'.$lang.$ext);
935
+        }
936
+        $open = api_to_system_encoding($open, api_detect_encoding(strip_tags($open)));
937
+
938
+        if (!empty($errorMsg)) {
939
+            Display::display_normal_message($errorMsg); //main API
940
+        }
941
+
942
+        $default = array();
943
+        $form = new FormValidator(
944
+            'configure_homepage_'.$action,
945
+            'post',
946
+            $selfUrl.'?action='.$action,
947
+            '',
948
+            array('style' => 'margin: 0px;')
949
+        );
950
+        $renderer =& $form->defaultRenderer();
951
+        $renderer->setHeaderTemplate('');
952
+        $renderer->setFormTemplate('<form{attributes}><table border="0" cellpadding="5" cellspacing="0" width="100%">{content}</table></form>');
953
+        $renderer->setCustomElementTemplate('<tr><td>{element}</td></tr>');
954
+        $renderer->setRequiredNoteTemplate('');
955
+        $form->addElement('hidden', 'formSent', '1');
956
+
957
+        if ($action == 'edit_news') {
958
+            $_languages = api_get_languages();
959
+            $html = '<tr><td>'.get_lang('ChooseNewsLanguage').' : ';
960
+            $html .= '<select name="news_languages">';
961
+            $html .= '<option value="all">'.get_lang('ApplyAllLanguages').'</option>';
962
+            foreach ($_languages['name'] as $key => $value) {
963
+                $english_name = $_languages['folder'][$key];
964
+                if ($language == $english_name) {
965
+                    $html .= '<option value="'.$english_name.'" selected="selected">'.$value.'</option>';
966
+                } else {
967
+                    $html .= '<option value="'.$english_name.'">'.$value.'</option>';
968
+                }
969
+            }
970
+            $html .= '</select></td></tr>';
971
+            $form->addElement('html', $html);
972
+        }
973
+
974
+        $default[$name] = str_replace('{rel_path}', api_get_path(REL_PATH), $open);
975
+        $form->addHtmlEditor($name, '', true, false, array('ToolbarSet' => 'PortalHomePage', 'Width' => '100%', 'Height' => '400'));
976
+        $form->addElement('checkbox', 'all_langs', null, get_lang('ApplyAllLanguages'),array('id' => 'all_langs'));
977
+        $form->addElement('html','<table id="table_langs" style="margin-left:5px;"><tr>');
978
+
979
+        $currentLanguage = api_get_interface_language();
980
+        $i = 0;
981
+        foreach ($_languages['name'] as $key => $value) {
982
+            $lang_name = $_languages['folder'][$key];
983
+            $i++;
984
+
985
+            $checked = null;
986
+            if ($languageGet == $lang_name)  {
987
+                $checked = "checked";
988
+            }
989
+            $html_langs = '<td width="300">';
990
+            $html_langs .= '<label><input type="checkbox" '.$checked.' id="lang" name="'.$lang_name.'" />&nbsp;'.$value.'<label/>';
991
+            $html_langs .= '</td>';
992
+            if ($i % 5 == 0) {
993
+                $html_langs .= '</tr><tr>';
994
+            }
995
+            $form->addElement('html', $html_langs);
996
+        }
997
+        $form->addElement('html','</tr></table><br/>');
998
+        $form->addButtonSave(get_lang('Save'));
999
+        $form->setDefaults($default);
1000
+        $form->display();
1001
+
1002
+        break;
1003
+    default: // When no action applies, default page to update campus homepage
1004
+        ?>
1005 1005
 
1006 1006
 <section id="page-home">
1007 1007
     <div class="row">
@@ -1157,53 +1157,53 @@  discard block
 block discarded – undo
1157 1157
             ?>
1158 1158
 
1159 1159
             <?php
1160
-		if (file_exists($homep.$newsf.'_'.$lang.$ext)) {
1160
+        if (file_exists($homep.$newsf.'_'.$lang.$ext)) {
1161 1161
                     $open = @(string)file_get_contents($homep.$newsf.'_'.$lang.$ext);
1162 1162
                     $open = api_to_system_encoding($open, api_detect_encoding(strip_tags($open)));
1163 1163
                     echo $open;
1164
-		} else {
1164
+        } else {
1165 1165
                     $open = @(string)file_get_contents($homep.$newsf.$ext);
1166 1166
                     $open = api_to_system_encoding($open, api_detect_encoding(strip_tags($open)));
1167 1167
                     echo $open;
1168
-		}
1168
+        }
1169 1169
             ?>
1170 1170
 
1171 1171
             <?php
1172 1172
                 // Add new page
1173
-		$home_menu = '';
1174
-		if (file_exists($homep.$mtloggedin.'_'.$lang.$ext)) {
1173
+        $home_menu = '';
1174
+        if (file_exists($homep.$mtloggedin.'_'.$lang.$ext)) {
1175 1175
                     $home_menu = @file($homep.$mtloggedin.'_'.$lang.$ext);
1176
-		} else {
1176
+        } else {
1177 1177
                     $home_menu = @file($homep.$mtloggedin.$ext);
1178
-		}
1179
-		if (empty($home_menu)) {
1178
+        }
1179
+        if (empty($home_menu)) {
1180 1180
                     if (file_exists($homep.$menutabs.'_'.$lang.$ext)) {
1181
-			$home_menu = @file($homep.$menutabs.'_'.$lang.$ext);
1181
+            $home_menu = @file($homep.$menutabs.'_'.$lang.$ext);
1182 1182
                     }
1183
-		}
1184
-		if (empty($home_menu)) {
1183
+        }
1184
+        if (empty($home_menu)) {
1185 1185
                     $home_menu = array();
1186
-		}
1187
-		if (!empty($home_menu)) {
1186
+        }
1187
+        if (!empty($home_menu)) {
1188 1188
                     $home_menu = implode("\n", $home_menu);
1189 1189
                     $home_menu = api_to_system_encoding($home_menu, api_detect_encoding(strip_tags($home_menu)));
1190 1190
                     $home_menu = explode("\n", $home_menu);
1191
-		}
1192
-		$link_list = '';
1193
-		$tab_counter = 0;
1191
+        }
1192
+        $link_list = '';
1193
+        $tab_counter = 0;
1194 1194
                     foreach ($home_menu as $enreg) {
1195 1195
                     $enreg = trim($enreg);
1196
-			if (!empty($enreg)) {
1196
+            if (!empty($enreg)) {
1197 1197
                             $edit_link   = ' <a href="'.$selfUrl.'?action=edit_tabs&amp;link_index='.$tab_counter.'" ><span>'.Display::return_icon('edit.png', get_lang('Edit')).'</span></a>';
1198 1198
                             $delete_link = ' <a href="'.$selfUrl.'?action=delete_tabs&amp;link_index='.$tab_counter.'"  onclick="javascript: if(!confirm(\''.addslashes(api_htmlentities(get_lang('ConfirmYourChoice'), ENT_QUOTES)).'\')) return false;"><span>'.Display::return_icon('delete.png', get_lang('Delete')).'</span></a>';
1199 1199
                             $tab_string = str_replace(array('href="'.api_get_path(WEB_PATH).'index.php?include=', '</li>'),
1200 1200
                                 array('href="'.api_get_path(WEB_CODE_PATH).'admin/'.basename($selfUrl).'?action=open_link&link=', $edit_link.$delete_link.'</li>'),
1201
-				$enreg);
1201
+                $enreg);
1202 1202
                             $tab_string = str_replace(array('<li>', '</li>','class="hide_menu"', 'hide_menu'), '', $tab_string);
1203
-				$link_list .= Display::tag('li', $tab_string, array('class' => 'list-group-item'));
1204
-				$tab_counter++;
1205
-			}
1206
-		}
1203
+                $link_list .= Display::tag('li', $tab_string, array('class' => 'list-group-item'));
1204
+                $tab_counter++;
1205
+            }
1206
+        }
1207 1207
             ?>
1208 1208
             <div class="actions">
1209 1209
 		<a href="<?php echo $selfUrl; ?>?action=insert_tabs">
@@ -1211,9 +1211,9 @@  discard block
 block discarded – undo
1211 1211
                 </a>
1212 1212
             </div>
1213 1213
             <?php
1214
-		echo '<ul id="list-hiperlink" class="list-group">';
1215
-		echo $link_list;
1216
-		echo '</ul>';
1214
+        echo '<ul id="list-hiperlink" class="list-group">';
1215
+        echo $link_list;
1216
+        echo '</ul>';
1217 1217
             ?>
1218 1218
         </div>
1219 1219
     </div>
Please login to merge, or discard this patch.
custompages/language.inc.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -29,11 +29,11 @@  discard block
 block discarded – undo
29 29
     krsort($langs, SORT_NUMERIC);
30 30
     // Choosing the best match
31 31
     foreach($langs as $weight => $codes) {
32
-		foreach ($codes as $code) {
33
-        	if (in_array($code, $available_langs)) {
34
-            	return $code;
35
-        	}
36
-		}
32
+        foreach ($codes as $code) {
33
+            if (in_array($code, $available_langs)) {
34
+                return $code;
35
+            }
36
+        }
37 37
     }
38 38
     // No match
39 39
     return null;
@@ -44,7 +44,7 @@  discard block
 block discarded – undo
44 44
  * use this if you want to avoid translation caching issues
45 45
  */
46 46
 function cp_get_lang($variable) {
47
-	return get_lang($variable, null, $_SESSION['user_language_choice']);
47
+    return get_lang($variable, null, $_SESSION['user_language_choice']);
48 48
 }
49 49
 /**
50 50
  * Code
@@ -63,12 +63,12 @@  discard block
 block discarded – undo
63 63
 
64 64
 // Chamilo overrides this parameters at some places, e.g. in the logout link
65 65
 if (isset($_REQUEST['language']) && !empty($_REQUEST['language']) && in_array($_REQUEST['language'], $chamilo_langs)) {
66
-	$lang_match = $_REQUEST['language'];
66
+    $lang_match = $_REQUEST['language'];
67 67
 }
68 68
 
69 69
 // Maybe a language had already been selected, we should honor this
70 70
 if (isset($_SESSION['user_language_choice']) && in_array($_SESSION['user_language_choice'], $chamilo_langs)) {
71
-	$lang_match = $_SESSION['user_language_choice'];
71
+    $lang_match = $_SESSION['user_language_choice'];
72 72
 }
73 73
 
74 74
 // We need to set the relevant session variables to the best match, to use Chamilo's i18n lib.
Please login to merge, or discard this patch.
custompages/first_login-dist.php 1 patch
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -14,7 +14,7 @@  discard block
 block discarded – undo
14 14
  * Security checks
15 15
  */
16 16
 if (! isset($_SESSION['conditional_login']['uid']))
17
-  die("Not Authorised");
17
+    die("Not Authorised");
18 18
 
19 19
 if (isset($_POST['password'])) {
20 20
     $u = api_get_user_info($_SESSION['conditional_login']['uid']);
@@ -27,26 +27,26 @@  discard block
 block discarded – undo
27 27
         exit();
28 28
     }
29 29
     $password = $_POST['password'];
30
-	$updated = UserManager::update_user(
31
-		$u['user_id'],
32
-		$u['firstname'],
33
-		$u['lastname'],
34
-		$u['username'],
35
-		$password,
36
-		$u['auth_source'],
37
-		$u['email'],
38
-		$u['status'],
39
-		$u['official_code'],
40
-		$u['phone'],
41
-		$u['picture_uri'],
42
-		$u['expiration_date'],
43
-		$u['active'],
44
-		$u['creator_id'],
45
-		$u['hr_dept_id'],
46
-		null,
47
-		$u['language'],
48
-		''
49
-	);
30
+    $updated = UserManager::update_user(
31
+        $u['user_id'],
32
+        $u['firstname'],
33
+        $u['lastname'],
34
+        $u['username'],
35
+        $password,
36
+        $u['auth_source'],
37
+        $u['email'],
38
+        $u['status'],
39
+        $u['official_code'],
40
+        $u['phone'],
41
+        $u['picture_uri'],
42
+        $u['expiration_date'],
43
+        $u['active'],
44
+        $u['creator_id'],
45
+        $u['hr_dept_id'],
46
+        null,
47
+        $u['language'],
48
+        ''
49
+    );
50 50
 
51 51
     if ($updated !== false) {
52 52
         UserManager::update_extra_field_value($u['user_id'], 'already_logged_in', 'true');
@@ -104,8 +104,8 @@  discard block
 block discarded – undo
104 104
 		<div id="changepassword-form-box" class="form-box">
105 105
       <div class="info"> <?php echo custompages_get_lang('FirstLoginChangePassword');?> </div>
106 106
 		<?php if (isset($error_message)) {
107
-			echo '<div id="changepassword-form-error" class="form-error">'.$error_message.'</div>';
108
-		}?>
107
+            echo '<div id="changepassword-form-error" class="form-error">'.$error_message.'</div>';
108
+        }?>
109 109
 			<form id="changepassword-form" class="form" method="post">
110 110
 				<div>
111 111
           <label for="password">*<?php echo custompages_get_lang('Password');?></label>
Please login to merge, or discard this patch.
custompages/language.php 1 patch
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -9,30 +9,30 @@  discard block
 block discarded – undo
9 9
  * Get the preferred language base on the browser headers
10 10
  */
11 11
 function get_preferred_language($available_langs) {
12
-	$langs = array();
13
-	foreach (explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']) as $httplang) {
14
-		$rawlang = explode(';q=', $httplang);
15
-		if (strpos($rawlang[0], '-') !== FALSE) {
16
-			$rawlang[0] = substr($rawlang[0], 0, strpos($rawlang[0], '-'));
17
-		}
18
-		if (count($rawlang) == 1) {
19
-			$rawlang[1] = 1.0;
20
-		}
21
-		$langs[$rawlang[1]] = $rawlang[0];
22
-	}
23
-	krsort($langs, SORT_NUMERIC);
24
-	foreach($langs as $weight => $code) {
25
-		if (in_array($code, $available_langs)) {
26
-			return $code;
27
-		}
28
-	}
29
-	return null;
12
+    $langs = array();
13
+    foreach (explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']) as $httplang) {
14
+        $rawlang = explode(';q=', $httplang);
15
+        if (strpos($rawlang[0], '-') !== FALSE) {
16
+            $rawlang[0] = substr($rawlang[0], 0, strpos($rawlang[0], '-'));
17
+        }
18
+        if (count($rawlang) == 1) {
19
+            $rawlang[1] = 1.0;
20
+        }
21
+        $langs[$rawlang[1]] = $rawlang[0];
22
+    }
23
+    krsort($langs, SORT_NUMERIC);
24
+    foreach($langs as $weight => $code) {
25
+        if (in_array($code, $available_langs)) {
26
+            return $code;
27
+        }
28
+    }
29
+    return null;
30 30
 }
31 31
 /**
32 32
  * Get a language variable in a specific language
33 33
  */
34 34
 function custompages_get_lang($variable) {
35
-	return get_lang($variable, null, $_SESSION['user_language_choice']);
35
+    return get_lang($variable, null, $_SESSION['user_language_choice']);
36 36
 }
37 37
 
38 38
 $available_langs = array('en', 'fr', 'es', 'gl', 'eu');
@@ -49,15 +49,15 @@  discard block
 block discarded – undo
49 49
 $lang_match = $chamilo_langs[get_preferred_language($available_langs)];
50 50
 // recover previous value ...
51 51
 if (isset($_SESSION['user_language_choice']))
52
-	$lang_match = $_SESSION['user_language_choice'];
52
+    $lang_match = $_SESSION['user_language_choice'];
53 53
 
54 54
 // Chamilo parameter, on logout
55 55
 if (isset($_REQUEST['language']) && !empty($_REQUEST['language']) && in_array($_REQUEST['language'], $chamilo_langs)) {
56
-	$lang_match = $_REQUEST['language'];
56
+    $lang_match = $_REQUEST['language'];
57 57
 }
58 58
 // Incoming link parameter
59 59
 if (isset($_REQUEST['lang']) && !empty($_REQUEST['lang']) && in_array($_REQUEST['lang'], $available_langs)) {
60
-	$lang_match = $chamilo_langs[$_REQUEST['lang']];
60
+    $lang_match = $chamilo_langs[$_REQUEST['lang']];
61 61
 }
62 62
 
63 63
 $detect = api_get_setting('auto_detect_language_custom_pages');
Please login to merge, or discard this patch.
main/auth/ldap/authldap.php 1 patch
Indentation   +20 added lines, -21 removed lines patch added patch discarded remove patch
@@ -46,10 +46,9 @@  discard block
 block discarded – undo
46 46
     - Universite Jean Monet (J Dubois / Michel Courbon)
47 47
     - Michel Panckoucke for reporting and fixing a bug
48 48
     - Patrick Cool: fixing security hole
49
-
50
-    *    @author Roan Embrechts
51
-    *    @version 3.0
52
-    *    @package chamilo.auth.ldap
49
+ *    @author Roan Embrechts
50
+ *    @version 3.0
51
+ *    @package chamilo.auth.ldap
53 52
  * Note:
54 53
  * If you are using a firewall, you might need to check port 389 is open in
55 54
  * order for Chamilo to communicate with the LDAP server.
@@ -211,8 +210,8 @@  discard block
 block discarded – undo
211 210
     $language = api_get_setting('platformLanguage');
212 211
     if (empty($language)) { $language = 'english'; }
213 212
     $_userId = UserManager::create_user($prenom, $nom, $status,
214
-                     $email, $uname, $password, $official_code,
215
-                     $language,'', '', 'ldap');
213
+                        $email, $uname, $password, $official_code,
214
+                        $language,'', '', 'ldap');
216 215
 
217 216
     //echo "new user added to Chamilo, id = $_userId";
218 217
 
@@ -271,7 +270,7 @@  discard block
 block discarded – undo
271 270
         // Open anonymous LDAP connection
272 271
         $result=false;
273 272
         $ldap_bind_res = ldap_handle_bind($ds,$result);
274
-	// Executing the search with the $filter parametr
273
+    // Executing the search with the $filter parametr
275 274
         //error_log('Searching for '.$filter.' on LDAP server',0);
276 275
         $sr=ldap_search($ds,$ldap_basedn,$filter);
277 276
         $info = ldap_get_entries($ds, $sr);
@@ -564,35 +563,35 @@  discard block
 block discarded – undo
564 563
         foreach ($UserList as $enreg_user) {
565 564
             $enreg_user = (int) $enreg_user;
566 565
             Database::query("INSERT IGNORE ".
567
-              " INTO $tbl_session_rel_course_rel_user ".
568
-              "(session_id,c_id,user_id) VALUES ".
569
-              "('$id_session','$enreg_course','$enreg_user')");
566
+                " INTO $tbl_session_rel_course_rel_user ".
567
+                "(session_id,c_id,user_id) VALUES ".
568
+                "('$id_session','$enreg_course','$enreg_user')");
570 569
         }
571 570
         $sql = "SELECT COUNT(user_id) as nbUsers ".
572
-               " FROM $tbl_session_rel_course_rel_user " .
573
-               " WHERE session_id='$id_session' ".
574
-               " AND c_id='$enreg_course'";
571
+                " FROM $tbl_session_rel_course_rel_user " .
572
+                " WHERE session_id='$id_session' ".
573
+                " AND c_id='$enreg_course'";
575 574
         $rs = Database::query($sql);
576 575
         list($nbr_users) = Database::fetch_array($rs);
577 576
         Database::query("UPDATE $tbl_session_rel_course  ".
578
-               " SET nbr_users=$nbr_users " .
579
-               " WHERE session_id='$id_session' ".
580
-               " AND c_id='$enreg_course'");
577
+                " SET nbr_users=$nbr_users " .
578
+                " WHERE session_id='$id_session' ".
579
+                " AND c_id='$enreg_course'");
581 580
     }
582 581
     foreach ($UserList as $enreg_user) {
583 582
         $enreg_user = (int) $enreg_user;
584 583
         Database::query("INSERT IGNORE INTO $tbl_session_rel_user ".
585
-               " (session_id, user_id, registered_at) " .
586
-               " VALUES('$id_session','$enreg_user', '" . api_get_utc_datetime() . "')");
584
+                " (session_id, user_id, registered_at) " .
585
+                " VALUES('$id_session','$enreg_user', '" . api_get_utc_datetime() . "')");
587 586
     }
588 587
     // We update the number of users in the session
589 588
     $sql = "SELECT COUNT(user_id) as nbUsers FROM $tbl_session_rel_user ".
590
-           " WHERE session_id='$id_session' ".
591
-           " AND relation_type<>".SESSION_RELATION_TYPE_RRHH." ";
589
+            " WHERE session_id='$id_session' ".
590
+            " AND relation_type<>".SESSION_RELATION_TYPE_RRHH." ";
592 591
     $rs = Database::query($sql);
593 592
     list($nbr_users) = Database::fetch_array($rs);
594 593
     Database::query("UPDATE $tbl_session SET nbr_users=$nbr_users ".
595
-           " WHERE id='$id_session'");
594
+            " WHERE id='$id_session'");
596 595
 }
597 596
 
598 597
 function syncro_users() {
Please login to merge, or discard this patch.
main/exercice/export/qti2/qti2_classes.php 1 patch
Indentation   +135 added lines, -135 removed lines patch added patch discarded remove patch
@@ -55,12 +55,12 @@  discard block
 block discarded – undo
55 55
 
56 56
     function createAnswersForm($form)
57 57
     {
58
-    	return true;
58
+        return true;
59 59
     }
60 60
 
61 61
     function processAnswersCreation($form)
62 62
     {
63
-    	return true;
63
+        return true;
64 64
     }
65 65
 }
66 66
 /**
@@ -76,21 +76,21 @@  discard block
 block discarded – undo
76 76
     public function imsExportResponses($questionIdent, $questionStatment)
77 77
     {
78 78
         // @todo getAnswersList() converts the answers using api_html_entity_decode()
79
-		$this->answerList = $this->getAnswersList(true);
79
+        $this->answerList = $this->getAnswersList(true);
80 80
         $out  = '    <choiceInteraction responseIdentifier="' . $questionIdent . '" >' . "\n";
81 81
         $out .= '      <prompt><![CDATA['.formatExerciseQtiTitle($questionStatment) . ']]></prompt>'. "\n";
82
-		if (is_array($this->answerList)) {
83
-	        foreach ($this->answerList as $current_answer) {
84
-	            $out .= '<simpleChoice identifier="answer_' . $current_answer['id'] . '" fixed="false">
82
+        if (is_array($this->answerList)) {
83
+            foreach ($this->answerList as $current_answer) {
84
+                $out .= '<simpleChoice identifier="answer_' . $current_answer['id'] . '" fixed="false">
85 85
                          <![CDATA['.formatExerciseQtiTitle($current_answer['answer']).']]>';
86
-	            if (isset($current_answer['comment']) && $current_answer['comment'] != '') {
87
-	                $out .= '<feedbackInline identifier="answer_' . $current_answer['id'] . '">
86
+                if (isset($current_answer['comment']) && $current_answer['comment'] != '') {
87
+                    $out .= '<feedbackInline identifier="answer_' . $current_answer['id'] . '">
88 88
 	                         <![CDATA['.formatExerciseQtiTitle($current_answer['comment']).']]>
89 89
 	                         </feedbackInline>';
90
-	            }
91
-	            $out .= '</simpleChoice>'. "\n";
92
-	        }
93
-		}
90
+                }
91
+                $out .= '</simpleChoice>'. "\n";
92
+            }
93
+        }
94 94
         $out .= '    </choiceInteraction>'. "\n";
95 95
 
96 96
         return $out;
@@ -102,8 +102,8 @@  discard block
 block discarded – undo
102 102
      */
103 103
     public function imsExportResponsesDeclaration($questionIdent)
104 104
     {
105
-		$this->answerList = $this->getAnswersList(true);
106
-		$type = $this->getQuestionType();
105
+        $this->answerList = $this->getAnswersList(true);
106
+        $type = $this->getQuestionType();
107 107
         if ($type == MCMA)  $cardinality = 'multiple'; else $cardinality = 'single';
108 108
 
109 109
         $out = '  <responseDeclaration identifier="' . $questionIdent . '" cardinality="' . $cardinality . '" baseType="identifier">' . "\n";
@@ -111,25 +111,25 @@  discard block
 block discarded – undo
111 111
         // Match the correct answers.
112 112
 
113 113
         $out .= '    <correctResponse>'. "\n";
114
-		if (is_array($this->answerList)) {
115
-	        foreach($this->answerList as $current_answer) {
116
-	            if ($current_answer['correct']) {
117
-	                $out .= '      <value>answer_'. $current_answer['id'] .'</value>'. "\n";
118
-	            }
119
-	        }
120
-		}
114
+        if (is_array($this->answerList)) {
115
+            foreach($this->answerList as $current_answer) {
116
+                if ($current_answer['correct']) {
117
+                    $out .= '      <value>answer_'. $current_answer['id'] .'</value>'. "\n";
118
+                }
119
+            }
120
+        }
121 121
         $out .= '    </correctResponse>'. "\n";
122 122
 
123 123
         //Add the grading
124 124
 
125 125
         $out .= '    <mapping>'. "\n";
126
-		if (is_array($this->answerList)) {
127
-	        foreach($this->answerList as $current_answer) {
128
-	            if (isset($current_answer['grade'])) {
129
-	                $out .= ' <mapEntry mapKey="answer_'. $current_answer['id'] .'" mappedValue="'.$current_answer['grade'].'" />'. "\n";
130
-	            }
131
-	        }
132
-		}
126
+        if (is_array($this->answerList)) {
127
+            foreach($this->answerList as $current_answer) {
128
+                if (isset($current_answer['grade'])) {
129
+                    $out .= ' <mapEntry mapKey="answer_'. $current_answer['id'] .'" mappedValue="'.$current_answer['grade'].'" />'. "\n";
130
+                }
131
+            }
132
+        }
133 133
         $out .= '    </mapping>'. "\n";
134 134
         $out .= '  </responseDeclaration>'. "\n";
135 135
 
@@ -150,7 +150,7 @@  discard block
 block discarded – undo
150 150
      */
151 151
     public function imsExportResponses($questionIdent, $questionStatment)
152 152
     {
153
-		$this->answerList = $this->getAnswersList(true);
153
+        $this->answerList = $this->getAnswersList(true);
154 154
         $text = '';
155 155
         $text .= $this->answerText;
156 156
         if (is_array($this->answerList)) {
@@ -171,28 +171,28 @@  discard block
 block discarded – undo
171 171
      */
172 172
     public function imsExportResponsesDeclaration($questionIdent)
173 173
     {
174
-		$this->answerList = $this->getAnswersList(true);
175
-		$this->gradeList = $this->getGradesList();
174
+        $this->answerList = $this->getAnswersList(true);
175
+        $this->gradeList = $this->getGradesList();
176 176
         $out = '';
177
-		if (is_array($this->answerList)) {
178
-	        foreach ($this->answerList as $answer) {
179
-	        	$answerKey = $answer['id'];
180
-	        	$answer = $answer['answer'];
181
-	            $out .= '  <responseDeclaration identifier="fill_' . $answerKey . '" cardinality="single" baseType="identifier">' . "\n";
182
-	            $out .= '    <correctResponse>'. "\n";
177
+        if (is_array($this->answerList)) {
178
+            foreach ($this->answerList as $answer) {
179
+                $answerKey = $answer['id'];
180
+                $answer = $answer['answer'];
181
+                $out .= '  <responseDeclaration identifier="fill_' . $answerKey . '" cardinality="single" baseType="identifier">' . "\n";
182
+                $out .= '    <correctResponse>'. "\n";
183 183
                 $out .= '      <value><![CDATA['.formatExerciseQtiTitle($answer).']]></value>'. "\n";
184
-	            $out .= '    </correctResponse>'. "\n";
185
-	            if (isset($this->gradeList[$answerKey])) {
186
-	                $out .= '    <mapping>'. "\n";
187
-	                $out .= '      <mapEntry mapKey="'.$answer.'" mappedValue="'.$this->gradeList[$answerKey].'"/>'. "\n";
188
-	                $out .= '    </mapping>'. "\n";
189
-	            }
190
-
191
-	            $out .= '  </responseDeclaration>'. "\n";
192
-	        }
193
-		}
194
-
195
-       return $out;
184
+                $out .= '    </correctResponse>'. "\n";
185
+                if (isset($this->gradeList[$answerKey])) {
186
+                    $out .= '    <mapping>'. "\n";
187
+                    $out .= '      <mapEntry mapKey="'.$answer.'" mappedValue="'.$this->gradeList[$answerKey].'"/>'. "\n";
188
+                    $out .= '    </mapping>'. "\n";
189
+                }
190
+
191
+                $out .= '  </responseDeclaration>'. "\n";
192
+            }
193
+        }
194
+
195
+        return $out;
196 196
     }
197 197
 }
198 198
 
@@ -207,8 +207,8 @@  discard block
 block discarded – undo
207 207
      */
208 208
     public function imsExportResponses($questionIdent, $questionStatment)
209 209
     {
210
-		$this->answerList = $this->getAnswersList(true);
211
-		$maxAssociation = max(count($this->leftList), count($this->rightList));
210
+        $this->answerList = $this->getAnswersList(true);
211
+        $maxAssociation = max(count($this->leftList), count($this->rightList));
212 212
 
213 213
         $out = "";
214 214
 
@@ -218,14 +218,14 @@  discard block
 block discarded – undo
218 218
         //add left column
219 219
 
220 220
         $out .= '  <simpleMatchSet>'. "\n";
221
-		if (is_array($this->leftList)) {
222
-	        foreach ($this->leftList as $leftKey=>$leftElement) {
223
-	            $out .= '
221
+        if (is_array($this->leftList)) {
222
+            foreach ($this->leftList as $leftKey=>$leftElement) {
223
+                $out .= '
224 224
 	            <simpleAssociableChoice identifier="left_'.$leftKey.'" >
225 225
 	                <![CDATA['.formatExerciseQtiTitle($leftElement['answer']).']]>
226 226
 	            </simpleAssociableChoice>'. "\n";
227
-	        }
228
-    	}
227
+            }
228
+        }
229 229
 
230 230
         $out .= '  </simpleMatchSet>'. "\n";
231 231
 
@@ -235,14 +235,14 @@  discard block
 block discarded – undo
235 235
 
236 236
         $i = 0;
237 237
 
238
-		if (is_array($this->rightList)) {
239
-	        foreach($this->rightList as $rightKey=>$rightElement) {
240
-	            $out .= '<simpleAssociableChoice identifier="right_'.$i.'" >
238
+        if (is_array($this->rightList)) {
239
+            foreach($this->rightList as $rightKey=>$rightElement) {
240
+                $out .= '<simpleAssociableChoice identifier="right_'.$i.'" >
241 241
 	                    <![CDATA['.formatExerciseQtiTitle($rightElement['answer']).']]>
242 242
 	                    </simpleAssociableChoice>'. "\n";
243
-	            $i++;
244
-	        }
245
-		}
243
+                $i++;
244
+            }
245
+        }
246 246
         $out .= '  </simpleMatchSet>'. "\n";
247 247
         $out .= '</matchInteraction>'. "\n";
248 248
 
@@ -254,30 +254,30 @@  discard block
 block discarded – undo
254 254
      */
255 255
     public function imsExportResponsesDeclaration($questionIdent)
256 256
     {
257
-		$this->answerList = $this->getAnswersList(true);
257
+        $this->answerList = $this->getAnswersList(true);
258 258
         $out =  '  <responseDeclaration identifier="' . $questionIdent . '" cardinality="single" baseType="identifier">' . "\n";
259 259
         $out .= '    <correctResponse>' . "\n";
260 260
 
261 261
         $gradeArray = array();
262
-		if (is_array($this->leftList)) {
263
-	        foreach ($this->leftList as $leftKey=>$leftElement) {
264
-	            $i=0;
265
-	            foreach ($this->rightList as $rightKey=>$rightElement) {
266
-	                if (($leftElement['match'] == $rightElement['code'])) {
267
-	                    $out .= '      <value>left_' . $leftKey . ' right_'.$i.'</value>'. "\n";
268
-
269
-	                    $gradeArray['left_' . $leftKey . ' right_'.$i] = $leftElement['grade'];
270
-	                }
271
-	                $i++;
272
-	            }
273
-	        }
274
-		}
262
+        if (is_array($this->leftList)) {
263
+            foreach ($this->leftList as $leftKey=>$leftElement) {
264
+                $i=0;
265
+                foreach ($this->rightList as $rightKey=>$rightElement) {
266
+                    if (($leftElement['match'] == $rightElement['code'])) {
267
+                        $out .= '      <value>left_' . $leftKey . ' right_'.$i.'</value>'. "\n";
268
+
269
+                        $gradeArray['left_' . $leftKey . ' right_'.$i] = $leftElement['grade'];
270
+                    }
271
+                    $i++;
272
+                }
273
+            }
274
+        }
275 275
         $out .= '    </correctResponse>'. "\n";
276 276
         $out .= '    <mapping>' . "\n";
277 277
         if (is_array($gradeArray)) {
278
-	        foreach ($gradeArray as $gradeKey=>$grade) {
279
-	            $out .= '          <mapEntry mapKey="'.$gradeKey.'" mappedValue="'.$grade.'"/>' . "\n";
280
-	        }
278
+            foreach ($gradeArray as $gradeKey=>$grade) {
279
+                $out .= '          <mapEntry mapKey="'.$gradeKey.'" mappedValue="'.$grade.'"/>' . "\n";
280
+            }
281 281
         }
282 282
         $out .= '    </mapping>' . "\n";
283 283
         $out .= '  </responseDeclaration>'. "\n";
@@ -298,49 +298,49 @@  discard block
 block discarded – undo
298 298
      */
299 299
     public function imsExportResponses($questionIdent, $questionStatment, $questionDesc='', $questionMedia='')
300 300
     {
301
-		$this->answerList = $this->getAnswersList(true);
302
-		$questionMedia = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/images/'.$questionMedia;
303
-		$mimetype = mime_content_type($questionMedia);
304
-		if(empty($mimetype)){
305
-			$mimetype = 'image/jpeg';
306
-		}
307
-
308
-		$text = '      <p>'.$questionStatment.'</p>'."\n";
309
-		$text .= '      <graphicOrderInteraction responseIdentifier="hotspot_'.$questionIdent.'">'."\n";
310
-		$text .= '        <prompt>'.$questionDesc.'</prompt>'."\n";
311
-		$text .= '        <object type="'.$mimetype.'" width="250" height="230" data="'.$questionMedia.'">-</object>'."\n";
301
+        $this->answerList = $this->getAnswersList(true);
302
+        $questionMedia = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/images/'.$questionMedia;
303
+        $mimetype = mime_content_type($questionMedia);
304
+        if(empty($mimetype)){
305
+            $mimetype = 'image/jpeg';
306
+        }
307
+
308
+        $text = '      <p>'.$questionStatment.'</p>'."\n";
309
+        $text .= '      <graphicOrderInteraction responseIdentifier="hotspot_'.$questionIdent.'">'."\n";
310
+        $text .= '        <prompt>'.$questionDesc.'</prompt>'."\n";
311
+        $text .= '        <object type="'.$mimetype.'" width="250" height="230" data="'.$questionMedia.'">-</object>'."\n";
312 312
         if (is_array($this->answerList)) {
313
-	        foreach ($this->answerList as $key=>$answer) {
314
-	        	$key = $answer['id'];
315
-	        	$answerTxt = $answer['answer'];
316
-	        	$len = api_strlen($answerTxt);
317
-	        	//coords are transformed according to QTIv2 rules here: http://www.imsproject.org/question/qtiv2p1pd/imsqti_infov2p1pd.html#element10663
318
-	        	$coords = '';
319
-	        	$type = 'default';
320
-	        	switch($answer['hotspot_type']){
321
-	        		case 'square':
322
-	        			$type = 'rect';
323
-						$res = array();
324
-						$coords = preg_match('/^\s*(\d+);(\d+)\|(\d+)\|(\d+)\s*$/',$answer['hotspot_coord'],$res);
325
-						$coords = $res[1].','.$res[2].','.((int)$res[1]+(int)$res[3]).",".((int)$res[2]+(int)$res[4]);
326
-	        			break;
327
-	        		case 'circle':
328
-	        			$type = 'circle';
329
-			 			$res = array();
330
-						$coords = preg_match('/^\s*(\d+);(\d+)\|(\d+)\|(\d+)\s*$/',$answer['hotspot_coord'],$res);
331
-						$coords = $res[1].','.$res[2].','.sqrt(pow(($res[1]-$res[3]),2)+pow(($res[2]-$res[4])));
332
-	        			break;
333
-	        		case 'poly':
334
-	        			$type = 'poly';
335
-						$coords = str_replace(array(';','|'),array(',',','),$answer['hotspot_coord']);
336
-	        			break;
337
-	        		 case 'delineation' :
338
-	        			$type = 'delineation';
339
-						$coords = str_replace(array(';','|'),array(',',','),$answer['hotspot_coord']);
340
-	        			break;
341
-	        	}
342
-	            $text .= '        <hotspotChoice shape="'.$type.'" coords="'.$coords.'" identifier="'.$key.'"/>'."\n";
343
-	        }
313
+            foreach ($this->answerList as $key=>$answer) {
314
+                $key = $answer['id'];
315
+                $answerTxt = $answer['answer'];
316
+                $len = api_strlen($answerTxt);
317
+                //coords are transformed according to QTIv2 rules here: http://www.imsproject.org/question/qtiv2p1pd/imsqti_infov2p1pd.html#element10663
318
+                $coords = '';
319
+                $type = 'default';
320
+                switch($answer['hotspot_type']){
321
+                    case 'square':
322
+                        $type = 'rect';
323
+                        $res = array();
324
+                        $coords = preg_match('/^\s*(\d+);(\d+)\|(\d+)\|(\d+)\s*$/',$answer['hotspot_coord'],$res);
325
+                        $coords = $res[1].','.$res[2].','.((int)$res[1]+(int)$res[3]).",".((int)$res[2]+(int)$res[4]);
326
+                        break;
327
+                    case 'circle':
328
+                        $type = 'circle';
329
+                            $res = array();
330
+                        $coords = preg_match('/^\s*(\d+);(\d+)\|(\d+)\|(\d+)\s*$/',$answer['hotspot_coord'],$res);
331
+                        $coords = $res[1].','.$res[2].','.sqrt(pow(($res[1]-$res[3]),2)+pow(($res[2]-$res[4])));
332
+                        break;
333
+                    case 'poly':
334
+                        $type = 'poly';
335
+                        $coords = str_replace(array(';','|'),array(',',','),$answer['hotspot_coord']);
336
+                        break;
337
+                        case 'delineation' :
338
+                        $type = 'delineation';
339
+                        $coords = str_replace(array(';','|'),array(',',','),$answer['hotspot_coord']);
340
+                        break;
341
+                }
342
+                $text .= '        <hotspotChoice shape="'.$type.'" coords="'.$coords.'" identifier="'.$key.'"/>'."\n";
343
+            }
344 344
         }
345 345
         $text .= '      </graphicOrderInteraction>'."\n";
346 346
         $out = $text;
@@ -353,23 +353,23 @@  discard block
 block discarded – undo
353 353
      */
354 354
     public function imsExportResponsesDeclaration($questionIdent)
355 355
     {
356
-		$this->answerList = $this->getAnswersList(true);
357
-		$this->gradeList = $this->getGradesList();
356
+        $this->answerList = $this->getAnswersList(true);
357
+        $this->gradeList = $this->getGradesList();
358 358
         $out = '';
359 359
         $out .= '  <responseDeclaration identifier="hotspot_'.$questionIdent.'" cardinality="ordered" baseType="identifier">' . "\n";
360 360
         $out .= '    <correctResponse>'. "\n";
361 361
 
362
-		if (is_array($this->answerList)) {
363
-	        foreach ($this->answerList as $answerKey=>$answer)  {
364
-	        	$answerKey = $answer['id'];
365
-	        	$answer = $answer['answer'];
366
-	            $out .= '<value><![CDATA['.formatExerciseQtiTitle($answerKey).']]></value>';
367
-	        }
368
-		}
362
+        if (is_array($this->answerList)) {
363
+            foreach ($this->answerList as $answerKey=>$answer)  {
364
+                $answerKey = $answer['id'];
365
+                $answer = $answer['answer'];
366
+                $out .= '<value><![CDATA['.formatExerciseQtiTitle($answerKey).']]></value>';
367
+            }
368
+        }
369 369
         $out .= '    </correctResponse>'. "\n";
370 370
         $out .= '  </responseDeclaration>'. "\n";
371 371
 
372
-       return $out;
372
+        return $out;
373 373
     }
374 374
 }
375 375
 
@@ -384,14 +384,14 @@  discard block
 block discarded – undo
384 384
      * Export the question part as a matrix-choice, with only one possible answer per line.
385 385
      */
386 386
     public function imsExportResponses($questionIdent, $questionStatment, $questionDesc='', $questionMedia='')
387
-	{
388
-		return '';
389
-	}
387
+    {
388
+        return '';
389
+    }
390 390
     /**
391 391
      *
392 392
      */
393 393
     public function imsExportResponsesDeclaration($questionIdent)
394 394
     {
395
-    	return '';
395
+        return '';
396 396
     }
397 397
 }
Please login to merge, or discard this patch.
main/exercice/export/aiken/aiken_import.inc.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -281,7 +281,7 @@
 block discarded – undo
281 281
             $correct_answer_index = array_search($matches[1], $answers_array);
282 282
             $exercise_info['question'][$question_index]['title'] = $matches[1];
283 283
         } elseif (preg_match('/^TAGS:\s?([A-Z])\s?/', $info, $matches)) {
284
-             //TAGS for chamilo >= 1.10
284
+                //TAGS for chamilo >= 1.10
285 285
             $exercise_info['question'][$question_index]['answer_tags'] = explode(',', $matches[1]);
286 286
         } elseif (preg_match('/^ETIQUETAS:\s?([A-Z])\s?/', $info, $matches)) {
287 287
             //TAGS for chamilo >= 1.10 (Spanish e-ducativa format)
Please login to merge, or discard this patch.
main/exercice/export/scorm/scorm_classes.php 1 patch
Indentation   +421 added lines, -421 removed lines patch added patch discarded remove patch
@@ -49,86 +49,86 @@  discard block
 block discarded – undo
49 49
     }
50 50
 
51 51
     /**
52
-	 * Include the correct answer class and create answer
53
-	 */
54
-	public function setAnswer()
55
-	{
56
-		switch ($this->type) {
57
-			case MCUA:
58
-				$this->answer = new ScormAnswerMultipleChoice($this->id);
52
+     * Include the correct answer class and create answer
53
+     */
54
+    public function setAnswer()
55
+    {
56
+        switch ($this->type) {
57
+            case MCUA:
58
+                $this->answer = new ScormAnswerMultipleChoice($this->id);
59 59
                 $this->answer->questionJSId = $this->js_id;
60
-				break;
61
-			case MCMA:
60
+                break;
61
+            case MCMA:
62 62
             case GLOBAL_MULTIPLE_ANSWER:
63
-				$this->answer = new ScormAnswerMultipleChoice($this->id);
63
+                $this->answer = new ScormAnswerMultipleChoice($this->id);
64 64
                 $this->answer->questionJSId = $this->js_id;
65
-				break;
66
-			case TF:
67
-				$this->answer = new ScormAnswerTrueFalse($this->id);
65
+                break;
66
+            case TF:
67
+                $this->answer = new ScormAnswerTrueFalse($this->id);
68 68
                 $this->answer->questionJSId = $this->js_id;
69
-				break;
70
-			case FIB:
71
-				$this->answer = new ScormAnswerFillInBlanks($this->id);
69
+                break;
70
+            case FIB:
71
+                $this->answer = new ScormAnswerFillInBlanks($this->id);
72 72
                 $this->answer->questionJSId = $this->js_id;
73
-				break;
74
-			case MATCHING:
73
+                break;
74
+            case MATCHING:
75 75
             case MATCHING_DRAGGABLE:
76
-				$this->answer = new ScormAnswerMatching($this->id);
76
+                $this->answer = new ScormAnswerMatching($this->id);
77 77
                 $this->answer->questionJSId = $this->js_id;
78
-				break;
78
+                break;
79 79
             case ORAL_EXPRESSION:
80
-			case FREE_ANSWER:
81
-				$this->answer = new ScormAnswerFree($this->id);
80
+            case FREE_ANSWER:
81
+                $this->answer = new ScormAnswerFree($this->id);
82 82
                 $this->answer->questionJSId = $this->js_id;
83
-				break;
84
-			case HOT_SPOT:
85
-				$this->answer = new ScormAnswerHotspot($this->id);
83
+                break;
84
+            case HOT_SPOT:
85
+                $this->answer = new ScormAnswerHotspot($this->id);
86 86
                 $this->answer->questionJSId = $this->js_id;
87
-				break;
88
-			case MULTIPLE_ANSWER_COMBINATION:
89
-				$this->answer = new ScormAnswerMultipleChoice($this->id);
87
+                break;
88
+            case MULTIPLE_ANSWER_COMBINATION:
89
+                $this->answer = new ScormAnswerMultipleChoice($this->id);
90 90
                 $this->answer->questionJSId = $this->js_id;
91
-				break;
91
+                break;
92 92
             case HOT_SPOT_ORDER:
93
-				$this->answer = new ScormAnswerHotspot($this->id);
93
+                $this->answer = new ScormAnswerHotspot($this->id);
94 94
                 $this->answer->questionJSId = $this->js_id;
95
-				break;
96
-			case HOT_SPOT_DELINEATION:
97
-				$this->answer = new ScormAnswerHotspot($this->id);
95
+                break;
96
+            case HOT_SPOT_DELINEATION:
97
+                $this->answer = new ScormAnswerHotspot($this->id);
98 98
                 $this->answer->questionJSId = $this->js_id;
99
-				break;
100
-			default :
101
-				$this->answer = null;
99
+                break;
100
+            default :
101
+                $this->answer = null;
102 102
                 $this->answer->questionJSId = $this->js_id;
103
-				break;
104
-		}
103
+                break;
104
+        }
105 105
 
106
-		return true;
107
-	}
106
+        return true;
107
+    }
108 108
 
109
-	function export()
110
-	{
111
-		$html = $this->getQuestionHTML();
112
-		$js   = $this->getQuestionJS();
109
+    function export()
110
+    {
111
+        $html = $this->getQuestionHTML();
112
+        $js   = $this->getQuestionJS();
113 113
 
114
-		if( is_object($this->answer) )
115
-		{
116
-			list($js2,$html2) = $this->answer->export();
117
-			$js .= $js2;
118
-			$html .= $html2;
119
-		}
114
+        if( is_object($this->answer) )
115
+        {
116
+            list($js2,$html2) = $this->answer->export();
117
+            $js .= $js2;
118
+            $html .= $html2;
119
+        }
120 120
 
121
-		return array($js,$html);
122
-	}
121
+        return array($js,$html);
122
+    }
123 123
 
124 124
     function createAnswersForm($form)
125 125
     {
126
-    	return true;
126
+        return true;
127 127
     }
128 128
 
129 129
     function processAnswersCreation($form)
130 130
     {
131
-    	return true;
131
+        return true;
132 132
     }
133 133
 
134 134
     /**
@@ -136,20 +136,20 @@  discard block
 block discarded – undo
136 136
      */
137 137
     function getQuestionHTML()
138 138
     {
139
-    	$title			= $this->selectTitle();
140
-		$description	= $this->selectDescription();
141
-		$cols = 2;
142
-		$s='<tr>' .
143
-			'<td colspan="'.$cols.'" id="question_'.$this->id.'_title" valign="middle" style="background-color:#d6d6d6;">' . "\n" .
144
-		   	$title.
145
-		   	'</td>' . "\n" .
146
-		   	'</tr>' . "\n" .
147
-		   	'<tr>' . "\n" .
148
-		   	'<td valign="top" colspan="'.$cols.'">' . "\n" .
149
-		   	'<i>'.$description.'</i>' . "\n" .
150
-		   	'</td>' . "\n" .
151
-		   	'</tr>' . "\n";
152
-		return $s;
139
+        $title			= $this->selectTitle();
140
+        $description	= $this->selectDescription();
141
+        $cols = 2;
142
+        $s='<tr>' .
143
+            '<td colspan="'.$cols.'" id="question_'.$this->id.'_title" valign="middle" style="background-color:#d6d6d6;">' . "\n" .
144
+                $title.
145
+                '</td>' . "\n" .
146
+                '</tr>' . "\n" .
147
+                '<tr>' . "\n" .
148
+                '<td valign="top" colspan="'.$cols.'">' . "\n" .
149
+                '<i>'.$description.'</i>' . "\n" .
150
+                '</td>' . "\n" .
151
+                '</tr>' . "\n";
152
+        return $s;
153 153
     }
154 154
 
155 155
     /**
@@ -157,16 +157,16 @@  discard block
 block discarded – undo
157 157
      */
158 158
     function getQuestionJS()
159 159
     {
160
-    	//$id = $this->id;
161
-    	$w = $this->selectWeighting();
162
-    	$s = 'questions.push('.$this->js_id.');'."\n";
163
-    	if($this->type == FREE_ANSWER or $this->type == HOT_SPOT)
164
-    	{ //put the max score to 0 to avoid discounting the points of
165
-    	  //non-exported quiz types in the SCORM
166
-    		$w=0;
167
-    	}
168
-    	$s .= 'questions_score_max['.$this->js_id.'] = '.$w.";\n";
169
-    	return $s;
160
+        //$id = $this->id;
161
+        $w = $this->selectWeighting();
162
+        $s = 'questions.push('.$this->js_id.');'."\n";
163
+        if($this->type == FREE_ANSWER or $this->type == HOT_SPOT)
164
+        { //put the max score to 0 to avoid discounting the points of
165
+            //non-exported quiz types in the SCORM
166
+            $w=0;
167
+        }
168
+        $s .= 'questions_score_max['.$this->js_id.'] = '.$w.";\n";
169
+        return $s;
170 170
     }
171 171
 }
172 172
 
@@ -177,107 +177,107 @@  discard block
 block discarded – undo
177 177
  */
178 178
 class ScormAnswerMultipleChoice extends Answer
179 179
 {
180
-	/**
181
-	 * Return HTML code for possible answers
180
+    /**
181
+     * Return HTML code for possible answers
182 182
      */
183
-	function export()
184
-	{
185
-		$html = '';
186
-    	$js   = '';
187
-    	$html = '<tr><td colspan="2"><table width="100%">' . "\n";
188
-		$type = $this->getQuestionType();
189
-		$jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
190
-		$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
191
-
192
-		//not sure if we are going to export also the MULTIPLE_ANSWER_COMBINATION to SCORM
183
+    function export()
184
+    {
185
+        $html = '';
186
+        $js   = '';
187
+        $html = '<tr><td colspan="2"><table width="100%">' . "\n";
188
+        $type = $this->getQuestionType();
189
+        $jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
190
+        $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
191
+
192
+        //not sure if we are going to export also the MULTIPLE_ANSWER_COMBINATION to SCORM
193 193
         //if ($type == MCMA  || $type == MULTIPLE_ANSWER_COMBINATION ) {
194
-		if ($type == MCMA ) {
195
-        	//$questionTypeLang = get_lang('MultipleChoiceMultipleAnswers');
196
-        	$id = 1;
197
-        	$jstmp = '';
198
-        	$jstmpc = '';
199
-			foreach( $this->answer as $i => $answer )
200
-			{
201
-				$identifier = 'question_'.$this->questionJSId.'_multiple_'.$i;
202
-				$html .=
203
-		    		'<tr>' . "\n"
204
-				.	'<td align="center" width="5%">' . "\n"
205
-		    	.	'<input name="'.$identifier.'" id="'.$identifier.'" value="'.$i.'" type="checkbox" />' . "\n"
206
-		    	.	'</td>' . "\n"
207
-		    	.	'<td width="95%">' . "\n"
208
-		    	.	'<label for="'.$identifier.'">' . $this->answer[$i] . '</label>' . "\n"
209
-		    	.	'</td>' . "\n"
210
-		    	.	'</tr>' . "\n\n";
211
-		    	$jstmp .= $i.',';
212
-		    	if($this->correct[$i])
213
-		    	{
214
-		    		$jstmpc .= $i.',';
215
-		    	}
216
-		    	$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.']['.$i.'] = '.$this->weighting[$i].";\n";
217
-		    	$id++;
218
-			}
219
-			$js .= 'questions_answers['.$this->questionJSId.'] = new Array('.substr($jstmp,0,-1).');'."\n";
220
-	    	$js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array('.substr($jstmpc,0,-1).');'."\n";
221
-	    	if ($type == MCMA) {
222
-	    		$js .= 'questions_types['.$this->questionJSId.'] = \'mcma\';'."\n";
223
-	    	} else {
224
-	    		$js .= 'questions_types['.$this->questionJSId.'] = \'exact\';'."\n";
225
-	    	}
226
-	    	$js .= $jstmpw;
194
+        if ($type == MCMA ) {
195
+            //$questionTypeLang = get_lang('MultipleChoiceMultipleAnswers');
196
+            $id = 1;
197
+            $jstmp = '';
198
+            $jstmpc = '';
199
+            foreach( $this->answer as $i => $answer )
200
+            {
201
+                $identifier = 'question_'.$this->questionJSId.'_multiple_'.$i;
202
+                $html .=
203
+                    '<tr>' . "\n"
204
+                .	'<td align="center" width="5%">' . "\n"
205
+                .	'<input name="'.$identifier.'" id="'.$identifier.'" value="'.$i.'" type="checkbox" />' . "\n"
206
+                .	'</td>' . "\n"
207
+                .	'<td width="95%">' . "\n"
208
+                .	'<label for="'.$identifier.'">' . $this->answer[$i] . '</label>' . "\n"
209
+                .	'</td>' . "\n"
210
+                .	'</tr>' . "\n\n";
211
+                $jstmp .= $i.',';
212
+                if($this->correct[$i])
213
+                {
214
+                    $jstmpc .= $i.',';
215
+                }
216
+                $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.']['.$i.'] = '.$this->weighting[$i].";\n";
217
+                $id++;
218
+            }
219
+            $js .= 'questions_answers['.$this->questionJSId.'] = new Array('.substr($jstmp,0,-1).');'."\n";
220
+            $js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array('.substr($jstmpc,0,-1).');'."\n";
221
+            if ($type == MCMA) {
222
+                $js .= 'questions_types['.$this->questionJSId.'] = \'mcma\';'."\n";
223
+            } else {
224
+                $js .= 'questions_types['.$this->questionJSId.'] = \'exact\';'."\n";
225
+            }
226
+            $js .= $jstmpw;
227 227
         } elseif ($type == MULTIPLE_ANSWER_COMBINATION) {
228
-        		//To this items we show the ThisItemIsNotExportable
229
-        	    $qId = $this->questionJSId;
230
-		    	$js = '';
231
-		    	$html = '<tr><td colspan="2"><table width="100%">' . "\n";
232
-				// some javascript must be added for that kind of questions
233
-				$html .= '<tr>' . "\n"
234
-						.	'<td>' . "\n"
235
-				    	. '<textarea name="question_'.$qId.'_free" id="question_'.$qId.'_exact" rows="20" cols="100"></textarea>' . "\n"
236
-				    	.	'</td>' . "\n"
237
-				    	.	'</tr>' . "\n";
238
-				$html .= '</table></td></tr>' . "\n";
239
-				// currently the exact answers cannot be displayed, so ignore the textarea
240
-				$html = '<tr><td colspan="2">'.get_lang('ThisItemIsNotExportable').'</td></tr>';
241
-				$js .= 'questions_answers['.$this->questionJSId.'] = new Array();'."\n";
242
-		    	$js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array();'."\n";
243
-		    	$js .= 'questions_types['.$this->questionJSId.'] = \'exact\';'."\n";
244
-				$jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
245
-				$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
246
-		    	$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][1] = 0;'.";\n";
247
-		    	$js .= $jstmpw;
248
-		        return array($js,$html);
228
+                //To this items we show the ThisItemIsNotExportable
229
+                $qId = $this->questionJSId;
230
+                $js = '';
231
+                $html = '<tr><td colspan="2"><table width="100%">' . "\n";
232
+                // some javascript must be added for that kind of questions
233
+                $html .= '<tr>' . "\n"
234
+                        .	'<td>' . "\n"
235
+                        . '<textarea name="question_'.$qId.'_free" id="question_'.$qId.'_exact" rows="20" cols="100"></textarea>' . "\n"
236
+                        .	'</td>' . "\n"
237
+                        .	'</tr>' . "\n";
238
+                $html .= '</table></td></tr>' . "\n";
239
+                // currently the exact answers cannot be displayed, so ignore the textarea
240
+                $html = '<tr><td colspan="2">'.get_lang('ThisItemIsNotExportable').'</td></tr>';
241
+                $js .= 'questions_answers['.$this->questionJSId.'] = new Array();'."\n";
242
+                $js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array();'."\n";
243
+                $js .= 'questions_types['.$this->questionJSId.'] = \'exact\';'."\n";
244
+                $jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
245
+                $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
246
+                $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][1] = 0;'.";\n";
247
+                $js .= $jstmpw;
248
+                return array($js,$html);
249 249
         } else {
250
-        	//$questionTypeLang = get_lang('MultipleChoiceUniqueAnswer');
251
-        	$id = 1;
252
-        	$jstmp = '';
253
-        	$jstmpc = '';
254
-			foreach( $this->answer as $i => $answer )
255
-			{
256
-	        	$identifier = 'question_'.$this->questionJSId.'_unique_'.$i;
257
-	        	$identifier_name = 'question_'.$this->questionJSId.'_unique_answer';
258
-				$html .=
259
-		    		'<tr>' . "\n"
260
-				.	'<td align="center" width="5%">' . "\n"
261
-		    	.	'<input name="'.$identifier_name.'" id="'.$identifier.'" value="'.$i.'" type="radio"/>' . "\n"
262
-		    	.	'</td>' . "\n"
263
-		    	.	'<td width="95%">' . "\n"
264
-		    	.	'<label for="'.$identifier.'">' . $this->answer[$i] . '</label>' . "\n"
265
-		    	.	'</td>' . "\n"
266
-		    	.	'</tr>' . "\n\n";
267
-		    	$jstmp .= $i.',';
268
-		    	if($this->correct[$i])
269
-		    	{
270
-		    		$jstmpc .= $i;
271
-		    	}
272
-		    	$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.']['.$i.'] = '.$this->weighting[$i].";\n";
273
-		    	$id++;
274
-			}
275
-			$js .= 'questions_answers['.$this->questionJSId.'] = new Array('.substr($jstmp,0,-1).');'."\n";
276
-	    	$js .= 'questions_answers_correct['.$this->questionJSId.'] = '.$jstmpc.';'."\n";
277
-	    	$js .= 'questions_types['.$this->questionJSId.'] = \'mcua\';'."\n";
278
-			$js .= $jstmpw;
250
+            //$questionTypeLang = get_lang('MultipleChoiceUniqueAnswer');
251
+            $id = 1;
252
+            $jstmp = '';
253
+            $jstmpc = '';
254
+            foreach( $this->answer as $i => $answer )
255
+            {
256
+                $identifier = 'question_'.$this->questionJSId.'_unique_'.$i;
257
+                $identifier_name = 'question_'.$this->questionJSId.'_unique_answer';
258
+                $html .=
259
+                    '<tr>' . "\n"
260
+                .	'<td align="center" width="5%">' . "\n"
261
+                .	'<input name="'.$identifier_name.'" id="'.$identifier.'" value="'.$i.'" type="radio"/>' . "\n"
262
+                .	'</td>' . "\n"
263
+                .	'<td width="95%">' . "\n"
264
+                .	'<label for="'.$identifier.'">' . $this->answer[$i] . '</label>' . "\n"
265
+                .	'</td>' . "\n"
266
+                .	'</tr>' . "\n\n";
267
+                $jstmp .= $i.',';
268
+                if($this->correct[$i])
269
+                {
270
+                    $jstmpc .= $i;
271
+                }
272
+                $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.']['.$i.'] = '.$this->weighting[$i].";\n";
273
+                $id++;
274
+            }
275
+            $js .= 'questions_answers['.$this->questionJSId.'] = new Array('.substr($jstmp,0,-1).');'."\n";
276
+            $js .= 'questions_answers_correct['.$this->questionJSId.'] = '.$jstmpc.';'."\n";
277
+            $js .= 'questions_types['.$this->questionJSId.'] = \'mcua\';'."\n";
278
+            $js .= $jstmpw;
279 279
         }
280
-		$html .= '</table></td></tr>' . "\n";
280
+        $html .= '</table></td></tr>' . "\n";
281 281
         return array($js,$html);
282 282
     }
283 283
 }
@@ -288,7 +288,7 @@  discard block
 block discarded – undo
288 288
  */
289 289
 class ScormAnswerTrueFalse extends Answer
290 290
 {
291
-	/**
291
+    /**
292 292
      * Return the XML flow for the possible answers.
293 293
      * That's one <response_lid>, containing several <flow_label>
294 294
      *
@@ -296,46 +296,46 @@  discard block
 block discarded – undo
296 296
      */
297 297
     function export()
298 298
     {
299
-    	$js = '';
300
-    	$html = '<tr><td colspan="2"><table width="100%">';
301
-		$identifier = 'question_'.$this->questionJSId.'_tf';
302
-		$identifier_true  = $identifier.'_true';
303
-		$identifier_false = $identifier.'_false';
304
-		$html .=
305
-    		'<tr>' . "\n"
306
-		.	'<td align="center" width="5%">' . "\n"
307
-    	.	'<input name="'.$identifier_true.'" id="'.$identifier_true.'" value="'.$this->trueGrade.'" type="radio" '
308
-		.		'/>' . "\n"
309
-    	.	'</td>' . "\n"
310
-    	.	'<td width="95%">' . "\n"
311
-    	.	'<label for="'.$identifier_true.'">' . get_lang('True') . '</label>' . "\n"
312
-    	.	'</td>' . "\n"
313
-    	.	'</tr>' . "\n\n";
314
-    	$html .=
315
-			'<tr>' . "\n"
316
-		.	'<td align="center" width="5%">' . "\n"
317
-		.	'<input name="'.$identifier_false.'" id="'.$identifier_false.'" value="'.$this->falseGrade.'" type="radio" '
318
-		.		'/>' . "\n"
319
-		.	'</td>' . "\n"
320
-		.	'<td width="95%">' . "\n"
321
-		.	'<label for="'.$identifier_false.'">' . get_lang('False') . '</label>' . "\n"
322
-		.	'</td>' . "\n"
323
-		.	'</tr>' . "\n\n";
324
-		$html .= '</table></td></tr>' . "\n";
325
-		$js .= 'questions_answers['.$this->questionJSId.'] = new Array(\'true\',\'false\');'."\n";
326
-    	$js .= 'questions_types['.$this->questionJSId.'] = \'tf\';'."\n";
327
-		if($this->response == 'TRUE')
328
-		{
329
-	    	$js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array(\'true\');'."\n";
330
-		}
331
-		else
332
-		{
333
-	    	$js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array(\'false\');'."\n";
334
-		}
335
-		$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
336
-		$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
337
-    	$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][1] = '.$this->weighting[1].";\n";
338
-    	$js .= $jstmpw;
299
+        $js = '';
300
+        $html = '<tr><td colspan="2"><table width="100%">';
301
+        $identifier = 'question_'.$this->questionJSId.'_tf';
302
+        $identifier_true  = $identifier.'_true';
303
+        $identifier_false = $identifier.'_false';
304
+        $html .=
305
+            '<tr>' . "\n"
306
+        .	'<td align="center" width="5%">' . "\n"
307
+        .	'<input name="'.$identifier_true.'" id="'.$identifier_true.'" value="'.$this->trueGrade.'" type="radio" '
308
+        .		'/>' . "\n"
309
+        .	'</td>' . "\n"
310
+        .	'<td width="95%">' . "\n"
311
+        .	'<label for="'.$identifier_true.'">' . get_lang('True') . '</label>' . "\n"
312
+        .	'</td>' . "\n"
313
+        .	'</tr>' . "\n\n";
314
+        $html .=
315
+            '<tr>' . "\n"
316
+        .	'<td align="center" width="5%">' . "\n"
317
+        .	'<input name="'.$identifier_false.'" id="'.$identifier_false.'" value="'.$this->falseGrade.'" type="radio" '
318
+        .		'/>' . "\n"
319
+        .	'</td>' . "\n"
320
+        .	'<td width="95%">' . "\n"
321
+        .	'<label for="'.$identifier_false.'">' . get_lang('False') . '</label>' . "\n"
322
+        .	'</td>' . "\n"
323
+        .	'</tr>' . "\n\n";
324
+        $html .= '</table></td></tr>' . "\n";
325
+        $js .= 'questions_answers['.$this->questionJSId.'] = new Array(\'true\',\'false\');'."\n";
326
+        $js .= 'questions_types['.$this->questionJSId.'] = \'tf\';'."\n";
327
+        if($this->response == 'TRUE')
328
+        {
329
+            $js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array(\'true\');'."\n";
330
+        }
331
+        else
332
+        {
333
+            $js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array(\'false\');'."\n";
334
+        }
335
+        $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
336
+        $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
337
+        $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][1] = '.$this->weighting[1].";\n";
338
+        $js .= $jstmpw;
339 339
 
340 340
         return array($js,$html);
341 341
     }
@@ -347,7 +347,7 @@  discard block
 block discarded – undo
347 347
  */
348 348
 class ScormAnswerFillInBlanks extends Answer
349 349
 {
350
-	/**
350
+    /**
351 351
      * Export the text with missing words.
352 352
      *
353 353
      * As a side effect, it stores two lists in the class :
@@ -355,57 +355,57 @@  discard block
 block discarded – undo
355 355
      */
356 356
     function export()
357 357
     {
358
-    	global $charset;
359
-    	$js = '';
360
-    	$html = '<tr><td colspan="2"><table width="100%">' . "\n";
361
-		// get all enclosed answers
362
-		$blankList = array();
363
-		// build replacement
364
-		$replacementList = array();
365
-		foreach( $this->answer as $i => $answer) {
366
-			$blankList[] = '['.$answer.']';
367
-		}
368
-		$answerCount = count($blankList);
369
-
370
-		// splits text and weightings that are joined with the character '::'
371
-		list($answer,$weight)=explode('::',$answer);
372
-		$weights = explode(',',$weight);
373
-		// because [] is parsed here we follow this procedure:
374
-		// 1. find everything between the [ and ] tags
375
-		$i=1;
376
-		$jstmp = '';
377
-		$jstmpc = '';
378
-		$jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
379
-		$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
380
-		$startlocations=api_strpos($answer,'[');
381
-		$endlocations=api_strpos($answer,']');
382
-		while($startlocations !== false && $endlocations !== false) {
383
-			$texstring=api_substr($answer,$startlocations,($endlocations-$startlocations)+1);
384
-			$answer = api_substr_replace($answer,'<input type="text" name="question_'.$this->questionJSId.'_fib_'.$i.'" id="question_'.$this->questionJSId.'_fib_'.$i.'" size="10" value="" />',$startlocations,($endlocations-$startlocations)+1);
385
-			$jstmp .= $i.',';
386
-			$jstmpc .= "'".api_htmlentities(api_substr($texstring,1,-1),ENT_QUOTES,$charset)."',";
387
-				$my_weight=explode('@',$weights[$i-1]);
388
-				if (count($my_weight)==2) {
389
-					$weight_db=$my_weight[0];
390
-				} else {
391
-					$weight_db=$my_weight[0];
392
-				}
393
-	    	$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.']['.$i.'] = '.$weight_db.";\n";
394
-			$i++;
395
-			$startlocations=api_strpos($answer,'[');
396
-			$endlocations=api_strpos($answer,']');
397
-		}
358
+        global $charset;
359
+        $js = '';
360
+        $html = '<tr><td colspan="2"><table width="100%">' . "\n";
361
+        // get all enclosed answers
362
+        $blankList = array();
363
+        // build replacement
364
+        $replacementList = array();
365
+        foreach( $this->answer as $i => $answer) {
366
+            $blankList[] = '['.$answer.']';
367
+        }
368
+        $answerCount = count($blankList);
369
+
370
+        // splits text and weightings that are joined with the character '::'
371
+        list($answer,$weight)=explode('::',$answer);
372
+        $weights = explode(',',$weight);
373
+        // because [] is parsed here we follow this procedure:
374
+        // 1. find everything between the [ and ] tags
375
+        $i=1;
376
+        $jstmp = '';
377
+        $jstmpc = '';
378
+        $jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
379
+        $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
380
+        $startlocations=api_strpos($answer,'[');
381
+        $endlocations=api_strpos($answer,']');
382
+        while($startlocations !== false && $endlocations !== false) {
383
+            $texstring=api_substr($answer,$startlocations,($endlocations-$startlocations)+1);
384
+            $answer = api_substr_replace($answer,'<input type="text" name="question_'.$this->questionJSId.'_fib_'.$i.'" id="question_'.$this->questionJSId.'_fib_'.$i.'" size="10" value="" />',$startlocations,($endlocations-$startlocations)+1);
385
+            $jstmp .= $i.',';
386
+            $jstmpc .= "'".api_htmlentities(api_substr($texstring,1,-1),ENT_QUOTES,$charset)."',";
387
+                $my_weight=explode('@',$weights[$i-1]);
388
+                if (count($my_weight)==2) {
389
+                    $weight_db=$my_weight[0];
390
+                } else {
391
+                    $weight_db=$my_weight[0];
392
+                }
393
+            $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.']['.$i.'] = '.$weight_db.";\n";
394
+            $i++;
395
+            $startlocations=api_strpos($answer,'[');
396
+            $endlocations=api_strpos($answer,']');
397
+        }
398 398
 
399
-		$html .= 	'<tr>' . "\n"
400
-				.	'<td>' . "\n"
401
-		    	.	$answer  . "\n"
402
-	    		.	'</td>' . "\n"
403
-	    		.	'</tr>' . "\n";
404
-		$html .= '</table></td></tr>' . "\n";
405
-		$js .= 'questions_answers['.$this->questionJSId.'] = new Array('.api_substr($jstmp,0,-1).');'."\n";
406
-    	$js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array('.api_substr($jstmpc,0,-1).');'."\n";
407
-    	$js .= 'questions_types['.$this->questionJSId.'] = \'fib\';'."\n";
408
-    	$js .= $jstmpw;
399
+        $html .= 	'<tr>' . "\n"
400
+                .	'<td>' . "\n"
401
+                .	$answer  . "\n"
402
+                .	'</td>' . "\n"
403
+                .	'</tr>' . "\n";
404
+        $html .= '</table></td></tr>' . "\n";
405
+        $js .= 'questions_answers['.$this->questionJSId.'] = new Array('.api_substr($jstmp,0,-1).');'."\n";
406
+        $js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array('.api_substr($jstmpc,0,-1).');'."\n";
407
+        $js .= 'questions_types['.$this->questionJSId.'] = \'fib\';'."\n";
408
+        $js .= $jstmpw;
409 409
         return array($js,$html);
410 410
     }
411 411
 }
@@ -416,101 +416,101 @@  discard block
 block discarded – undo
416 416
  */
417 417
 class ScormAnswerMatching extends Answer
418 418
 {
419
-	/**
419
+    /**
420 420
      * Export the question part as a matrix-choice, with only one possible answer per line.
421 421
      * @author Amand Tihon <[email protected]>
422 422
      */
423 423
     function export()
424 424
     {
425
-    	$js = '';
426
-    	$html = '<tr><td colspan="2"><table width="100%">' . "\n";
427
-  		// prepare list of right proposition to allow
428
-		// - easiest display
429
-		// - easiest randomisation if needed one day
430
-		// (here I use array_values to change array keys from $code1 $code2 ... to 0 1 ...)
431
-		if (is_array($this->rightList)) {
432
-			$displayedRightList = array_values($this->rightList);
433
-		}
434
-		// get max length of displayed array
435
-		$arrayLength = max( count($this->leftList), count($this->rightList) );
436
-
437
-		$nbrAnswers=$this->selectNbrAnswers();
438
-		$cpt1='A';
439
-		$cpt2=1;
440
-		$Select=array();
441
-		$qId = $this->questionJSId;
442
-		$s = '';
443
-		$jstmp = '';
444
-		$jstmpc = '';
425
+        $js = '';
426
+        $html = '<tr><td colspan="2"><table width="100%">' . "\n";
427
+            // prepare list of right proposition to allow
428
+        // - easiest display
429
+        // - easiest randomisation if needed one day
430
+        // (here I use array_values to change array keys from $code1 $code2 ... to 0 1 ...)
431
+        if (is_array($this->rightList)) {
432
+            $displayedRightList = array_values($this->rightList);
433
+        }
434
+        // get max length of displayed array
435
+        $arrayLength = max( count($this->leftList), count($this->rightList) );
436
+
437
+        $nbrAnswers=$this->selectNbrAnswers();
438
+        $cpt1='A';
439
+        $cpt2=1;
440
+        $Select=array();
441
+        $qId = $this->questionJSId;
442
+        $s = '';
443
+        $jstmp = '';
444
+        $jstmpc = '';
445 445
         $jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
446 446
         $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
447 447
 
448
-		for($answerId=1;$answerId <= $nbrAnswers;$answerId++) {
449
-			$identifier = 'question_'.$qId.'_matching_';
450
-			$answer=$this->selectAnswer($answerId);
451
-			$answerCorrect=$this->isCorrect($answerId);
452
-			$weight=$this->selectWeighting($answerId);
453
-			$jstmp .= $answerId.',';
454
-
455
-			if (!$answerCorrect) {
456
-				// options (A, B, C, ...) that will be put into the list-box
457
-				$Select[$answerId]['Lettre']=$cpt1;
458
-				// answers that will be shown at the right side
459
-				$Select[$answerId]['Reponse'] = $answer;
460
-				$cpt1++;
461
-			} else {
462
-				$s.='<tr>'."\n";
463
-				$s.='<td width="40%" valign="top">'."\n".'<b>'.$cpt2.'</b>.&nbsp;'.$answer."\n</td>\n";
464
-				$s.='<td width="20%" align="center">&nbsp;&nbsp;<select name="'.$identifier.$cpt2.'" id="'.$identifier.$cpt2.'">';
465
-				$s.=' <option value="0">--</option>';
466
-	            // fills the list-box
467
-	            foreach($Select as $key=>$val)
468
-	            {
469
-					$s.='<option value="'.$key.'">'.$val['Lettre'].'</option>';
470
-				}  // end foreach()
471
-
472
-				$s.='</select>&nbsp;&nbsp;</td>'."\n";
473
-				$s.='<td width="40%" valign="top">';
474
-				if(isset($Select[$cpt2])) $s.='<b>'.$Select[$cpt2]['Lettre'].'.</b> '.$Select[$cpt2]['Reponse'];
475
-					else $s.='&nbsp;';
476
-				$s.="</td>\n</tr>\n";
477
-
478
-				$jstmpc .= '['.$answerCorrect.','.$cpt2.'],';
479
-
480
-				$my_weight=explode('@',$weight);
481
-				if (count($my_weight)==2) {
482
-					$weight=$my_weight[0];
483
-				} else {
484
-					$weight=$my_weight[0];
485
-				}
486
-		    	$jstmpw .= 'questions_answers_ponderation['.$qId.']['.$cpt2.'] = '.$weight.";\n";
487
-				$cpt2++;
488
-
489
-				// if the left side of the "matching" has been completely shown
490
-				if($answerId == $nbrAnswers)
491
-				{
492
-					// if there remain answers to be shown on the right side
493
-					while(isset($Select[$cpt2]))
494
-					{
495
-						//$s.='<tr>'."\n";
496
-						//$s.='<td colspan="2">'."\n";
497
-						//$s.='<table border="0" cellpadding="0" cellspacing="0" width="100%">'."\n";
498
-						$s.='<tr>'."\n";
499
-						$s.='<td width="60%" colspan="2">&nbsp;</td>'."\n";
500
-						$s.='<td width="40%" valign="top">';
501
-						$s.='<b>'.$Select[$cpt2]['Lettre'].'.</b> '.$Select[$cpt2]['Reponse'];
502
-						$s.="</td>\n</tr>\n";
503
-						$cpt2++;
504
-					}	// end while()
505
-				}  // end if()
506
-			}
507
-		}
508
-		$js .= 'questions_answers['.$this->questionJSId.'] = new Array('.substr($jstmp,0,-1).');'."\n";
509
-    	$js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array('.substr($jstmpc,0,-1).');'."\n";
510
-    	$js .= 'questions_types['.$this->questionJSId.'] = \'matching\';'."\n";
511
-    	$js .= $jstmpw;
512
-		$html .= $s;
513
-		$html .= '</table></td></tr>' . "\n";
448
+        for($answerId=1;$answerId <= $nbrAnswers;$answerId++) {
449
+            $identifier = 'question_'.$qId.'_matching_';
450
+            $answer=$this->selectAnswer($answerId);
451
+            $answerCorrect=$this->isCorrect($answerId);
452
+            $weight=$this->selectWeighting($answerId);
453
+            $jstmp .= $answerId.',';
454
+
455
+            if (!$answerCorrect) {
456
+                // options (A, B, C, ...) that will be put into the list-box
457
+                $Select[$answerId]['Lettre']=$cpt1;
458
+                // answers that will be shown at the right side
459
+                $Select[$answerId]['Reponse'] = $answer;
460
+                $cpt1++;
461
+            } else {
462
+                $s.='<tr>'."\n";
463
+                $s.='<td width="40%" valign="top">'."\n".'<b>'.$cpt2.'</b>.&nbsp;'.$answer."\n</td>\n";
464
+                $s.='<td width="20%" align="center">&nbsp;&nbsp;<select name="'.$identifier.$cpt2.'" id="'.$identifier.$cpt2.'">';
465
+                $s.=' <option value="0">--</option>';
466
+                // fills the list-box
467
+                foreach($Select as $key=>$val)
468
+                {
469
+                    $s.='<option value="'.$key.'">'.$val['Lettre'].'</option>';
470
+                }  // end foreach()
471
+
472
+                $s.='</select>&nbsp;&nbsp;</td>'."\n";
473
+                $s.='<td width="40%" valign="top">';
474
+                if(isset($Select[$cpt2])) $s.='<b>'.$Select[$cpt2]['Lettre'].'.</b> '.$Select[$cpt2]['Reponse'];
475
+                    else $s.='&nbsp;';
476
+                $s.="</td>\n</tr>\n";
477
+
478
+                $jstmpc .= '['.$answerCorrect.','.$cpt2.'],';
479
+
480
+                $my_weight=explode('@',$weight);
481
+                if (count($my_weight)==2) {
482
+                    $weight=$my_weight[0];
483
+                } else {
484
+                    $weight=$my_weight[0];
485
+                }
486
+                $jstmpw .= 'questions_answers_ponderation['.$qId.']['.$cpt2.'] = '.$weight.";\n";
487
+                $cpt2++;
488
+
489
+                // if the left side of the "matching" has been completely shown
490
+                if($answerId == $nbrAnswers)
491
+                {
492
+                    // if there remain answers to be shown on the right side
493
+                    while(isset($Select[$cpt2]))
494
+                    {
495
+                        //$s.='<tr>'."\n";
496
+                        //$s.='<td colspan="2">'."\n";
497
+                        //$s.='<table border="0" cellpadding="0" cellspacing="0" width="100%">'."\n";
498
+                        $s.='<tr>'."\n";
499
+                        $s.='<td width="60%" colspan="2">&nbsp;</td>'."\n";
500
+                        $s.='<td width="40%" valign="top">';
501
+                        $s.='<b>'.$Select[$cpt2]['Lettre'].'.</b> '.$Select[$cpt2]['Reponse'];
502
+                        $s.="</td>\n</tr>\n";
503
+                        $cpt2++;
504
+                    }	// end while()
505
+                }  // end if()
506
+            }
507
+        }
508
+        $js .= 'questions_answers['.$this->questionJSId.'] = new Array('.substr($jstmp,0,-1).');'."\n";
509
+        $js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array('.substr($jstmpc,0,-1).');'."\n";
510
+        $js .= 'questions_types['.$this->questionJSId.'] = \'matching\';'."\n";
511
+        $js .= $jstmpw;
512
+        $html .= $s;
513
+        $html .= '</table></td></tr>' . "\n";
514 514
 
515 515
         return array($js,$html);
516 516
     }
@@ -522,7 +522,7 @@  discard block
 block discarded – undo
522 522
  */
523 523
 class ScormAnswerFree extends Answer
524 524
 {
525
-	/**
525
+    /**
526 526
      * Export the text with missing words.
527 527
      *
528 528
      * As a side effect, it stores two lists in the class :
@@ -531,24 +531,24 @@  discard block
 block discarded – undo
531 531
      */
532 532
     function export()
533 533
     {
534
-    	//$qId = $this->questionJSId;
535
-    	$js = '';
536
-    	/*$html = '<tr><td colspan="2"><table width="100%">' . "\n";
534
+        //$qId = $this->questionJSId;
535
+        $js = '';
536
+        /*$html = '<tr><td colspan="2"><table width="100%">' . "\n";
537 537
 		// some javascript must be added for that kind of questions
538 538
 		$html .= '<tr><td>
539 539
 		    	<textarea name="question_'.$qId.'_free" id="question_'.$qId.'_free" rows="20" cols="100"></textarea>
540 540
 		    	</td>
541 541
                 </tr>';
542 542
 		$html .= '</table></td></tr>';*/
543
-		// currently the free answers cannot be displayed, so ignore the textarea
544
-		$html = '<tr><td colspan="2">'.get_lang('ThisItemIsNotExportable').'</td></tr>';
545
-		$js .= 'questions_answers['.$this->questionJSId.'] = new Array();'."\n";
546
-    	$js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array();'."\n";
547
-    	$js .= 'questions_types['.$this->questionJSId.'] = \'free\';'."\n";
548
-		$jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
549
-		$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
550
-    	$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][1] = 0;'.";\n";
551
-    	$js .= $jstmpw;
543
+        // currently the free answers cannot be displayed, so ignore the textarea
544
+        $html = '<tr><td colspan="2">'.get_lang('ThisItemIsNotExportable').'</td></tr>';
545
+        $js .= 'questions_answers['.$this->questionJSId.'] = new Array();'."\n";
546
+        $js .= 'questions_answers_correct['.$this->questionJSId.'] = new Array();'."\n";
547
+        $js .= 'questions_types['.$this->questionJSId.'] = \'free\';'."\n";
548
+        $jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
549
+        $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
550
+        $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][1] = 0;'.";\n";
551
+        $js .= $jstmpw;
552 552
         return array($js,$html);
553 553
     }
554 554
 }
@@ -558,40 +558,40 @@  discard block
 block discarded – undo
558 558
  */
559 559
 class ScormAnswerHotspot extends Answer
560 560
 {
561
-	/**
562
-	 * Returns the javascript code that goes with HotSpot exercises
563
-	 * @return string	The JavaScript code
564
-	 */
565
-	function get_js_header()
566
-	{
567
-		if ($this->standalone) {
568
-			$header = '<script type="text/javascript" language="javascript">';
569
-			$header .= file_get_contents('../inc/lib/javascript/hotspot/js/hotspot.js');
570
-			$header .= '</script>';
571
-			//because this header closes so many times the <script> tag, we have to reopen our own
572
-			$header .= '<script type="text/javascript" language="javascript">'."\n";
573
-			$header .= 'questions_answers['.$this->questionJSId.'] = new Array();'."\n";
574
-    		$header .= 'questions_answers_correct['.$this->questionJSId.'] = new Array();'."\n";
575
-    		$header .= 'questions_types['.$this->questionJSId.'] = \'hotspot\';'."\n";
576
-			$jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
577
-			$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
578
-	    	$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][1] = 0;'.";\n";
579
-	    	$header .= $jstmpw;
580
-		}
581
-		else
582
-		{
583
-			$header = '';
584
-			$header .= 'questions_answers['.$this->questionJSId.'] = new Array();'."\n";
585
-    		$header .= 'questions_answers_correct['.$this->questionJSId.'] = new Array();'."\n";
586
-    		$header .= 'questions_types['.$this->questionJSId.'] = \'hotspot\';'."\n";
587
-			$jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
588
-			$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
589
-	    	$jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][1] = 0;'."\n";
590
-	    	$header .= $jstmpw;
591
-		}
592
-		return $header;
593
-	}
594
-	/**
561
+    /**
562
+     * Returns the javascript code that goes with HotSpot exercises
563
+     * @return string	The JavaScript code
564
+     */
565
+    function get_js_header()
566
+    {
567
+        if ($this->standalone) {
568
+            $header = '<script type="text/javascript" language="javascript">';
569
+            $header .= file_get_contents('../inc/lib/javascript/hotspot/js/hotspot.js');
570
+            $header .= '</script>';
571
+            //because this header closes so many times the <script> tag, we have to reopen our own
572
+            $header .= '<script type="text/javascript" language="javascript">'."\n";
573
+            $header .= 'questions_answers['.$this->questionJSId.'] = new Array();'."\n";
574
+            $header .= 'questions_answers_correct['.$this->questionJSId.'] = new Array();'."\n";
575
+            $header .= 'questions_types['.$this->questionJSId.'] = \'hotspot\';'."\n";
576
+            $jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
577
+            $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
578
+            $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][1] = 0;'.";\n";
579
+            $header .= $jstmpw;
580
+        }
581
+        else
582
+        {
583
+            $header = '';
584
+            $header .= 'questions_answers['.$this->questionJSId.'] = new Array();'."\n";
585
+            $header .= 'questions_answers_correct['.$this->questionJSId.'] = new Array();'."\n";
586
+            $header .= 'questions_types['.$this->questionJSId.'] = \'hotspot\';'."\n";
587
+            $jstmpw = 'questions_answers_ponderation['.$this->questionJSId.'] = new Array();'."\n";
588
+            $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][0] = 0;'."\n";
589
+            $jstmpw .= 'questions_answers_ponderation['.$this->questionJSId.'][1] = 0;'."\n";
590
+            $header .= $jstmpw;
591
+        }
592
+        return $header;
593
+    }
594
+    /**
595 595
      * Export the text with missing words.
596 596
      *
597 597
      * As a side effect, it stores two lists in the class :
@@ -600,22 +600,22 @@  discard block
 block discarded – undo
600 600
      */
601 601
     function export()
602 602
     {
603
-    	$js = $this->get_js_header();
604
-    	$html = '<tr><td colspan="2"><table width="100%">' . "\n";
605
-		// some javascript must be added for that kind of questions
606
-		$html .= '';
603
+        $js = $this->get_js_header();
604
+        $html = '<tr><td colspan="2"><table width="100%">' . "\n";
605
+        // some javascript must be added for that kind of questions
606
+        $html .= '';
607 607
 
608
-		// Get the answers, make a list
609
-		$nbrAnswers=$this->selectNbrAnswers();
608
+        // Get the answers, make a list
609
+        $nbrAnswers=$this->selectNbrAnswers();
610 610
 
611
-		$answer_list = '<div style="padding: 10px; margin-left: -8px; border: 1px solid #4271b5; height: 448px; width: 200px;"><b>'.get_lang('HotspotZones').'</b><ol>';
612
-		for($answerId=1;$answerId <= $nbrAnswers;$answerId++)
613
-		{
614
-			$answer_list .= '<li>'.$this->selectAnswer($answerId).'</li>';
615
-		}
616
-		$answer_list .= '</ol></div>';
611
+        $answer_list = '<div style="padding: 10px; margin-left: -8px; border: 1px solid #4271b5; height: 448px; width: 200px;"><b>'.get_lang('HotspotZones').'</b><ol>';
612
+        for($answerId=1;$answerId <= $nbrAnswers;$answerId++)
613
+        {
614
+            $answer_list .= '<li>'.$this->selectAnswer($answerId).'</li>';
615
+        }
616
+        $answer_list .= '</ol></div>';
617 617
 
618
-		/*
618
+        /*
619 619
 		if(!$onlyAnswers)
620 620
 		{
621 621
 			$s="<tr>
@@ -633,11 +633,11 @@  discard block
 block discarded – undo
633 633
 		}
634 634
 		*/
635 635
 
636
-		//$canClick = isset($_GET['editQuestion']) ? '0' : (isset($_GET['modifyAnswers']) ? '0' : '1');
637
-		$canClick = true;
638
-		//$tes = isset($_GET['modifyAnswers']) ? '0' : '1';
639
-		//echo $tes;
640
-		$relPath = api_get_path(REL_PATH);
636
+        //$canClick = isset($_GET['editQuestion']) ? '0' : (isset($_GET['modifyAnswers']) ? '0' : '1');
637
+        $canClick = true;
638
+        //$tes = isset($_GET['modifyAnswers']) ? '0' : '1';
639
+        //echo $tes;
640
+        $relPath = api_get_path(REL_PATH);
641 641
         $html .= <<<HTML
642 642
             <tr>
643 643
                 <td>
@@ -658,10 +658,10 @@  discard block
 block discarded – undo
658 658
                 </td>
659 659
             <tr>
660 660
 HTML;
661
-		$html .= '</table></td></tr>' . "\n";
661
+        $html .= '</table></td></tr>' . "\n";
662 662
 
663
-		// currently the free answers cannot be displayed, so ignore the textarea
664
-		$html = '<tr><td colspan="2">'.get_lang('ThisItemIsNotExportable').'</td></tr>';
663
+        // currently the free answers cannot be displayed, so ignore the textarea
664
+        $html = '<tr><td colspan="2">'.get_lang('ThisItemIsNotExportable').'</td></tr>';
665 665
         return array($js,$html);
666 666
     }
667 667
 }
Please login to merge, or discard this patch.
main/user/subscribe_user.php 1 patch
Indentation   +297 added lines, -297 removed lines patch added patch discarded remove patch
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
 
25 25
 // Access restriction
26 26
 if (!api_is_allowed_to_edit()) {
27
-	 api_not_allowed(true);
27
+        api_not_allowed(true);
28 28
 }
29 29
 
30 30
 $tool_name = get_lang("SubscribeUserToCourse");
@@ -34,7 +34,7 @@  discard block
 block discarded – undo
34 34
 $courseInfo = api_get_course_info();
35 35
 
36 36
 if ($type == COURSEMANAGER) {
37
-	$tool_name = get_lang("SubscribeUserToCourseAsTeacher");
37
+    $tool_name = get_lang("SubscribeUserToCourseAsTeacher");
38 38
 }
39 39
 
40 40
 //extra entries in breadcrumb
@@ -47,7 +47,7 @@  discard block
 block discarded – undo
47 47
         "url" => "subscribe_user.php?type=".$type.'&'.api_get_cidreq(),
48 48
         "name" => $tool_name,
49 49
     );
50
-	$tool_name = get_lang('SearchResults');
50
+    $tool_name = get_lang('SearchResults');
51 51
 }
52 52
 
53 53
 $current_session_id = api_get_session_id();
@@ -76,7 +76,7 @@  discard block
 block discarded – undo
76 76
         );
77 77
     }
78 78
 
79
-	$user_id_temp = $_SESSION['session_user_id'];
79
+    $user_id_temp = $_SESSION['session_user_id'];
80 80
 
81 81
     if (is_array($user_id_temp)) {
82 82
         $counter = count($user_id_temp);
@@ -169,16 +169,16 @@  discard block
 block discarded – undo
169 169
 
170 170
             header('Location:'.api_get_path(WEB_CODE_PATH).'user/user.php?'.api_get_cidreq().'&type='.$type);
171 171
             exit;
172
-			break;
173
-	}
172
+            break;
173
+    }
174 174
 }
175 175
 
176 176
 if (!empty($_SESSION['session_user_id'])) {
177
-	unset($_SESSION['session_user_id']);
177
+    unset($_SESSION['session_user_id']);
178 178
 }
179 179
 
180 180
 if (!empty($_SESSION['session_user_name'])) {
181
-	unset($_SESSION['session_user_name']);
181
+    unset($_SESSION['session_user_name']);
182 182
 }
183 183
 
184 184
 $is_western_name_order = api_is_western_name_order();
@@ -186,10 +186,10 @@  discard block
 block discarded – undo
186 186
 
187 187
 // Build table
188 188
 $table = new SortableTable(
189
-	'subscribe_users',
190
-	'get_number_of_users',
191
-	'get_user_data',
192
-	($is_western_name_order xor $sort_by_first_name) ? 3 : 2
189
+    'subscribe_users',
190
+    'get_number_of_users',
191
+    'get_user_data',
192
+    ($is_western_name_order xor $sort_by_first_name) ? 3 : 2
193 193
 );
194 194
 $parameters['keyword'] = $keyword;
195 195
 $parameters['type'] = $type;
@@ -272,20 +272,20 @@  discard block
 block discarded – undo
272 272
  */
273 273
 function get_number_of_users()
274 274
 {
275
-	// Database table definition
276
-	$user_table = Database::get_main_table(TABLE_MAIN_USER);
277
-	$course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
278
-	$tbl_session_rel_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
279
-	$table_user_field_values = Database::get_main_table(TABLE_EXTRA_FIELD_VALUES);
275
+    // Database table definition
276
+    $user_table = Database::get_main_table(TABLE_MAIN_USER);
277
+    $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
278
+    $tbl_session_rel_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
279
+    $table_user_field_values = Database::get_main_table(TABLE_EXTRA_FIELD_VALUES);
280 280
 
281 281
     $courseCode = api_get_course_id();
282 282
     $sessionId = api_get_session_id();
283 283
 
284
-	if (isset($_REQUEST['type']) && $_REQUEST['type']=='teacher') {
284
+    if (isset($_REQUEST['type']) && $_REQUEST['type']=='teacher') {
285 285
 
286
-		if (api_get_session_id() != 0) {
286
+        if (api_get_session_id() != 0) {
287 287
 
288
-			$sql = "SELECT COUNT(u.user_id)
288
+            $sql = "SELECT COUNT(u.user_id)
289 289
 					FROM $user_table u
290 290
 					LEFT JOIN $tbl_session_rel_course_user cu
291 291
 					ON
@@ -297,11 +297,11 @@  discard block
 block discarded – undo
297 297
 						u.status = 1 AND
298 298
 						(u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
299 299
 
300
-			if (api_is_multiple_url_enabled()) {
301
-				$url_access_id = api_get_current_access_url_id();
302
-				if ($url_access_id !=-1) {
303
-					$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
304
-					$sql = "SELECT COUNT(u.user_id)
300
+            if (api_is_multiple_url_enabled()) {
301
+                $url_access_id = api_get_current_access_url_id();
302
+                if ($url_access_id !=-1) {
303
+                    $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
304
+                    $sql = "SELECT COUNT(u.user_id)
305 305
 							FROM $user_table u
306 306
 							LEFT JOIN $tbl_session_rel_course_user cu
307 307
 							ON
@@ -315,34 +315,34 @@  discard block
 block discarded – undo
315 315
 								u.status = 1 AND
316 316
 								(u.official_code <> 'ADMIN' OR u.official_code IS NULL)
317 317
 							";
318
-				}
319
-			}
320
-		} else {
321
-			$sql = "SELECT COUNT(u.user_id)
318
+                }
319
+            }
320
+        } else {
321
+            $sql = "SELECT COUNT(u.user_id)
322 322
 					FROM $user_table u
323 323
 					LEFT JOIN $course_user_table cu
324 324
 					ON u.user_id = cu.user_id and c_id='".api_get_course_int_id()."'
325 325
 				    WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
326 326
 
327
-			if (api_is_multiple_url_enabled()) {
328
-				$url_access_id = api_get_current_access_url_id();
329
-				if ($url_access_id !=-1) {
330
-					$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
327
+            if (api_is_multiple_url_enabled()) {
328
+                $url_access_id = api_get_current_access_url_id();
329
+                if ($url_access_id !=-1) {
330
+                    $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
331 331
 
332
-					$sql = "SELECT COUNT(u.user_id)
332
+                    $sql = "SELECT COUNT(u.user_id)
333 333
 						FROM $user_table u
334 334
 						LEFT JOIN $course_user_table cu
335 335
 						ON u.user_id = cu.user_id AND c_id='".api_get_course_int_id()."'
336 336
 						INNER JOIN  $tbl_url_rel_user as url_rel_user
337 337
 						ON (url_rel_user.user_id = u.user_id)
338 338
 						WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id ";
339
-				}
340
-			}
341
-		}
342
-	} else {
343
-		// students
344
-		if (api_get_session_id() != 0) {
345
-			$sql = "SELECT COUNT(u.user_id)
339
+                }
340
+            }
341
+        }
342
+    } else {
343
+        // students
344
+        if (api_get_session_id() != 0) {
345
+            $sql = "SELECT COUNT(u.user_id)
346 346
 					FROM $user_table u
347 347
 					LEFT JOIN $tbl_session_rel_course_user cu
348 348
 					ON
@@ -354,11 +354,11 @@  discard block
 block discarded – undo
354 354
 						u.status<>".DRH." AND
355 355
 						(u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
356 356
 
357
-			if (api_is_multiple_url_enabled()) {
358
-				$url_access_id = api_get_current_access_url_id();
359
-				if ($url_access_id !=-1) {
360
-					$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
361
-					$sql = "SELECT COUNT(u.user_id)
357
+            if (api_is_multiple_url_enabled()) {
358
+                $url_access_id = api_get_current_access_url_id();
359
+                if ($url_access_id !=-1) {
360
+                    $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
361
+                    $sql = "SELECT COUNT(u.user_id)
362 362
 							FROM $user_table u
363 363
 							LEFT JOIN $tbl_session_rel_course_user cu
364 364
 							ON
@@ -372,21 +372,21 @@  discard block
 block discarded – undo
372 372
 								u.status<>".DRH." AND
373 373
 								access_url_id= $url_access_id AND
374 374
 								(u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
375
-				}
376
-			}
377
-		} else {
378
-			$sql = "SELECT COUNT(u.user_id)
375
+                }
376
+            }
377
+        } else {
378
+            $sql = "SELECT COUNT(u.user_id)
379 379
 					FROM $user_table u
380 380
 					LEFT JOIN $course_user_table cu
381 381
 					ON u.user_id = cu.user_id AND c_id='".api_get_course_int_id()."'";
382 382
 
383
-			// we change the SQL when we have a filter
384
-			if (isset($_GET['subscribe_user_filter_value']) &&
383
+            // we change the SQL when we have a filter
384
+            if (isset($_GET['subscribe_user_filter_value']) &&
385 385
                 !empty($_GET['subscribe_user_filter_value']) &&
386 386
                 api_get_setting('ProfilingFilterAddingUsers') == 'true'
387 387
             ){
388
-				$field_identification = explode('*',$_GET['subscribe_user_filter_value']);
389
-				$sql .=	"
388
+                $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
389
+                $sql .=	"
390 390
 					LEFT JOIN $table_user_field_values field_values
391 391
 					ON field_values.item_id = u.user_id
392 392
 					WHERE
@@ -395,32 +395,32 @@  discard block
 block discarded – undo
395 395
 						field_values.field_id = '".intval($field_identification[0])."' AND
396 396
 						field_values.value = '".Database::escape_string($field_identification[1])."'
397 397
 					";
398
-			} else	{
399
-				$sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
400
-			}
398
+            } else	{
399
+                $sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
400
+            }
401 401
 
402
-			if (api_is_multiple_url_enabled()) {
403
-				$url_access_id = api_get_current_access_url_id();
402
+            if (api_is_multiple_url_enabled()) {
403
+                $url_access_id = api_get_current_access_url_id();
404 404
 
405
-				if ($url_access_id !=-1) {
405
+                if ($url_access_id !=-1) {
406 406
 
407
-					$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
407
+                    $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
408 408
 
409
-					$sql = "SELECT COUNT(u.user_id)
409
+                    $sql = "SELECT COUNT(u.user_id)
410 410
 							FROM $user_table u
411 411
 							LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and c_id='".api_get_course_int_id()."'
412 412
 							INNER JOIN  $tbl_url_rel_user as url_rel_user
413 413
 							ON (url_rel_user.user_id = u.user_id)
414 414
 							WHERE cu.user_id IS NULL AND access_url_id= $url_access_id AND u.status<>".DRH." ";
415
-				}
416
-			}
417
-		}
418
-	}
419
-
420
-	// when there is a keyword then we are searching and we have to change the SQL statement
421
-	if (isset($_GET['keyword']) AND !empty($_GET['keyword'])) {
422
-		$keyword = Database::escape_string(trim($_REQUEST['keyword']));
423
-		$sql .= " AND (
415
+                }
416
+            }
417
+        }
418
+    }
419
+
420
+    // when there is a keyword then we are searching and we have to change the SQL statement
421
+    if (isset($_GET['keyword']) AND !empty($_GET['keyword'])) {
422
+        $keyword = Database::escape_string(trim($_REQUEST['keyword']));
423
+        $sql .= " AND (
424 424
 		    firstname LIKE '%".$keyword."%' OR
425 425
 		    lastname LIKE '%".$keyword."%' OR
426 426
 		    email LIKE '%".$keyword."%' OR
@@ -428,37 +428,37 @@  discard block
 block discarded – undo
428 428
 		    official_code LIKE '%".$keyword."%'
429 429
         )";
430 430
 
431
-		// we also want to search for users who have something in their profile fields that matches the keyword
432
-		if (api_get_setting('ProfilingFilterAddingUsers') == 'true') {
433
-			$additional_users = search_additional_profile_fields($keyword);
434
-		}
431
+        // we also want to search for users who have something in their profile fields that matches the keyword
432
+        if (api_get_setting('ProfilingFilterAddingUsers') == 'true') {
433
+            $additional_users = search_additional_profile_fields($keyword);
434
+        }
435 435
 
436
-		// getting all the users of the course (to make sure that we do not display users that are already in the course)
437
-		if (!empty($_SESSION["id_session"])) {
436
+        // getting all the users of the course (to make sure that we do not display users that are already in the course)
437
+        if (!empty($_SESSION["id_session"])) {
438 438
             $a_course_users = CourseManager:: get_user_list_from_course_code(
439 439
                 $courseCode,
440 440
                 $sessionId
441 441
             );
442
-		} else {
442
+        } else {
443 443
             $a_course_users = CourseManager:: get_user_list_from_course_code(
444 444
                 $courseCode,
445 445
                 0
446 446
             );
447
-	    }
448
-		foreach ($a_course_users as $user_id=>$course_user) {
449
-			$users_of_course[] = $course_user['user_id'];
450
-	    }
451
-	}
447
+        }
448
+        foreach ($a_course_users as $user_id=>$course_user) {
449
+            $users_of_course[] = $course_user['user_id'];
450
+        }
451
+    }
452 452
     $sql .=" AND u.status <> ".ANONYMOUS." ";
453
-	$res = Database::query($sql);
453
+    $res = Database::query($sql);
454 454
     $count_user = 0;
455 455
 
456 456
     if ($res) {
457
-	   $row = Database::fetch_row($res);
458
-	   $count_user = $row[0];
459
-	}
457
+        $row = Database::fetch_row($res);
458
+        $count_user = $row[0];
459
+    }
460 460
 
461
-	return $count_user;
461
+    return $count_user;
462 462
 }
463 463
 /**
464 464
  * Get the users to display on the current page.
@@ -468,17 +468,17 @@  discard block
 block discarded – undo
468 468
     $url_access_id = api_get_current_access_url_id();
469 469
     $course_code = api_get_course_id();
470 470
     $session_id = api_get_session_id();
471
-	$courseId = api_get_course_int_id();
471
+    $courseId = api_get_course_int_id();
472 472
 
473
-	// Database table definitions
474
-	$user_table = Database::get_main_table(TABLE_MAIN_USER);
475
-	$course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
476
-	$tbl_session_rel_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
477
-	$table_user_field_values = Database::get_main_table(TABLE_EXTRA_FIELD_VALUES);
473
+    // Database table definitions
474
+    $user_table = Database::get_main_table(TABLE_MAIN_USER);
475
+    $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
476
+    $tbl_session_rel_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
477
+    $table_user_field_values = Database::get_main_table(TABLE_EXTRA_FIELD_VALUES);
478 478
     $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
479 479
 
480 480
     // adding teachers
481
-	$is_western_name_order = api_is_western_name_order();
481
+    $is_western_name_order = api_is_western_name_order();
482 482
 
483 483
     if (api_get_setting('show_email_addresses') == 'true') {
484 484
 
@@ -503,10 +503,10 @@  discard block
 block discarded – undo
503 503
                 u.active               AS col4,
504 504
                 u.user_id              AS col5";
505 505
     }
506
-	if (isset($_REQUEST['type']) && $_REQUEST['type'] == COURSEMANAGER) {
507
-		// adding a teacher through a session
508
-		if (!empty($session_id)) {
509
-			$sql = "SELECT $select_fields
506
+    if (isset($_REQUEST['type']) && $_REQUEST['type'] == COURSEMANAGER) {
507
+        // adding a teacher through a session
508
+        if (!empty($session_id)) {
509
+            $sql = "SELECT $select_fields
510 510
 					FROM $user_table u
511 511
 					LEFT JOIN $tbl_session_rel_course_user cu
512 512
 					ON
@@ -516,13 +516,13 @@  discard block
 block discarded – undo
516 516
                     INNER JOIN  $tbl_url_rel_user as url_rel_user
517 517
                     ON (url_rel_user.user_id = u.user_id) ";
518 518
 
519
-			// applying the filter of the additional user profile fields
520
-			if (isset($_GET['subscribe_user_filter_value']) &&
521
-				!empty($_GET['subscribe_user_filter_value']) &&
522
-				api_get_setting('ProfilingFilterAddingUsers') == 'true'
523
-			) {
524
-				$field_identification = explode('*',$_GET['subscribe_user_filter_value']);
525
-				$sql .=	"
519
+            // applying the filter of the additional user profile fields
520
+            if (isset($_GET['subscribe_user_filter_value']) &&
521
+                !empty($_GET['subscribe_user_filter_value']) &&
522
+                api_get_setting('ProfilingFilterAddingUsers') == 'true'
523
+            ) {
524
+                $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
525
+                $sql .=	"
526 526
 					LEFT JOIN $table_user_field_values field_values
527 527
 						ON field_values.item_id = u.user_id
528 528
 					WHERE
@@ -531,53 +531,53 @@  discard block
 block discarded – undo
531 531
 						(u.official_code <> 'ADMIN' OR u.official_code IS NULL) AND
532 532
 						field_values.field_id = '".intval($field_identification[0])."' AND
533 533
 						field_values.value = '".Database::escape_string($field_identification[1])."'";
534
-			} else {
535
-				$sql .=	"WHERE cu.user_id IS NULL AND u.status=1 AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
536
-			}
534
+            } else {
535
+                $sql .=	"WHERE cu.user_id IS NULL AND u.status=1 AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
536
+            }
537 537
 
538 538
             $sql .=	" AND access_url_id= $url_access_id";
539 539
 
540
-		} else {
541
-		     // adding a teacher NOT through a session
542
-			$sql = "SELECT $select_fields
540
+        } else {
541
+                // adding a teacher NOT through a session
542
+            $sql = "SELECT $select_fields
543 543
                     FROM $user_table u
544 544
                     LEFT JOIN $course_user_table cu
545 545
                     ON u.user_id = cu.user_id AND c_id = '".$courseId."'";
546 546
 
547
-				// applying the filter of the additional user profile fields
548
-				if (isset($_GET['subscribe_user_filter_value']) &&
549
-					!empty($_GET['subscribe_user_filter_value']) &&
550
-					api_get_setting('ProfilingFilterAddingUsers') == 'true'
551
-				) {
552
-					$field_identification = explode('*',$_GET['subscribe_user_filter_value']);
553
-					$sql .=	"
547
+                // applying the filter of the additional user profile fields
548
+                if (isset($_GET['subscribe_user_filter_value']) &&
549
+                    !empty($_GET['subscribe_user_filter_value']) &&
550
+                    api_get_setting('ProfilingFilterAddingUsers') == 'true'
551
+                ) {
552
+                    $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
553
+                    $sql .=	"
554 554
 						LEFT JOIN $table_user_field_values field_values
555 555
 							ON field_values.item_id = u.user_id
556 556
 						WHERE
557 557
 							cu.user_id IS NULL AND u.status<>".DRH." AND
558 558
 							field_values.field_id = '".intval($field_identification[0])."' AND
559 559
 							field_values.value = '".Database::escape_string($field_identification[1])."'";
560
-				} else	{
561
-					$sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
562
-				}
563
-
564
-				// adding a teacher NOT trough a session on a portal with multiple URLs
565
-				if (api_is_multiple_url_enabled()) {
566
-					if ($url_access_id !=-1) {
567
-						$sql = "SELECT $select_fields
560
+                } else	{
561
+                    $sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
562
+                }
563
+
564
+                // adding a teacher NOT trough a session on a portal with multiple URLs
565
+                if (api_is_multiple_url_enabled()) {
566
+                    if ($url_access_id !=-1) {
567
+                        $sql = "SELECT $select_fields
568 568
 						FROM $user_table u
569 569
 						LEFT JOIN $course_user_table cu
570 570
 						ON u.user_id = cu.user_id and c_id='".$courseId."'
571 571
 						INNER JOIN  $tbl_url_rel_user as url_rel_user
572 572
 						ON (url_rel_user.user_id = u.user_id) ";
573 573
 
574
-					// applying the filter of the additional user profile fields
575
-					if (isset($_GET['subscribe_user_filter_value']) &&
576
-						!empty($_GET['subscribe_user_filter_value']) &&
577
-						api_get_setting('ProfilingFilterAddingUsers') == 'true'
578
-					){
579
-						$field_identification = explode('*', $_GET['subscribe_user_filter_value']);
580
-						$sql .=	"
574
+                    // applying the filter of the additional user profile fields
575
+                    if (isset($_GET['subscribe_user_filter_value']) &&
576
+                        !empty($_GET['subscribe_user_filter_value']) &&
577
+                        api_get_setting('ProfilingFilterAddingUsers') == 'true'
578
+                    ){
579
+                        $field_identification = explode('*', $_GET['subscribe_user_filter_value']);
580
+                        $sql .=	"
581 581
 							LEFT JOIN $table_user_field_values field_values
582 582
 								ON field_values.item_id = u.user_id
583 583
 							WHERE
@@ -585,16 +585,16 @@  discard block
 block discarded – undo
585 585
 							 	u.status<>".DRH." AND
586 586
 							 	field_values.field_id = '".intval($field_identification[0])."' AND
587 587
 							 	field_values.value = '".Database::escape_string($field_identification[1])."'";
588
-					} else	{
589
-						$sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id ";
590
-					}
591
-				}
592
-			}
593
-		}
594
-	} else {
595
-		// adding a student
596
-		if (!empty($session_id)) {
597
-			$sql = "SELECT $select_fields
588
+                    } else	{
589
+                        $sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id ";
590
+                    }
591
+                }
592
+            }
593
+        }
594
+    } else {
595
+        // adding a student
596
+        if (!empty($session_id)) {
597
+            $sql = "SELECT $select_fields
598 598
                     FROM $user_table u
599 599
                     LEFT JOIN $tbl_session_rel_course_user cu
600 600
                     ON
@@ -629,7 +629,7 @@  discard block
 block discarded – undo
629 629
                 $sql .=  "AND access_url_id = $url_access_id";
630 630
             }
631 631
 
632
-		} else {
632
+        } else {
633 633
             $sql = "SELECT $select_fields
634 634
                     FROM $user_table u
635 635
                     LEFT JOIN $course_user_table cu
@@ -637,10 +637,10 @@  discard block
 block discarded – undo
637 637
                     	u.user_id = cu.user_id AND
638 638
                     	c_id ='".$courseId."'";
639 639
 
640
-			// applying the filter of the additional user profile fields
641
-			if (isset($_GET['subscribe_user_filter_value']) && !empty($_GET['subscribe_user_filter_value'])){
642
-				$field_identification = explode('*',$_GET['subscribe_user_filter_value']);
643
-				$sql .=	"
640
+            // applying the filter of the additional user profile fields
641
+            if (isset($_GET['subscribe_user_filter_value']) && !empty($_GET['subscribe_user_filter_value'])){
642
+                $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
643
+                $sql .=	"
644 644
 					LEFT JOIN $table_user_field_values field_values
645 645
 						ON field_values.item_id = u.user_id
646 646
 					WHERE
@@ -648,28 +648,28 @@  discard block
 block discarded – undo
648 648
 						u.status<>".DRH." AND
649 649
 						field_values.field_id = '".intval($field_identification[0])."' AND
650 650
 						field_values.value = '".Database::escape_string($field_identification[1])."'";
651
-			} else	{
652
-				$sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
653
-			}
651
+            } else	{
652
+                $sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
653
+            }
654 654
 
655
-			//showing only the courses of the current Chamilo access_url_id
655
+            //showing only the courses of the current Chamilo access_url_id
656 656
 
657
-			if (api_is_multiple_url_enabled()) {
658
-				if ($url_access_id !=-1) {
659
-					$sql = "SELECT $select_fields
657
+            if (api_is_multiple_url_enabled()) {
658
+                if ($url_access_id !=-1) {
659
+                    $sql = "SELECT $select_fields
660 660
 						FROM $user_table u
661 661
 						LEFT JOIN $course_user_table cu
662 662
 						ON u.user_id = cu.user_id AND c_id='".$courseId."'
663 663
 						INNER JOIN  $tbl_url_rel_user as url_rel_user
664 664
 						ON (url_rel_user.user_id = u.user_id) ";
665 665
 
666
-					// applying the filter of the additional user profile fields
667
-					if (isset($_GET['subscribe_user_filter_value']) &&
668
-						!empty($_GET['subscribe_user_filter_value']) &&
669
-						api_get_setting('ProfilingFilterAddingUsers') == 'true'
670
-					){
671
-						$field_identification = explode('*', $_GET['subscribe_user_filter_value']);
672
-						$sql .=	"
666
+                    // applying the filter of the additional user profile fields
667
+                    if (isset($_GET['subscribe_user_filter_value']) &&
668
+                        !empty($_GET['subscribe_user_filter_value']) &&
669
+                        api_get_setting('ProfilingFilterAddingUsers') == 'true'
670
+                    ){
671
+                        $field_identification = explode('*', $_GET['subscribe_user_filter_value']);
672
+                        $sql .=	"
673 673
 							LEFT JOIN $table_user_field_values field_values
674 674
 								ON field_values.item_id = u.user_id
675 675
 							WHERE
@@ -679,19 +679,19 @@  discard block
 block discarded – undo
679 679
 								field_values.value = '".Database::escape_string($field_identification[1])."' AND
680 680
 								access_url_id = $url_access_id
681 681
                             ";
682
-					} else	{
683
-						$sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id ";
684
-					}
685
-				}
686
-			}
687
-		}
688
-	}
689
-
690
-	// adding additional WHERE statements to the SQL for the search functionality
682
+                    } else	{
683
+                        $sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id ";
684
+                    }
685
+                }
686
+            }
687
+        }
688
+    }
689
+
690
+    // adding additional WHERE statements to the SQL for the search functionality
691 691
     $additional_users = null;
692
-	if (isset($_REQUEST['keyword'])) {
693
-		$keyword = Database::escape_string(trim($_REQUEST['keyword']));
694
-		$sql .= " AND (
692
+    if (isset($_REQUEST['keyword'])) {
693
+        $keyword = Database::escape_string(trim($_REQUEST['keyword']));
694
+        $sql .= " AND (
695 695
 					firstname LIKE '%".$keyword."%' OR
696 696
 					lastname LIKE '%".$keyword."%' OR
697 697
 					email LIKE '%".$keyword."%' OR
@@ -700,46 +700,46 @@  discard block
 block discarded – undo
700 700
 					)
701 701
 				";
702 702
 
703
-		if (api_get_setting('ProfilingFilterAddingUsers') == 'true') {
704
-			// we also want to search for users who have something in
705
-			// their profile fields that matches the keyword
706
-			$additional_users = search_additional_profile_fields($keyword);
707
-		}
708
-
709
-		// getting all the users of the course (to make sure that we do not
710
-		// display users that are already in the course)
711
-		if (!empty($session_id)) {
712
-			$a_course_users = CourseManager :: get_user_list_from_course_code($course_code, $session_id);
713
-		} else {
714
-			$a_course_users = CourseManager :: get_user_list_from_course_code($course_code, 0);
715
-	    }
716
-		foreach ($a_course_users as $user_id=>$course_user) {
717
-			$users_of_course[] = $course_user['user_id'];
718
-		}
719
-	}
720
-
721
-	$sql .=" AND u.status != ".ANONYMOUS." ";
722
-
723
-	// Sorting and pagination (used by the sortable table)
724
-	$sql .= " ORDER BY col$column $direction ";
725
-	$sql .= " LIMIT $from,$number_of_items";
726
-
727
-	$res = Database::query($sql);
728
-	$users = array ();
729
-	while ($user = Database::fetch_row($res)) {
730
-		$users[] = $user;
731
-		$_SESSION['session_user_id'][] = $user[0];
732
-		if ($is_western_name_order) {
733
-			$_SESSION['session_user_name'][] = api_get_person_name($user[2], $user[3]);
734
-		} else {
735
-			$_SESSION['session_user_name'][] = api_get_person_name($user[3], $user[2]);
736
-		}
737
-	}
738
-	// adding additional users based on the search on the additional profile fields
739
-	if (isset($_REQUEST['keyword'])){
740
-		if (is_array($additional_users)) {
741
-			foreach($additional_users as $additional_user_key=>$additional_user_value){
742
-				if (!in_array($additional_user_key, $_SESSION['session_user_id']) &&
703
+        if (api_get_setting('ProfilingFilterAddingUsers') == 'true') {
704
+            // we also want to search for users who have something in
705
+            // their profile fields that matches the keyword
706
+            $additional_users = search_additional_profile_fields($keyword);
707
+        }
708
+
709
+        // getting all the users of the course (to make sure that we do not
710
+        // display users that are already in the course)
711
+        if (!empty($session_id)) {
712
+            $a_course_users = CourseManager :: get_user_list_from_course_code($course_code, $session_id);
713
+        } else {
714
+            $a_course_users = CourseManager :: get_user_list_from_course_code($course_code, 0);
715
+        }
716
+        foreach ($a_course_users as $user_id=>$course_user) {
717
+            $users_of_course[] = $course_user['user_id'];
718
+        }
719
+    }
720
+
721
+    $sql .=" AND u.status != ".ANONYMOUS." ";
722
+
723
+    // Sorting and pagination (used by the sortable table)
724
+    $sql .= " ORDER BY col$column $direction ";
725
+    $sql .= " LIMIT $from,$number_of_items";
726
+
727
+    $res = Database::query($sql);
728
+    $users = array ();
729
+    while ($user = Database::fetch_row($res)) {
730
+        $users[] = $user;
731
+        $_SESSION['session_user_id'][] = $user[0];
732
+        if ($is_western_name_order) {
733
+            $_SESSION['session_user_name'][] = api_get_person_name($user[2], $user[3]);
734
+        } else {
735
+            $_SESSION['session_user_name'][] = api_get_person_name($user[3], $user[2]);
736
+        }
737
+    }
738
+    // adding additional users based on the search on the additional profile fields
739
+    if (isset($_REQUEST['keyword'])){
740
+        if (is_array($additional_users)) {
741
+            foreach($additional_users as $additional_user_key=>$additional_user_value){
742
+                if (!in_array($additional_user_key, $_SESSION['session_user_id']) &&
743 743
                     !in_array($additional_user_key,$users_of_course)
744 744
                 ){
745 745
                     $users[] = array(
@@ -751,11 +751,11 @@  discard block
 block discarded – undo
751 751
                         $additional_user_value['col5'],
752 752
                         $additional_user_value['col6'],
753 753
                     );
754
-				}
755
-			}
756
-		}
757
-	}
758
-	return $users;
754
+                }
755
+            }
756
+        }
757
+    }
758
+    return $users;
759 759
 }
760 760
 /**
761 761
 * Returns a mailto-link
@@ -763,7 +763,7 @@  discard block
 block discarded – undo
763 763
 * @return string HTML-code with a mailto-link
764 764
 */
765 765
 function email_filter($email) {
766
-	return Display :: encrypted_mailto_link($email, $email);
766
+    return Display :: encrypted_mailto_link($email, $email);
767 767
 }
768 768
 /**
769 769
  * Build the reg-column of the table
@@ -776,8 +776,8 @@  discard block
 block discarded – undo
776 776
     } else {
777 777
         $type = STUDENT;
778 778
     }
779
-	$result = '<a class="btn btn-small btn-primary" href="'.api_get_self().'?register=yes&type='.$type.'&user_id='.$user_id.'">'.get_lang("reg").'</a>';
780
-	return $result;
779
+    $result = '<a class="btn btn-small btn-primary" href="'.api_get_self().'?register=yes&type='.$type.'&user_id='.$user_id.'">'.get_lang("reg").'</a>';
780
+    return $result;
781 781
 }
782 782
 
783 783
 /**
@@ -791,23 +791,23 @@  discard block
 block discarded – undo
791 791
  */
792 792
 
793 793
 function active_filter($active, $url_params, $row) {
794
-	$_user = api_get_user_info();
795
-	if ($active=='1') {
796
-		$action='AccountActive';
797
-		$image='accept';
798
-	}
799
-
800
-	if ($active=='0') {
801
-		$action='AccountInactive';
802
-		$image='error';
803
-	}
794
+    $_user = api_get_user_info();
795
+    if ($active=='1') {
796
+        $action='AccountActive';
797
+        $image='accept';
798
+    }
799
+
800
+    if ($active=='0') {
801
+        $action='AccountInactive';
802
+        $image='error';
803
+    }
804 804
     $result = null;
805
-	if ($row['0']<>$_user['user_id']) {
806
-	// you cannot lock yourself out otherwise you could disable all the accounts
807
-	// including your own => everybody is locked out and nobody can change it anymore.
808
-		$result = Display::return_icon($image.'.png',  get_lang(ucfirst($action)), array() , ICON_SIZE_TINY);
809
-	}
810
-	return $result;
805
+    if ($row['0']<>$_user['user_id']) {
806
+    // you cannot lock yourself out otherwise you could disable all the accounts
807
+    // including your own => everybody is locked out and nobody can change it anymore.
808
+        $result = Display::return_icon($image.'.png',  get_lang(ucfirst($action)), array() , ICON_SIZE_TINY);
809
+    }
810
+    return $result;
811 811
 }
812 812
 
813 813
 /**
@@ -825,29 +825,29 @@  discard block
 block discarded – undo
825 825
  */
826 826
 function search_additional_profile_fields($keyword)
827 827
 {
828
-	// database table definitions
829
-	$table_user_field_options = Database :: get_main_table(TABLE_EXTRA_FIELD_OPTIONS);
830
-	$table_user_field_values = Database::get_main_table(TABLE_EXTRA_FIELD_VALUES);
828
+    // database table definitions
829
+    $table_user_field_options = Database :: get_main_table(TABLE_EXTRA_FIELD_OPTIONS);
830
+    $table_user_field_values = Database::get_main_table(TABLE_EXTRA_FIELD_VALUES);
831 831
     $tableExtraField = Database::get_main_table(TABLE_EXTRA_FIELD);
832
-	$table_user = Database::get_main_table(TABLE_MAIN_USER);
832
+    $table_user = Database::get_main_table(TABLE_MAIN_USER);
833 833
 
834
-	// getting the field option text that match this keyword (for radio buttons and checkboxes)
835
-	$sql = "SELECT * FROM $table_user_field_options
834
+    // getting the field option text that match this keyword (for radio buttons and checkboxes)
835
+    $sql = "SELECT * FROM $table_user_field_options
836 836
 	        WHERE display_text LIKE '%".$keyword."%'";
837
-	$result_profiling = Database::query($sql);
838
-	while ($profiling_field_options = Database::fetch_array($result_profiling)) {
839
-		$profiling_field_options_exact_values[] = $profiling_field_options;
840
-	}
837
+    $result_profiling = Database::query($sql);
838
+    while ($profiling_field_options = Database::fetch_array($result_profiling)) {
839
+        $profiling_field_options_exact_values[] = $profiling_field_options;
840
+    }
841 841
     $profiling_field_options_exact_values_sql = '';
842
-	foreach ($profiling_field_options_exact_values as $profilingkey => $profilingvalue){
843
-		$profiling_field_options_exact_values_sql .= " OR (field_id = '".$profilingvalue['field_id']."' AND value='".$profilingvalue['option_value']."') ";
844
-	}
842
+    foreach ($profiling_field_options_exact_values as $profilingkey => $profilingvalue){
843
+        $profiling_field_options_exact_values_sql .= " OR (field_id = '".$profilingvalue['field_id']."' AND value='".$profilingvalue['option_value']."') ";
844
+    }
845 845
 
846 846
     $extraFieldType = \Chamilo\CoreBundle\Entity\ExtraField::USER_FIELD_TYPE;
847 847
 
848
-	// getting all the user ids of the users who have chosen on of the predefined fields that contain the keyword
849
-	// or all the users who have entered the keyword in a free-form field
850
-	$sql = "SELECT
848
+    // getting all the user ids of the users who have chosen on of the predefined fields that contain the keyword
849
+    // or all the users who have entered the keyword in a free-form field
850
+    $sql = "SELECT
851 851
 	            user.user_id as col0,
852 852
 	            user.official_code as col1,
853 853
 	            user.lastname as col2,
@@ -861,13 +861,13 @@  discard block
 block discarded – undo
861 861
                 user_values.field_id = e.id AND
862 862
                 e.extra_field_type = $extraFieldType AND
863 863
                 (value LIKE '%".$keyword."%'".$profiling_field_options_exact_values_sql.")";
864
-	$result = Database::query($sql);
864
+    $result = Database::query($sql);
865 865
     $additional_users = array();
866
-	while ($profiled_users = Database::fetch_array($result)) {
867
-		$additional_users[$profiled_users['col0']] = $profiled_users;
868
-	}
866
+    while ($profiled_users = Database::fetch_array($result)) {
867
+        $additional_users[$profiled_users['col0']] = $profiled_users;
868
+    }
869 869
 
870
-	return $additional_users;
870
+    return $additional_users;
871 871
 }
872 872
 
873 873
 /**
@@ -879,41 +879,41 @@  discard block
 block discarded – undo
879 879
  */
880 880
 function display_extra_profile_fields_filter()
881 881
 {
882
-	// getting all the additional user profile fields
883
-	$extra = UserManager::get_extra_fields(0,50,5,'ASC');
884
-
885
-	$return='<option value="">'.get_lang('SelectFilter').'</option>';
886
-
887
-	// looping through the additional user profile fields
888
-	foreach ($extra as $id => $field_details) {
889
-		// $field_details[2] contains the type of the additional user profile field
890
-		switch ($field_details[2]) {
891
-			// text fields cannot be used as a filter
892
-			case ExtraField::FIELD_TYPE_TEXT:
893
-				break;
894
-			// text area fields cannot be used as a filter
895
-			case ExtraField::FIELD_TYPE_TEXTAREA:
896
-				break;
897
-			case ExtraField::FIELD_TYPE_RADIO:
898
-			case ExtraField::FIELD_TYPE_SELECT:
899
-			case ExtraField::FIELD_TYPE_SELECT_MULTIPLE:
900
-				$return .= '<optgroup label="'.$field_details[3].'">';
901
-				foreach($field_details[9] as $option_id => $option_details) {
902
-					if ($_GET['subscribe_user_filter_value'] == $field_details[0].'*'.$option_details[1]) {
903
-						$selected = 'selected="selected"';
904
-					} else {
905
-						$selected = false;
906
-					}
907
-					$return .= '<option value="'.$field_details[0].'*'.$option_details[1].'" '.$selected.'>'.$option_details[2].'</option>';
908
-				}
909
-				$return .= '</optgroup>';
910
-				break;
911
-		}
912
-	}
913
-
914
-	echo '<form id="subscribe_user_filter" name="subscribe_user_filter" method="get" action="'.api_get_self().'?api_get_cidreq" style="float:left;">';
915
-	echo '	<input type="hidden" name="type" id="type" value="'.Security::remove_XSS($_REQUEST['type']).'" />';
916
-	echo   '<select name="subscribe_user_filter_value" id="subscribe_user_filter_value">'.$return.'</select>';
917
-	echo   '<button type="submit" name="submit_filter" id="submit_filter" value="" class="search">'.get_lang('Filter').'</button>';
918
-	echo '</form>';
882
+    // getting all the additional user profile fields
883
+    $extra = UserManager::get_extra_fields(0,50,5,'ASC');
884
+
885
+    $return='<option value="">'.get_lang('SelectFilter').'</option>';
886
+
887
+    // looping through the additional user profile fields
888
+    foreach ($extra as $id => $field_details) {
889
+        // $field_details[2] contains the type of the additional user profile field
890
+        switch ($field_details[2]) {
891
+            // text fields cannot be used as a filter
892
+            case ExtraField::FIELD_TYPE_TEXT:
893
+                break;
894
+            // text area fields cannot be used as a filter
895
+            case ExtraField::FIELD_TYPE_TEXTAREA:
896
+                break;
897
+            case ExtraField::FIELD_TYPE_RADIO:
898
+            case ExtraField::FIELD_TYPE_SELECT:
899
+            case ExtraField::FIELD_TYPE_SELECT_MULTIPLE:
900
+                $return .= '<optgroup label="'.$field_details[3].'">';
901
+                foreach($field_details[9] as $option_id => $option_details) {
902
+                    if ($_GET['subscribe_user_filter_value'] == $field_details[0].'*'.$option_details[1]) {
903
+                        $selected = 'selected="selected"';
904
+                    } else {
905
+                        $selected = false;
906
+                    }
907
+                    $return .= '<option value="'.$field_details[0].'*'.$option_details[1].'" '.$selected.'>'.$option_details[2].'</option>';
908
+                }
909
+                $return .= '</optgroup>';
910
+                break;
911
+        }
912
+    }
913
+
914
+    echo '<form id="subscribe_user_filter" name="subscribe_user_filter" method="get" action="'.api_get_self().'?api_get_cidreq" style="float:left;">';
915
+    echo '	<input type="hidden" name="type" id="type" value="'.Security::remove_XSS($_REQUEST['type']).'" />';
916
+    echo   '<select name="subscribe_user_filter_value" id="subscribe_user_filter_value">'.$return.'</select>';
917
+    echo   '<button type="submit" name="submit_filter" id="submit_filter" value="" class="search">'.get_lang('Filter').'</button>';
918
+    echo '</form>';
919 919
 }
Please login to merge, or discard this patch.