Example #1
0
function JLMS_save_event($option)
{
    $JLMS_CONFIG =& JLMSFactory::getConfig();
    $Itemid = $JLMS_CONFIG->get('Itemid');
    global $my, $JLMS_DB;
    //$course_id     = intval(mosGetParam($_REQUEST, 'id', 0));
    $course_id = $JLMS_CONFIG->get('course_id');
    $start_date = JLMS_dateToDB(mosGetParam($_REQUEST, 'start_date', date('Y-m-d')));
    $end_date = JLMS_dateToDB(mosGetParam($_REQUEST, 'end_date', date('Y-m-d')));
    $agenda_detail = isset($_REQUEST['jlms_agenda_detail']) ? strval($_REQUEST['jlms_agenda_detail']) : '';
    $agenda_detail = get_magic_quotes_gpc() ? stripslashes($agenda_detail) : $agenda_detail;
    $agenda_detail = JLMS_ProcessText_HardFilter($agenda_detail);
    $edit = mosGetParam($_REQUEST, 'edit', '');
    $agenda_id = intval(mosGetParam($_REQUEST, 'agenda_id', 0));
    $agenda_title = isset($_REQUEST['jlms_agenda_title']) ? strval($_REQUEST['jlms_agenda_title']) : '';
    $agenda_title = get_magic_quotes_gpc() ? stripslashes($agenda_title) : $agenda_title;
    $agenda_title = ampReplace(strip_tags($agenda_title));
    $groups = mosGetParam($_REQUEST, 'groups', array(0));
    $is_limited = intval(mosGetParam($_REQUEST, 'is_limited', 0));
    $is_time_related = intval(mosGetParam($_POST, 'is_time_related', ''));
    $days = intval(mosGetParam($_POST, 'days', ''));
    $hours = intval(mosGetParam($_POST, 'hours', ''));
    $mins = intval(mosGetParam($_POST, 'mins', ''));
    if ($is_time_related) {
        $show_period = JLMS_HTML::_('showperiod.getminsvalue', $days, $hours, $mins);
    }
    $JLMS_ACL =& JLMSFactory::getACL();
    $assigned_groups_only = $JLMS_ACL->CheckPermissions('advanced', 'assigned_groups_only');
    if ($assigned_groups_only) {
        $is_limited = 1;
        $groups_where_admin_manager = JLMS_ACL_HELPER::GetAssignedGroups($my->id, $course_id);
        for ($i = 0; $i < count($groups); $i++) {
            if (!in_array($groups[$i], $groups_where_admin_manager)) {
                unset($groups[$i]);
            }
        }
        sort($groups);
    }
    $groups_in_db_arr = array();
    $query = "SELECT groups FROM #__lms_agenda WHERE agenda_id = {$agenda_id} AND course_id = {$course_id}";
    $JLMS_DB->setQuery($query);
    $groups_in_db = $JLMS_DB->LoadResult();
    if ($groups_in_db) {
        $groups_in_db = substr($groups_in_db, 1, strlen($groups_in_db) - 2);
        $groups_in_db_arr = explode('|', $groups_in_db);
        if (count($groups_where_admin_manager)) {
            $groups_in_db_arr = array_diff($groups_in_db_arr, $groups_where_admin_manager);
        }
    }
    $groups_str = '';
    if ($is_limited && (count($groups) && $groups[0] != 0 || count($groups_in_db_arr))) {
        $groups = array_merge($groups, $groups_in_db_arr);
        $razd = '|';
        for ($i = 0; $i < count($groups); $i++) {
            $groups_str .= $razd . $groups[$i];
        }
        $groups_str .= '|';
    } else {
        $groups_str = '';
    }
    //echo $groups_str; die;
    $ag_id = 0;
    if ($course_id && $JLMS_ACL->CheckPermissions('announce', 'manage')) {
        //proverka na korrektnost' end_date
        if (strtotime($end_date) < strtotime($start_date)) {
            $end_date = $start_date;
        }
        if (isset($edit) && $edit == 'yes' && $agenda_id) {
            $query = "SELECT owner_id FROM #__lms_agenda WHERE agenda_id = {$agenda_id} AND course_id = {$course_id}";
            $JLMS_DB->setQuery($query);
            $agenda_owner = $JLMS_DB->LoadResult();
            $proceed_with_edit = true;
            if ($agenda_owner) {
                if ($JLMS_ACL->CheckPermissions('announce', 'only_own') && $agenda_owner != $my->id) {
                    $proceed_with_edit = false;
                } elseif ($JLMS_ACL->CheckPermissions('announce', 'only_own_role') && $JLMS_ACL->GetRole() != $JLMS_ACL->UserSystemRole($JLMS_DB, $agenda_owner)) {
                    $proceed_with_edit = false;
                }
            }
            if ($proceed_with_edit) {
                $set = '';
                if ($is_time_related) {
                    $set = ",  show_period = '" . $show_period . "'";
                }
                $query = "UPDATE `#__lms_agenda` " . " SET title = " . $JLMS_DB->Quote($agenda_title) . ", is_limited = '" . $is_limited . "', groups = '" . $groups_str . "', content = " . $JLMS_DB->Quote($agenda_detail) . ", start_date = '" . $start_date . "', end_date = '" . $end_date . "', is_time_related = '" . $is_time_related . "'" . $set . " WHERE agenda_id = '" . $agenda_id . "' AND course_id = '" . $course_id . "' ";
                $JLMS_DB->setQuery($query);
                $JLMS_DB->query();
                $ag_id = $agenda_id;
            }
        } else {
            $row = new StdClass();
            #$row->id = 0;
            $row->course_id = $course_id;
            $row->owner_id = $my->id;
            $row->is_limited = $is_limited;
            $row->title = $agenda_title;
            $row->groups = $groups_str;
            $row->content = $agenda_detail;
            $row->start_date = $start_date;
            $row->end_date = $end_date;
            $row->is_time_related = $is_time_related;
            $row->show_period = $show_period;
            $JLMS_DB->insertobject('#__lms_agenda', $row);
            $insert_id = $JLMS_DB->insertid();
            $ag_id = $insert_id;
        }
    }
    if ($ag_id) {
        JLMSRedirect(sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=agenda&amp;id={$course_id}&amp;agenda_id=" . $ag_id));
    } else {
        JLMSRedirect(sefRelToAbs("index.php?option={$option}&amp;Itemid={$Itemid}&amp;task=agenda&amp;id={$course_id}"));
    }
}
 function JQ_saveCategory($option, $page, $course_id)
 {
     global $JLMS_DB, $Itemid;
     $row = new mos_JoomQuiz_Cat($JLMS_DB);
     if (!$row->bind($_POST)) {
         exit;
     }
     $row->course_id = $course_id;
     $row->c_category = strval(JLMS_getParam_LowFilter($_POST, 'c_category', ''));
     $row->c_category = JLMS_Process_ContentNames($row->c_category);
     $row->c_instruction = strval(JLMS_getParam_LowFilter($_POST, 'c_instruction', ''));
     $row->c_instruction = JLMS_ProcessText_HardFilter($row->c_instruction);
     if (!$row->check()) {
         exit;
     }
     if (!$row->store()) {
         exit;
     }
     if ($page == 'apply_cat') {
         JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=quizzes&id={$course_id}&page=editA_cat&c_id=" . $row->c_id));
     } else {
         JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=quizzes&id={$course_id}&page=cats"));
     }
 }
function JLMS_saveHW($option)
{
    global $my, $JLMS_DB, $Itemid;
    $course_id = intval(mosGetParam($_REQUEST, 'course_id', 0));
    $id = intval(mosGetParam($_REQUEST, 'id', 0));
    $groups = mosGetParam($_REQUEST, 'groups', array(0));
    $is_limited = intval(mosGetParam($_REQUEST, 'is_limited', 0));
    $JLMS_ACL =& JLMSFactory::getACL();
    $assigned_groups_only = $JLMS_ACL->CheckPermissions('advanced', 'assigned_groups_only');
    //	if ( (JLMS_GetUserType($my->id, $course_id) == 1) && ( ($id && (JLMS_GetHWCourse($id) == $course_id)) || !$id ) ) {
    if ($JLMS_ACL->CheckPermissions('homework', 'manage') && ($id && JLMS_GetHWCourse($id) == $course_id || !$id)) {
        if ($id) {
            $AND_ST = "";
            $oldH = new mos_Joomla_LMS_HomeWork($JLMS_DB);
            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)) {
                    $AND_ST .= "\n AND (is_limited = 0 OR groups LIKE '%|{$groups_where_admin_manager['0']}|%'";
                    for ($i = 1; $i < count($groups_where_admin_manager); $i++) {
                        $AND_ST .= "\n OR groups like '%|{$groups_where_admin_manager[$i]}|%'";
                    }
                    $AND_ST .= "\n OR owner_id = '" . $my->id . "')";
                } else {
                    $AND_ST .= "\n AND (is_limited = 0 OR owner_id = '" . $my->id . "' OR id = 0) AND groups = ''";
                }
            }
            $oldH->addCond($AND_ST);
            $oldH->load($id);
            if (!$oldH->id) {
                JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=homework&id={$course_id}"));
            }
        }
        $row = new mos_Joomla_LMS_HomeWork($JLMS_DB);
        if (!$row->bind($_POST)) {
            echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
            exit;
        }
        $row->post_date = JLMS_dateToDB($row->post_date);
        $row->end_date = JLMS_dateToDB($row->end_date);
        $hw_name = isset($_REQUEST['hw_name']) ? strval($_REQUEST['hw_name']) : 'homework';
        $hw_name = get_magic_quotes_gpc() ? stripslashes($hw_name) : $hw_name;
        $row->hw_name = ampReplace(strip_tags($hw_name));
        $days = intval(mosGetParam($_POST, 'days', ''));
        $hours = intval(mosGetParam($_POST, 'hours', ''));
        $mins = intval(mosGetParam($_POST, 'mins', ''));
        if ($row->is_time_related) {
            $row->show_period = JLMS_HTML::_('showperiod.getminsvalue', $days, $hours, $mins);
        }
        $row->hw_description = strval(JLMS_getParam_LowFilter($_POST, 'hw_description', ''));
        $row->hw_description = JLMS_ProcessText_LowFilter($row->hw_description);
        $row->hw_shortdescription = strval(JLMS_getParam_LowFilter($_POST, 'hw_shortdescription', ''));
        $row->hw_shortdescription = JLMS_ProcessText_HardFilter($row->hw_shortdescription);
        if ($assigned_groups_only) {
            $row->is_limited = 1;
            $groups_where_admin_manager = JLMS_ACL_HELPER::GetAssignedGroups($my->id, $course_id);
            for ($i = 0; $i < count($groups); $i++) {
                if (!in_array($groups[$i], $groups_where_admin_manager)) {
                    unset($groups[$i]);
                }
            }
            sort($groups);
        }
        $groups_in_db_arr = array();
        if ($row->id) {
            $query = "SELECT groups FROM #__lms_homework WHERE id = '" . $row->id . "' AND course_id = '" . $course_id . "'";
            $JLMS_DB->setQuery($query);
            $groups_in_db = $JLMS_DB->LoadResult();
            if ($groups_in_db) {
                $groups_in_db = substr($groups_in_db, 1, strlen($groups_in_db) - 2);
                $groups_in_db_arr = explode('|', $groups_in_db);
                if (isset($groups_where_admin_manager) && count($groups_where_admin_manager)) {
                    $groups_in_db_arr = array_diff($groups_in_db_arr, $groups_where_admin_manager);
                }
                $groups_in_db_arr = array_unique($groups_in_db_arr);
            }
        }
        $groups_str = '';
        if ($row->is_limited && (count($groups) && $groups[0] != 0 || count($groups_in_db_arr))) {
            //$groups = array_merge($groups, $groups_in_db_arr);
            $groups = array_unique($groups);
            $razd = '|';
            for ($i = 0; $i < count($groups); $i++) {
                $groups_str .= $razd . $groups[$i];
            }
            $groups_str .= '|';
        } else {
            $groups_str = '';
        }
        $row->groups = $groups_str;
        if (!$row->id) {
            $row->owner_id = $my->id;
        }
        if (!$row->check()) {
            echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
            exit;
        }
        if (!$row->store()) {
            echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
            exit;
        }
    }
    JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=homework&id={$course_id}"));
}