function my_homeworks($course_id, $hp_items, $user_id) { global $JLMS_DB; if (!$course_id) { return array(); } $my_hw = array(); $JLMS_ACL =& JLMSFactory::getACL(); $assigned_groups_only = $JLMS_ACL->CheckPermissions('advanced', 'assigned_groups_only'); $members = "'0'"; $where = ''; if ($JLMS_ACL->_role_type == 2 || $JLMS_ACL->_role_type == 3 || $JLMS_ACL->_role_type == 4) { if ($assigned_groups_only) { $groups_where_admin_manager = JLMS_ACL_HELPER::GetAssignedGroups($user_id); $groups_where_isset_user = JLMS_ACL_HELPER::GetUserGlobalGroup($user_id); $groups_where_admin_manager = array_merge($groups_where_admin_manager, $groups_where_isset_user); if (count($groups_where_admin_manager)) { $where .= "\n AND (is_limited = 0 OR `groups` LIKE '%|{$groups_where_admin_manager['0']}|%'"; for ($i = 1; $i < count($groups_where_admin_manager); $i++) { $where .= "\n OR `groups` like '%|{$groups_where_admin_manager[$i]}|%'"; } $where .= "\n OR a.owner_id = '" . $user_id . "')"; } else { $where .= "\n AND (is_limited = 0 OR a.owner_id = '" . $user_id . "' OR a.id = 0) AND groups = ''"; } } } else { if ($JLMS_ACL->_role_type < 2) { $query = "select a.group_id FROM #__lms_users_in_global_groups as a WHERE a.user_id = '" . $user_id . "' AND a.subgroup1_id = 0 AND a.group_id > 0"; $JLMS_DB->setQuery($query); $temp1 = $JLMS_DB->loadResultArray(); $query = "select subgroup1_id FROM #__lms_users_in_global_groups WHERE user_id = '" . $user_id . "' AND subgroup1_id > 0"; $JLMS_DB->setQuery($query); $temp2 = $JLMS_DB->loadResultArray(); $group_where_isset_user = array_merge($temp1, $temp2); $where .= "\n AND (a.is_limited = 0"; if (isset($group_where_isset_user) && count($group_where_isset_user)) { $where .= "\n OR (a.is_limited = 1" . "\n AND (a.groups LIKE '%|{$group_where_isset_user['0']}|%'"; for ($i = 1; $i < count($group_where_isset_user); $i++) { $where .= "\n OR a.groups like '%|{$group_where_isset_user[$i]}|%'"; } $where .= "\n )))"; } else { $where .= "\n )"; } } } $query = "SELECT a.*, d.hw_status, c.user_id as stu_id, e.user_id as teach_id" . "\n FROM (#__lms_homework as a, #__lms_courses as b)" . "\n LEFT JOIN #__lms_users_in_groups as c ON c.user_id = '" . $user_id . "' AND c.course_id = b.id" . "\n LEFT JOIN #__lms_homework_results as d ON d.course_id = b.id AND d.user_id = " . $user_id . " AND d.hw_id = a.id" . "\n LEFT JOIN #__lms_user_courses as e ON e.course_id = b.id AND e.user_id = '" . $user_id . "'" . "\n WHERE (ISNULL(d.hw_status) OR d.hw_status = 0)" . "\n AND a.course_id IN ({$course_id})" . "\n AND a.course_id = b.id AND a.end_date >= '" . date('Y-m-d', time()) . "'" . $where . "\n LIMIT 0, {$hp_items}"; $JLMS_DB->SetQuery($query); $my_hw = $JLMS_DB->LoadObjectList(); if ($JLMS_ACL->_role_type < 2) { $my_hw = filterByShowPeriod($my_hw); } return $my_hw; }
function JLMS_show_calendar($id, $option) { $JLMS_CONFIG =& JLMSFactory::getConfig(); $Itemid = $JLMS_CONFIG->get('Itemid'); $db =& JFactory::getDbo(); $user = JLMSFactory::getUser(); $my_id = $user->get('id'); $JLMS_ACL =& JLMSFactory::getACL(); $assigned_groups_only = $JLMS_ACL->CheckPermissions('advanced', 'assigned_groups_only'); $view_all_course_categories = $JLMS_ACL->CheckPermissions('advanced', 'view_all_course_categories'); //show top menu JLMS_agenda_html::show_head_menu($id, $option); //select all events if ($id) { $course_id = array($id); } else { $course_id = JLMS_GetUserCourses_IDs($my_id); if (!is_array($course_id) || empty($course_id)) { $course_id = array(0); } } //opredeliaem type usera $mode = mosGetParam($_REQUEST, 'mode', ''); $sort = mosGetParam($_REQUEST, 'jlms_agenda_order', 'desc'); $filter = mosGetParam($_REQUEST, 'jlms_agenda_filter', ''); $where = ''; switch ($filter) { case 'current': $where .= "\n AND end_date >= '" . date('Y-m-d') . "' AND start_date <= '" . date('Y-m-d') . "'"; break; case 'upcoming': $where .= "\n AND start_date > '" . date('Y-m-d') . "'"; break; } $course_id = implode(',', $course_id); if ($mode != 'add_avent' || $mode != 'edit_event') { $members = "'0'"; if ($JLMS_ACL->_role_type == 2 || $JLMS_ACL->_role_type == 3 || $JLMS_ACL->_role_type == 4) { if ($assigned_groups_only) { $groups_where_admin_manager = JLMS_ACL_HELPER::GetAssignedGroups($my_id, $id); $groups_where_isset_user = JLMS_ACL_HELPER::GetUserGlobalGroup($my_id, $id); $groups_where_admin_manager = array_merge($groups_where_admin_manager, $groups_where_isset_user); if (count($groups_where_admin_manager)) { $where .= "\n AND (is_limited = 0 OR `groups` LIKE '%|{$groups_where_admin_manager['0']}|%'"; for ($i = 1; $i < count($groups_where_admin_manager); $i++) { $where .= "\n OR `groups` like '%|{$groups_where_admin_manager[$i]}|%'"; } $where .= "\n OR owner_id = '" . $my_id . "')"; } else { $where .= "\n AND (is_limited = 0 OR owner_id = '" . $my_id . "' OR agenda_id = 0) AND groups = ''"; } } } elseif ($JLMS_ACL->_role_type < 2) { $query = "select a.group_id FROM #__lms_users_in_global_groups as a WHERE a.user_id = '" . $my_id . "' AND a.subgroup1_id = 0 AND a.group_id > 0"; $db->setQuery($query); $temp1 = $db->loadResultArray(); $query = "select subgroup1_id FROM #__lms_users_in_global_groups WHERE user_id = '" . $my_id . "' AND subgroup1_id > 0"; $db->setQuery($query); $temp2 = $db->loadResultArray(); $group_where_isset_user = array_merge($temp1, $temp2); if (count($group_where_isset_user)) { $where .= "\n AND (( `groups` <> '' AND `groups` IS NOT NULL AND (`groups` LIKE '%|{$group_where_isset_user['0']}|%'"; for ($i = 1; $i < count($group_where_isset_user); $i++) { $where .= "\n OR `groups` like '%|{$group_where_isset_user[$i]}|%'"; } $where .= "\n )) OR (is_limited = 0 AND (`groups` = '' OR `groups` IS NULL)))"; } } $query = "SELECT * FROM #__lms_agenda WHERE course_id IN ({$course_id})" . $where . "\n ORDER BY start_date "; $db->setQuery($query); $rows = $db->LoadObjectList(); $lms_titles_cache =& JLMSFactory::getTitles(); $lms_titles_cache->setArray('agenda', $rows, 'agenda_id', 'title'); if ($JLMS_ACL->_role_type < 2) { $rows = filterByShowPeriod($rows); } } //select date (if no, select current date) $cal_date = false; if (isset($_REQUEST['cal_date']) && $_REQUEST['cal_date'] != '' && strtotime($_REQUEST['cal_date']) != -1) { $cal_date = $_REQUEST['cal_date']; } else { if (isset($_REQUEST['date']) && $_REQUEST['date'] != '' && strtotime($_REQUEST['date']) != -1) { $cal_date = $_REQUEST['date']; } } if ($cal_date) { $now_date = JLMS_dateToDB($cal_date); $strDate = $now_date; $isValid = false; //proverka pravilnosti date $dateArr = getdate(strtotime($now_date)); $y = $dateArr['year']; $m = $dateArr['mon']; $d = $dateArr['mday']; $isValid = checkdate($m, $d, $y); if (!$isValid) { $now_date = date('Y-m-d'); } } else { $now_date = date('Y-m-d'); } $date = strtotime($now_date); if ($id && $JLMS_ACL->CheckPermissions('announce', 'view')) { switch ($mode) { case 'view_month': JLMS_agenda_html::show_calendar_month($id, $option, $rows, $date); break; case 'view_week': JLMS_agenda_html::show_calendar_week($id, $option, $rows, $date); break; case 'view_day': JLMS_agenda_html::show_calendar_day($id, $option, $rows, $date); break; case 'add_event': $JLMS_ACL =& JLMSFactory::getACL(); global $JLMS_CONFIG; $id = $JLMS_CONFIG->get('course_id'); if ($id && $JLMS_ACL->CheckPermissions('announce', 'manage')) { $lists['groups'] = JLMSmultiselect(array(), true, $id); if ($assigned_groups_only) { $lists['is_limited'] = mosHTML::yesnoRadioList('is_limited', 'disabled="disabled" class="inputbox" ', 1); } else { $lists['is_limited'] = mosHTML::yesnoRadioList('is_limited', 'class="inputbox" ', 0); } JLMS_agenda_html::show_add_event($id, $option, $agenda_item = '', $lists); } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=agenda&id={$id}")); } break; case 'cancel_agenda': JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=agenda&id={$id}")); break; case 'event_save': JLMS_save_event($option); break; case 'edit': JLMS_edit_event($option, $id); break; case 'delete': JLMS_delete_event($option, $id); break; default: show_agenda_items($id, $option, $rows, $date, $sort); break; } } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=details_course&id={$id}")); } }