1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- require_once '../../main/inc/global.inc.php';
- require_once 'bbb.lib.php';
- $cid = api_get_real_course_id();
- $ccode = api_get_course_id();
- $meeting_name = api_get_course_setting('big_blue_button_meeting_name',$ccode);
- if (empty($meeting_name) or $meeting_name==-1) { $meeting_name = $ccode; }
- $meeting_att_pw = api_get_course_setting('big_blue_button_meeting_attendee_pw',$ccode);
- if (empty($meeting_att_pw) or $meeting_att_pw==-1) { $meeting_att_pw = $ccode; }
- $meeting_mod_pw = api_get_course_setting('big_blue_button_meeting_moderator_pw',$ccode);
- if (empty($meeting_mod_pw) or $meeting_mod_pw==-1) { $meeting_mod_pw = $ccode.'mod'; }
- $meeting_wel_ms = api_get_course_setting('big_blue_button_meeting_welcome_message',$ccode);
- if (empty($meeting_wel_ms) or $meeting_wel_ms==-1) { $meeting_wel_ms = ''; }
- $settings = api_get_settings('Extra','list',api_get_current_access_url_id());
- $bbb_settings = array();
- foreach ($settings as $setting) {
- if (substr($setting['variable'],0,4)==='bbb_') {
- $bbb_settings[$setting['variable']] = $setting['selected_value'];
- }
- }
- $bbb_plugin = $bbb_settings['bbb_plugin'] === 'true';
- $bbb_host = $bbb_settings['bbb_plugin_host'];
- $bbb_salt = $bbb_settings['bbb_plugin_salt'];
- if (!$bbb_plugin) {
-
- header('location: '.api_get_path(WEB_COURSE_PATH).'/'.$ccode);
- }
- $teacher = api_is_course_admin() || api_is_coach() || api_is_platform_admin();
- $user_info = api_get_user_info(api_get_user_id());
- $full_user_name = api_get_person_name($user_info['firstname'],$user_info['lastname']);
- $user_id = api_get_user_id();
- $is_running = wc_isMeetingRunning($bbb_host,$bbb_salt,$meeting_name);
- if ($is_running == 'true') {
-
- header('location: '.wc_joinMeetingURL($bbb_host,$bbb_salt,$full_user_name,$meeting_name,($teacher?$meeting_mod_pw:$meeting_att_pw),$user_id));
- exit;
- } else {
-
-
- $meetings = wc_getRunningMeetings($bbb_host,$bbb_salt);
- $found = false;
- foreach ($meetings as $meeting) {
-
- if ($meeting['meetingID'] == $meeting_name) {
- $meeting_info = wc_getMeetingInfo($bbb_host,$bbb_salt,$meeting_name,$meeting_mod_pw);
- error_log('Found passive meeting created '.($meeting_info['createTime']).' seconds ago with '.count($meeting_info['attendees']).' attendees - joining as '.($teacher?'teacher':'student'));
-
-
- if ($teacher or count($meeting_info['attendees'])>0) {
- header('location: '.wc_joinMeetingURL($bbb_host,$bbb_salt,$full_user_name,$meeting_name,($teacher?$meeting_mod_pw:$meeting_att_pw),$user_id));
- exit;
- }
- }
- }
-
-
- if ($teacher) {
-
-
- wc_createMeeting($bbb_host,$bbb_salt,$meeting_name,$meeting_name,$meeting_att_pw,$meeting_mod_pw,$meeting_wel_ms,api_get_path(WEB_COURSE_PATH).'/'.$ccode);
- header('location: '.wc_joinMeetingURL($bbb_host,$bbb_salt,$full_user_name,$meeting_name,($teacher?$meeting_mod_pw:$meeting_att_pw),$user_id));
- exit;
- } else {
-
-
-
- header('location: '.api_get_path(WEB_COURSE_PATH).'/'.$ccode);
- exit;
- }
- }
|