/** * Sets the terminated status for the passed courseId and courseInstanceId * It is usually called from user.php when the user has a subscried status * and the subscription_date + duration_subscription is in the past. * * @param number $courseId * @param number $courseInstanceId * * @return AMA_Error on error or true on success * * @access public * * @author giorgio 03/apr/2015 */ public function setTerminatedStatusForInstance($courseId, $courseInstanceId) { $common_dh = $GLOBALS['common_dh']; require_once ROOT_DIR . '/switcher/include/Subscription.inc.php'; $s = new Subscription($this->getId(), $courseInstanceId); $s->setSubscriptionStatus(ADA_STATUS_TERMINATED); $s->setStartStudentLevel(null); // null means no level update // search the provider of the current iteration course $courseProv = $common_dh->get_tester_info_from_id_course($courseId); if (!AMA_DB::isError($courseProv) && is_array($courseProv) && isset($courseProv['puntatore'])) { // save the datahandler $savedDH = $GLOBALS['dh']; // set the datahandler to be used $GLOBALS['dh'] = AMA_DataHandler::instance(MultiPort::getDSN($courseProv['puntatore'])); // update the subscription $retval = Subscription::updateSubscription($s); // restore the datahandler $GLOBALS['dh'] = $savedDH; $GLOBALS['dh']->disconnect(); } return isset($retval) ? $retval : null; }
// load the conditionset for this course $conditionSet = $mydh->get_linked_conditionset_for_course($courseObj->getId()); $mydh->disconnect(); if ($conditionSet instanceof CompleteConditionSet) { // evaluate the conditionset for this instance ID and course ID $is_course_instance_complete = $conditionSet->evaluateSet(array($courseInstanceObj->getId(), $userObj->getId())); } else { $is_course_instance_complete = false; } // if course is complete, save this information to the db if ($is_course_instance_complete) { require_once ROOT_DIR . '/switcher/include/Subscription.inc.php'; $s = new Subscription($userObj->getId(), $courseInstanceObj->getId()); $s->setSubscriptionStatus(ADA_SERVICE_SUBSCRIPTION_STATUS_COMPLETED); if (isset($userObj->livello) && intval($userObj->livello) > 0) { $s->setStartStudentLevel($userObj->livello); } $subscribedCount = Subscription::updateSubscription($s); } } } } /** * end service completeness */ /** * Authors can edit public courses assigned to themselves */ if ($id_profile == AMA_TYPE_AUTHOR && $courseObj instanceof Course && $courseObj->getIsPublic()) { $mod_enabled = $userObj->getId() == $courseObj->getAuthorId(); }
* Clear node and layout variable in $_SESSION */ $variableToClearAR = array('node', 'layout', 'course', 'course_instance'); /** * Users (types) allowed to access this module. */ $allowedUsersAr = array(AMA_TYPE_SWITCHER); /** * Performs basic controls before entering this module */ $neededObjAr = array(AMA_TYPE_SWITCHER => array('layout')); $trackPageToNavigationHistory = false; require_once ROOT_DIR . '/include/module_init.inc.php'; //require_once 'include/switcher_functions.inc.php'; include_once '../include/Subscription.inc.php'; if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') { $userStatus = $_POST['status']; $id_user = $_POST['id_user']; $id_instance = $_POST['id_instance']; $s = new Subscription($id_user, $id_instance); $s->setSubscriptionStatus($userStatus); $s->setStartStudentLevel(null); // null means no level update $result = Subscription::updateSubscription($s); if (AMA_DataHandler::isError($result)) { $retArray = array("status" => "ERROR", "msg" => translateFN("Problemi nell'aggiornamento dello stato dell'iscrizione"), "title" => translateFN('Notifica')); } else { $retArray = array("status" => "OK", "msg" => translateFN("Hai aggiornato correttamente lo stato dell'iscrizione"), "title" => translateFN('Notifica')); } echo json_encode($retArray); }