@@ -208,7 +208,7 @@ discard block |
||
208 | 208 | |
209 | 209 | $logs = $DB->get_records('bigbluebuttonbn_logs', |
210 | 210 | array('bigbluebuttonbnid' => $bigbluebuttonbn->id, 'log' => BIGBLUEBUTTONBN_LOG_EVENT_CREATE, 'meta' => "{\"record\":true}") |
211 | - ); |
|
211 | + ); |
|
212 | 212 | $log->meta = "{\"has_recordings\":false}"; |
213 | 213 | if (!empty($logs)) { |
214 | 214 | $log->meta = "{\"has_recordings\":true}"; |
@@ -233,9 +233,9 @@ discard block |
||
233 | 233 | global $DB; |
234 | 234 | |
235 | 235 | $completed = $DB->count_records('bigbluebuttonbn_logs', array('courseid' => $course->id, |
236 | - 'bigbluebuttonbnid' => $bigbluebuttonbn->id, |
|
237 | - 'userid' => $user->id, |
|
238 | - 'log' => 'Join', ), '*'); |
|
236 | + 'bigbluebuttonbnid' => $bigbluebuttonbn->id, |
|
237 | + 'userid' => $user->id, |
|
238 | + 'log' => 'Join', ), '*'); |
|
239 | 239 | |
240 | 240 | if ($completed > 0) { |
241 | 241 | return fullname($user).' '.get_string('view_message_has_joined', 'bigbluebuttonbn').' '. |
@@ -256,9 +256,9 @@ discard block |
||
256 | 256 | global $DB; |
257 | 257 | |
258 | 258 | $completed = $DB->count_recorda('bigbluebuttonbn_logs', array('courseid' => $course->id, |
259 | - 'bigbluebuttonbnid' => $bigbluebuttonbn->id, |
|
260 | - 'userid' => $user->id, |
|
261 | - 'log' => 'Join', ), '*', IGNORE_MULTIPLE); |
|
259 | + 'bigbluebuttonbnid' => $bigbluebuttonbn->id, |
|
260 | + 'userid' => $user->id, |
|
261 | + 'log' => 'Join', ), '*', IGNORE_MULTIPLE); |
|
262 | 262 | |
263 | 263 | return $completed > 0; |
264 | 264 | } |
@@ -331,12 +331,12 @@ discard block |
||
331 | 331 | $str = '<div class="bigbluebuttonbn overview">'."\n"; |
332 | 332 | $str .= ' <div class="name">'.get_string('modulename', 'bigbluebuttonbn').': '."\n"; |
333 | 333 | $str .= ' <a '.$classes.'href="'.$CFG->wwwroot.'/mod/bigbluebuttonbn/view.php?id='.$bigbluebuttonbn->coursemodule. |
334 | - '">'.$bigbluebuttonbn->name.'</a>'."\n"; |
|
334 | + '">'.$bigbluebuttonbn->name.'</a>'."\n"; |
|
335 | 335 | $str .= ' </div>'."\n"; |
336 | 336 | $str .= ' <div class="info">'.get_string($start, 'bigbluebuttonbn').': '.userdate($bigbluebuttonbn->openingtime). |
337 | 337 | '</div>'."\n"; |
338 | 338 | $str .= ' <div class="info">'.get_string('ends_at', 'bigbluebuttonbn').': '.userdate($bigbluebuttonbn->closingtime) |
339 | - .'</div>'."\n"; |
|
339 | + .'</div>'."\n"; |
|
340 | 340 | $str .= '</div>'."\n"; |
341 | 341 | |
342 | 342 | return $str; |
@@ -96,8 +96,8 @@ |
||
96 | 96 | $output .= html_writer::start_tag('br'); |
97 | 97 | $output .= html_writer::tag('input', '', |
98 | 98 | array('type' => 'button', 'class' => 'btn btn-secondary', |
99 | - 'value' => get_string('view_recording_button_return', 'bigbluebuttonbn'), |
|
100 | - 'onclick' => 'window.location=\''.$CFG->wwwroot.'/mod/bigbluebuttonbn/view.php?id='.$cm->id.'\'')); |
|
99 | + 'value' => get_string('view_recording_button_return', 'bigbluebuttonbn'), |
|
100 | + 'onclick' => 'window.location=\''.$CFG->wwwroot.'/mod/bigbluebuttonbn/view.php?id='.$cm->id.'\'')); |
|
101 | 101 | |
102 | 102 | // JavaScript for locales. |
103 | 103 | $PAGE->requires->strings_for_js(array_keys(bigbluebuttonbn_get_strings_for_js()), 'bigbluebuttonbn'); |
@@ -111,7 +111,7 @@ discard block |
||
111 | 111 | 'alt' => get_string('delete'), |
112 | 112 | 'title' => get_string('delete'), |
113 | 113 | 'src' => $jsvars['pix_icon_delete'] |
114 | - ); |
|
114 | + ); |
|
115 | 115 | |
116 | 116 | $jsvars['pix_icon_delete'] = html_writer::tag('img', $options); |
117 | 117 | } |
@@ -211,8 +211,8 @@ discard block |
||
211 | 211 | $this->bigbluebuttonbn_mform_add_element($mform, $field['type'], $field['name'], $field['data_type'], |
212 | 212 | $field['description_key'], 0, ['maxlength' => 4, 'size' => 6], |
213 | 213 | ['message' => get_string('mod_form_field_voicebridge_format_error', 'bigbluebuttonbn'), |
214 | - 'type' => 'numeric', 'rule' => '####', 'validator' => 'server'] |
|
215 | - ); |
|
214 | + 'type' => 'numeric', 'rule' => '####', 'validator' => 'server'] |
|
215 | + ); |
|
216 | 216 | } else { |
217 | 217 | $this->bigbluebuttonbn_mform_add_element($mform, $field['type'], $field['name'], $field['data_type'], |
218 | 218 | $field['description_key'], 0, ['maxlength' => 4, 'size' => 6]); |
@@ -246,7 +246,7 @@ discard block |
||
246 | 246 | |
247 | 247 | private function bigbluebuttonbn_mform_add_block_room_recordings($mform, $cfg) { |
248 | 248 | $field = ['type' => 'hidden', 'name' => 'recordings_html', 'data_type' => PARAM_INT, |
249 | - 'description_key' => null]; |
|
249 | + 'description_key' => null]; |
|
250 | 250 | if ($cfg['recordings_html_editable']) { |
251 | 251 | $field['type'] = 'checkbox'; |
252 | 252 | $field['description_key'] = 'mod_form_field_recordings_html'; |
@@ -255,7 +255,7 @@ discard block |
||
255 | 255 | $field['description_key'], $cfg['recordings_html_default']); |
256 | 256 | |
257 | 257 | $field = ['type' => 'hidden', 'name' => 'recordings_deleted', 'data_type' => PARAM_INT, |
258 | - 'description_key' => null]; |
|
258 | + 'description_key' => null]; |
|
259 | 259 | if ($cfg['recordings_deleted_editable']) { |
260 | 260 | $field['type'] = 'checkbox'; |
261 | 261 | $field['description_key'] = 'mod_form_field_recordings_deleted'; |
@@ -264,7 +264,7 @@ discard block |
||
264 | 264 | $field['description_key'], $cfg['recordings_deleted_default']); |
265 | 265 | |
266 | 266 | $field = ['type' => 'hidden', 'name' => 'recordings_imported', 'data_type' => PARAM_INT, |
267 | - 'description_key' => null]; |
|
267 | + 'description_key' => null]; |
|
268 | 268 | if ($cfg['recordings_imported_editable']) { |
269 | 269 | $field['type'] = 'checkbox'; |
270 | 270 | $field['description_key'] = 'mod_form_field_recordings_imported'; |
@@ -319,7 +319,7 @@ discard block |
||
319 | 319 | html_writer::select($participantselection['type_options'], 'bigbluebuttonbn_participant_selection_type', |
320 | 320 | $participantselection['type_selected'], array(), |
321 | 321 | array('id' => 'bigbluebuttonbn_participant_selection_type', |
322 | - 'onchange' => 'M.mod_bigbluebuttonbn.modform.participant_selection_set(); return 0;')).' '. |
|
322 | + 'onchange' => 'M.mod_bigbluebuttonbn.modform.participant_selection_set(); return 0;')).' '. |
|
323 | 323 | html_writer::select($participantselection['options'], 'bigbluebuttonbn_participant_selection', |
324 | 324 | $participantselection['selected'], array(), |
325 | 325 | array('id' => 'bigbluebuttonbn_participant_selection', 'disabled' => 'disabled')).' '. |
@@ -371,19 +371,19 @@ discard block |
||
371 | 371 | return array( |
372 | 372 | 'status' => false, |
373 | 373 | 'message' => get_string('view_recording_publish_link_deleted', 'bigbluebuttonbn') |
374 | - ); |
|
374 | + ); |
|
375 | 375 | } |
376 | 376 | if ($realrecordings[$params['id']]['published'] !== 'true') { |
377 | 377 | return array( |
378 | 378 | 'status' => false, |
379 | 379 | 'message' => get_string('view_recording_publish_link_not_published', 'bigbluebuttonbn') |
380 | - ); |
|
380 | + ); |
|
381 | 381 | } |
382 | 382 | return array( |
383 | 383 | 'status' => bigbluebuttonbn_publish_recording_imported( |
384 | 384 | $recordings[$params['id']]['imported'], true |
385 | 385 | ) |
386 | - ); |
|
386 | + ); |
|
387 | 387 | } |
388 | 388 | |
389 | 389 | // As the recordingid was not identified as imported recording link, execute actual publish. |
@@ -391,7 +391,7 @@ discard block |
||
391 | 391 | 'status' => bigbluebuttonbn_publish_recordings( |
392 | 392 | $params['id'], 'true' |
393 | 393 | ) |
394 | - ); |
|
394 | + ); |
|
395 | 395 | } |
396 | 396 | |
397 | 397 | function bigbluebuttonbn_broker_recording_action_unprotect($params, $recordings) { |
@@ -404,19 +404,19 @@ discard block |
||
404 | 404 | return array( |
405 | 405 | 'status' => false, |
406 | 406 | 'message' => get_string('view_recording_unprotect_link_deleted', 'bigbluebuttonbn') |
407 | - ); |
|
407 | + ); |
|
408 | 408 | } |
409 | 409 | if ($realrecordings[$params['id']]['protected'] === 'true') { |
410 | 410 | return array( |
411 | 411 | 'status' => false, |
412 | 412 | 'message' => get_string('view_recording_unprotect_link_not_unprotected', 'bigbluebuttonbn') |
413 | - ); |
|
413 | + ); |
|
414 | 414 | } |
415 | 415 | return array( |
416 | 416 | 'status' => bigbluebuttonbn_protect_recording_imported( |
417 | 417 | $recordings[$params['id']]['imported'], false |
418 | 418 | ) |
419 | - ); |
|
419 | + ); |
|
420 | 420 | } |
421 | 421 | |
422 | 422 | // As the recordingid was not identified as imported recording link, execute actual uprotect. |
@@ -424,7 +424,7 @@ discard block |
||
424 | 424 | 'status' => bigbluebuttonbn_update_recordings( |
425 | 425 | $params['id'], array('protect' => 'false') |
426 | 426 | ) |
427 | - ); |
|
427 | + ); |
|
428 | 428 | } |
429 | 429 | |
430 | 430 | function bigbluebuttonbn_broker_recording_action_unpublish($params, $recordings) { |
@@ -436,7 +436,7 @@ discard block |
||
436 | 436 | 'status' => bigbluebuttonbn_publish_recording_imported( |
437 | 437 | $recordings[$params['id']]['imported'], false |
438 | 438 | ) |
439 | - ); |
|
439 | + ); |
|
440 | 440 | } |
441 | 441 | |
442 | 442 | // As the recordingid was not identified as imported recording link, execute unpublish on a real recording. |
@@ -456,7 +456,7 @@ discard block |
||
456 | 456 | 'status' => bigbluebuttonbn_publish_recordings( |
457 | 457 | $params['id'], 'false' |
458 | 458 | ) |
459 | - ); |
|
459 | + ); |
|
460 | 460 | } |
461 | 461 | |
462 | 462 | function bigbluebuttonbn_broker_recording_action_protect($params, $recordings) { |
@@ -468,7 +468,7 @@ discard block |
||
468 | 468 | 'status' => bigbluebuttonbn_protect_recording_imported( |
469 | 469 | $recordings[$params['id']]['imported'], true |
470 | 470 | ) |
471 | - ); |
|
471 | + ); |
|
472 | 472 | } |
473 | 473 | |
474 | 474 | // As the recordingid was not identified as imported recording link, execute protect on a real recording. |
@@ -488,7 +488,7 @@ discard block |
||
488 | 488 | 'status' => bigbluebuttonbn_update_recordings( |
489 | 489 | $params['id'], array('protect' => 'true') |
490 | 490 | ) |
491 | - ); |
|
491 | + ); |
|
492 | 492 | } |
493 | 493 | |
494 | 494 | function bigbluebuttonbn_broker_recording_action_delete($params, $recordings) { |
@@ -500,7 +500,7 @@ discard block |
||
500 | 500 | 'status' => bigbluebuttonbn_delete_recording_imported( |
501 | 501 | $recordings[$params['id']]['imported'] |
502 | 502 | ) |
503 | - ); |
|
503 | + ); |
|
504 | 504 | } |
505 | 505 | |
506 | 506 | // As the recordingid was not identified as imported recording link, execute delete on a real recording. |
@@ -518,7 +518,7 @@ discard block |
||
518 | 518 | 'status' => bigbluebuttonbn_delete_recordings( |
519 | 519 | $params['id'] |
520 | 520 | ) |
521 | - ); |
|
521 | + ); |
|
522 | 522 | } |
523 | 523 | |
524 | 524 | function bigbluebuttonbn_broker_recording_action_edit($params, $recordings) { |
@@ -528,7 +528,7 @@ discard block |
||
528 | 528 | 'status' => bigbluebuttonbn_update_recording_imported( |
529 | 529 | $recordings[$params['id']]['imported'], json_decode($params['meta'], true) |
530 | 530 | ) |
531 | - ); |
|
531 | + ); |
|
532 | 532 | } |
533 | 533 | |
534 | 534 | // As the recordingid was not identified as imported recording link, execute update on a real recording. |
@@ -538,7 +538,7 @@ discard block |
||
538 | 538 | 'status' => bigbluebuttonbn_update_recordings( |
539 | 539 | $params['id'], json_decode($params['meta']) |
540 | 540 | ) |
541 | - ); |
|
541 | + ); |
|
542 | 542 | } |
543 | 543 | |
544 | 544 | function bigbluebuttonbn_broker_recording_ready($params, $bigbluebuttonbn) { |
@@ -679,10 +679,10 @@ discard block |
||
679 | 679 | $params['recording_import'] = ['id' => 'The recordingID must be specified.']; |
680 | 680 | $params['recording_ready'] = [ |
681 | 681 | 'signed_parameters' => 'A JWT encoded string must be included as [signed_parameters].' |
682 | - ]; |
|
682 | + ]; |
|
683 | 683 | $params['live_session_events'] = [ |
684 | 684 | 'signed_parameters' => 'A JWT encoded string must be included as [signed_parameters].' |
685 | - ]; |
|
685 | + ]; |
|
686 | 686 | return $params; |
687 | 687 | } |
688 | 688 |
@@ -196,10 +196,10 @@ discard block |
||
196 | 196 | |
197 | 197 | function bigbluebutton_bbb_view_create_meeting_data(&$bbbsession, $bigbluebuttonbn) { |
198 | 198 | $data = ['meetingID' => $bbbsession['meetingid'], |
199 | - 'name' => $bbbsession['meetingname'], |
|
200 | - 'attendeePW' => $bbbsession['viewerPW'], |
|
201 | - 'moderatorPW' => $bbbsession['modPW'], |
|
202 | - 'logoutURL' => $bbbsession['logoutURL'], |
|
199 | + 'name' => $bbbsession['meetingname'], |
|
200 | + 'attendeePW' => $bbbsession['viewerPW'], |
|
201 | + 'moderatorPW' => $bbbsession['modPW'], |
|
202 | + 'logoutURL' => $bbbsession['logoutURL'], |
|
203 | 203 | ]; |
204 | 204 | |
205 | 205 | $data['record'] = 'false'; |
@@ -224,7 +224,7 @@ discard block |
||
224 | 224 | '%duration%', |
225 | 225 | (string) $durationtime, |
226 | 226 | get_string('bbbdurationwarning', 'bigbluebuttonbn') |
227 | - ); |
|
227 | + ); |
|
228 | 228 | } |
229 | 229 | |
230 | 230 | $voicebridge = intval($bbbsession['voicebridge']); |
@@ -244,14 +244,14 @@ discard block |
||
244 | 244 | global $USER; |
245 | 245 | |
246 | 246 | $metadata = ['bbb-origin' => $bbbsession['origin'], |
247 | - 'bbb-origin-version' => $bbbsession['originVersion'], |
|
248 | - 'bbb-origin-server-name' => $bbbsession['originServerName'], |
|
249 | - 'bbb-origin-server-common-name' => $bbbsession['originServerCommonName'], |
|
250 | - 'bbb-origin-tag' => $bbbsession['originTag'], |
|
251 | - 'bbb-context' => $bbbsession['course']->fullname, |
|
252 | - 'bbb-recording-name' => $bbbsession['meetingname'], |
|
253 | - 'bbb-recording-description' => bigbluebuttonbn_html2text($bbbsession['meetingdescription'], 64), |
|
254 | - 'bbb-recording-tags' => bigbluebuttonbn_get_tags($bbbsession['cm']->id), // Same as $id. |
|
247 | + 'bbb-origin-version' => $bbbsession['originVersion'], |
|
248 | + 'bbb-origin-server-name' => $bbbsession['originServerName'], |
|
249 | + 'bbb-origin-server-common-name' => $bbbsession['originServerCommonName'], |
|
250 | + 'bbb-origin-tag' => $bbbsession['originTag'], |
|
251 | + 'bbb-context' => $bbbsession['course']->fullname, |
|
252 | + 'bbb-recording-name' => $bbbsession['meetingname'], |
|
253 | + 'bbb-recording-description' => bigbluebuttonbn_html2text($bbbsession['meetingdescription'], 64), |
|
254 | + 'bbb-recording-tags' => bigbluebuttonbn_get_tags($bbbsession['cm']->id), // Same as $id. |
|
255 | 255 | ]; |
256 | 256 | |
257 | 257 | if ((boolean)\mod_bigbluebuttonbn\locallib\config::get('recordingstatus_enabled')) { |
@@ -259,8 +259,8 @@ discard block |
||
259 | 259 | array( |
260 | 260 | 'email' => array('"' . fullname($USER) . '" <' . $USER->email . '>'), |
261 | 261 | 'context' => $bbbsession['bigbluebuttonbnURL'] |
262 | - ) |
|
263 | - ); |
|
262 | + ) |
|
263 | + ); |
|
264 | 264 | } |
265 | 265 | if ((boolean)\mod_bigbluebuttonbn\locallib\config::get('recordingready_enabled')) { |
266 | 266 | $metadata['bn-recording-ready-url'] = $bbbsession['recordingReadyURL']; |
@@ -94,9 +94,9 @@ discard block |
||
94 | 94 | */ |
95 | 95 | function bigbluebuttonbn_get_join_url($meetingid, $username, $pw, $logouturl, $configtoken = null, $userid = null) { |
96 | 96 | $data = ['meetingID' => $meetingid, |
97 | - 'fullName' => $username, |
|
98 | - 'password' => $pw, |
|
99 | - 'logoutURL' => $logouturl, |
|
97 | + 'fullName' => $username, |
|
98 | + 'password' => $pw, |
|
99 | + 'logoutURL' => $logouturl, |
|
100 | 100 | ]; |
101 | 101 | if (!is_null($configtoken)) { |
102 | 102 | $data['configToken'] = $configtoken; |
@@ -177,23 +177,23 @@ discard block |
||
177 | 177 | function bigbluebuttonbn_get_meeting_info_array($meetingid) { |
178 | 178 | $xml = bigbluebuttonbn_wrap_xml_load_file( |
179 | 179 | \mod_bigbluebuttonbn\locallib\bigbluebutton::action_url('getMeetingInfo', ['meetingID' => $meetingid]) |
180 | - ); |
|
180 | + ); |
|
181 | 181 | if ($xml && $xml->returncode == 'SUCCESS' && empty($xml->messageKey)) { |
182 | 182 | // Meeting info was returned. |
183 | 183 | return array('returncode' => $xml->returncode, |
184 | - 'meetingID' => $xml->meetingID, |
|
185 | - 'moderatorPW' => $xml->moderatorPW, |
|
186 | - 'attendeePW' => $xml->attendeePW, |
|
187 | - 'hasBeenForciblyEnded' => $xml->hasBeenForciblyEnded, |
|
188 | - 'running' => $xml->running, |
|
189 | - 'recording' => $xml->recording, |
|
190 | - 'startTime' => $xml->startTime, |
|
191 | - 'endTime' => $xml->endTime, |
|
192 | - 'participantCount' => $xml->participantCount, |
|
193 | - 'moderatorCount' => $xml->moderatorCount, |
|
194 | - 'attendees' => $xml->attendees, |
|
195 | - 'metadata' => $xml->metadata, |
|
196 | - ); |
|
184 | + 'meetingID' => $xml->meetingID, |
|
185 | + 'moderatorPW' => $xml->moderatorPW, |
|
186 | + 'attendeePW' => $xml->attendeePW, |
|
187 | + 'hasBeenForciblyEnded' => $xml->hasBeenForciblyEnded, |
|
188 | + 'running' => $xml->running, |
|
189 | + 'recording' => $xml->recording, |
|
190 | + 'startTime' => $xml->startTime, |
|
191 | + 'endTime' => $xml->endTime, |
|
192 | + 'participantCount' => $xml->participantCount, |
|
193 | + 'moderatorCount' => $xml->moderatorCount, |
|
194 | + 'attendees' => $xml->attendees, |
|
195 | + 'metadata' => $xml->metadata, |
|
196 | + ); |
|
197 | 197 | } |
198 | 198 | if ($xml) { |
199 | 199 | // Either failure or success without meeting info. |
@@ -249,7 +249,7 @@ discard block |
||
249 | 249 | // Do getRecordings is executed using a method GET (supported by all versions of BBB). |
250 | 250 | $xml = bigbluebuttonbn_wrap_xml_load_file( |
251 | 251 | \mod_bigbluebuttonbn\locallib\bigbluebutton::action_url('getRecordings', ['meetingID' => implode(',', $mids)]) |
252 | - ); |
|
252 | + ); |
|
253 | 253 | if ($xml && $xml->returncode == 'SUCCESS' && isset($xml->recordings)) { |
254 | 254 | // If there were meetings already created. |
255 | 255 | foreach ($xml->recordings->recording as $recording) { |
@@ -309,7 +309,7 @@ discard block |
||
309 | 309 | function bigbluebuttonbn_get_default_config_xml() { |
310 | 310 | $xml = bigbluebuttonbn_wrap_xml_load_file( |
311 | 311 | \mod_bigbluebuttonbn\locallib\bigbluebutton::action_url('getDefaultConfigXML') |
312 | - ); |
|
312 | + ); |
|
313 | 313 | return $xml; |
314 | 314 | } |
315 | 315 | |
@@ -378,7 +378,7 @@ discard block |
||
378 | 378 | foreach ($ids as $id) { |
379 | 379 | $xml = bigbluebuttonbn_wrap_xml_load_file( |
380 | 380 | \mod_bigbluebuttonbn\locallib\bigbluebutton::action_url('deleteRecordings', ['recordID' => $id]) |
381 | - ); |
|
381 | + ); |
|
382 | 382 | if ($xml && $xml->returncode != 'SUCCESS') { |
383 | 383 | return false; |
384 | 384 | } |
@@ -395,7 +395,7 @@ discard block |
||
395 | 395 | foreach ($ids as $id) { |
396 | 396 | $xml = bigbluebuttonbn_wrap_xml_load_file( |
397 | 397 | \mod_bigbluebuttonbn\locallib\bigbluebutton::action_url('publishRecordings', ['recordID' => $id, 'publish' => $publish]) |
398 | - ); |
|
398 | + ); |
|
399 | 399 | if ($xml && $xml->returncode != 'SUCCESS') { |
400 | 400 | return false; |
401 | 401 | } |
@@ -412,7 +412,7 @@ discard block |
||
412 | 412 | foreach ($ids as $id) { |
413 | 413 | $xml = bigbluebuttonbn_wrap_xml_load_file( |
414 | 414 | \mod_bigbluebuttonbn\locallib\bigbluebutton::action_url('updateRecordings', ['recordID' => $id] + (array) $params) |
415 | - ); |
|
415 | + ); |
|
416 | 416 | if ($xml && $xml->returncode != 'SUCCESS') { |
417 | 417 | return false; |
418 | 418 | } |
@@ -427,7 +427,7 @@ discard block |
||
427 | 427 | function bigbluebuttonbn_end_meeting($meetingid, $modpw) { |
428 | 428 | $xml = bigbluebuttonbn_wrap_xml_load_file( |
429 | 429 | \mod_bigbluebuttonbn\locallib\bigbluebutton::action_url('end', ['meetingID' => $meetingid, 'password' => $modpw]) |
430 | - ); |
|
430 | + ); |
|
431 | 431 | if ($xml) { |
432 | 432 | // If the xml packet returned failure it displays the message to the user. |
433 | 433 | return array('returncode' => $xml->returncode, 'message' => $xml->message, 'messageKey' => $xml->messageKey); |
@@ -442,7 +442,7 @@ discard block |
||
442 | 442 | function bigbluebuttonbn_is_meeting_running($meetingid) { |
443 | 443 | $xml = bigbluebuttonbn_wrap_xml_load_file( |
444 | 444 | \mod_bigbluebuttonbn\locallib\bigbluebutton::action_url('isMeetingRunning', ['meetingID' => $meetingid]) |
445 | - ); |
|
445 | + ); |
|
446 | 446 | if ($xml && $xml->returncode == 'SUCCESS') { |
447 | 447 | return ($xml->running == 'true'); |
448 | 448 | } |
@@ -452,7 +452,7 @@ discard block |
||
452 | 452 | function bigbluebuttonbn_get_server_version() { |
453 | 453 | $xml = bigbluebuttonbn_wrap_xml_load_file( |
454 | 454 | \mod_bigbluebuttonbn\locallib\bigbluebutton::action_url() |
455 | - ); |
|
455 | + ); |
|
456 | 456 | if ($xml && $xml->returncode == 'SUCCESS') { |
457 | 457 | return $xml->version; |
458 | 458 | } |
@@ -507,10 +507,10 @@ discard block |
||
507 | 507 | |
508 | 508 | $options = array(); |
509 | 509 | $options['CURLOPT_HTTPHEADER'] = array( |
510 | - 'Content-Type: '.$contenttype, |
|
511 | - 'Content-Length: '.strlen($data), |
|
512 | - 'Content-Language: en-US', |
|
513 | - ); |
|
510 | + 'Content-Type: '.$contenttype, |
|
511 | + 'Content-Length: '.strlen($data), |
|
512 | + 'Content-Language: en-US', |
|
513 | + ); |
|
514 | 514 | |
515 | 515 | return $c->post($url, $data, $options); |
516 | 516 | } |
@@ -581,13 +581,13 @@ discard block |
||
581 | 581 | |
582 | 582 | function bigbluebuttonbn_role_unknown() { |
583 | 583 | return array( |
584 | - "id" => "0", |
|
585 | - "name" => "", |
|
586 | - "shortname" => "unknown", |
|
587 | - "description" => "", |
|
588 | - "sortorder" => "0", |
|
589 | - "archetype" => "guest", |
|
590 | - "localname" => "Unknown" |
|
584 | + "id" => "0", |
|
585 | + "name" => "", |
|
586 | + "shortname" => "unknown", |
|
587 | + "description" => "", |
|
588 | + "sortorder" => "0", |
|
589 | + "archetype" => "guest", |
|
590 | + "localname" => "Unknown" |
|
591 | 591 | ); |
592 | 592 | } |
593 | 593 | |
@@ -596,16 +596,16 @@ discard block |
||
596 | 596 | 'all' => array( |
597 | 597 | 'name' => get_string('mod_form_field_participant_list_type_all', 'bigbluebuttonbn'), |
598 | 598 | 'children' => [] |
599 | - ) |
|
600 | - ); |
|
599 | + ) |
|
600 | + ); |
|
601 | 601 | $data['role'] = array( |
602 | 602 | 'name' => get_string('mod_form_field_participant_list_type_role', 'bigbluebuttonbn'), |
603 | 603 | 'children' => bigbluebuttonbn_get_roles_select($context) |
604 | - ); |
|
604 | + ); |
|
605 | 605 | $data['user'] = array( |
606 | 606 | 'name' => get_string('mod_form_field_participant_list_type_user', 'bigbluebuttonbn'), |
607 | 607 | 'children' => bigbluebuttonbn_get_users_select($context) |
608 | - ); |
|
608 | + ); |
|
609 | 609 | return $data; |
610 | 610 | } |
611 | 611 | |
@@ -635,9 +635,9 @@ discard block |
||
635 | 635 | continue; |
636 | 636 | } |
637 | 637 | $participantlistarray[] = array( |
638 | - 'selectiontype' => 'role', |
|
639 | - 'selectionid' => $moderatordefault, |
|
640 | - 'role' => BIGBLUEBUTTONBN_ROLE_MODERATOR); |
|
638 | + 'selectiontype' => 'role', |
|
639 | + 'selectionid' => $moderatordefault, |
|
640 | + 'role' => BIGBLUEBUTTONBN_ROLE_MODERATOR); |
|
641 | 641 | } |
642 | 642 | return $participantlistarray; |
643 | 643 | } |
@@ -668,11 +668,11 @@ discard block |
||
668 | 668 | 'all' => get_string('mod_form_field_participant_list_type_all', 'bigbluebuttonbn'), |
669 | 669 | 'role' => get_string('mod_form_field_participant_list_type_role', 'bigbluebuttonbn'), |
670 | 670 | 'user' => get_string('mod_form_field_participant_list_type_user', 'bigbluebuttonbn'), |
671 | - ], |
|
671 | + ], |
|
672 | 672 | 'type_selected' => 'all', |
673 | 673 | 'options' => ['all' => '---------------'], |
674 | 674 | 'selected' => 'all', |
675 | - ]; |
|
675 | + ]; |
|
676 | 676 | } |
677 | 677 | |
678 | 678 | function bigbluebuttonbn_is_moderator($context, $participants, $userid = null, $userroles = null) { |
@@ -862,7 +862,7 @@ discard block |
||
862 | 862 | $eventproperties['other'] = $options['other']; |
863 | 863 | } |
864 | 864 | $event = call_user_func_array('\mod_bigbluebuttonbn\event\bigbluebuttonbn_'.$eventtype.'::create', |
865 | - array($eventproperties)); |
|
865 | + array($eventproperties)); |
|
866 | 866 | $event->trigger(); |
867 | 867 | } |
868 | 868 | |
@@ -907,7 +907,7 @@ discard block |
||
907 | 907 | // Ping again and refresh the cache. |
908 | 908 | $meetinginfo = (array) bigbluebuttonbn_wrap_xml_load_file( |
909 | 909 | \mod_bigbluebuttonbn\locallib\bigbluebutton::action_url('getMeetingInfo', ['meetingID' => $meetingid]) |
910 | - ); |
|
910 | + ); |
|
911 | 911 | $cache->set($meetingid, array('creation_time' => time(), 'meeting_info' => json_encode($meetinginfo))); |
912 | 912 | return $meetinginfo; |
913 | 913 | } |
@@ -1143,8 +1143,8 @@ discard block |
||
1143 | 1143 | } |
1144 | 1144 | $id = 'playbacks-'.$recording['recordID']; |
1145 | 1145 | $recordingtypes = html_writer::start_tag('div', array('id' => $id, 'data-imported' => $dataimported, |
1146 | - 'data-meetingid' => $recording['meetingID'], 'data-recordingid' => $recording['recordID'], |
|
1147 | - 'title' => $title, $visibility => $visibility)); |
|
1146 | + 'data-meetingid' => $recording['meetingID'], 'data-recordingid' => $recording['recordID'], |
|
1147 | + 'title' => $title, $visibility => $visibility)); |
|
1148 | 1148 | foreach ($recording['playbacks'] as $playback) { |
1149 | 1149 | $recordingtypes .= bigbluebuttonbn_get_recording_data_row_type($recording, $bigbluebuttonbnid, |
1150 | 1150 | $playback).' '; |
@@ -1158,7 +1158,7 @@ discard block |
||
1158 | 1158 | $title = get_string('view_recording_format_'.$playback['type'], 'bigbluebuttonbn'); |
1159 | 1159 | $onclick = 'M.mod_bigbluebuttonbn.recordings.recording_play(this);'; |
1160 | 1160 | $href = $CFG->wwwroot.'/mod/bigbluebuttonbn/bbb_view.php?action=play&bn='.$bigbluebuttonbnid. |
1161 | - '&mid='.$recording['meetingID'].'&rid='.$recording['recordID'].'&rtype='.$playback['type']; |
|
1161 | + '&mid='.$recording['meetingID'].'&rid='.$recording['recordID'].'&rtype='.$playback['type']; |
|
1162 | 1162 | if (!isset($recording['imported']) || !isset($recording['protected']) || $recording['protected'] === 'false') { |
1163 | 1163 | $href .= '&href='.urlencode(trim($playback['url'])); |
1164 | 1164 | } |
@@ -1170,7 +1170,7 @@ discard block |
||
1170 | 1170 | 'data-target' => $playback['type'], |
1171 | 1171 | 'data-href' => $href, |
1172 | 1172 | 'class' => 'btn btn-sm btn-default' |
1173 | - ); |
|
1173 | + ); |
|
1174 | 1174 | return $OUTPUT->action_link('#', $title, null, $linkattributes); |
1175 | 1175 | } |
1176 | 1176 | |
@@ -1254,7 +1254,7 @@ discard block |
||
1254 | 1254 | 'onclick' => $onclick, |
1255 | 1255 | 'data-action' => $data['action'], |
1256 | 1256 | 'data-links' => bigbluebuttonbn_get_count_recording_imported_instances($recording['recordID']) |
1257 | - ); |
|
1257 | + ); |
|
1258 | 1258 | return $OUTPUT->action_icon('#', $icon, null, $linkattributes, false); |
1259 | 1259 | } |
1260 | 1260 | // With text for $manageaction. |
@@ -1359,7 +1359,7 @@ discard block |
||
1359 | 1359 | $texthead . $rowdata->activity . $texttail, $texthead . $rowdata->description . $texttail, |
1360 | 1360 | $rowdata->preview, $texthead . $rowdata->date_formatted . $texttail, |
1361 | 1361 | $rowdata->duration_formatted |
1362 | - ); |
|
1362 | + ); |
|
1363 | 1363 | if ($bbbsession['managerecordings']) { |
1364 | 1364 | $row->cells[] = $rowdata->actionbar; |
1365 | 1365 | } |
@@ -1601,8 +1601,8 @@ discard block |
||
1601 | 1601 | $activitytime = ''; |
1602 | 1602 | if ($time) { |
1603 | 1603 | $activitytime = calendar_day_representation($time).' '. |
1604 | - get_string('mod_form_field_notification_msg_at', 'bigbluebuttonbn').' '. |
|
1605 | - calendar_time_representation($time); |
|
1604 | + get_string('mod_form_field_notification_msg_at', 'bigbluebuttonbn').' '. |
|
1605 | + calendar_time_representation($time); |
|
1606 | 1606 | } |
1607 | 1607 | return $activitytime; |
1608 | 1608 | } |
@@ -1739,7 +1739,7 @@ discard block |
||
1739 | 1739 | $owner = array('0' => get_string('mod_form_field_participant_list_type_owner', 'bigbluebuttonbn')); |
1740 | 1740 | $renderer->render_group_element('participant_moderator_default', |
1741 | 1741 | $renderer->render_group_element_configmultiselect('participant_moderator_default', array_keys($owner), array_merge($owner, $roles)) |
1742 | - ); |
|
1742 | + ); |
|
1743 | 1743 | } |
1744 | 1744 | // Configuration for "send notifications" feature. |
1745 | 1745 | if ((boolean)\mod_bigbluebuttonbn\settings\renderer::section_send_notifications_shown()) { |
@@ -119,28 +119,28 @@ |
||
119 | 119 | */ |
120 | 120 | public static function get_options() { |
121 | 121 | return [ |
122 | - 'version_major' => self::get_moodle_version_major(), |
|
123 | - 'voicebridge_editable' => self::get('voicebridge_editable'), |
|
124 | - 'waitformoderator_default' => self::get('waitformoderator_default'), |
|
125 | - 'waitformoderator_editable' => self::get('waitformoderator_editable'), |
|
126 | - 'userlimit_default' => self::get('userlimit_default'), |
|
127 | - 'userlimit_editable' => self::get('userlimit_editable'), |
|
128 | - 'preuploadpresentation_enabled' => self::get('preuploadpresentation_enabled'), |
|
129 | - 'sendnotifications_enabled' => self::get('sendnotifications_enabled'), |
|
130 | - 'recordings_enabled' => self::get('recordings_enabled'), |
|
131 | - 'recordings_html_default' => self::get('recordings_html_default'), |
|
132 | - 'recordings_html_editable' => self::get('recordings_html_editable'), |
|
133 | - 'recordings_deleted_default' => self::get('recordings_deleted_default'), |
|
134 | - 'recordings_deleted_editable' => self::get('recordings_deleted_editable'), |
|
135 | - 'recordings_imported_default' => self::get('recordings_imported_default'), |
|
136 | - 'recordings_imported_editable' => self::get('recordings_imported_editable'), |
|
137 | - 'recording_default' => self::get('recording_default'), |
|
138 | - 'recording_editable' => self::get('recording_editable'), |
|
139 | - 'recording_icons_enabled' => self::get('recording_icons_enabled'), |
|
140 | - 'general_warning_message' => self::get('general_warning_message'), |
|
141 | - 'general_warning_button_text' => self::get('general_warning_button_text'), |
|
142 | - 'general_warning_button_href' => self::get('general_warning_button_href'), |
|
143 | - 'general_warning_button_class' => self::get('general_warning_button_class'), |
|
144 | - ]; |
|
122 | + 'version_major' => self::get_moodle_version_major(), |
|
123 | + 'voicebridge_editable' => self::get('voicebridge_editable'), |
|
124 | + 'waitformoderator_default' => self::get('waitformoderator_default'), |
|
125 | + 'waitformoderator_editable' => self::get('waitformoderator_editable'), |
|
126 | + 'userlimit_default' => self::get('userlimit_default'), |
|
127 | + 'userlimit_editable' => self::get('userlimit_editable'), |
|
128 | + 'preuploadpresentation_enabled' => self::get('preuploadpresentation_enabled'), |
|
129 | + 'sendnotifications_enabled' => self::get('sendnotifications_enabled'), |
|
130 | + 'recordings_enabled' => self::get('recordings_enabled'), |
|
131 | + 'recordings_html_default' => self::get('recordings_html_default'), |
|
132 | + 'recordings_html_editable' => self::get('recordings_html_editable'), |
|
133 | + 'recordings_deleted_default' => self::get('recordings_deleted_default'), |
|
134 | + 'recordings_deleted_editable' => self::get('recordings_deleted_editable'), |
|
135 | + 'recordings_imported_default' => self::get('recordings_imported_default'), |
|
136 | + 'recordings_imported_editable' => self::get('recordings_imported_editable'), |
|
137 | + 'recording_default' => self::get('recording_default'), |
|
138 | + 'recording_editable' => self::get('recording_editable'), |
|
139 | + 'recording_icons_enabled' => self::get('recording_icons_enabled'), |
|
140 | + 'general_warning_message' => self::get('general_warning_message'), |
|
141 | + 'general_warning_button_text' => self::get('general_warning_button_text'), |
|
142 | + 'general_warning_button_href' => self::get('general_warning_button_href'), |
|
143 | + 'general_warning_button_class' => self::get('general_warning_button_class'), |
|
144 | + ]; |
|
145 | 145 | } |
146 | 146 | } |
@@ -94,7 +94,7 @@ discard block |
||
94 | 94 | * recordings from a different activity even from a different course. |
95 | 95 | **/ |
96 | 96 | |
97 | - /* |
|
97 | + /* |
|
98 | 98 | * When the value is set to 1 (checked) the bigbluebuttonbn rooms or |
99 | 99 | * activities will have the 'import recordings' capability enabled. |
100 | 100 | */ |
@@ -115,7 +115,7 @@ discard block |
||
115 | 115 | * 'Join session' button enabled |
116 | 116 | **/ |
117 | 117 | |
118 | - /* |
|
118 | + /* |
|
119 | 119 | * When the value is set to 1 (checked) the bigbluebuttonbn rooms or |
120 | 120 | * activities will have the 'wait for moderator' capability enabled by |
121 | 121 | * default. |
@@ -149,7 +149,7 @@ discard block |
||
149 | 149 | * 5. CONFIGURATION FOR "STATIC VOICE BRIDGE" FEATURE |
150 | 150 | * |
151 | 151 | **/ |
152 | - /* |
|
152 | + /* |
|
153 | 153 | * A conference voice bridge number can be permanently assigned to a room |
154 | 154 | * or activity. |
155 | 155 | */ |
@@ -159,7 +159,7 @@ discard block |
||
159 | 159 | * 6. CONFIGURATION FOR "PRE-UPLOAD PRESENTATION" FEATURE |
160 | 160 | * |
161 | 161 | **/ |
162 | - /* |
|
162 | + /* |
|
163 | 163 | * Since version 0.8, BigBluebutton has an implementation for allowing |
164 | 164 | * preuploading presentation. When this feature is enabled, users creating or |
165 | 165 | * editing a room or activity can upload a PDF or Office document to the |
@@ -176,7 +176,7 @@ discard block |
||
176 | 176 | * applied to each room or activity, or globally. |
177 | 177 | **/ |
178 | 178 | |
179 | - /* |
|
179 | + /* |
|
180 | 180 | * The number of users allowed in a session by default when a new room or |
181 | 181 | * conference is added. If the number is set to 0, no limit is established. |
182 | 182 | * $CFG->bigbluebuttonbn['userlimit_default'] = 0; |
@@ -197,7 +197,7 @@ discard block |
||
197 | 197 | * By default only the owner is assigned. |
198 | 198 | **/ |
199 | 199 | |
200 | - /* |
|
200 | + /* |
|
201 | 201 | * The values for this parameter can be 'owner' and/or any of the roles defined in |
202 | 202 | * Moodle (including the custom parameters). The value used will be the key for the role. |
203 | 203 | * [owner|manager|coursecreator|editingteacher|teacher|student|guest|user|frontpage|ANY_CUSTOM_ROLE] |
@@ -208,7 +208,7 @@ discard block |
||
208 | 208 | * 9. CONFIGURATION FOR "NOTIFICATION SENDING" FEATURE |
209 | 209 | * |
210 | 210 | **/ |
211 | - /* |
|
211 | + /* |
|
212 | 212 | * When the value is set to 1 (checked) the 'notification sending' |
213 | 213 | * capability can be used by the user creating or editing the room or |
214 | 214 | * activity. |
@@ -222,7 +222,7 @@ discard block |
||
222 | 222 | * 10. CONFIGURATION FOR "RECORDING READY" FEATURE |
223 | 223 | * |
224 | 224 | **/ |
225 | - /* |
|
225 | + /* |
|
226 | 226 | * When the value is set to 1 (checked) the 'notify users when recording ready' |
227 | 227 | * capability is enabled, meaning that a message will be sent to all enrolled |
228 | 228 | * users in a course when a recording is ready |
@@ -246,7 +246,7 @@ discard block |
||
246 | 246 | * 12. GENERAL CONFIGURATION FOR RECORDINGS UI |
247 | 247 | * |
248 | 248 | **/ |
249 | - /* |
|
249 | + /* |
|
250 | 250 | * When the value is set to 1 (checked) the bigbluebuttonbn resources |
251 | 251 | * will show the recodings in an html table by default. |
252 | 252 | * $CFG->bigbluebuttonbn['recordings_html_default'] = 0; |
@@ -270,22 +270,22 @@ discard block |
||
270 | 270 | * $CFG->bigbluebuttonbn['recordings_deleted_editable'] = 0; |
271 | 271 | */ |
272 | 272 | |
273 | - /* |
|
273 | + /* |
|
274 | 274 | * When the value is set to 1 (checked) the bigbluebuttonbn resources for recordings |
275 | 275 | * will show only the imported links as part of the list. |
276 | 276 | * $CFG->bigbluebuttonbn['recordings_imported_default'] = 0; |
277 | 277 | */ |
278 | 278 | |
279 | - /* |
|
279 | + /* |
|
280 | 280 | * When the value is set to 1 (checked) the 'show only imported links' |
281 | 281 | * capability can be enabled/disabled by the user creating or editing the resource for recordings. |
282 | 282 | * $CFG->bigbluebuttonbn['recordings_imported_editable'] = 1; |
283 | 283 | */ |
284 | 284 | |
285 | - /* |
|
285 | + /* |
|
286 | 286 | * CONFIGURATION FOR FEATURES OFFERED BY BN SERVERS |
287 | 287 | ** ------------------------------------------------------------------ **/ |
288 | - /* |
|
288 | + /* |
|
289 | 289 | * When general_warning_message value is different than "", the string is shown |
290 | 290 | * as a warning message to privileged users (administrators and Teachers or users allowed to edit). |
291 | 291 | * $CFG->bigbluebuttonbn['general_warning_message'] = "This will may have recordings enabled when upgraded to premium."; |
@@ -267,7 +267,7 @@ discard block |
||
267 | 267 | bigbluebuttonbn_view_message_box($bbbsession, get_string('view_groups_selection_warning', 'bigbluebuttonbn'), 'warning'); |
268 | 268 | |
269 | 269 | groups_print_activity_menu( |
270 | - $bbbsession['cm'], $CFG->wwwroot.'/mod/bigbluebuttonbn/view.php?id='.$bbbsession['cm']->id); |
|
270 | + $bbbsession['cm'], $CFG->wwwroot.'/mod/bigbluebuttonbn/view.php?id='.$bbbsession['cm']->id); |
|
271 | 271 | echo '<br><br>'; |
272 | 272 | } |
273 | 273 | |
@@ -435,13 +435,13 @@ discard block |
||
435 | 435 | $recordings = bigbluebuttonbn_get_recordings( |
436 | 436 | $bbbsession['course']->id, $bigbluebuttonbnid, $showroom, |
437 | 437 | $bbbsession['bigbluebuttonbn']->recordings_deleted |
438 | - ); |
|
438 | + ); |
|
439 | 439 | } |
440 | 440 | |
441 | 441 | // Get recording links. |
442 | 442 | $recordingsimported = bigbluebuttonbn_get_recordings_imported_array( |
443 | 443 | $bbbsession['course']->id, $bigbluebuttonbnid, $showroom |
444 | - ); |
|
444 | + ); |
|
445 | 445 | |
446 | 446 | /* Perform aritmetic addition instead of merge so the imported recordings corresponding to existent |
447 | 447 | * recordings are not included. */ |
@@ -457,7 +457,7 @@ discard block |
||
457 | 457 | // JavaScript variables for recordings. |
458 | 458 | $jsvars += array( |
459 | 459 | 'recordings_html' => $bbbsession['bigbluebuttonbn']->recordings_html == '1', |
460 | - ); |
|
460 | + ); |
|
461 | 461 | |
462 | 462 | // If there are meetings with recordings load the data to the table. |
463 | 463 | if ($bbbsession['bigbluebuttonbn']->recordings_html) { |
@@ -469,7 +469,7 @@ discard block |
||
469 | 469 | $jsvars += array( |
470 | 470 | 'columns' => bigbluebuttonbn_get_recording_columns($bbbsession), |
471 | 471 | 'data' => bigbluebuttonbn_get_recording_data($bbbsession, $recordings), |
472 | - ); |
|
472 | + ); |
|
473 | 473 | |
474 | 474 | // Render a YUI table. |
475 | 475 | return html_writer::div('', '', array('id' => 'bigbluebuttonbn_yui_table')); |
@@ -480,10 +480,10 @@ discard block |
||
480 | 480 | |
481 | 481 | $button = html_writer::tag('input', '', |
482 | 482 | array('type' => 'button', |
483 | - 'value' => get_string('view_recording_button_import', 'bigbluebuttonbn'), |
|
484 | - 'class' => 'btn btn-secondary', |
|
485 | - 'onclick' => 'window.location=\''.$CFG->wwwroot.'/mod/bigbluebuttonbn/import_view.php?bn='. |
|
486 | - $bbbsession['bigbluebuttonbn']->id.'\'')); |
|
483 | + 'value' => get_string('view_recording_button_import', 'bigbluebuttonbn'), |
|
484 | + 'class' => 'btn btn-secondary', |
|
485 | + 'onclick' => 'window.location=\''.$CFG->wwwroot.'/mod/bigbluebuttonbn/import_view.php?bn='. |
|
486 | + $bbbsession['bigbluebuttonbn']->id.'\'')); |
|
487 | 487 | $output = html_writer::start_tag('br'); |
488 | 488 | $output .= html_writer::tag('span', $button, array('id' => 'import_recording_links_button')); |
489 | 489 | $output .= html_writer::tag('span', '', array('id' => 'import_recording_links_table')); |
@@ -501,7 +501,7 @@ discard block |
||
501 | 501 | return '<h4>'.get_string('view_section_title_presentation', 'bigbluebuttonbn').'</h4>'. |
502 | 502 | ''.$OUTPUT->action_icon($bbbsession['presentation']['url'], $icon, null, array(), false).''. |
503 | 503 | ''.$OUTPUT->action_link($bbbsession['presentation']['url'], |
504 | - $bbbsession['presentation']['name'], null, $attributes).'<br><br>'; |
|
504 | + $bbbsession['presentation']['name'], null, $attributes).'<br><br>'; |
|
505 | 505 | } |
506 | 506 | |
507 | 507 | return ''; |