/** * checks wether a single condition is fulfilled * every trigger object type must implement a static method * _checkCondition($a_operator, $a_value) */ function _checkCondition($a_id, $a_usr_id = 0) { global $ilUser; $a_usr_id = $a_usr_id ? $a_usr_id : $ilUser->getId(); $condition = ilConditionHandler::_getCondition($a_id); switch ($condition['trigger_type']) { case "tst": include_once './Modules/Test/classes/class.ilObjTestAccess.php'; return ilObjTestAccess::_checkCondition($condition['trigger_obj_id'], $condition['operator'], $condition['value'], $a_usr_id); case "crs": include_once './Modules/Course/classes/class.ilObjCourse.php'; return ilObjCourse::_checkCondition($condition['trigger_obj_id'], $condition['operator'], $condition['value'], $a_usr_id); case 'exc': include_once './Modules/Exercise/classes/class.ilObjExercise.php'; return ilObjExercise::_checkCondition($condition['trigger_obj_id'], $condition['operator'], $condition['value'], $a_usr_id); case 'crsg': include_once './Modules/Course/classes/class.ilObjCourseGrouping.php'; return ilObjCourseGrouping::_checkCondition($condition['trigger_obj_id'], $condition['operator'], $condition['value'], $a_usr_id); case 'sahs': include_once './Services/Tracking/classes/class.ilLPStatus.php'; return ilLPStatus::_lookupStatus($condition['trigger_obj_id'], $a_usr_id) == LP_STATUS_COMPLETED_NUM; case 'svy': include_once './Modules/Survey/classes/class.ilObjSurvey.php'; return ilObjSurvey::_checkCondition($condition['trigger_obj_id'], $condition['operator'], $condition['value'], $a_usr_id); default: return false; } }
/** * checks wether a single condition is fulfilled * every trigger object type must implement a static method * _checkCondition($a_operator, $a_value) */ function _checkCondition($a_id, $a_usr_id = 0) { global $ilUser, $objDefinition; $a_usr_id = $a_usr_id ? $a_usr_id : $ilUser->getId(); $condition = ilConditionHandler::_getCondition($a_id); // check lp if ($condition['operator'] == self::OPERATOR_LP) { include_once './Services/Tracking/classes/class.ilLPStatus.php'; return ilLPStatus::_hasUserCompleted($condition['trigger_obj_id'], $a_usr_id); } switch ($condition['trigger_type']) { case 'crsg': include_once './Modules/Course/classes/class.ilObjCourseGrouping.php'; return ilObjCourseGrouping::_checkCondition($condition['trigger_obj_id'], $condition['operator'], $condition['value'], $a_usr_id); } $class = $objDefinition->getClassName($condition['trigger_type']); $location = $objDefinition->getLocation($condition['trigger_type']); $full_class = "ilObj" . $class . "Access"; include_once $location . "/class." . $full_class . ".php"; $fullfilled = call_user_func(array($full_class, 'checkCondition'), $condition['trigger_obj_id'], $condition['operator'], $condition['value'], $a_usr_id); return $fullfilled; }