// Moodle event logger: Create an event for recording unpublished if (isset($bigbluebuttonbn)) { bigbluebuttonbn_event_log(BIGBLUEBUTTON_EVENT_RECORDING_UNPUBLISHED, $bigbluebuttonbn, $context, $cm); } $callback_response['status'] = "true"; $callback_response_data = json_encode($callback_response); echo "{$params['callback']}({$callback_response_data});"; } else { error_log("ERROR: User not authorized to execute unpublish command"); header("HTTP/1.0 401 Unauthorized. User not authorized to execute unpublish command"); } break; case 'recording_delete': if ($bbbsession['managerecordings']) { //Retrieve the array of imported recordings $recordings_imported = bigbluebuttonbn_getRecordingsImportedArray($bbbsession['course']->id, isset($bbbsession['bigbluebuttonbn']) ? $bbbsession['bigbluebuttonbn']->id : NULL); $recordings_indexed = bigbluebuttonbn_index_recordings($recordings_imported); if (isset($recordings_indexed[$params['id']])) { // Execute unpublish on imported recording link bigbluebuttonbn_bbb_broker_do_delete_recording_imported($params['id'], $bbbsession['course']->id, $bbbsession['bigbluebuttonbn']->id); } else { // As the recordingid was not identified as imported recording link, execute delete on a real recording // First: Delete imported links associated to the recording $recordings_imported_all = bigbluebuttonbn_getRecordingsImportedAllInstances($params['id']); if (count($recordings_imported_all) > 0) { foreach ($recordings_imported_all as $key => $record) { // Execute delete $DB->delete_records("bigbluebuttonbn_logs", array('id' => $key)); } } // Second: Execute the real delete
function bigbluebuttonbn_import_exlcude_recordings_already_imported($courseID, $bigbluebuttonbnID, $recordings) { $recordings_already_imported = bigbluebuttonbn_getRecordingsImportedArray($courseID, $bigbluebuttonbnID); $recordings_already_imported_indexed = bigbluebuttonbn_index_recordings($recordings_already_imported); foreach ($recordings as $key => $recording) { if (isset($recordings_already_imported_indexed[$recording['recordID']])) { unset($recordings[$key]); } } return $recordings; }
function bigbluebuttonbn_view_recordings($bbbsession) { global $CFG; if (isset($bbbsession['record']) && $bbbsession['record']) { $output = html_writer::tag('h4', get_string('view_section_title_recordings', 'bigbluebuttonbn')); $meetingID = ''; $results = bigbluebuttonbn_getRecordedMeetings($bbbsession['course']->id, $bbbsession['bigbluebuttonbn']->id); if ($results) { //Eliminates duplicates $mIDs = array(); foreach ($results as $result) { $mIDs[$result->meetingid] = $result->meetingid; } //Generates the meetingID string foreach ($mIDs as $mID) { if (strlen($meetingID) > 0) { $meetingID .= ','; } $meetingID .= $mID; } } // Get actual recordings if ($meetingID != '') { $recordings = bigbluebuttonbn_getRecordingsArray($meetingID, $bbbsession['endpoint'], $bbbsession['shared_secret']); } else { $recordings = array(); } // Get recording links $recordings_imported = bigbluebuttonbn_getRecordingsImportedArray($bbbsession['course']->id, $bbbsession['bigbluebuttonbn']->id); // Merge the recordings $recordings = array_merge($recordings, $recordings_imported); // Render the table $output .= bigbluebutton_output_recording_table($bbbsession, $recordings) . "\n"; if ($bbbsession['managerecordings'] && bigbluebuttonbn_get_cfg_importrecordings_enabled()) { $button_import_recordings = html_writer::tag('input', '', array('type' => 'button', 'value' => get_string('view_recording_button_import', 'bigbluebuttonbn'), 'onclick' => 'window.location=\'' . $CFG->wwwroot . '/mod/bigbluebuttonbn/import_view.php?bn=' . $bbbsession['bigbluebuttonbn']->id . '\'')); $output .= html_writer::start_tag('br'); $output .= html_writer::tag('span', $button_import_recordings, ['id' => "import_recording_links_button"]); $output .= html_writer::tag('span', '', ['id' => "import_recording_links_table"]); } echo $output; } }