Public Member Functions | Data Fields

ilCourseObjectiveResult Class Reference

Public Member Functions

 ilCourseObjectiveResult ($a_usr_id)
 getUserId ()
 reset ($a_course_id)
 getStatus ($a_course_id)
 updateResults ($a_test_result)
 isSuggested ($a_objective_id)
 hasAccomplishedObjective ($a_objective_id)
 __deleteEntries ($a_objective_ids)
 __getReachedPoints ($a_question_ids)
 __isAnswered ($a_question_ids)
 _updateUserResult ($a_usr_id, $a_question_id, $a_points)
 addEntry ($a_question_id, $a_points)
 _deleteAll ($user_id)

Data Fields

 $db = null
 $user_id = null

Detailed Description

Definition at line 35 of file class.ilCourseObjectiveResult.php.


Member Function Documentation

ilCourseObjectiveResult::__deleteEntries ( a_objective_ids  ) 

Definition at line 237 of file class.ilCourseObjectiveResult.php.

References $query.

Referenced by reset().

        {
                if(!count($a_objective_ids))
                {
                        return true;
                }
                $in = "IN ('";
                $in .= implode("','",$a_objective_ids);
                $in .= "')";

                $query = "DELETE FROM crs_objective_results ".
                        "WHERE usr_id = '".$this->getUserId()."' ".
                        "AND question_id ".$in;

                $this->db->query($query);

                
        }

Here is the caller graph for this function:

ilCourseObjectiveResult::__getReachedPoints ( a_question_ids  ) 

Definition at line 257 of file class.ilCourseObjectiveResult.php.

References $query, $res, and $row.

Referenced by hasAccomplishedObjective(), and isSuggested().

        {
                $points = 0;

                foreach($a_question_ids as $qid)
                {
                        $query = "SELECT points FROM crs_objective_results ".
                                "WHERE usr_id = '".$this->getUserId()."' ".
                                "AND question_id = '".$qid."'";

                        $res = $this->db->query($query);
                        while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
                        {
                                $points += ((int) $row->points);
                        }
                }
                return $points ? $points : 0;
        }

Here is the caller graph for this function:

ilCourseObjectiveResult::__isAnswered ( a_question_ids  ) 

Definition at line 276 of file class.ilCourseObjectiveResult.php.

References $query, $res, and $row.

Referenced by getStatus().

        {
                foreach($a_question_ids as $qid)
                {

                        $query = "SELECT points FROM crs_objective_results ".
                                "WHERE usr_id = '".$this->getUserId()."' ".
                                "AND question_id = '".$qid."'";

                        $res = $this->db->query($query);
                        while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
                        {
                                return true;
                        }
                }
                return false;
        }               

Here is the caller graph for this function:

ilCourseObjectiveResult::_deleteAll ( user_id  ) 

Definition at line 338 of file class.ilCourseObjectiveResult.php.

References $query.

Referenced by ilObjUser::delete().

        {
                global $ilDB;

                $query = "DELETE FROM crs_objective_results ".
                        "WHERE usr_id = '".$user_id."'";

                $ilDB->query($query);
                
                return true;
        }

Here is the caller graph for this function:

ilCourseObjectiveResult::_updateUserResult ( a_usr_id,
a_question_id,
a_points 
)

Definition at line 294 of file class.ilCourseObjectiveResult.php.

References $query.

Referenced by ASS_TextQuestion::_setReachedPoints().

        {
                global $ilDB;

                // Delete old entry
                $query = "DELETE FROM crs_objective_results ".
                        "WHERE usr_id = '".$a_usr_id."' ".
                        "AND question_id = '".$a_question_id."'";

                $ilDB->query($query);
                
                // ... and add it
                $query = "INSERT INTO crs_objective_results ".
                        "SET usr_id = '".$a_usr_id."', ".
                        "question_id = '".$a_question_id."', ".
                        "points = '".$a_points."'";

                $ilDB->query($query);

                return true;
        }

Here is the caller graph for this function:

ilCourseObjectiveResult::addEntry ( a_question_id,
a_points 
)

Definition at line 318 of file class.ilCourseObjectiveResult.php.

References $query.

Referenced by updateResults().

        {
                // DElete old entry
                $query = "DELETE FROM crs_objective_results ".
                        "WHERE usr_id = '".$this->getUserId()."' ".
                        "AND question_id = '".$a_question_id."'";

                $this->db->query($query);

                $query = "INSERT INTO crs_objective_results ".
                        "SET usr_id = '".$this->getUserId()."', ".
                        "question_id = '".$a_question_id."', ".
                        "points = '".$a_points."'";

                $this->db->query($query);

                return true;
        }

Here is the caller graph for this function:

ilCourseObjectiveResult::getStatus ( a_course_id  ) 

Definition at line 85 of file class.ilCourseObjectiveResult.php.

References __isAnswered(), and ilCourseObjective::_getObjectiveIds().

        {
                include_once './course/classes/class.ilCourseObjective.php';
                include_once './course/classes/class.ilCourseObjectiveQuestion.php';

                $final = false;
                $pretest = false;

                foreach(ilCourseObjective::_getObjectiveIds($a_course_id) as $objective_id)
                {
                        $tmp_obj_question =& new ilCourseObjectiveQuestion($objective_id);
                
                        foreach($tmp_obj_question->getTests() as $test_data)
                        {
                                if($this->__isAnswered($tmp_obj_question->getQuestionsByTest($test_data['ref_id'])))
                                {
                                        if($test_data['tst_status'])
                                        {
                                                $final = true;
                                        }
                                        else
                                        {
                                                $pretest = true;
                                        }
                                }
                        }
                }
                if($final)
                {
                        return 'final';
                }
                if($pretest)
                {
                        return 'pretest';
                }
                return 'none';
        }

