function JLMS_showChat($course_id, $option) { global $JLMS_DB, $my, $Itemid, $JLMS_CONFIG; $JLMS_ACL =& JLMSFactory::getACL(); if ($JLMS_ACL->CheckPermissions('chat', 'view')) { global $JLMS_CONFIG; $pathway = array(); $pathway[] = array('name' => _JLMS_PATHWAY_HOME, 'link' => sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}"), 'is_home' => true); $pathway[] = array('name' => $JLMS_CONFIG->get('course_name'), 'link' => sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=details_course&id={$course_id}"), 'is_course' => true); $pathway[] = array('name' => _JLMS_TOOLBAR_CHAT, 'link' => sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=chat&id={$course_id}")); JLMSAppendPathWay($pathway); JLMS_ShowHeading(); $group_id = intval(mosGetParam($_REQUEST, 'group_id', 0)); if ($JLMS_ACL->CheckPermissions('chat', 'manage')) { if ($JLMS_CONFIG->get('use_global_groups', 1)) { $query = "SELECT group_chat FROM #__lms_usergroups WHERE course_id = 0 AND id = {$group_id}"; $JLMS_DB->SetQuery($query); $gr_c = $JLMS_DB->LoadResult(); if (!$gr_c) { $group_id = 0; } } else { $query = "SELECT group_chat FROM #__lms_usergroups WHERE course_id = {$course_id} AND id = {$group_id}"; $JLMS_DB->SetQuery($query); $gr_c = $JLMS_DB->LoadResult(); if (!$gr_c) { $group_id = 0; } } } else { if ($JLMS_CONFIG->get('use_global_groups', 1)) { if ($group_id) { $query = "SELECT group_chat FROM #__lms_users_in_global_groups AS uigg, #__lms_usergroups AS ug WHERE uigg.user_id = {$my->id} AND uigg.group_id = {$group_id} AND ug.id = uigg.group_id"; $JLMS_DB->setQuery($query); if (!$JLMS_DB->loadResult()) { $group_id = 0; } } } else { if ($group_id) { $query = "SELECT a.group_id FROM #__lms_users_in_groups as a, #__lms_usergroups as b WHERE a.course_id = {$course_id} AND a.user_id = '" . $my->id . "' AND a.group_id = b.id AND b.course_id = {$course_id} AND b.group_chat = 1"; $JLMS_DB->SetQuery($query); $group_id = $JLMS_DB->LoadResult(); if (!$group_id) { $group_id = 0; } } } } $query = "SHOW COLUMNS FROM `#__lms_chat_history` WHERE Field = 'user_message'"; $JLMS_DB->SetQuery($query); $chat_table = $JLMS_DB->LoadObject(); if (is_object($chat_table) && isset($chat_table->Type)) { if ($chat_table->Type != 'text') { $query = "ALTER TABLE `#__lms_chat_history` CHANGE `user_message` `user_message` TEXT"; $JLMS_DB->SetQuery($query); $JLMS_DB->query(); } } //query (Drop users) $query = "DELETE FROM #__lms_chat_users WHERE user_id = '" . $my->id . "'"; $JLMS_DB->SetQuery($query); $JLMS_DB->query(); $tim_minus_15 = time() - date('Z') - 15 * 60; $query = "DELETE FROM #__lms_chat_users WHERE time_post < '" . date('Y-m-d H:i:s', $tim_minus_15) . "'"; $JLMS_DB->SetQuery($query); $JLMS_DB->query(); //query (Entering chat) $query = "INSERT INTO #__lms_chat_users (course_id, group_id, user_id, time_enter, time_post, chat_option)" . "\n VALUES ('" . $course_id . "', '" . $group_id . "', '" . $my->id . "', '" . gmdate('Y-m-d H:i:s') . "', '" . gmdate('Y-m-d H:i:s') . "', '0')"; $JLMS_DB->SetQuery($query); $JLMS_DB->query(); //tracking global $Track_Object; $Track_Object->UserEnterChat($my->id, $course_id); $query = "SELECT a.username FROM #__users as a, #__lms_chat_users as b" . "\n WHERE a.id = b.user_id AND b.course_id = '" . $course_id . "' AND b.group_id = '" . $group_id . "'" . "\n ORDER BY a.username"; $JLMS_DB->SetQuery($query); $chat_users = $JLMS_DB->LoadObjectList(); $course_chats = array(); $course_chats[] = mosHTML::makeOption(0, _JLMS_CHAT_COURSE_CHAT); if ($JLMS_ACL->CheckPermissions('chat', 'manage')) { if ($JLMS_CONFIG->get('use_global_groups', 1)) { $query = "SELECT ug.id AS value, ug.ug_name AS text" . "\n FROM #__lms_usergroups AS ug, #__lms_users_in_groups AS uig, #__lms_users_in_global_groups AS uigg" . "\n WHERE ug.group_chat = 1 AND uig.course_id = {$course_id} AND uigg.user_id = uig.user_id AND ug.id = uigg.group_id"; $JLMS_DB->setQuery($query); $group_chats = $JLMS_DB->loadObjectList(); for ($i = 0; $i < count($group_chats); $i++) { $group_chats[$i]->text = $group_chats[$i]->text . " (" . _JLMS_CHAT_GROUP_CHAT . ")"; } $course_chats = array_merge($course_chats, $group_chats); } else { $query = "SELECT id as value, ug_name as text FROM #__lms_usergroups WHERE course_id = {$course_id} AND group_chat = 1"; $JLMS_DB->SetQuery($query); $group_chats = $JLMS_DB->loadObjectList(); for ($i = 0; $i < count($group_chats); $i++) { $group_chats[$i]->text = $group_chats[$i]->text . " (" . _JLMS_CHAT_GROUP_CHAT . ")"; } $course_chats = array_merge($course_chats, $group_chats); } } else { if ($JLMS_CONFIG->get('use_global_groups', 1)) { $query = "SELECT ug.id AS value, ug.ug_name AS text" . "\n FROM #__lms_usergroups AS ug, #__lms_users_in_groups AS uig, #__lms_users_in_global_groups AS uigg" . "\n WHERE uig.course_id = {$course_id} AND uigg.user_id = uig.user_id AND ug.id = uigg.group_id AND ug.group_chat = 1 AND uig.user_id = {$my->id}"; $JLMS_DB->setQuery($query); $group_chats = $JLMS_DB->loadObjectList(); for ($i = 0; $i < count($group_chats); $i++) { $group_chats[$i]->text = $group_chats[$i]->text . " (" . _JLMS_CHAT_GROUP_CHAT . ")"; } $course_chats = array_merge($course_chats, $group_chats); } else { $query = "SELECT b.id as value, b.ug_name as text FROM #__lms_users_in_groups as a, #__lms_usergroups as b WHERE a.course_id = {$course_id} AND a.user_id = '" . $my->id . "' AND a.group_id = b.id AND b.course_id = {$course_id} AND b.group_chat = 1"; $JLMS_DB->SetQuery($query); $group_chats = $JLMS_DB->loadObjectList(); for ($i = 0; $i < count($group_chats); $i++) { $group_chats[$i]->text = _JLMS_CHAT_GROUP_CHAT . " (" . $group_chats[$i]->text . ")"; } $course_chats = array_merge($course_chats, $group_chats); } } /*if (JLMS_GetUserType_simple($my->id) == 1) { $query = "SELECT distinct b.* FROM #__lms_courses as b, #__lms_user_courses as a" . "\n WHERE a.course_id = b.id AND a.user_id = '".$my->id."'"; } elseif (JLMS_GetUserType_simple($my->id) == 2) { $query = "SELECT distinct a.* FROM #__lms_courses as a, #__lms_usergroups as b, #__lms_users_in_groups as c" . "\n WHERE a.id = b.course_id AND b.id = c.group_id AND c.user_id = '".$my->id."'"; } $JLMS_DB->SetQuery( $query ); $rows = $JLMS_DB->LoadObjectList();*/ $lists = array(); $javascript = 'onchange="document.chatForm.submit();"'; $lists['course_chats'] = mosHTML::selectList($course_chats, 'group_id', 'class="inputbox" size="1" ' . $javascript, 'value', 'text', $group_id); JLMS_chat_html::showChat($course_id, $group_id, $option, $lists, $chat_users); } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}")); } }