public function processAssessmentItem(AssessmentItem $assessmentItem) { // TODO: Yea, we ignore rubric but what happen if the rubric is deep inside nested $newCollection = new BlockCollection(); $itemBodyNew = new ItemBody(); /** @var QtiComponent $component */ foreach ($assessmentItem->getItemBody()->getContent() as $key => $component) { if (!$component instanceof RubricBlock) { $newCollection->attach($component); } else { LogService::log('Does not support <rubricBlock>. Ignoring <rubricBlock>'); } } $itemBodyNew->setContent($newCollection); $assessmentItem->setItemBody($itemBodyNew); return $assessmentItem; }
public function processAssessmentItem(AssessmentItem $assessmentItem) { $itemBody = $assessmentItem->getItemBody(); foreach ($itemBody->getIterator() as $component) { if ($component instanceof Math) { $element = $component->getXml()->documentElement; // Remove prefix if exists for conversion // ie. <m:math> to just <math> $element->removeAttributeNS($element->namespaceURI, $element->prefix); $component->setXmlString($element->ownerDocument->saveXML()); // Remove MathML namespace declaration $component->setTargetNamespace(''); $this->hasMathML = true; } } $assessmentItem->setItemBody($itemBody); return $assessmentItem; }