Example #1
0
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;
}
Example #2
0
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}"));
    }
}