ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilTestPassesSelector Class Reference
+ Collaboration diagram for ilTestPassesSelector:

Public Member Functions

 __construct (ilDB $db, ilObjTest $testOBJ)
 
 getActiveId ()
 
 setActiveId ($activeId)
 
 getLastFinishedPass ()
 
 setLastFinishedPass ($lastFinishedPass)
 
 loadLastFinishedPass ()
 
 getExistingPasses ()
 
 getNumExistingPasses ()
 
 getClosedPasses ()
 
 getReportablePasses ()
 

Protected Attributes

 $db
 
 $testOBJ
 

Private Member Functions

 loadExistingPasses ()
 
 fetchReportablePasses ($existingPasses)
 
 fetchClosedPasses ($existingPasses)
 
 fetchLastPass ($existingPasses)
 
 isReportablePass ($lastPass, $pass)
 
 isClosedPass ($pass)
 
 isReportingDateReached ()
 
 isProcessingTimeReached ($pass)
 

Private Attributes

 $activeId
 
 $lastFinishedPass
 

Detailed Description

Definition at line 11 of file class.ilTestPassesSelector.php.

Constructor & Destructor Documentation

◆ __construct()

ilTestPassesSelector::__construct ( ilDB  $db,
ilObjTest  $testOBJ 
)

Definition at line 21 of file class.ilTestPassesSelector.php.

22 {
23 $this->db = $db;
24 $this->testOBJ = $testOBJ;
25 }

References $db, and $testOBJ.

Member Function Documentation

◆ fetchClosedPasses()

ilTestPassesSelector::fetchClosedPasses (   $existingPasses)
private

Definition at line 132 of file class.ilTestPassesSelector.php.

133 {
134 $closedPasses = array();
135
136 foreach($existingPasses as $pass)
137 {
138 if( $this->isClosedPass($pass) )
139 {
140 $closedPasses[] = $pass;
141 }
142 }
143
144 return $closedPasses;
145 }

References $pass, and isClosedPass().

Referenced by getClosedPasses().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fetchLastPass()

ilTestPassesSelector::fetchLastPass (   $existingPasses)
private

Definition at line 147 of file class.ilTestPassesSelector.php.

148 {
149 $lastPass = null;
150
151 foreach($existingPasses as $pass)
152 {
153 if( $lastPass === null || $pass > $lastPass )
154 {
155 $lastPass = $pass;
156 }
157 }
158
159 return $lastPass;
160 }

References $pass.

Referenced by fetchReportablePasses().

+ Here is the caller graph for this function:

◆ fetchReportablePasses()

ilTestPassesSelector::fetchReportablePasses (   $existingPasses)
private

Definition at line 115 of file class.ilTestPassesSelector.php.

116 {
117 $lastPass = $this->fetchLastPass($existingPasses);
118
119 $reportablePasses = array();
120
121 foreach($existingPasses as $pass)
122 {
123 if( $this->isReportablePass($lastPass, $pass) )
124 {
125 $reportablePasses[] = $pass;
126 }
127 }
128
129 return $reportablePasses;
130 }

References $pass, fetchLastPass(), and isReportablePass().

Referenced by getReportablePasses().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getActiveId()

ilTestPassesSelector::getActiveId ( )

Definition at line 27 of file class.ilTestPassesSelector.php.

References $activeId.

Referenced by isProcessingTimeReached(), loadExistingPasses(), and loadLastFinishedPass().

+ Here is the caller graph for this function:

◆ getClosedPasses()

ilTestPassesSelector::getClosedPasses ( )

Definition at line 73 of file class.ilTestPassesSelector.php.

74 {
75 $existingPasses = $this->loadExistingPasses();
76 $closedPasses = $this->fetchClosedPasses($existingPasses);
77
78 return $closedPasses;
79 }

References fetchClosedPasses(), and loadExistingPasses().

+ Here is the call graph for this function:

◆ getExistingPasses()

ilTestPassesSelector::getExistingPasses ( )

Definition at line 63 of file class.ilTestPassesSelector.php.

64 {
65 return $this->loadExistingPasses();
66 }

References loadExistingPasses().

+ Here is the call graph for this function:

◆ getLastFinishedPass()

ilTestPassesSelector::getLastFinishedPass ( )

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

References $lastFinishedPass.

Referenced by isClosedPass().

+ Here is the caller graph for this function:

◆ getNumExistingPasses()

ilTestPassesSelector::getNumExistingPasses ( )

Definition at line 68 of file class.ilTestPassesSelector.php.

69 {
70 return count($this->loadExistingPasses());
71 }

References loadExistingPasses().

+ Here is the call graph for this function:

◆ getReportablePasses()

ilTestPassesSelector::getReportablePasses ( )

Definition at line 81 of file class.ilTestPassesSelector.php.

82 {
83 $existingPasses = $this->loadExistingPasses();
84
85 $reportablePasses = $this->fetchReportablePasses($existingPasses);
86
87 return $reportablePasses;
88 }

References fetchReportablePasses(), and loadExistingPasses().

+ Here is the call graph for this function:

◆ isClosedPass()

ilTestPassesSelector::isClosedPass (   $pass)
private

Definition at line 187 of file class.ilTestPassesSelector.php.

188 {
189 if( $pass <= $this->getLastFinishedPass() )
190 {
191 return true;
192 }
193
194 if( $this->isProcessingTimeReached($pass) )
195 {
196 return true;
197 }
198
199 return false;
200 }

