41 $component_repository = $DIC[
'component.repository'];
43 require_once
'Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolDefinitionFactory.php';
49 require_once
'Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolDefinitionList.php';
56 $this->srcPoolDefList->loadDefinitions();
63 require_once
'Modules/Test/classes/class.ilTestRandomQuestionSetStagingPoolQuestionList.php';
65 $this->stagingPoolQuestionListByPoolId = array();
74 $xmlWriter->
xmlEndTag(
'RandomQuestionSetConfig');
82 $component_repository = $DIC[
'component.repository'];
85 $questionSetConfig->loadFromDb();
87 $xmlWriter->
xmlElement(
'RandomQuestionSetSettings', array(
88 'amountMode' => $questionSetConfig->getQuestionAmountConfigurationMode(),
89 'questAmount' => $questionSetConfig->getQuestionAmountPerTest(),
90 'homogeneous' => $questionSetConfig->arePoolsWithHomogeneousScoredQuestionsRequired(),
91 'synctimestamp' => $questionSetConfig->getLastQuestionSyncTimestamp()
99 foreach ($this->srcPoolDefList->getInvolvedSourcePoolIds() as $poolId) {
102 $xmlWriter->
xmlStartTag(
'RandomQuestionStagingPool', array(
'poolId' => $poolId));
103 $xmlWriter->
xmlData(implode(
',', $questionList->getQuestions()));
104 $xmlWriter->
xmlEndTag(
'RandomQuestionStagingPool');
107 $xmlWriter->
xmlEndTag(
'RandomQuestionStage');
112 $xmlWriter->
xmlStartTag(
'RandomQuestionSelectionDefinitions');
114 foreach ($this->srcPoolDefList as $definition) {
116 'id' => $definition->getId(),
117 'ref_id' => $definition->getPoolRefId(),
118 'poolId' => $definition->getPoolId(),
119 'questAmount' => $definition->getQuestionAmount() ??
'',
120 'poolQuestCount' => $definition->getPoolQuestionCount(),
121 'position' => $definition->getSequencePosition(),
122 'typeFilter' => implode(
',', $definition->getTypeFilterAsTypeTags()),
127 $mappedTaxFilter = $definition->getMappedTaxonomyFilter();
128 if (is_array($mappedTaxFilter) && count($mappedTaxFilter) > 0) {
129 $attributes[
'taxFilter'] = serialize($mappedTaxFilter);
133 $xmlWriter->
xmlElement(
'RandomQuestionSourcePoolTitle', null, $definition->getPoolTitle());
134 $xmlWriter->
xmlElement(
'RandomQuestionSourcePoolPath', null, $definition->getPoolPath());
135 $xmlWriter->
xmlEndTag(
'RandomQuestionSelectionDefinition');
138 $xmlWriter->
xmlEndTag(
'RandomQuestionSelectionDefinitions');
143 $questionQtiXml =
'';
145 foreach ($this->srcPoolDefList->getInvolvedSourcePoolIds() as $poolId) {
148 foreach ($questionList as $questionId) {
153 return $questionQtiXml;
161 $questionIds = array();
163 foreach ($this->srcPoolDefList->getInvolvedSourcePoolIds() as $poolId) {
166 foreach ($questionList as $questionId) {
167 $questionIds[] = $questionId;
180 if (!isset($this->stagingPoolQuestionListByPoolId[$poolId])) {
182 $ilDB = $DIC[
'ilDB'];
183 $component_repository = $DIC[
'component.repository'];
186 $questionList->setTestId($this->test_obj->getTestId());
187 $questionList->setPoolId($poolId);
188 $questionList->loadQuestions();
190 $this->stagingPoolQuestionListByPoolId[$poolId] = $questionList;
193 return $this->stagingPoolQuestionListByPoolId[$poolId];
getLoadedStagingPoolQuestionList($poolId)
xmlData(string $data, bool $encode=true, bool $escape=true)
Writes data.
getQuestionQtiXml($questionId)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
populateQuestionSetConfigXml(ilXmlWriter $xmlWriter)
xmlEndTag(string $tag)
Writes an endtag.
populateQuestionStages(ilXmlWriter $xmlWriter)
xmlStartTag(string $tag, ?array $attrs=null, bool $empty=false, bool $encode=true, bool $escape=true)
Writes a starttag.
xmlElement(string $tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
populateSelectionDefinitions(ilXmlWriter $xmlWriter)
$stagingPoolQuestionListByPoolId
populateCommonSettings(ilXmlWriter $xmlWriter)