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}&Itemid={$Itemid}&task=agenda&id={$course_id}&agenda_id=" . $ag_id)); } else { JLMSRedirect(sefRelToAbs("index.php?option={$option}&Itemid={$Itemid}&task=agenda&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}")); }