References $pass, getLastFinishedPass(), and isProcessingTimeReached().

Referenced by fetchClosedPasses(), and isReportablePass().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isProcessingTimeReached()

ilTestPassesSelector::isProcessingTimeReached (   $pass)
private

Definition at line 218 of file class.ilTestPassesSelector.php.

219 {
220 if( !$this->testOBJ->getEnableProcessingTime() )
221 {
222 return false;
223 }
224
225 $startingTime = $this->testOBJ->getStartingTimeOfUser($this->getActiveId(), $pass);
226
227 if($startingTime === FALSE)
228 {
229 return false;
230 }
231
232 return $this->testOBJ->isMaxProcessingTimeReached($startingTime, $this->getActiveId());
233 }

References $pass, and getActiveId().

Referenced by isClosedPass().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isReportablePass()

ilTestPassesSelector::isReportablePass (   $lastPass,
  $pass 
)
private

Definition at line 162 of file class.ilTestPassesSelector.php.

163 {
164 switch( $this->testOBJ->getScoreReporting() )
165 {
167
168 return true;
169
171
172 return $this->isReportingDateReached();
173
175
176 if($pass < $lastPass)
177 {
178 return true;
179 }
180
181 return $this->isClosedPass($pass);
182 }
183
184 return false;
185 }
const SCORE_REPORTING_IMMIDIATLY
const SCORE_REPORTING_FINISHED
const SCORE_REPORTING_DATE

References $pass, isClosedPass(), isReportingDateReached(), ilObjTest\SCORE_REPORTING_DATE, ilObjTest\SCORE_REPORTING_FINISHED, and ilObjTest\SCORE_REPORTING_IMMIDIATLY.

Referenced by fetchReportablePasses().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isReportingDateReached()

ilTestPassesSelector::isReportingDateReached ( )
private

Definition at line 202 of file class.ilTestPassesSelector.php.

203 {
204 $reg = '/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/';
205 $date = $this->testOBJ->getReportingDate();
206 $matches = null;
207
208 if( !preg_match($reg, $date, $matches) )
209 {
210 return false;
211 }
212
213 $repTS = mktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);
214
215 return time() >= $repTS;
216 }

Referenced by isReportablePass().

+ Here is the caller graph for this function:

◆ loadExistingPasses()

ilTestPassesSelector::loadExistingPasses ( )
private

Definition at line 90 of file class.ilTestPassesSelector.php.

91 {
92 $query = "
93 SELECT DISTINCT tst_pass_result.pass FROM tst_pass_result
94 LEFT JOIN tst_test_result
95 ON tst_pass_result.pass = tst_test_result.pass
96 AND tst_pass_result.active_fi = tst_test_result.active_fi
97 WHERE tst_pass_result.active_fi = %s
98 ORDER BY tst_pass_result.pass
99 ";
100
101 $res = $this->db->queryF(
102 $query, array('integer'), array($this->getActiveId())
103 );
104
105 $existingPasses = array();
106
107 while( $row = $this->db->fetchAssoc($res) )
108 {
109 $existingPasses[] = $row['pass'];
110 }
111
112 return $existingPasses;
113 }

References $query, $res, $row, and getActiveId().

Referenced by getClosedPasses(), getExistingPasses(), getNumExistingPasses(), and getReportablePasses().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ loadLastFinishedPass()

ilTestPassesSelector::loadLastFinishedPass ( )

Definition at line 47 of file class.ilTestPassesSelector.php.

48 {
49 $query = "
50 SELECT last_finished_pass FROM tst_active WHERE active_id = %s
51 ";
52
53 $res = $this->db->queryF(
54 $query, array('integer'), array($this->getActiveId())
55 );
56
57 while( $row = $this->db->fetchAssoc($res) )
58 {
59 $this->setLastFinishedPass($row['last_finished_pass']);
60 }
61 }
setLastFinishedPass($lastFinishedPass)

References $query, $res, $row, getActiveId(), and setLastFinishedPass().

+ Here is the call graph for this function:

◆ setActiveId()

ilTestPassesSelector::setActiveId (   $activeId)

Definition at line 32 of file class.ilTestPassesSelector.php.

33 {
34 $this->activeId = $activeId;
35 }

References $activeId.

◆ setLastFinishedPass()

ilTestPassesSelector::setLastFinishedPass (   $lastFinishedPass)

Definition at line 42 of file class.ilTestPassesSelector.php.

43 {
44 $this->lastFinishedPass = $lastFinishedPass;
45 }

References $lastFinishedPass.

Referenced by loadLastFinishedPass().

+ Here is the caller graph for this function:

Field Documentation

◆ $activeId

ilTestPassesSelector::$activeId
private

Definition at line 17 of file class.ilTestPassesSelector.php.

Referenced by getActiveId(), and setActiveId().

◆ $db

ilTestPassesSelector::$db
protected

Definition at line 13 of file class.ilTestPassesSelector.php.

Referenced by __construct().

◆ $lastFinishedPass

ilTestPassesSelector::$lastFinishedPass
private

Definition at line 19 of file class.ilTestPassesSelector.php.

Referenced by getLastFinishedPass(), and setLastFinishedPass().

◆ $testOBJ

ilTestPassesSelector::$testOBJ
protected

Definition at line 15 of file class.ilTestPassesSelector.php.

Referenced by __construct().


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