19declare(strict_types=1);
37 $question_properties = [];
38 foreach (array_keys($this->test_obj->getTestParticipants()) as $usr_active_id) {
40 $user_attempts[$usr_active_id] = $attempt;
41 $user_questions[$usr_active_id] = $this->test_obj->isRandomTest()
43 fn(
$q) =>
$q[
'question_fi'],
44 $this->test_obj->getQuestionsOfPass($usr_active_id, $attempt)
46 : $this->test_obj->getQuestions();
49 $question_ids = array_unique(array_merge(...array_values($user_questions)));
50 foreach ($question_ids as $qid) {
51 $question_properties[$qid] = $this->question_repo->getForQuestionId($qid);
54 $qtypes = $this->test_obj->getGlobalSettings()->getDisabledQuestionTypes();
56 $question_properties = array_filter(
58 fn($qprops,
$id) => !in_array($qprops->getTypeId(), $qtypes),
62 $user_questions = array_map(
63 fn($question_ids) => array_filter(
65 fn($qid) => array_key_exists($qid, $question_properties)
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
__construct(private readonly \ilObjTest $test_obj, private readonly GeneralQuestionPropertiesRepository $question_repo)
static _getResultPass($active_id)
Retrieves the pass number that should be counted for a given user.