public function getBbbRecordings($meetingId = 0) { $bbb = new BBB($this->salt, $this->url); //if a bbb meeting is selected, get the recordings of that specified meeting, else list all the recordings for all the meetings $meetingQuery = $meetingId ? "WHERE id = " . $meetingId : ''; $db = JFactory::getDbo(); $query = $db->getQuery(true); $query = "SELECT * FROM `#__bigbluebutton_meetings` " . $meetingQuery; $db->setQuery($query); $bbbdata = $db->loadObjectList(); $itsAllGood = true; //Initialize this variable to be json encoded to be passed through the url. $final = array(); if ($meetingId) { $query = $db->getQuery(true); $query = "SELECT * FROM `#__bigbluebutton_meetings` WHERE `id`=" . (int) $meetingId; $db->setQuery($query); $bbbd = $db->loadObject(); $recordingsParams = array('meetingId' => $bbbd->meeting_id); try { $result = $bbb->getRecordingsWithXmlResponseArray($recordingsParams); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; $itsAllGood = false; } if ($itsAllGood == true) { if ($result == null) { echo "Failed to get any response. Maybe we can't contact the BBB server."; } else { if ($result['returncode'] == 'SUCCESS') { foreach ((array) $result as $data) { $item = array(); $item['recordId'] = (string) $data['recordId'][0]; $item['playbackFormatUrl'] = (string) $data['playbackFormatUrl'][0]; $item['meetingId'] = (string) $data['meetingId'][0]; $item['startTime'] = (int) $data['startTime'][0]; $item['endTime'] = (int) $data['endTime'][0]; $final[] = $item; } } else { echo "<p>Failed to get meeting info.</p>"; } } } } else { foreach ($bbbdata as $mdata) { $recordingsParams = array('meetingId' => $mdata->meeting_id); try { $result = $bbb->getRecordingsWithXmlResponseArray($recordingsParams); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; $itsAllGood = false; } if ($itsAllGood == true) { if ($result == null) { echo "Failed to get any response. Maybe we can't contact the BBB server."; } else { if ($result['returncode'] == 'SUCCESS') { foreach ((array) $result as $data) { $item = array(); $item['recordId'] = (string) $data['recordId'][0]; $item['playbackFormatUrl'] = (string) $data['playbackFormatUrl'][0]; $item['meetingId'] = (string) $data['meetingId'][0]; $item['startTime'] = (int) $data['startTime'][0]; $item['endTime'] = (int) $data['endTime'][0]; $final[] = $item; } } else { echo "<p>Failed to get meeting info.</p>"; } } } } } foreach ($final as $finalData) { if (trim($finalData['recordId']) != '') { $query = $db->getQuery(true); $query = "SELECT id FROM `#__bigbluebutton_recordings` WHERE `recording_id` = '" . $finalData['recordId'] . "'"; $db->setQuery($query); $isRecordExist = $db->loadResult(); if (!$isRecordExist) { $query = $db->getQuery(true); $query = "SELECT meetingName, meeting_description FROM `#__bigbluebutton_meetings` WHERE `meeting_id` = '" . $finalData['meetingId'] . "'"; $db->setQuery($query); $bbbNameDesc = $db->loadObject(); $recordingDetails = new stdClass(); $recordingDetails->meeting_id = $finalData['meetingId']; $recordingDetails->recording_id = $finalData['recordId']; $recordingDetails->recording_title = $bbbNameDesc->meetingName; $recordingDetails->recording_description = $bbbNameDesc->meeting_description; $recordingDetails->recording_url = $finalData['playbackFormatUrl']; $recordingDetails->start_time = $finalData['startTime']; $recordingDetails->end_time = $finalData['endTime']; // Insert the objects into the database. $res = $db->insertObject('#__bigbluebutton_recordings', $recordingDetails); $thisId = $db->insertid(); } } } return $final; }