123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 |
- <?php
- function bigbluebutton_insert_record($table,$object) {
-
- $table = Database::get_main_table('plugin_bbb');
- $sql = "INSERT INTO $table (course_id, name, meeting_name, meeting_id, attendee_pw, moderator_pw, auto_login, new_window, welcome_msg)" .
- "VALUES (" .
- intval($object->course) .", " .
- "'".Database::escape_string($object->name)."'," .
- "'".Database::escape_string($object->meetingname)."'," .
- "'".Database::escape_string($object->meetingid)."'," .
- "'".Database::escape_string($object->attendeepw)."'," .
- "'".Database::escape_string($object->moderatorpw)."'," .
- "'".Database::escape_string($object->autologin)."'," .
- "'".Database::escape_string($object->newwindow)."'," .
- "'".Database::escape_string($object->welcomemsg)."'" .
- ")";
- Database::query($sql);
- return Database::insert_id();
- }
- function bigbluebutton_update_record($table, $object) {
-
- $sql = "UPDATE $table (course_id, name, meeting_name, meeting_id, attendee_pw, moderator_pw, auto_login, new_window, welcome_msg)" .
- " SET course_id = ".intval($object->course) .", " .
- " name = '".Database::escape_string($object->name)."'," .
- " meeting_name = '".Database::escape_string($object->meetingname)."'," .
- " meeting_id = '".Database::escape_string($object->meetingid)."'," .
- " attendee_pw = '".Database::escape_string($object->attendeepw)."'," .
- " moderator_pw = '".Database::escape_string($object->moderatorpw)."'," .
- " auto_login = '".Database::escape_string($object->autologin)."'," .
- " new_window = '".Database::escape_string($object->newwindow)."'," .
- " welcome_msg = '".Database::escape_string($object->welcomemsg)."'," .
- " WHERE id = " .intval($object->id).
- ")";
- Database::query($sql);
- return $oject->id;
- }
- function bigbluebutton_get_record($table,$field,$id) {
-
- $table = Database::get_main_table('plugin_bbb');
- $sql = "SELECT * FROM $table WHERE id = ".intval($id);
- $res = Database::query($sql);
- if (Database::num_rows($res)>0) {
- $row = Database::fetch_assoc($res);
- $room = null;
- $room->id = $id;
- $room->course = $row['course_id'];
- $room->name = $row['name'];
- $room->meetingname = $row['meeting_name'];
- $room->meetingid = $row['meeting_id'];
- $room->attendeepw = $row['attendee_pw'];
- $room->moderatorpw = $row['moderator_pw'];
- $room->autologin = $row['auto_login'];
- $room->newwindow = $row['new_window'];
- $room->welcomemsg = $row['welcome_msg'];
- return $room;
- } else {
- return null;
- }
- }
- function bigbluebutton_delete_records($table,$field,$id) {
-
- $table = Database::get_main_table('plugin_bbb');
- $sql = "DELETE FROM $table WHERE id = ".intval($id);
- }
- function bigbluebutton_add_event($event) {
-
- }
- function bigbluebutton_add_instance($bigbluebutton) {
- $bigbluebutton->timemodified = time();
- if ($returnid = bigbluebutton_insert_record('bigbluebutton', $bigbluebutton)) {
- $event = NULL;
- $event->courseid = $bigbluebutton->course;
- $event->name = $bigbluebutton->name;
- $event->meetingname = $bigbluebutton->meetingname;
- $event->meetingid = $bigbluebutton->meetingid;
- $event->attendeepw = $bigbluebutton->attendeepw;
- $event->moderatorpw = $bigbluebutton->moderatorpw;
- $event->autologin = $bigbluebutton->autologin;
- $event->newwindow = $bigbluebutton->newwindow;
- $event->welcomemsg = $bigbluebutton->welcomemsg;
- bigbluebutton_add_event($event);
- }
- return $returnid;
- }
- function bigbluebutton_update_instance($bigbluebutton) {
- $bigbluebutton->timemodified = time();
- $bigbluebutton->id = $bigbluebutton->instance;
- if ($returnid = bigbluebutton_update_record('bigbluebutton', $bigbluebutton)) {
-
- }
- return $returnid;
- }
- function bigbluebutton_delete_instance($id) {
- if (! $bigbluebutton = bigbluebutton_get_record('bigbluebutton', 'id', $id)) {
- return false;
- }
- $result = true;
-
- if (! bigbluebutton_delete_records('bigbluebutton', 'id', $bigbluebutton->id)) {
- $result = false;
- }
- return $result;
- }
- function wc_isMeetingRunningURL($myIP,$mySecuritySalt,$myMeetingID) {
- $checkAPI = "/bigbluebutton/api/isMeetingRunning?";
- $queryStr = "meetingID=".$myMeetingID;
- $checksum = sha1('isMeetingRunning'.$queryStr.$mySecuritySalt);
- $secQueryURL = "http://".$myIP.$checkAPI.$queryStr."&checksum=".$checksum;
- return $secQueryURL;
- }
- function wc_isMeetingRunning($myIP,$mySecuritySalt,$myMeetingID) {
- $secQueryURL = wc_isMeetingRunningURL($myIP,$mySecuritySalt,$myMeetingID);
- $myResponse = @file_get_contents($secQueryURL);
- if ($myResponse === false) { return false;}
- $doc = new DOMDocument();
- $doc->loadXML($myResponse);
- $returnCodeNode = $doc->getElementsByTagName("returncode");
- $returnCode = $returnCodeNode->item(0)->nodeValue;
- $runningNode = $doc->getElementsByTagName("running");
- $isRunning = $runningNode->item(0)->nodeValue;
- return $isRunning;
- }
- function wc_createMeeting($myIP,$mySecuritySalt,$myMeetingName,$myMeetingID,$myAttendeePW,$myModeratorPW,$myWelcomeMsg,$myLogoutURL) {
- $createAPI = "/bigbluebutton/api/create?";
- $myVoiceBridge = rand(70000,79999);
- $queryStr = "name=".urlencode($myMeetingName)."&meetingID=".urlencode($myMeetingID)."&attendeePW=".urlencode($myAttendeePW)."&moderatorPW=".urlencode($myModeratorPW)."&voiceBridge=".$myVoiceBridge."&welcome=".urlencode($myWelcomeMsg)."&logoutURL=".urlencode($myLogoutURL);
- $checksum = sha1('create'.$queryStr.$mySecuritySalt);
- $secQueryURL = "http://".$myIP.$createAPI.$queryStr."&checksum=".$checksum;
- $myResponse = @file_get_contents($secQueryURL);
- if ($myResponse === false) { return false; }
- $doc= new DOMDocument();
- $doc->loadXML($myResponse);
- $returnCodeNode = $doc->getElementsByTagName("returncode");
- $returnCode = $returnCodeNode->item(0)->nodeValue;
- if ($returnCode=="SUCCESS") {
- return $returnCode;
- } else {
- $messageKeyNode = $doc->getElementsByTagName("messageKey");
- $messageKey = $messageKeyNode->item(0)->nodeValue;
- return $messageKey;
- }
- }
- function wc_joinMeetingURL($myIP,$mySecuritySalt,$myName,$myMeetingID,$myPassword,$userID) {
- $joinAPI = "/bigbluebutton/api/join?";
- $queryStr = "fullName=".urlencode($myName)."&meetingID=".urlencode($myMeetingID)."&password=".urlencode($myPassword)."&userID=".$userID;
- $checksum = sha1('join'.$queryStr.$mySecuritySalt);
- $createStr = "http://".$myIP.$joinAPI.$queryStr."&checksum=".$checksum;
-
- return $createStr;
- }
- function wc_endMeeting($myIP,$mySecuritySalt,$myMeetingID,$myModeratorPW) {
- $endAPI = "/bigbluebutton/api/end?";
- $myVoiceBridge = rand(70000,79999);
- $queryStr = "meetingID=".$myMeetingID."&moderatorPW=".$myModeratorPW."&voiceBridge=".$myVoiceBridge;
- $checksum = sha1('create'.$queryStr.$mySecuritySalt);
- $secQueryURL = "http://".$myIP.$endAPI.$queryStr."&checksum=".$checksum;
- $myResponse = @file_get_contents($secQueryURL);
- if ($myResponse === false) { return false; }
- $doc= new DOMDocument();
- $doc->loadXML($myResponse);
- $returnCodeNode = $doc->getElementsByTagName("returncode");
- $returnCode = $returnCodeNode->item(0)->nodeValue;
- if ($returnCode=="SUCCESS") {
- return $returnCode;
- } else {
- $messageKeyNode = $doc->getElementsByTagName("messageKey");
- $messageKey = $messageKeyNode->item(0)->nodeValue;
- return $messageKey;
- }
- }
- function wc_listAttendees() {
- return false;
- }
- function wc_getMeetingInfo($myIP,$mySecuritySalt,$meetingID,$modPW) {
- $checkAPI = "/bigbluebutton/api/getMeetingInfo?";
- $queryStr = 'meetingID='.$meetingID.'&password='.$modPW;
- $checksum = sha1('getMeetingInfo'.$queryStr.$mySecuritySalt);
- $secQueryURL = "http://".$myIP.$checkAPI.$queryStr."&checksum=".$checksum;
- $myResponse = @file_get_contents($secQueryURL);
- if ($myResponse === false) { return false;}
- $doc = new DOMDocument();
- $doc->loadXML($myResponse);
- $returnCodeNode = $doc->getElementsByTagName("returncode");
- $returnCode = $returnCodeNode->item(0)->nodeValue;
- $createTimeNode = $doc->getElementsByTagName("createTime");
- $createTime = $createTimeNode->item(0)->nodeValue;
- $runningNode = $doc->getElementsByTagName("running");
- $running = $runningNode->item(0)->nodeValue;
- $attendeesNode = $doc->getElementsByTagName("attendee");
- $attendees = array();
- foreach ($attendeesNode as $attendeeNode) {
- $attendee = array();
- if ($attendeeNode->childNodes->length) {
- foreach ($attendeeNode->childNodes as $i) {
-
- $attendee[$i->nodeName] = $i->nodeValue;
- }
- }
- $attendees[] = $attendee;
- }
- $info = array('returnCode'=>$returnCode,'createTime'=>$createTime,'attendees'=>$attendees,'running'=>$running);
- return $info;
- }
- function wc_currentPageURL() {
- $isHTTPS = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on");
- $port = (isset($_SERVER["SERVER_PORT"]) && ((!$isHTTPS && $_SERVER["SERVER_PORT"] != "80") || ($isHTTPS && $_SERVER["SERVER_PORT"] != "443")));
- $port = ($port) ? ':'.$_SERVER["SERVER_PORT"] : '';
- $pageURL = ($isHTTPS ? 'https://' : 'http://').$_SERVER["SERVER_NAME"].$port.$_SERVER["REQUEST_URI"];
- return $pageURL;
- }
- function wc_currentDomain() {
- $currentDomain = $_SERVER["SERVER_NAME"];
- return $currentDomain;
- }
- function wc_needUpgrade() {
- $returnValue = false;
- $installedVersion = "20100805";
- $availableVersion = dc_getVersion();
- if ((int)$installedVersion < (int)$availableVersion) {
- $returnValue = true;
- }
- return $returnValue;
- }
- function wc_getRunningMeetings($myIP,$mySecuritySalt) {
- $checkAPI = "/bigbluebutton/api/getMeetings?";
- $queryStr = '';
- $checksum = sha1('getMeetings'.$queryStr.$mySecuritySalt);
- $secQueryURL = "http://".$myIP.$checkAPI.$queryStr."&checksum=".$checksum;
- $myResponse = @file_get_contents($secQueryURL);
- if ($myResponse === false) { return false;}
- $doc = new DOMDocument();
- $doc->loadXML($myResponse);
- $returnCodeNode = $doc->getElementsByTagName("returncode");
- $returnCode = $returnCodeNode->item(0)->nodeValue;
- $meetingsNode = $doc->getElementsByTagName("meeting");
- $meetings = array();
- foreach ($meetingsNode as $meetingNode) {
- $meeting = array();
- if ($meetingNode->childNodes->length) {
- foreach ($meetingNode->childNodes as $i) {
-
- $meeting[$i->nodeName] = $i->nodeValue;
- }
- }
- $meetings[] = $meeting;
- }
- return $meetings;
- }
|