4 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionHintList.php';
89 SELECT COUNT(qhtr_track_id) cnt 91 FROM qpl_hint_tracking 93 WHERE qhtr_question_fi = %s 94 AND qhtr_active_fi = %s 100 array(
'integer',
'integer',
'integer'),
122 SELECT COUNT(qht_hint_id) cnt_available, 123 COUNT(qhtr_track_id) cnt_requested 127 LEFT JOIN qpl_hint_tracking 128 ON qhtr_hint_fi = qht_hint_id 129 AND qhtr_active_fi = %s 132 WHERE qht_question_fi = %s 135 $res = $ilDB->queryF(
137 array(
'integer',
'integer',
'integer'),
143 if (
$row[
'cnt_available'] >
$row[
'cnt_requested']) {
164 SELECT COUNT(qhtr_track_id) cnt 166 FROM qpl_hint_tracking 168 WHERE qhtr_hint_fi = %s 169 AND qhtr_active_fi = %s 173 $res = $ilDB->queryF(
175 array(
'integer',
'integer',
'integer'),
181 if (
$row[
'cnt'] > 0) {
206 LEFT JOIN qpl_hint_tracking 207 ON qhtr_hint_fi = qht_hint_id 208 AND qhtr_active_fi = %s 211 WHERE qht_question_fi = %s 212 AND qhtr_track_id IS NULL 214 ORDER BY qht_hint_index ASC 219 $res = $ilDB->queryF(
221 array(
'integer',
'integer',
'integer'),
225 while (
$row = $ilDB->fetchAssoc(
$res)) {
231 require_once
'Modules/Test/exceptions/class.ilTestNoNextRequestableHintExistsException.php';
234 "no next hint found for questionId={$this->getQuestionId()}, activeId={$this->getActiveId()}, pass={$this->getPass()}" 254 FROM qpl_hint_tracking 256 WHERE qhtr_question_fi = %s 257 AND qhtr_active_fi = %s 261 $res = $ilDB->queryF(
263 array(
'integer',
'integer',
'integer'),
269 while (
$row = $ilDB->fetchAssoc(
$res)) {
270 $hintIds[] =
$row[
'qhtr_hint_fi'];
275 return $requestedHintsList;
290 $trackId = $ilDB->nextId(
'qpl_hint_tracking');
292 $ilDB->insert(
'qpl_hint_tracking',
array(
293 'qhtr_track_id' =>
array(
'integer', $trackId),
297 'qhtr_hint_fi' =>
array(
'integer', $questionHint->
getId()),
317 SELECT COUNT(qhtr_track_id) requests_count, 318 SUM(qht_hint_points) requests_points 320 FROM qpl_hint_tracking 323 ON qht_hint_id = qhtr_hint_fi 325 WHERE qhtr_question_fi = %s 326 AND qhtr_active_fi = %s 330 $res = $ilDB->queryF(
332 array(
'integer',
'integer',
'integer'),
338 if (
$row[
'requests_points'] === null) {
339 $row[
'requests_points'] = 0;
342 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionHintRequestStatisticData.php';
345 $requestsStatisticData->setRequestsCount(
$row[
'requests_count']);
346 $requestsStatisticData->setRequestsPoints(
$row[
'requests_points']);
348 return $requestsStatisticData;
357 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionHintRequestStatisticRegister.php';
358 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionHintRequestStatisticData.php';
361 $db = $DIC->database();
364 SELECT qhtr_pass requests_pass, 365 qhtr_question_fi requests_question, 366 COUNT(qhtr_track_id) requests_count, 367 SUM(qht_hint_points) requests_points 369 FROM qpl_hint_tracking 372 ON qht_hint_id = qhtr_hint_fi 374 WHERE qhtr_active_fi = %s 376 GROUP BY qhtr_pass, qhtr_question_fi 387 while (
$row = $db->fetchAssoc(
$res)) {
388 if (
$row[
'requests_points'] === null) {
389 $row[
'requests_points'] = 0;
393 $requestsStatisticData->setRequestsCount(
$row[
'requests_count']);
394 $requestsStatisticData->setRequestsPoints(
$row[
'requests_points']);
396 $register->addRequestByTestPassIndexAndQuestionId(
$row[
'requests_pass'],
$row[
'requests_question'], $requestsStatisticData);
406 public static function deleteRequestsByQuestionIds($questionIds)
413 $__question_fi__IN__questionIds = $ilDB->in(
'qhtr_question_fi', $questionIds,
false,
'integer');
416 DELETE FROM qpl_hint_tracking 417 WHERE $__question_fi__IN__questionIds 420 $ilDB->manipulate(
$query);
434 $__active_fi__IN__activeIds = $ilDB->in(
'qhtr_active_fi', $activeIds,
false,
'integer');
437 DELETE FROM qpl_hint_tracking 438 WHERE $__active_fi__IN__activeIds 441 $ilDB->manipulate(
$query);
getNumExistingRequests()
Returns the number existing hint requests for the given question relating to the given testactive and...
static getInstanceById($hintId)
creates a hint object instance, loads the persisted hint dataset identified by passed hint id from da...
getRequestedHintsList()
Returns an object of class ilAssQuestionHintList containing objects of class ilAssQuestionHint for al...
__construct($questionId, $activeId, $pass)
isRequested($hintId)
Returns the fact wether the hint for given id is requested for the given testactive and testpass...
getRequestStatisticDataByQuestionAndTestpass()
Returns a question hint request statistic data container containing the statistics for all requests r...
setQuestionId($questionId)
static getRequestRequestStatisticDataRegisterByActiveId($activeId)
requestsPossible()
Returns the fact wether (further) hint requests are possible for the given question relating to the g...
getId()
returns the hint id
getNextRequestableHint()
Returns the next requestable hint for given question relating to given testactive and testpass...
static getListByHintIds($hintIds)
instantiates a question hint list for the passed hint ids
foreach($_POST as $key=> $value) $res
storeRequest(ilAssQuestionHint $questionHint)
Tracks the given hint as requested for the given question, testactive and testpass.
Create styles array
The data for the language used.
static deleteRequestsByActiveIds($activeIds)
Deletes all hint requests relating to a testactive included in given active ids.
requestsExist()
Returns the fact wether there exists hint requests for the given question relating to the given testa...