function clearAllLogs() { //$sql = "DELETE FROM module_chat WHERE 1"; eF_deleteTableData("module_chat", "1"); //echo _CHAT_CHAT_HISTORY_SUCCESSFULY_DELETED; echo 'Chat history successfuly deleted'; }
public function getModule() { // Get smarty variable $smarty = $this->getSmartyVar(); if (isset($_GET['delete_faq']) && eF_checkParameter($_GET['delete_faq'], 'id')) { eF_deleteTableData("module_faq", "id=" . $_GET['delete_faq']); eF_redirect("" . $this->moduleBaseUrl . "&message=" . urlencode(_FAQ_SUCCESFULLYDELETEDFAQENTRY) . "&message_type=success"); } else { if (isset($_GET['add_faq']) || isset($_GET['edit_faq']) && eF_checkParameter($_GET['edit_faq'], 'id')) { $load_editor = true; //TODO $form = new HTML_QuickForm("faq_entry_form", "post", $_SERVER['REQUEST_URI'], "", null, true); $form->registerRule('checkParameter', 'callback', 'eF_checkParameter'); //Register this rule for checking user input with our function, eF_checkParameter $form->addElement('textarea', 'question', null, 'class = "simpleEditor" style = "width:100%;height:5em;"'); $form->addElement('textarea', 'answer', null, 'class = "simpleEditor" style = "width:100%;height:25em;"'); $currentLesson = $this->getCurrentLesson(); $units = eF_getTableDataFlat("content", "id, name", "lessons_ID = " . $currentLesson->lesson['id']); //$units['id'] = array_merge(array("0"), $units['id']); //$units['name'] = array_merge(array(_FAQ_GENERAL_LESSON), $units['name']); sizeof($units) > 0 ? $units = array(0 => _FAQ_GENERAL_LESSON) + array_combine($units['id'], $units['name']) : ($units = array("0" => _FAQ_GENERAL_LESSON)); $form->addElement('select', 'related_content', _CONTENT, $units, 'class = "inputSelectLong"'); $form->addElement('submit', 'submit_faq', _SUBMIT, 'class = "flatButton"'); if (isset($_GET['edit_faq'])) { $faq_entry = eF_getTableData("module_faq", "*", "id=" . $_GET['edit_faq']); $form->setDefaults(array('related_content' => $faq_entry[0]['unit_ID'], 'question' => $faq_entry[0]['question'], 'answer' => $faq_entry[0]['answer'])); } if ($form->isSubmitted() && $form->validate()) { $fields = array('lessons_ID' => $_SESSION['s_lessons_ID'], 'unit_ID' => $form->exportValue('related_content'), 'question' => $form->exportValue('question'), 'answer' => $form->exportValue('answer')); if (isset($_GET['edit_faq'])) { if (eF_updateTableData("module_faq", $fields, "id=" . $_GET['edit_faq'])) { eF_redirect("" . $this->moduleBaseUrl . "&message=" . urlencode(_FAQ_SUCCESFULLYUPDATEDFAQENTRY) . "&message_type=success"); } else { $this->setMessageVar(_FAQ_PROBLEMUPDATINGFAQENTRY, 'failure'); } } else { if (eF_insertTableData("module_faq", $fields)) { eF_redirect("" . $this->moduleBaseUrl . "&message=" . urlencode(_FAQ_SUCCESFULLYINSERTEDFAQENTRY) . "&message_type=success"); } else { $this->setMessageVar(_FAQ_PROBLEMINSERTINGFAQENTRY, 'failure'); } } } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); $form->accept($renderer); $smarty->assign('T_FAQ_FORM', $renderer->toArray()); } else { $currentLesson = $this->getCurrentLesson(); $faq = eF_getTableDataFlat("module_faq", "*", "lessons_ID=" . $currentLesson->lesson['id']); $currentUser = $this->getCurrentUser(); $smarty->assign("T_FAQUSERLESSONROLE", $currentUser->getRole($currentLesson)); $smarty->assign("T_FAQ", $faq); $smarty->assign("T_QUESTIONS_FOUND", sizeof($faq)); } } return true; }
/** * Delete user * * This function is used to delete a user from the system. * The user cannot be deleted if he is the last system administrator. * <br/>Example: * <code> * $user = EfrontUserFactory :: factory('jdoe'); * $user -> delete(); * </code> * * @return boolean True if the user was deleted successfully * @since 3.5.0 * @access public */ public function delete() { parent::delete(); $userDoneTests = eF_getTableData("done_tests", "id", "users_LOGIN='******'login'] . "'"); if (sizeof($userDoneTests) > 0) { eF_deleteTableData("done_questions", "done_tests_ID IN (" . implode(",", $userDoneTests['id']) . ")"); eF_deleteTableData("done_tests", "users_LOGIN='******'login'] . "'"); } eF_deleteTableData("users_to_lessons", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_courses", "users_LOGIN='******'login'] . "'"); /* foreach ($this -> getCourses() as $id => $value) { $cacheKey = "user_course_status:course:".$id."user:"******"users_to_projects", "users_LOGIN='******'login'] . "'"); //eF_deleteTableData("users_to_done_tests", "users_LOGIN='******'login']."'"); if (G_VERSIONTYPE != 'community') { #cpp#ifndef COMMUNITY if (G_VERSIONTYPE != 'standard') { #cpp#ifndef STANDARD eF_deleteTableData("users_to_skillgap_tests", "users_LOGIN='******'login'] . "'"); } #cpp#endif } #cpp#endif eF_deleteTableData("completed_tests", "users_LOGIN='******'login'] . "'"); }
/** * (non-PHPdoc) * @see libraries/EfrontEntity#delete() */ public function delete() { if (!$this->remote) { $directory = new EfrontDirectory(G_THEMESPATH . $this->{$this->entity}['path']); $directory->delete(); } eF_deleteTableData($this->entity, "id=" . $this->{$this->entity}['id']); $modules = eF_loadAllModules(); foreach ($modules as $key => $module) { $module->onDeleteTheme($this->{$this->entity}['id']); } EfrontCache::getInstance()->deleteCache('themes'); }
/** * Set the lesson mode to 'shared' in the course * * @param EfrontLesson $lesson The lesson to set the mode for * @since 3.6.1 * @access private */ private function setSharedLessonMode($lesson) { $courseUsers = $this->countCourseUsers(array('archive' => false)); if ($courseUsers['count'] > 0) { throw new Exception(_YOUCANNOTCHANGEMODECOURSENOTEMPTY, EfrontCourseException::COURSE_NOT_EMPTY); } $coursedata = eF_getTableData("lessons_to_courses", "*", "lessons_ID=" . $lesson->lesson['id'] . " and courses_ID=" . $this->course['id']); $lessonsSchedule[$lesson->lesson['instance_source']] = array('start_date' => $coursedata[0]['start_date'], 'end_date' => $coursedata[0]['end_date'], 'start_period' => $coursedata[0]['start_period'], 'end_period' => $coursedata[0]['end_period']); $this->addLessons($lesson->lesson['instance_source'], $lessonsSchedule); $this->replaceLessonInCourseOrder($lesson, $lesson->lesson['instance_source']); $this->replaceLessonInCourseRules($lesson, $lesson->lesson['instance_source']); //Must be put *before* removeLessons() //$this -> removeLessons($lesson); //commented out because it was messing up with order eF_deleteTableData("lessons_to_courses", "courses_ID=" . $this->course['id'] . " and lessons_ID=" . $lesson->lesson['id']); }
public static function switchLessonReportingMode($mode) { if ($GLOBALS['configuration']['time_reports'] != $mode && $mode == 1) { //step one: Read all times from the user_times table, per user,lesson and unit $data = $totals = array(); $result = eF_getTableData("user_times", "users_LOGIN, entity_ID, lessons_ID, time", "entity = 'unit'"); foreach ($result as $value) { if (isset($totals[$value['users_LOGIN']][$value['lessons_ID']][$value['entity_ID']])) { $totals[$value['users_LOGIN']][$value['lessons_ID']][$value['entity_ID']] += $value['time']; } else { $totals[$value['users_LOGIN']][$value['lessons_ID']][$value['entity_ID']] = $value['time']; } } //step 2: read all current time entries in the users_to_content table $result = eF_getTableData("users_to_content", "users_LOGIN, content_ID, lessons_ID, total_time"); foreach ($result as $value) { $existing[$value['users_LOGIN']][$value['lessons_ID']][$value['content_ID']] = $value['total_time']; } //step 3: Populate the users_to_content table with the data from the user_times table, or update if a value already exist (overwriting it). foreach ($totals as $user => $lesson) { foreach ($lesson as $lessonId => $content) { foreach ($content as $contentId => $seconds) { if (isset($existing[$user][$lessonId][$contentId])) { eF_updateTableData("users_to_content", array("total_time" => $seconds), "users_LOGIN='******' and content_ID={$contentId} and lessons_ID={$lessonId}"); } else { $data[] = array("users_LOGIN" => $user, "content_ID" => $contentId, "lessons_ID" => $lessonId, "total_time" => $seconds); } } } } eF_insertTableDataMultiple("users_to_content", $data); //step 4: Read the lesson (but not unit) times from the user_times table $data = $totals = array(); $result = eF_getTableData("user_times", "users_LOGIN, entity_ID, time", "entity = 'lesson'"); foreach ($result as $value) { if (isset($totals[$value['users_LOGIN']][$value['entity_ID']])) { $totals[$value['users_LOGIN']][$value['entity_ID']] += $value['time']; } else { $totals[$value['users_LOGIN']][$value['entity_ID']] = $value['time']; } } //step 5: Populate the users_to_content table with the plain lesson times, using null as a contentId foreach ($totals as $user => $lesson) { foreach ($lesson as $lessonId => $seconds) { $data[] = array("users_LOGIN" => $user, "content_ID" => null, "lessons_ID" => $lessonId, "total_time" => $seconds); } } eF_deleteTableData("users_to_content", "content_ID is null or content_ID=0"); //empty previous entries eF_insertTableDataMultiple("users_to_content", $data); } }
protected function importDataMultiple($type, $data) { try { switch ($type) { case "users_to_groups": foreach ($data as $value) { $groups_ID = current($this->getGroupByName($value['groups.name'])); $groups[$groups_ID][] = $value['users_login']; } foreach ($groups as $id => $groupUsers) { try { $group = new EfrontGroup($id); $this->log["success"][] = _NEWGROUPASSIGNMENT . " " . $group->group['name']; $group->addUsers($groupUsers); } catch (Exception $e) { $this->log["failure"][] = _LINE . " " . ($key + 2) . ": " . $e->getMessage(); // ." ". str_replace("\n", "<BR>", $e->getTraceAsString()); } } break; case "users": $existingUsers = eF_getTableDataFlat("users", "login, active, archive"); $roles = EfrontUser::getRoles(); foreach (EfrontUser::getRoles(true) as $key => $value) { $rolesTypes[$key] = mb_strtolower($value); } $languages = EfrontSystem::getLanguages(); $addedUsers = array(); foreach ($data as $key => $value) { try { $newUser = EfrontUser::createUser($value, $existingUsers, false); $existingUsers['login'][] = $newUser->user['login']; $existingUsers['active'][] = $newUser->user['active']; $existingUsers['archive'][] = $newUser->user['archive']; $addedUsers[] = $newUser->user['login']; $this->log["success"][] = _IMPORTEDUSER . " " . $newUser->user['login']; } catch (Exception $e) { if ($this->options['replace_existing']) { if ($this->isAlreadyExistsException($e->getCode(), $type)) { if (!in_array($value['login'], $existingUsers['login'], true)) { //For case-insensitive matches foreach ($existingUsers['login'] as $login) { if (mb_strtolower($value['login']) == mb_strtolower($login)) { $value['login'] = $login; } } } if (!isset($value['user_type'])) { $value['user_type'] = 'student'; } else { if (in_array(mb_strtolower($value['user_type']), $roles)) { $value['user_type'] = mb_strtolower($value['user_type']); } else { if ($k = array_search(mb_strtolower($value['user_type']), $rolesTypes)) { $value['user_types_ID'] = $k; $value['user_type'] = $roles[$k]; } else { $value['user_type'] = 'student'; } } } if (!in_array($value['user_type'], EFrontUser::$basicUserTypes)) { $value['user_type'] = 'student'; $value['user_types_ID'] = 0; } if ($value['languages_NAME'] == "") { unset($value['languages_NAME']); } elseif (in_array($value['languages_NAME'], array_keys($languages)) === false) { $value['languages_NAME'] = $GLOBALS['configuration']['default_language']; } $this->updateExistingData($key + 2, $type, $value); } else { $this->log["failure"][] = _LINE . " " . ($key + 2) . ": " . $e->getMessage(); // ." ". str_replace("\n", "<BR>", $e->getTraceAsString()); } } else { $this->log["failure"][] = _LINE . " " . ($key + 2) . ": " . $e->getMessage(); // ." ". str_replace("\n", "<BR>", $e->getTraceAsString()); } } } $defaultGroup = eF_getTableData("groups", "id", "is_default = 1 AND active = 1"); if (!empty($defaultGroup) && !empty($addedUsers)) { $defaultGroup = new EfrontGroup($defaultGroup[0]['id']); $defaultGroup->addUsers($addedUsers); } break; case "users_to_jobs": $jobDescriptions = $userJobs = $userBranchesAssigned = $userBranchesUnassigned = array(); $result = eF_getTableData("module_hcd_job_description", "job_description_ID, branch_ID, description"); foreach ($result as $value) { $jobDescriptions[$value['job_description_ID']] = $value; } $result = eF_getTableData("module_hcd_employee_has_job_description", "*"); foreach ($result as $value) { $userJobs[$value['users_login']][$value['job_description_ID']] = $value['job_description_ID']; } $result = eF_getTableData("module_hcd_employee_works_at_branch", "*"); foreach ($result as $value) { if ($value['assigned']) { $userBranchesAssigned[$value['users_login']][$value['branch_ID']] = $value; } else { $userBranchesUnassigned[$value['users_login']][$value['branch_ID']] = $value; } } $allBranches = eF_getTableData("module_hcd_branch", "branch_ID, father_branch_ID", ""); $addedJobs = $addedBranches = array(); foreach ($data as $key => $value) { try { if (!$value['description']) { throw new EfrontJobException(_MISSING_JOB_DESCRIPTION, EfrontJobException::MISSING_JOB_DESCRIPTION); } $branchId = $this->getBranchByName($value['branch_name']); //Executes only once if ($branchId[0]) { if (sizeof($branchId) == 1) { $branchId = $branchId[0]; } else { throw new EfrontBranchException(_BRANCHNAMEAMBIGUOUS . ': ' . $value['branch_name'], EfrontBranchException::BRANCH_AMBIGUOUS); } } else { throw new EfrontBranchException(_BRANCHDOESNOTEXIST . ': ' . $value['branch_name'], EfrontBranchException::BRANCH_NOT_EXISTS); } $jobId = false; foreach ($jobDescriptions as $job) { if ($job['description'] == $value['description'] && $job['branch_ID'] == $branchId) { $jobId = $job['job_description_ID']; } } if (!$jobId) { $jobId = eF_insertTableData("module_hcd_job_description", array('description' => $value['description'], 'branch_ID' => $branchId)); $jobDescriptions[$jobId] = array('job_description_ID' => $jobId, 'description' => $value['description'], 'branch_ID' => $branchId); } $user = EfrontUserFactory::factory($value["users_login"]); $value['users_login'] = $user->user['login']; if (isset($userJobs[$value['users_login']]) && $this->options['replace_assignments']) { $unset = false; foreach ($userJobs[$value['users_login']] as $key => $v) { if (!isset($addedJobs[$v][$value['users_login']])) { $user->aspects['hcd']->removeJob($v); unset($userJobs[$value['users_login']][$v]); $unset = true; } } if ($unset) { unset($userBranchesAssigned[$value['users_login']]); } } if (isset($userJobs[$value['users_login']][$jobId]) && $this->options['replace_existing']) { eF_deleteTableData("module_hcd_employee_has_job_description", "users_login='******'users_login'] . "' AND job_description_ID ='" . $jobId . "'"); unset($userJobs[$value['users_login']][$jobId]); } // Check if this job description is already assigned if (!isset($userJobs[$value['users_login']][$jobId])) { if (!isset($userBranchesAssigned[$value['users_login']][$branchId])) { // Write to the database the new branch assignment: employee to branch (if such an assignment is not already true) if (isset($userBranchesUnassigned[$value['users_login']][$branchId])) { eF_updateTableData("module_hcd_employee_works_at_branch", array("assigned" => 1), "users_login='******'users_login'] . "' and branch_ID={$branchId}"); unset($userBranchesUnassigned[$value['users_login']][$branchId]); } else { $fields = array('users_login' => $value['users_login'], 'supervisor' => $value['supervisor'], 'assigned' => '1', 'branch_ID' => $branchId); eF_insertTableData("module_hcd_employee_works_at_branch", $fields); if ($value['supervisor']) { //Iterate through sub branches foreach (eF_subBranches($branchId, $allBranches) as $subBranchId) { //If this subranch is not associated with the user, associate it if (!isset($userBranchesAssigned[$value['users_login']][$subBranchId]) && !isset($userBranchesUnassigned[$value['users_login']][$subBranchId])) { $fields = array('users_login' => $value['users_login'], 'supervisor' => 1, 'assigned' => '0', 'branch_ID' => $subBranchId); eF_insertTableData("module_hcd_employee_works_at_branch", $fields); $userBranchesUnassigned[$value['users_login']][$branchId] = array('branch_ID' => $branchId, 'supervisor' => $value['supervisor'], 'assigned' => 0); } elseif (isset($userBranchesAssigned[$value['users_login']][$subBranchId]) && $userBranchesAssigned[$value['users_login']][$subBranchId]['supervisor'] == 0) { eF_updateTableData("module_hcd_employee_works_at_branch", array("supervisor" => 1), "users_login='******'users_login'] . "' and branch_ID={$subBranchId}"); $userBranchesAssigned[$value['users_login']][$subBranchId]['supervisor'] = 1; } elseif (isset($userBranchesUnassigned[$value['users_login']][$subBranchId]) && $userBranchesUnassigned[$value['users_login']][$subBranchId]['supervisor'] == 0) { eF_updateTableData("module_hcd_employee_works_at_branch", array("supervisor" => 1), "users_login='******'users_login'] . "' and branch_ID={$subBranchId}"); $userBranchesUnassigned[$value['users_login']][$subBranchId]['supervisor'] = 1; } } } } $userBranchesAssigned[$value['users_login']][$branchId] = array('branch_ID' => $branchId, 'supervisor' => $value['supervisor'], 'assigned' => 1); $addedBranches[$branchId][$value['users_login']] = $value['users_login']; } elseif (!$userBranchesAssigned[$value['users_login']][$branchId]['supervisor'] && $value['supervisor']) { eF_updateTableData("module_hcd_employee_works_at_branch", array("supervisor" => 1), "users_login='******'users_login'] . "' and branch_ID={$branchId}"); //Iterate through sub branches foreach (eF_subBranches($branchId, $allBranches) as $subBranchId) { //If this subranch is not associated with the user, associate it if (!isset($userBranchesAssigned[$value['users_login']][$subBranchId]) && !isset($userBranchesUnassigned[$value['users_login']][$subBranchId])) { $fields = array('users_login' => $value['users_login'], 'supervisor' => 1, 'assigned' => '0', 'branch_ID' => $subBranchId); eF_insertTableData("module_hcd_employee_works_at_branch", $fields); $userBranchesUnassigned[$value['users_login']][$branchId] = array('branch_ID' => $branchId, 'supervisor' => $value['supervisor'], 'assigned' => 0); } elseif (isset($userBranchesAssigned[$value['users_login']][$subBranchId]) && $userBranchesAssigned[$value['users_login']][$subBranchId]['supervisor'] == 0) { eF_updateTableData("module_hcd_employee_works_at_branch", array("supervisor" => 1), "users_login='******'users_login'] . "' and branch_ID={$subBranchId}"); $userBranchesAssigned[$value['users_login']][$subBranchId]['supervisor'] = 1; } elseif (isset($userBranchesUnassigned[$value['users_login']][$subBranchId]) && $userBranchesUnassigned[$value['users_login']][$subBranchId]['supervisor'] == 0) { eF_updateTableData("module_hcd_employee_works_at_branch", array("supervisor" => 1), "users_login='******'users_login'] . "' and branch_ID={$subBranchId}"); $userBranchesUnassigned[$value['users_login']][$subBranchId]['supervisor'] = 1; } } } elseif ($userBranchesAssigned[$value['users_login']][$branchId]['supervisor'] && !$value['supervisor']) { eF_updateTableData("module_hcd_employee_works_at_branch", array("supervisor" => 0), "users_login='******'users_login'] . "' and branch_ID={$branchId}"); } // Write to database the new job assignment: employee to job description $fields = array('users_login' => $value['users_login'], 'job_description_ID' => $jobId); eF_insertTableData("module_hcd_employee_has_job_description", $fields); $userJobs[$value['users_login']][$jobId] = $jobId; $addedJobs[$jobId][$value['users_login']] = $value['users_login']; /* if ($event_info) { EfrontEvent::triggerEvent(array("type" => EfrontEvent::HCD_NEW_JOB_ASSIGNMENT, "users_LOGIN" => $this -> login, "lessons_ID" => $branchID, "lessons_name" => $bname[0]['name'], "entity_ID" => $jobID, "entity_name" => $job_description, "timestamp" => $event_info['timestamp'], "explicitly_selected" => $event_info['manager'])); } else { EfrontEvent::triggerEvent(array("type" => EfrontEvent::HCD_NEW_JOB_ASSIGNMENT, "users_LOGIN" => $this -> login, "lessons_ID" => $branchID, "lessons_name" => $bname[0]['name'], "entity_ID" => $jobID, "entity_name" => $job_description)); } */ } else { throw new EfrontUserException(_JOBALREADYASSIGNED . ": " . $value['users_login'], EfrontUserException::WRONG_INPUT_TYPE); } $this->log["success"][] = _LINE . " " . ($key + 2) . " : " . _NEWJOBASSIGNMENT . " " . $value["users_login"] . " - (" . $value['branch_name'] . " - " . $value['description'] . ") "; } catch (Exception $e) { $this->log["failure"][] = _LINE . " " . ($key + 2) . " : " . $e->getMessage() . ' (' . $e->getCode() . ')'; } } $courseAssignmentsToUsers = $lessonAssignmentsToUsers = array(); $result = eF_getTableData("module_hcd_course_to_job_description", "*"); foreach ($result as $value) { foreach ($addedJobs[$value['job_description_ID']] as $user) { $courseAssignmentsToUsers[$value['courses_ID']][] = $user; } } $result = eF_getTableData("module_hcd_lesson_to_job_description", "*"); foreach ($result as $value) { foreach ($addedJobs[$value['job_description_ID']] as $user) { $lessonAssignmentsToUsers[$value['lessons_ID']][] = $user; } } if ($GLOBALS['configuration']['mode_propagate_courses_to_branch_users']) { $result = eF_getTableData("module_hcd_course_to_branch", "*"); foreach ($result as $value) { foreach ($addedBranches[$value['branches_ID']] as $user) { $courseAssignmentsToUsers[$value['courses_ID']][] = $user; } } } foreach ($courseAssignmentsToUsers as $courseId => $users) { $course = new EfrontCourse($courseId); $course->addUsers($users); } foreach ($lessonAssignmentsToUsers as $lessonId => $users) { $course = new EfrontLesson($lessonId); $course->addUsers($users); } break; } } catch (Exception $e) { $this->log["failure"][] = $e->getMessage() . ' (' . $e->getCode() . ')'; // ." ". str_replace("\n", "<BR>", $e->getTraceAsString()); } }
/** * Remove association of a branch with this lesson * * This function is used to stop the correlation of a branch to the lesson * * <br/>Example: * <code> * $lesson -> removeBranch(2); // The lesson will stop offering branch with id 2 * </code> * * @param $branch_ID the id of the branch to be removed from the lesson * @return boolean true/false * @since 3.6.0 * @access public */ public function removeBranch($branch_ID) { $this->getBranches(); // Check if the branch is not assigned as offered by this lesson if ($this->branches[$branch_ID]['lessons_ID'] == $this->lesson['id']) { if ($ok = eF_deleteTableData("module_hcd_lesson_to_branch", "branches_ID = '" . $branch_ID . "' AND lessons_ID = '" . $this->lesson['id'] . "'")) { $this->branches[$branch_ID]['lessons_ID'] = ""; } else { throw new EfrontLessonException(_EMPLOYEESRECORDCOULDNOTBEUPDATED, EfrontLessonException::DATABASE_ERROR); } } return true; }
/** * Delete a direction * This function is used to delete the current direction * <br/>Example: * <code> * $direction_array = eF_getTableData("directions", "*", "id=4"); * $direction = new EfrontDirection($direction_array[0]); * $direction -> delete(); * </code> * * @since 3.5.0 * @access public */ function delete() { foreach (new EfrontAttributeFilterIterator(new RecursiveIteratorIterator(new RecursiveArrayIterator($this)), 'id') as $key => $value) { eF_deleteTableData("directions", "id=" . $value); //Delete Units from database eF_updateTableData("lessons", array("directions_ID" => 0), "directions_ID=" . $value); eF_updateTableData("courses", array("directions_ID" => 0), "directions_ID=" . $value); } }
/** * Remove courses from group * * This function is used to remove courses from the current group * <br>Example: * <code> * $group = new EfrontGroup(2); * $group -> removeCourses(array(21, 32)); // remove courses with ids 21 and 32 * </code> * * @param mixed $users An array of course ids or EfrontCourse objects, or a single id or EfrontCourse object * @return boolean True if everything is ok * @since 3.5.2 * @access public */ public function removeCourses($courses) { if (!is_array($courses)) { if ($courses instanceof EfrontCourse) { $courses = $courses->course['id']; } $courses = array($courses); } foreach ($courses as $course) { if ($course instanceof EfrontCourse) { $course = $course->course['id']; } if (eF_checkParameter($course, 'id')) { eF_deleteTableData("courses_to_groups", "courses_ID ='" . $course . "' and groups_ID=" . $this->group['id']); } } return true; }
public function getModule() { $currentLesson = $this->getCurrentLesson(); $smarty = $this->getSmartyVar(); $smarty->assign("T_LESSON_ID", $currentLesson->lesson['id']); if (isset($_GET['delete_link']) && eF_checkParameter($_GET['delete_link'], 'id')) { eF_deleteTableData("module_links", "id=" . $_GET['delete_link']); $this->setMessageVar(_LINKS_SUCCESFULLYDELETEDLINK, 'success'); eF_redirect("" . $this->moduleBaseUrl . "&message=" . urlencode($message) . "&message_type={$message_type}"); } else { if (isset($_GET['add_link']) || isset($_GET['edit_link']) && eF_checkParameter($_GET['edit_link'], 'id')) { $form = new HTML_QuickForm("link_entry_form", "POST", $_SERVER['REQUEST_URI'], ""); $form->registerRule('checkParameter', 'callback', 'eF_checkParameter'); //Register this rule for checking user input with our function, eF_checkParameter $form->addElement('text', 'display', null); $form->addElement('text', 'link', null); $form->addElement('textarea', 'description', null); $form->addElement('submit', 'submit_link', _SUBMIT, 'class = "flatButton"'); $element =& $form->getElement('display'); $element->setSize(50); $element =& $form->getElement('link'); $element->setSize(50); $element =& $form->getElement('description'); $element->setCols(50); if (isset($_GET['edit_link'])) { $link_entry = eF_getTableData("module_links", "*", "id=" . $_GET['edit_link']); $form->setDefaults(array('display' => $link_entry[0]['display'], 'link' => $link_entry[0]['link'], 'description' => $link_entry[0]['description'])); } else { $form->setDefaults(array('link' => "http://")); } if ($form->isSubmitted() && $form->validate()) { $fields = array('lessons_ID' => $_SESSION['s_lessons_ID'], 'display' => $form->exportValue('display'), 'link' => $form->exportValue('link'), 'description' => $form->exportValue('description')); if (isset($_GET['edit_link'])) { if (eF_updateTableData("module_links", $fields, "id=" . $_GET['edit_link'])) { $message = _LINKS_SUCCESFULLYUPDATEDLINKENTRY; $message_type = 'success'; eF_redirect("" . $_SERVER['PHP_SELF'] . "?ctg=module&op=module_links&message=" . urlencode($message) . "&message_type={$message_type}"); } else { $message = _LINKS_PROBLEMUPDATINGLINKENTRY; $message_type = 'failure'; eF_redirect("" . $_SERVER['PHP_SELF'] . "?ctg=module&op=module_links&message=" . urlencode($message) . "&message_type={$message_type}"); } } else { if (eF_insertTableData("module_links", $fields)) { $message = _LINKS_SUCCESFULLYINSERTEDLINKENTRY; $message_type = 'success'; eF_redirect("" . $_SERVER['PHP_SELF'] . "?ctg=module&op=module_links&message=" . urlencode($message) . "&message_type={$message_type}"); } else { $message = _LINKS_PROBLEMINSERTINGLINKENTRY; $message_type = 'failure'; eF_redirect("" . $_SERVER['PHP_SELF'] . "?ctg=module&op=module_links&message=" . urlencode($message) . "&message_type={$message_type}"); } } } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); $form->accept($renderer); $smarty->assign('T_LINKS_FORM', $renderer->toArray()); } else { $links = eF_getTableDataFlat("module_links", "*", "lessons_ID = " . $_SESSION['s_lessons_ID']); $smarty->assign("T_LINKS", $links); } } return true; }
/** * Function reBuiltIndex() * * This function is used to built the keywords from scratch * * @since 3.5.0 * @access public */ public static function reBuiltIndex() { eF_deleteTableData("search_keywords"); //Delete old search terms // eF_deleteTableData("search"); $GLOBALS['db']->Execute("truncate table search_invertedindex"); //Courses Data $courses = eF_getTableData("courses", "id,name"); for ($i = 0; $i < sizeof($courses); $i++) { EfrontSearch::insertText($courses[$i]['name'], $courses[$i]['id'], "courses", "title"); } //Lesson Data $lessons = eF_getTableData("lessons", "id,name"); for ($i = 0; $i < sizeof($lessons); $i++) { EfrontSearch::insertText($lessons[$i]['name'], $lessons[$i]['id'], "lessons", "title"); } //Content Data $content = eF_getTableData("content", "id,name,data"); for ($i = 0; $i < sizeof($content); $i++) { EfrontSearch::insertText($content[$i]['name'], $content[$i]['id'], "content", "title"); EfrontSearch::insertText(strip_tags($content[$i]['data']), $content[$i]['id'], "content", "data"); } //Forum Messages $forum_messages = eF_getTableData("f_messages", "id, title, body"); for ($i = 0; $i < sizeof($forum_messages); $i++) { EfrontSearch::insertText(strip_tags($forum_messages[$i]['body']), $forum_messages[$i]['id'], "f_messages", "data"); EfrontSearch::insertText($forum_messages[$i]['title'], $forum_messages[$i]['id'], "f_messages", "title"); } //Forums $forums = eF_getTableData("f_forums", "id, title, comments"); for ($i = 0; $i < sizeof($forums); $i++) { EfrontSearch::insertText($forums[$i]['title'], $forums[$i]['id'], "f_forums", "title"); if (strlen($forums[$i]['comments']) > 3) { EfrontSearch::insertText(strip_tags($forums[$i]['comments']), $forums[$i]['id'], "f_forums", "data"); } } //Forums Topics $f_topics = eF_getTableData("f_topics", "id, title, comments"); for ($i = 0; $i < sizeof($f_topics); $i++) { EfrontSearch::insertText($f_topics[$i]['title'], $f_topics[$i]['id'], "f_topics", "title"); if (strlen($f_topics[$i]['comments']) > 3) { EfrontSearch::insertText(strip_tags($f_topics[$i]['comments']), $f_topics[$i]['id'], "f_topics", "data"); } } //Forums Polls $f_poll = eF_getTableData("f_poll", "id, title, question"); for ($i = 0; $i < sizeof($f_poll); $i++) { EfrontSearch::insertText($f_poll[$i]['title'], $f_poll[$i]['id'], "f_poll", "title"); if (strlen($f_poll[$i]['question']) > 3) { EfrontSearch::insertText(strip_tags($f_poll[$i]['question']), $f_poll[$i]['id'], "f_poll", "data"); } } //Personal Messages $personal_messages = eF_getTableData("f_personal_messages", "id, title, body"); //Get all the personal messages for ($i = 0; $i < sizeof($personal_messages); $i++) { EfrontSearch::insertText($personal_messages[$i]['body'], $personal_messages[$i]['id'], "f_personal_messages", "data"); EfrontSearch::insertText($personal_messages[$i]['title'], $personal_messages[$i]['id'], "f_personal_messages", "title"); } //Questions $questions = eF_getTableData("questions", "id, text"); for ($i = 0; $i < sizeof($questions); $i++) { EfrontSearch::insertText(strip_tags($questions[$i]['data']), $questions[$i]['id'], "questions", "data"); } //Glossary terms $glossary = eF_getTableData("glossary", "id, name, info"); for ($i = 0; $i < sizeof($glossary); $i++) { EfrontSearch::insertText(strip_tags($glossary[$i]['info']), $glossary[$i]['id'], "glossary", "data"); EfrontSearch::insertText($glossary[$i]['name'], $glossary[$i]['id'], "glossary", "title"); } }
if (!$currentEmployee->isSupervisor()) { $_change_evaluations_ = false; } else { if ($currentEmployee->supervisesEmployee($editedUser->user['login'])) { $_change_evaluations_ = true; } else { $_change_evaluations_ = false; } } } } } $smarty->assign("_change_evaluations_", $_change_evaluations_); if (isset($_GET['delete_evaluation']) && eF_checkParameter($_GET['delete_evaluation'], 'id') && $_change_evaluations_) { try { eF_deleteTableData("module_hcd_events", "event_ID = '" . $_GET['delete_evaluation'] . "'"); } catch (Exception $e) { handleAjaxExceptions($e); } exit; } elseif (isset($_GET['add_evaluation']) || isset($_GET['edit_evaluation']) && eF_checkParameter($_GET['edit_evaluation'], 'id') && $_change_evaluations_) { $load_editor = true; $form = new HTML_QuickForm("evaluations_form", "post", basename($_SERVER['PHP_SELF']) . "?ctg=personal&user="******"&op=evaluations&" . (isset($_GET['edit_evaluation']) ? "&edit_evaluation=" . $_GET['edit_evaluation'] : "&add_evaluation=1"), "", null, true); $form->addElement('textarea', 'specification', _EVALUATIONCOMMENT, 'class = "simpleEditor" style = "width:400px;"'); $form->addElement('submit', 'submit', _SUBMIT, 'class = "flatButton"'); if (isset($_GET['edit_evaluation'])) { $evaluations = eF_getTableData("module_hcd_events", "*", "event_ID = '" . $_GET['edit_evaluation'] . "'"); $form->setDefaults(array('specification' => $evaluations[0]['specification'])); } try { if ($form->isSubmitted() && $form->validate()) {
if ($testInstance->options['automatic_assignment']) { $analysisResults = $testInstance->analyseSkillGapTest(); foreach ($analysisResults['lessons'] as $lesson) { $currentUser->addLessons($lesson['lesson_ID']); } foreach ($analysisResults['courses'] as $course) { $currentUser->addCourses($course['courses_ID']); } eF_redirect("" . basename($_SERVER['PHP_SELF']) . "?ctg=lessons&op=tests&message=" . urlencode(_SKILLGAPTESTCOMPLETEDSUCCESSFULLYANDTHECORRESPONDING) . " " . sizeof($analysisResults['lessons']) . " " . _LESSONS . " " . _AND . " " . sizeof($analysisResults['courses']) . " " . _COURSES . " " . _HAVEBEENASSIGNED . "&message_type=success"); } else { eF_redirect("" . basename($_SERVER['PHP_SELF']) . "?ctg=lessons&op=tests&message=" . urlencode(_SKILLGAPTESTCOMPLETEDSUCCESSFULLY) . ". " . urlencode(_YOURRESULTSHAVEBEENSENTTOYOURPROFESSORSWHOWILLASSIGNLESSONSACCORDINGTOYOURNEEDS) . "&message_type=success"); } exit; } //HACK to remove incomplete tests eF_deleteTableData("completed_tests", "tests_id = '" . $_GET['solve_test'] . "' AND users_LOGIN = '******'login'] . "'"); $test = new EfrontTest($_GET['solve_test']); $testInstance = $test->start($currentUser->user['login']); // Hard coded to disallow pause test $testInstance->options['pause_test'] = 0; $testString = $testInstance->toHTMLQuickForm($form); $testString = $testInstance->toHTML($testString, $remainingTime); $form->addElement('hidden', 'time_start', $timeStart); //This element holds the time the test started, so we know the remaining time even if the user left the system $form->addElement('submit', 'submit_test', _SUBMITTEST, 'class = "flatButton" onclick = "if (typeof(checkedQuestions) != \'undefined\' && (unfinished = checkQuestions())) return confirm(\'' . _YOUHAVENOTCOMPLETEDTHEFOLLOWINGQUESTIONS . ': \'+unfinished+\'. ' . _AREYOUSUREYOUWANTTOSUBMITTEST . '\');"'); if ($testInstance->options['pause_test']) { $form->addElement('submit', 'pause_test', _PAUSETEST, 'class = "flatButton"'); } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); $form->accept($renderer); $smarty->assign('T_TEST_FORM', $renderer->toArray());
/** * Delete the project * * This function is used to delete the current project. * All related information is lost, as well as files associated * with the project. * <br/>Example: * <code> * $project = new EfrontProject(12); //Instantiate project with id 12 * $project -> delete(); //Delete project and all associated information * </code> * * @since 3.5.0 * @access public * @todo delete project files */ public function delete() { foreach ($this->getUsers() as $value) { if ($value['filename']) { try { $file = new EfrontFile($value['filename']); $file->delete(); $file = new EfrontFile($value['professor_upload_filename']); $file->delete(); } catch (Exception $e) { /*bypass non-existing files*/ } } } eF_deleteTableData("users_to_projects", "projects_ID=" . $this->project['id']); eF_deleteTableData("projects", "id=" . $this->project['id']); }
$form->addElement('select', 'allow_html', _ALLOWHTMLFPM, array(1 => _YES, 0 => _NO)); $form->addElement('select', 'polls', _ACTIVATEPOLLS, array(1 => _YES, 0 => _NO)); $form->addElement('select', 'forum_attachments', _ALLOWATTACHMENTSINF, array(1 => _YES, 0 => _NO)); $form->addElement('select', 'students_add_forums', _USERSMAYADDFORUMS, array(0 => _NO, 1 => _YES)); $form->addElement('text', 'pm_quota', _PMQUOTA, 'class = "inputText" style = "width:40px"'); $form->addElement('text', 'pm_attach_quota', _PMATTACHMENTSQUOTA, 'class = "inputText" style = "width:40px"'); $form->addRule('pm_quota', _THEFIELD . ' "' . _PMQUOTA . '" ' . _MUSTBENUMERIC, 'numeric', null, 'client'); $form->addRule('pm_attach_quota', _THEFIELD . ' "' . _PMATTACHMENTSQUOTA . '" ' . _MUSTBENUMERIC, 'numeric', null, 'client'); $form->addElement('submit', 'submit_settings', _SUBMIT, 'class = "flatButton"'); $current_values = eF_getTableDataFlat("f_configuration", "*"); $current_values = array_combine($current_values['name'], $current_values['value']); $form->setDefaults($current_values); if ($form->isSubmitted() && $form->validate()) { //If the form is submitted and validated $values = $form->exportValues(); eF_deleteTableData("f_configuration"); $fields[] = array('name' => 'allow_html', "value" => $values['allow_html'] ? 1 : 0); $fields[] = array('name' => 'polls', "value" => $values['polls'] ? 1 : 0); $fields[] = array('name' => 'forum_attachments', "value" => $values['forum_attachments'] ? 1 : 0); $fields[] = array('name' => 'students_add_forums', "value" => $values['students_add_forums'] ? 1 : 0); $fields[] = array('name' => 'pm_quota', "value" => $values['pm_quota'] ? $values['pm_quota'] : ""); $fields[] = array('name' => 'pm_attach_quota', "value" => $values['pm_attach_quota'] ? $values['pm_attach_quota'] : ""); foreach ($fields as $field) { eF_insertTableData("f_configuration", array("name" => $field['name'], "value" => $field['value'])); } $message = _SUCCESSFULLYINSERTEDVALUES; $message_type = 'success'; } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); //Create a smarty renderer $renderer->setRequiredTemplate('{$html}{if $required}
private function doJobCourses() { $smarty = $this->getSmartyVar(); $currentUser = $this->getCurrentUser(); $result = eF_getTableData("module_hcd_job_description j left outer join module_hcd_course_to_job_description cj on cj.job_description_ID=j.job_description_ID", "j.job_description_ID,description,branch_ID,count(courses_ID) as total_courses", "", "", "j.job_description_ID"); $branchesTree = new EfrontBranchesTree(); $branchesTreePaths = $branchesTree->toPathString(); $jobs = array(); foreach ($result as $value) { $jobsArray[$value['job_description_ID']] = $value; $jobs[$value['job_description_ID']] = $branchesTreePaths[$value['branch_ID']] . " → " . $value['description'] . " (" . $value['total_courses'] . ")"; } $form = new HTML_QuickForm("job_courses_form", "post", basename($_SERVER['PHP_SELF']) . "?ctg=module&op=module_administrator_tools&tab=job_courses&do=enterprise", "", null, true); $form->addElement('select', 'job', _JOBDESCRIPTION, $jobs); $form->addElement("submit", "submit", _MODULE_ADMINISTRATOR_TOOLS_COPYCOURSESELECTION, 'class = "flatButton"'); $form->addElement("static", "", _MODULE_ADMINISTRATOR_TOOLS_COPYCOURSESELECTIONTOALLSIMILARJOBS); $form->setDefaults(array("idle_from_timestamp" => $_SESSION['timestamp_from'])); if ($form->isSubmitted() && $form->validate()) { $GLOBALS['currentEmployee'] = $currentUser->aspects['hcd']; $job = new EfrontJob($form->exportValue('job')); $courses = $job->getJobCourses(); foreach ($sameJobs = $job->getSameDescriptions() as $value) { eF_deleteTableData("module_hcd_course_to_job_description", "job_description_id = '" . $value . "'"); } $job->associateCoursesToJob($courses, true); $message = str_replace(array("%x", "%y"), array(sizeof($sameJobs), sizeof($courses)), _MODULE_ADMINISTRATOR_TOOLS_SUCCESSFULLYASSIGNEDCOURSESTOJOBS); $message_type = 'success'; $this->setMessageVar($message, $message_type); } $smarty->assign("T_JOB_COURSES_FORM", $form->toArray()); }
public function deleteCache($parameters) { $key = self::_encode($parameters); eF_deleteTableData("cache", "cache_key='" . $key . "'"); }
$smarty->assign("T_MESSAGE_TYPE", $message_type); } } if (isset($_GET['add_topic']) || isset($_GET['del_topic']) || isset($_GET['edit_topic'])) { /* Check permissions: only professors are allowed to manage topics */ if ($currentUser->getType() != 'professor') { eF_redirect(basename($_SERVER['PHP_SELF']) . "?ctg=personal&message=" . urlencode(_SORRYYOUDONOTHAVEPERMISSIONTOPERFORMTHISACTION) . "&message_type=failure"); exit; } // ON DELETING A LESSONTIMELINE TOPIC if (isset($_GET['del_topic']) && eF_checkParameter($_GET['del_topic'], 'id')) { //The administrator asked to delete a skill //@todo: delete events too? //eF_deleteTableData("lessons_timeline_topics", "type = " . . " AND lessons_ID = ". ." AND entity_ID = '".$_GET['del_topic']."'"); eF_deleteTableData("lessons_timeline_topics_data", "topics_ID = '" . $_GET['del_topic'] . "'"); eF_deleteTableData("lessons_timeline_topics", "id = '" . $_GET['del_topic'] . "'"); $message = _LESSONTIMELINETOPICDELETED; $message_type = 'success'; eF_redirect("" . $_SESSION['s_type'] . ".php?ctg=social&op=timeline&lessons_ID=" . $_GET['lessons_ID'] . "&all=1&message=" . $message . "&message_type=" . $message_type); exit; //ON INSERTING OR EDITING A LESSONTIMELINE TOPIC } else { if (isset($_GET['add_topic']) || isset($_GET['edit_topic'])) { if (isset($_GET['add_topic'])) { $form = new HTML_QuickForm("topic_form", "post", $_SESSION['s_type'] . ".php?ctg=social&op=timeline&lessons_ID=" . $_SESSION['s_lessons_ID'] . "&add_topic=1", "", null, true); } elseif (eF_checkParameter($_GET['edit_topic'], 'id')) { $form = new HTML_QuickForm("topic_form", "post", $_SESSION['s_type'] . ".php?ctg=social&op=timeline&lessons_ID=" . $_SESSION['s_lessons_ID'] . "&edit_topic=" . $_GET['edit_topic'], "", null, true); $topic = eF_getTableData("lessons_timeline_topics", "title", "id ='" . $_GET['edit_topic'] . "'"); } $form->registerRule('checkParameter', 'callback', 'eF_checkParameter'); //Register this rule for checking user input with our function, eF_checkParameter
public function getSmartyTpl() { $smarty = $this->getSmartyVar(); $smarty->assign("T_RSS_MODULE_BASEURL", $this->moduleBaseUrl); $smarty->assign("T_RSS_MODULE_BASELINK", $this->moduleBaseLink); $smarty->assign("T_RSS_PROVIDED_FEEDS_MODES", $this->feedProviderModes); $smarty->assign("T_RSS_PROVIDED_FEEDS_TYPES", $this->providedFeeds); $smarty->assign("T_RSS_PROVIDED_FEEDS_LESSON_TYPES", $this->lessonProvidedFeeds); if (isset($_GET['delete_feed']) && eF_checkParameter($_GET['delete_feed'], 'id')) { try { if ($_GET['type'] == 'provider') { eF_deleteTableData("module_rss_provider", "id=" . $_GET['delete_feed']); } else { eF_deleteTableData("module_rss_feeds", "id=" . $_GET['delete_feed']); } } catch (Exception $e) { handleAjaxExceptions($e); } exit; } elseif (isset($_GET['deactivate_feed']) && eF_checkParameter($_GET['deactivate_feed'], 'id')) { try { if ($_GET['type'] == 'provider') { eF_updateTableData("module_rss_provider", array("active" => 0), "id=" . $_GET['deactivate_feed']); } else { eF_updateTableData("module_rss_feeds", array("active" => 0), "id=" . $_GET['deactivate_feed']); } echo 0; } catch (Exception $e) { handleAjaxExceptions($e); } exit; } elseif (isset($_GET['activate_feed']) && eF_checkParameter($_GET['activate_feed'], 'file')) { //Although db operations do not support exceptions (yet), we leave this here for future support try { if ($_GET['type'] == 'provider') { eF_updateTableData("module_rss_provider", array("active" => 1), "id=" . $_GET['activate_feed']); } else { eF_updateTableData("module_rss_feeds", array("active" => 1), "id=" . $_GET['activate_feed']); } echo 1; } catch (Exception $e) { handleAjaxExceptions($e); } exit; } else { if (isset($_GET['add_feed']) || isset($_GET['edit_feed']) && eF_checkParameter($_GET['edit_feed'], 'id')) { if ($_SESSION['s_lesson_user_type']) { $type = $_SESSION['s_lesson_user_type']; } else { $type = $this->getCurrentUser()->getType(); } $smarty->assign("T_RSS_USERTYPE", $type); $feeds = $this->getFeeds(); $lessons = array(-1 => _RSS_NONE, 0 => _ALLLESSONS); $result = EfrontLesson::getLessons(); foreach ($result as $key => $lesson) { $lessons[$key] = $lesson['name']; } isset($_GET['add_feed']) ? $postTarget = "&add_feed=1" : ($postTarget = "&edit_feed=" . $_GET['edit_feed']); $form = new HTML_QuickForm("add_feed_form", "post", $this->moduleBaseUrl . $postTarget, "", null, true); $form->registerRule('checkParameter', 'callback', 'eF_checkParameter'); $form->addElement('text', 'title', _RSS_FEEDTITLE, 'class = "inputText"'); $form->addElement('text', 'url', _RSS_FEEDURL, 'class = "inputText"'); $form->addElement('select', 'lessons_ID', _LESSON, $lessons); if ($type != 'administrator' && $_SESSION['s_lessons_ID']) { $form->setDefaults(array('lessons_ID' => $_SESSION['s_lessons_ID'])); $form->freeze(array('lessons_ID')); } $form->addElement("advcheckbox", "active", _RSS_ACTIVE, null, 'class = "inputCheckBox"', array(0, 1)); $form->setDefaults(array('active' => 1)); $form->addElement("advcheckbox", "only_summary", _RSS_ONLYSUMMARY, null, 'class = "inputCheckBox"', array(0, 1)); $form->addRule('title', _THEFIELD . ' "' . _RSS_FEEDTITLE . '" ' . _ISMANDATORY, 'required', null, 'client'); $form->addRule('url', _THEFIELD . ' "' . _RSS_FEEDURL . '" ' . _ISMANDATORY, 'required', null, 'client'); $form->addRule('title', _INVALIDFIELDDATA, 'checkParameter', 'text'); $form->addElement('submit', 'submit', _SUBMIT, 'class = "flatButton"'); if (isset($_GET['edit_feed'])) { $editFeed = $feeds[$_GET['edit_feed']]; $form->setDefaults($editFeed); } if ($form->isSubmitted() && $form->validate()) { //If the form is submitted and validated $values = $form->exportValues(); $fields = array("title" => $values['title'], "url" => $values['url'], "active" => $values['active'], "only_summary" => $values['only_summary'], "lessons_ID" => $values['lessons_ID']); if (isset($_GET['add_feed'])) { eF_insertTableData("module_rss_feeds", $fields); $smarty->assign("T_RSS_RSS_MESSAGE", _RSS_SUCCESSFULLYADDEDFEED); } else { eF_updateTableData("module_rss_feeds", $fields, "id=" . $_GET['edit_feed']); $smarty->assign("T_RSS_RSS_MESSAGE", _RSS_SUCCESSFULLYEDITEDFEED); EfrontCache::getInstance()->deleteCache('rss_cache:' . $_GET['edit_feed']); } } $smarty->assign("T_RSS_ADD_RSS_FORM", $form->toArray()); } else { if (isset($_GET['add_feed_provider']) || isset($_GET['edit_feed_provider']) && eF_checkParameter($_GET['edit_feed_provider'], 'id')) { if ($_SESSION['s_lesson_user_type']) { $type = $_SESSION['s_lesson_user_type']; } else { $type = $this->getCurrentUser()->getType(); } $smarty->assign("T_RSS_USERTYPE", $type); $feeds = $this->getProvidedFeeds(); isset($_GET['add_feed_provider']) ? $postTarget = "&add_feed_provider=1" : ($postTarget = "&edit_feed_provider=" . $_GET['edit_feed_provider']); !isset($_GET['lesson']) or $postTarget .= '&lesson=1'; $form = new HTML_QuickForm("add_feed_provider_form", "post", $this->moduleBaseUrl . $postTarget . '&tab=rss_provider', "", null, true); $form->registerRule('checkParameter', 'callback', 'eF_checkParameter'); if ($_GET['lesson']) { $lessons = array(0 => _ALLLESSONS); $result = EfrontLesson::getLessons(); foreach ($result as $key => $lesson) { $lessons[$key] = $lesson['name']; } $form->addElement('select', 'feeds_provided', _RSS_PROVIDEDFEEDS, $this->lessonProvidedFeeds); $form->addElement('select', 'lessons_ID', _LESSON, $lessons); if ($type != 'administrator' && $_SESSION['s_lessons_ID']) { $form->setDefaults(array('lessons_ID' => $_SESSION['s_lessons_ID'])); $form->freeze(array('lessons_ID')); } } else { $form->addElement('select', 'feeds_provided', _RSS_PROVIDEDFEEDS, $this->providedFeeds); } $form->addElement("advcheckbox", "active", _RSS_ACTIVE, null, 'class = "inputCheckBox"', array(0, 1)); $form->setDefaults(array('active' => 1)); $form->addElement('submit', 'submit', _SUBMIT, 'class = "flatButton"'); if (isset($_GET['edit_feed_provider'])) { $editFeed = $feeds[$_GET['edit_feed_provider']]; $form->setDefaults($editFeed); } try { if ($form->isSubmitted() && $form->validate()) { //If the form is submitted and validated $values = $form->exportValues(); $fields = array("mode" => $_GET['lesson'] ? 'lesson' : 'system', "type" => $values['feeds_provided'], "active" => $values['active'], "lessons_ID" => $values['lessons_ID']); foreach ($feeds as $feed) { if ($feed['type'] == $fields['type'] && $feed['mode'] == $fields['mode'] && $feed['lessons_ID'] == $fields['lessons_ID']) { throw new Exception(_FEEDALREADYEXISTS); } } if (isset($_GET['add_feed_provider'])) { eF_insertTableData("module_rss_provider", $fields); $smarty->assign("T_RSS_RSS_MESSAGE", _RSS_SUCCESSFULLYADDEDFEED); } else { eF_updateTableData("module_rss_provider", $fields, "id=" . $_GET['edit_feed_provider']); $smarty->assign("T_RSS_RSS_MESSAGE", _RSS_SUCCESSFULLYEDITEDFEED); } } } catch (Exception $e) { $smarty->assign("T_EXCEPTION_TRACE", $e->getTraceAsString()); $message = $e->getMessage() . ' (' . $e->getCode() . ') <a href = "javascript:void(0)" onclick = "eF_js_showDivPopup(event, \'' . _ERRORDETAILS . '\', 2, \'error_details\')">' . _MOREINFO . '</a>'; $message_type = 'failure'; } $smarty->assign("T_RSS_PROVIDE_RSS_FORM", $form->toArray()); } else { if (isset($_GET['ajax'])) { echo $this->getRssFeeds($_GET['refresh']); //echo $this -> getRssFeeds(true); exit; } else { $lessons = array(0 => _ALLLESSONS); $result = EfrontLesson::getLessons(); foreach ($result as $key => $lesson) { $lessons[$key] = $lesson['name']; } $smarty->assign("T_LESSON_NAMES", $lessons); if ($_SESSION['s_lesson_user_type']) { $type = $_SESSION['s_lesson_user_type']; $smarty->assign("T_RSS_PROVIDED_FEEDS", $this->getProvidedFeeds($_SESSION['s_lessons_ID'])); $smarty->assign("T_RSS_FEEDS", $this->getFeeds(false, $_SESSION['s_lessons_ID'])); } else { $type = $this->getCurrentUser()->getType(); $smarty->assign("T_RSS_PROVIDED_FEEDS", $this->getProvidedFeeds()); $smarty->assign("T_RSS_FEEDS", $this->getFeeds()); } $smarty->assign("T_RSS_USERTYPE", $type); } } } } if ($message) { $this->setMessageVar($message, $message_type); } return $this->moduleBaseDir . "module_rss.tpl"; }
echo "<xml>"; echo "<status>error</status>"; echo "<message>Incomplete arguments</message>"; echo "</xml>"; } } else { echo "<xml>"; echo "<status>error</status>"; echo "<message>Invalid token</message>"; echo "</xml>"; } break; case 'logout': if (isset($_GET['token'])) { $token = $_GET['token']; eF_deleteTableData("tokens", "token='{$token}'"); echo "<xml>"; echo "<status>ok</status>"; echo "</xml>"; } else { echo "<xml>"; echo "<status>error</status>"; echo "<message>No token provided</message>"; echo "</xml>"; } break; default: echo "<xml>"; echo "<status>error</status>"; echo "<message>Invalid action argument</message>"; echo "</xml>";
$editCourse->persist(); if (isset($updateCourseInstancesCategory) && $updateCourseInstancesCategory) { eF_updateTableData("courses", array("directions_ID" => $editCourse->course['directions_ID']), "instance_source=" . $editCourse->course['id']); } if ($form->exportValue('branches_ID') && eF_checkParameter($form->exportValue('branches_ID'), 'id')) { $result = eF_getTableDataFlat("module_hcd_course_to_branch", "branches_ID", "courses_ID=" . $editCourse->course['id']); if (sizeof($result['branches_ID']) == 0) { eF_insertTableData("module_hcd_course_to_branch", array("branches_ID" => $form->exportValue('branches_ID'), "courses_ID" => $editCourse->course['id'])); } elseif (sizeof($result['branches_ID']) == 1) { //Only one branch associated with this course, as a 'location' eF_updateTableData("module_hcd_course_to_branch", array("branches_ID" => $form->exportValue('branches_ID')), "courses_ID=" . $editCourse->course['id']); } } else { if (G_VERSIONTYPE == 'enterprise') { #cpp#ifdef ENTERPRISE eF_deleteTableData("module_hcd_course_to_branch", "courses_ID=" . $editCourse->course['id']); } #cpp#endif } !isset($redirect) or eF_redirect($redirect); } catch (Exception $e) { handleNormalFlowExceptions($e); } } } $renderer = prepareFormRenderer($form); $form->accept($renderer); $smarty->assign('T_COURSE_FORM', $renderer->toArray()); //The courses advanced settings } elseif (isset($_GET['course'])) { $currentCourse = new EfrontCourse($_GET['course']);
/** * Delete a personal message * * This function is used to delete a message, including any attachments it may have * * @param int $msg_id The message id * @return bool True if the deletion was succesful * @version 0.1 * @deprecated */ public static function eF_deletePersonalMessage($msg_id) { if (eF_checkParameter($msg_id, 'id')) { $res = eF_getTableData("f_personal_messages", "users_LOGIN, attachments, f_folders_ID", "id=" . $msg_id); if ($_SESSION['s_login'] == $res[0]['users_LOGIN'] || $_SESSION['s_type'] == 'administrator') { eF_deleteTableData("f_personal_messages", "id=" . $msg_id); if ($res[0]['attachments'] != '') { $attached_file = new EfrontFile($res[0]['attachments']); $attached_file->delete(); } return true; } else { $message = 'You cannot delete this message'; return $message; } } else { $message = _INVALIDID; return $message; } }
/** * Delete comments from content * * This function is used to delete the specified comments from the * content. * <br/>Example: * <code> * $content = new EfrontContentTree(34); //Initialize content for lesson with id 34 * $content -> deleteComments(4); //Delete comment with ids 4 * $content -> deleteComments(array(4,6,2)); //Delete comments with ids 4,6,2 * $content -> deleteComments(array_keys($content -> getComments())); //Delete all comments * </code> * * @param mixed $comments A comment id or an array of comment ids * @since 3.5.2 * @access public */ public function deleteComments($comments) { if (!is_array($comments)) { $comments = array($comments); } $contentComments = array_keys($this->getComments()); $ids = array(); foreach ($comments as $key => $value) { if (in_array($value, $contentComments)) { $ids[] = $value; } } if (sizeof($ids) > 0) { eF_deleteTableData("comments", "id in (" . implode(",", $ids) . ")"); } }
/** * Delete configuration value * * This function deletes the specified value from the configuration table and variable * @param string $name The variable name * @since 3.6.8 * @access public * @static */ public static function deleteValue($name) { EfrontCache::getInstance()->deleteCache('configuration'); eF_deleteTableData("configuration", "name = '{$name}'"); unset($GLOBALS['configuration'][$name]); }
/** * The main functionality * * (non-PHPdoc) * @see libraries/EfrontModule#getModule() */ public function getModule() { $smarty = $this->getSmartyVar(); $currentUser = $this->getCurrentUser(); $directionsTree = new EfrontDirectionsTree(); $directionsPaths = $directionsTree->toPathString(); $smarty->assign("T_MODULE_OUTLOOK_INVITATION_DIRECTION_PATHS", $directionsPaths); $temp = eF_getTableData("module_outlook_invitation as m,courses as c", "m.*,c.name,c.directions_ID", "m.courses_ID=c.id"); $events = array(); foreach ($temp as $value) { $events[$value['courses_ID']] = $value; } if (isset($_GET['delete_event']) && eF_checkParameter($_GET['delete_event'], 'id') && in_array($_GET['delete_event'], array_keys($events))) { try { $event = $events[$_GET['delete_event']]; $course = new EfrontCourse($event['courses_ID']); $users = $course->getCourseUsers(array('active' => true, archive => false, 'return_objects' => false)); $recipients = array(); foreach ($users as $value) { $recipients[] = $value['email']; } $this->cancelInvitation($course->course['id'], $recipients); eF_deleteTableData("module_outlook_invitation", "courses_ID=" . $_GET['delete_event']); } catch (Exception $e) { header("HTTP/1.0 500 "); echo $e->getMessage() . ' (' . $e->getCode() . ')'; } exit; } if ($_SESSION['s_type'] != 'administrator') { $userCourses = $currentUser->getUserCourses(array('archive' => 0, 'active' => true, 'return_objects' => false)); if (G_VERSIONTYPE == 'enterprise') { if ($_SESSION['s_current_branch']) { $result = eF_getTableData("module_hcd_course_to_branch", "courses_ID", "branches_ID='{$_SESSION['s_current_branch']}'"); } else { if ($currentUser->aspects['hcd']->isSupervisor()) { $result = eF_getTableData("module_hcd_course_to_branch", "courses_ID", "branches_ID in (select branches_ID from module_hcd_employee_works_at_branch where users_login='******'login']}' and supervisor=1)"); } } $branchCourses = array(); foreach ($result as $value) { $branchCourses[$value['courses_ID']] = $value['courses_ID']; } foreach ($events as $key => $value) { if (!isset($branchCourses[$key]) && !isset($userCourses[$key])) { unset($events[$key]); } } } else { foreach ($events as $key => $value) { if (!isset($userCourses[$key])) { unset($events[$key]); } } } } if (!isset($_GET['course'])) { $dataSource = $events; $tableName = 'outlookInvitationsTable'; isset($_GET['limit']) && eF_checkParameter($_GET['limit'], 'uint') ? $limit = $_GET['limit'] : ($limit = G_DEFAULT_TABLE_SIZE); if (isset($_GET['sort']) && eF_checkParameter($_GET['sort'], 'text')) { $sort = $_GET['sort']; isset($_GET['order']) && $_GET['order'] == 'desc' ? $order = 'desc' : ($order = 'asc'); } else { $sort = 'login'; } $dataSource = eF_multiSort($dataSource, $sort, $order); $smarty->assign("T_TABLE_SIZE", sizeof($dataSource)); if (isset($_GET['filter'])) { $dataSource = eF_filterData($dataSource, $_GET['filter']); } if (isset($_GET['limit']) && eF_checkParameter($_GET['limit'], 'int')) { isset($_GET['offset']) && eF_checkParameter($_GET['offset'], 'int') ? $offset = $_GET['offset'] : ($offset = 0); $dataSource = array_slice($dataSource, $offset, $limit); } $smarty->assign("T_DATA_SOURCE", $dataSource); } else { $course = new EfrontCourse($_GET['course']); $form = new HTML_QuickForm("import_outlook_invitation_form", "post", $this->moduleBaseUrl . "&course={$course->course['id']}&add_event=1" . (isset($_GET['popup']) ? '&popup=1' : ''), "", null, true); $form->registerRule('checkParameter', 'callback', 'eF_checkParameter'); //Register this rule for checking user input with our function, eF_checkParameter $form->addElement('text', 'email', _SENDER, 'class = "inputText"'); $form->addElement('text', 'location', _LOCATION, 'class = "inputText"'); $form->addElement('text', 'subject', _SUBJECT, 'class = "inputText"'); $form->addElement('textarea', 'description', _DESCRIPTION, 'class = "inputTestTextarea" style = "width:80%;height:6em;"'); //$form -> addElement('checkbox', 'calendar', _MODULE_OUTLOOK_INVITATION_CREATE_CALENDAR); //$form -> addElement('static', 'static', _MODULE_OUTLOOK_INVITATION_INFO); $form->addElement('submit', 'submit_event_all', _MODULE_OUTLOOK_INVITATION_SENDALL, 'class=flatButton'); $form->addElement('submit', 'submit_event_new', _MODULE_OUTLOOK_INVITATION_SENDNEW, 'class=flatButton'); if (empty($events[$course->course['id']])) { //new invitation $currentEvent = null; $form->setDefaults(array('email' => $currentUser->user['email'], 'subject' => 'Invitation to attend training: ' . $course->course['name'])); } else { //existing invitation $currentEvent = $events[$course->course['id']]; $form->setDefaults(array('email' => $currentEvent['email'], 'description' => $currentEvent['description'], 'subject' => $currentEvent['subject'], 'location' => $currentEvent['location'])); } if ($form->isSubmitted() && $form->validate()) { try { $message = ""; // Set info to store into database $permanent_info = array("courses_ID" => $course->course['id'], "email" => $form->exportValue('email') ? $form->exportValue('email') : $GLOBALS['configuration']['system_email'], "location" => $form->exportValue('location'), "subject" => $form->exportValue('subject'), "description" => $form->exportValue('description')); if ($currentEvent) { $permanent_info['sequence'] = $currentEvent['sequence'] + 1; eF_updateTableData("module_outlook_invitation", $permanent_info, "courses_ID={$course->course['id']}"); } else { eF_insertTableData("module_outlook_invitation", $permanent_info); } if ($form->exportValue('submit_event_all')) { $users = $course->getCourseUsers(array('active' => true, archive => false, 'return_objects' => false)); $recipients = array(); foreach ($users as $value) { $recipients[] = $value['email']; } $this->sendInvitation($course->course['id'], $recipients); } // $smarty->assign('T_RELOAD', true); if (isset($_GET['popup'])) { $this->setMessageVar(_OPERATIONCOMPLETEDSUCCESSFULLY, 'success'); } else { eF_redirect($this->moduleBaseUrl . "&message=" . urlencode(_OPERATIONCOMPLETEDSUCCESSFULLY) . "&message_type=success"); } } catch (Exception $e) { $smarty->assign("T_EXCEPTION_TRACE", $e->getTraceAsString()); $this->setMessageVar($e->getMessage() . ' (' . $e->getCode() . ') <a href = "javascript:void(0)" onclick = "eF_js_showDivPopup(event, \'' . _ERRORDETAILS . '\', 2, \'error_details\')">' . _MOREINFO . '</a>', 'failure'); } } $form->setJsWarnings(_BEFOREJAVASCRIPTERROR, _AFTERJAVASCRIPTERROR); $form->setRequiredNote(_REQUIREDNOTE); $smarty->assign('T_MODULE_OUTLOOK_INVITATION_FORM', $form->toArray()); } $smarty->assign("T_MODULE_BASEDIR", $this->moduleBaseDir); $smarty->assign("T_MODULE_BASELINK", $this->moduleBaseLink); $smarty->assign("T_MODULE_BASEURL", $this->moduleBaseUrl); return true; }
} } } echo _FROM . ' ' . formatTimestamp($fromTimestamp, 'time_nosec') . ' ' . _TO . ' ' . formatTimestamp($toTimestamp, 'time_nosec') . ' '; } else { header("HTTP/1.0 500"); echo _ENDDATEMUSTBEBEFORESTARTDATE; } exit; } else { if (isset($_GET['delete_schedule']) && $_GET['delete_schedule'] == 0) { $currentCourse->course['start_date'] = ''; $currentCourse->course['end_date'] = ''; $currentCourse->persist(); eF_deleteTableData("notifications", "id_type_entity LIKE '%_" . -1 * EfrontEvent::COURSE_PROGRAMMED_START . "_" . $currentCourse->course['id'] . "'"); eF_deleteTableData("notifications", "id_type_entity LIKE '%_" . -1 * EfrontEvent::COURSE_PROGRAMMED_EXPIRY . "_" . $currentCourse->course['id'] . "'"); } } } } } } catch (Exception $e) { handleAjaxExceptions($e); } $days_after_enrollment = array(); for ($k = 0; $k <= 360; $k++) { $days_after_enrollment[$k] = $k; if ($k >= 100) { $k += 5; } }
$form->addElement('submit', 'submit_add_period', _SAVECHANGES, 'class = "flatButton"'); //The submit period button if ($form->isSubmitted() && $form->validate()) { $fromTimestamp = mktime($_POST['from_Hour'], $_POST['from_Minute'], 0, $_POST['from_Month'], $_POST['from_Day'], $_POST['from_Year']); $toTimestamp = mktime($_POST['to_Hour'], $_POST['to_Minute'], 0, $_POST['to_Month'], $_POST['to_Day'], $_POST['to_Year']); if ($fromTimestamp < $toTimestamp) { $currentLesson->lesson['from_timestamp'] = $fromTimestamp; $currentLesson->lesson['to_timestamp'] = $toTimestamp; //$currentLesson -> lesson['shift'] = $form -> exportValue('shift') ? 1 : 0; $smarty->assign("T_FROM_TIMESTAMP", $currentLesson->lesson['from_timestamp']); $smarty->assign("T_TO_TIMESTAMP", $currentLesson->lesson['to_timestamp']); // Note: the semantics of the following event triggers: these triggerings are used to create future "before event" notifications now // For this reason the timestamp is set to the values of the lesson eF_deleteTableData("notifications", "id_type_entity LIKE '%_" . -1 * EfrontEvent::LESSON_PROGRAMMED_START . "_" . $lesson->lesson['id'] . "'"); eF_deleteTableData("notifications", "id_type_entity LIKE '%_" . -1 * EfrontEvent::LESSON_PROGRAMMED_EXPIRY . "_" . $lesson->lesson['id'] . "'"); eF_deleteTableData("events", "lessons_ID = " . $currentLesson->lesson['id'] . " AND (type = '" . EfrontEvent::LESSON_PROGRAMMED_START . "' OR type = '" . EfrontEvent::LESSON_PROGRAMMED_EXPIRY . "')"); $currentLesson->persist(); if ($fromTimestamp > time()) { EfrontEvent::triggerEvent(array("type" => EfrontEvent::LESSON_PROGRAMMED_START, "timestamp" => $fromTimestamp, "lessons_ID" => $currentLesson->lesson['id'], "lessons_name" => $currentLesson->lesson['name'])); } if ($toTimestamp > time()) { EfrontEvent::triggerEvent(array("type" => EfrontEvent::LESSON_PROGRAMMED_EXPIRY, "timestamp" => $toTimestamp, "lessons_ID" => $currentLesson->lesson['id'], "lessons_name" => $currentLesson->lesson['name'])); } $message = _OPERATIONCOMPLETEDSUCCESSFULLY; $message_type = 'success'; } else { $message = _ENDDATEMUSTBEBEFORESTARTDATE; $message_type = 'failure'; } } }
if (isset($_GET['filter'])) { $scormData = eF_filterData($scormData, $_GET['filter']); } if (isset($_GET['limit']) && eF_checkParameter($_GET['limit'], 'int')) { isset($_GET['offset']) && eF_checkParameter($_GET['offset'], 'int') ? $offset = $_GET['offset'] : ($offset = 0); $scormData = array_slice($scormData, $offset, $limit); } $smarty->assign("T_SCORM_DATA", $scormData); $smarty->display('professor.tpl'); exit; } foreach ($scormData as $value) { $scormIds[] = $value['id']; } if (isset($_GET['delete']) && in_array($_GET['delete'], $scormIds)) { eF_deleteTableData("scorm_data", "id=" . $_GET['delete']); $user = EfrontUserFactory::factory($scormData[0]['users_LOGIN']); $user->setSeenUnit($scormData[0]['content_ID'], $currentLesson, false); exit; } } else { if ($_GET['scorm_import']) { if (isset($currentUser->coreAccess['content']) && $currentUser->coreAccess['content'] != 'change') { eF_redirect("" . basename($_SERVER['PHP_SELF']) . "?ctg=control_panel&message=" . urlencode(_UNAUTHORIZEDACCESS) . "&message_type=failure"); } try { $smarty->assign("T_MAX_FILE_SIZE", FileSystemTree::getUploadMaxSize()); $maxUploads = 5; $form = new HTML_QuickForm("upload_scorm_form", "post", basename($_SERVER['PHP_SELF']) . '?ctg=scorm&scorm_import=1', "", null, true); $form->registerRule('checkParameter', 'callback', 'eF_checkParameter'); //Register this rule for checking user input with our function, eF_checkParameter
} } else { $folder = $module_folder_position[0]['position']; require_once G_MODULESPATH . $folder . "/" . $className . ".class.php"; if (class_exists($className)) { $module = new $className("administrator.php?ctg=module&op=" . $className, $folder); try { $module->onUninstall(); } catch (Exception $e) { /*Do nothing*/ } } // PROBLEM: if the folder is open and cannot be deleted then the module cannot be reinstalled $folder = new EfrontDirectory(G_MODULESPATH . $folder . '/'); $folder->delete(); eF_deleteTableData("modules", "className='" . $className . "'"); } EfrontCache::getInstance()->deleteCache('modules'); exit; } elseif (isset($_GET['activate_module']) && eF_checkParameter($_GET['activate_module'], 'filename')) { if (isset($currentUser->coreAccess['modules']) && $currentUser->coreAccess['modules'] != 'change') { throw new EfrontSystemException(_UNAUTHORIZEDACCESS, EfrontSystemException::UNAUTHORIZED_ACCESS); } eF_updateTableData("modules", array("active" => 1), "className = '" . $_GET['activate_module'] . "'"); EfrontCache::getInstance()->deleteCache('modules'); echo "1"; exit; } elseif (isset($_GET['deactivate_module']) && eF_checkParameter($_GET['deactivate_module'], 'filename')) { if (isset($currentUser->coreAccess['modules']) && $currentUser->coreAccess['modules'] != 'change') { throw new EfrontSystemException(_UNAUTHORIZEDACCESS, EfrontSystemException::UNAUTHORIZED_ACCESS); }