Here is the call graph for this function:

ilCourseObjectiveResult::getUserId (  ) 

Definition at line 49 of file class.ilCourseObjectiveResult.php.

Referenced by isSuggested(), and reset().

        {
                return $this->user_id;
        }

Here is the caller graph for this function:

ilCourseObjectiveResult::hasAccomplishedObjective ( a_objective_id  ) 

Definition at line 186 of file class.ilCourseObjectiveResult.php.

References __getReachedPoints().

        {
                $reached = 0;
                $accomplished = true;

                include_once './course/classes/class.ilCourseObjectiveQuestion.php';

                $tmp_obj_question =& new ilCourseObjectiveQuestion($a_objective_id);

                foreach($tmp_obj_question->getTests() as $test_data)
                {
                        $tmp_points = $this->__getReachedPoints($tmp_obj_question->getQuestionsByTest($test_data['ref_id']));

                        $max = $tmp_obj_question->getMaxPointsByTest($test_data['ref_id']);

                        if(!$max)
                        {
                                continue;
                        }
                        if(!$tmp_points)
                        {
                                if($test_data['tst_status'])
                                {
                                        return false;
                                }
                                else
                                {
                                        $accomplished = false;
                                        continue;
                                }
                        }

                        $percent = ($tmp_points / $max) * 100.0;

                        if($percent >= $test_data['tst_limit'] and $test_data['tst_status'])
                        {
                                return true;
                        }
                        // no fullfilled
                        if($test_data['tst_status'])
                        {
                                return false;
                        }
                        $accomplished = false;
                                
                }
                return $accomplished ? true : false;
        }

Here is the call graph for this function:

ilCourseObjectiveResult::ilCourseObjectiveResult ( a_usr_id  ) 

Definition at line 41 of file class.ilCourseObjectiveResult.php.

        {
                global $ilDB;

                $this->db =& $ilDB;

                $this->user_id = $a_usr_id;
        }

ilCourseObjectiveResult::isSuggested ( a_objective_id  ) 

Definition at line 140 of file class.ilCourseObjectiveResult.php.

References __getReachedPoints(), ilObjTest::_hasFinished(), and getUserId().

Referenced by ilCourseContentInterface::__readSuggested().

        {
                $suggested = true;
                $edited_final = true;

                include_once './course/classes/class.ilCourseObjectiveQuestion.php';
                include_once './assessment/classes/class.ilObjTest.php';

                $tmp_obj_question =& new ilCourseObjectiveQuestion($a_objective_id);

                foreach($tmp_obj_question->getTests() as $test_data)
                {
                        $tmp_points = $this->__getReachedPoints($tmp_obj_question->getQuestionsByTest($test_data['ref_id']));
                        $max = $tmp_obj_question->getMaxPointsByTest($test_data['ref_id']);
                        if(!$max)
                        {
                                return false;
                        }
                        if($test_data['tst_status'])
                        {
                                if(ilObjTest::_hasFinished($this->getUserId(),$test_data['obj_id']))
                                {
                                        return true;
                                }
                                continue;
                        }
                        if(!$tmp_points)
                        {
                                $suggested = true;
                                continue;
                        }
                        $percent = ($tmp_points / $max) * 100.0;
                        
                        if($percent < $test_data['tst_limit'])
                        {
                                $suggested = true;
                        }
                        else
                        {
                                $suggested = false;
                        }
                }
                return $suggested;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCourseObjectiveResult::reset ( a_course_id  ) 

Definition at line 54 of file class.ilCourseObjectiveResult.php.

References $_SESSION, __deleteEntries(), ilCourseObjective::_getObjectiveIds(), ilObjectFactory::getInstanceByRefId(), and getUserId().

        {
                include_once './course/classes/class.ilCourseObjective.php';
                include_once './course/classes/class.ilCourseObjectiveQuestion.php';


                foreach(ilCourseObjective::_getObjectiveIds($a_course_id) as $objective_id)
                {
                        $tmp_obj_question =& new ilCourseObjectiveQuestion($objective_id);
                
                        foreach($tmp_obj_question->getTests() as $test_data)
                        {
                                $this->__deleteEntries($tmp_obj_question->getQuestionsByTest($test_data['ref_id']));
                                
                                if($tmp_test =& ilObjectFactory::getInstanceByRefId($test_data['ref_id']))
                                {
                                        $tmp_test->deleteResults($this->getUserId(),true);
                                        unset($tmp_test);
                                }
                        }
                }

                // unset hashed accomplished
                unset($_SESSION['accomplished']);
                unset($_SESSION['objectives_suggested']);
                unset($_SESSION['objectives_status']);
                unset($_SESSION['objectives_fullfilled']);

                return true;
        }

Here is the call graph for this function:

ilCourseObjectiveResult::updateResults ( a_test_result  ) 

Definition at line 123 of file class.ilCourseObjectiveResult.php.

References $_SESSION, and addEntry().

        {
                foreach($a_test_result as $question_data)
                {
                        if($question_data['qid'])
                        {
                                $this->addEntry($question_data['qid'],$question_data['reached']);
                        }
                }
                // unset hashed accomplished
                unset($_SESSION['accomplished']);
                unset($_SESSION['objectives_suggested']);
                unset($_SESSION['objectives_status']);

                return true;
        }

Here is the call graph for this function:


Field Documentation

ilCourseObjectiveResult::$db = null

Definition at line 37 of file class.ilCourseObjectiveResult.php.

ilCourseObjectiveResult::$user_id = null

Definition at line 38 of file class.ilCourseObjectiveResult.php.


The documentation for this class was generated from the following file: