/** * Marshall a RubricBlock object into a DOMElement object. * * @param QtiComponent $component A RubricBlock object. * @return DOMElement The according DOMElement object. */ protected function marshall(QtiComponent $component) { $element = static::getDOMCradle()->createElement($component->getQtiClassName()); $arrayViews = array(); foreach ($component->getViews() as $view) { $key = array_search($view, View::asArray()); // replace '_' by the space char. $arrayViews[] = strtolower(str_replace("ò", " ", $key)); } if (count($arrayViews) > 0) { static::setDOMElementAttribute($element, 'view', implode(" ", $arrayViews)); } if ($component->getUse() != '') { static::setDOMElementAttribute($element, 'use', $component->getUse()); } if ($component->hasXmlBase() === true) { static::setXmlBase($element, $component->getXmlBase()); } foreach ($component->getContent() as $block) { $marshaller = $this->getMarshallerFactory()->createMarshaller($block); $element->appendChild($marshaller->marshall($block)); } foreach ($component->getStylesheets() as $stylesheet) { $stylesheetMarshaller = $this->getMarshallerFactory()->createMarshaller($stylesheet); $element->appendChild($stylesheetMarshaller->marshall($stylesheet)); } self::fillElement($element, $component); return $element; }
/** * Marshall an AssessmentItem object into a DOMElement object. * * @param QtiComponent $component An AssessmentItem object. * @return DOMElement The according DOMElement object. */ protected function marshall(QtiComponent $component) { $element = static::getDOMCradle()->createElement($component->getQtiClassName()); self::setDOMElementAttribute($element, 'identifier', $component->getIdentifier()); self::setDOMElementAttribute($element, 'title', $component->getTitle()); self::setDOMElementAttribute($element, 'timeDependent', $component->isTimeDependent()); self::setDOMElementAttribute($element, 'adaptive', $component->isAdaptive()); if ($component->hasLang() === true) { self::setDOMElementAttribute($element, 'lang', $component->getLang()); } if ($component->hasLabel() === true) { self::setDOMElementAttribute($element, 'label', $component->getLabel()); } if ($component->hasToolName() === true) { self::setDOMElementAttribute($element, 'toolName', $component->getToolName()); } if ($component->hasToolVersion() === true) { self::setDOMElementAttribute($element, 'toolVersion', $component->getToolVersion()); } foreach ($component->getResponseDeclarations() as $responseDeclaration) { $marshaller = $this->getMarshallerFactory()->createMarshaller($responseDeclaration); $element->appendChild($marshaller->marshall($responseDeclaration)); } foreach ($component->getOutcomeDeclarations() as $outcomeDeclaration) { $marshaller = $this->getMarshallerFactory()->createMarshaller($outcomeDeclaration); $element->appendChild($marshaller->marshall($outcomeDeclaration)); } foreach ($component->getTemplateDeclarations() as $templateDeclaration) { $marshaller = $this->getMarshallerFactory()->createMarshaller($templateDeclaration); $element->appendChild($marshaller->marshall($templateDeclaration)); } if ($component->hasTemplateProcessing() === true) { $marshaller = $this->getMarshallerFactory()->createMarshaller($component->getTemplateProcessing()); $element->appendChild($marshaller->marshall($component->getTemplateProcessing())); } foreach ($component->getStylesheets() as $stylesheet) { $marshaller = $this->getMarshallerFactory()->createMarshaller($stylesheet); $element->appendChild($marshaller->marshall($stylesheet)); } if ($component->hasItemBody() === true) { $itemBody = $component->getItemBody(); $marshaller = $this->getMarshallerFactory()->createMarshaller($itemBody); $element->appendChild($marshaller->marshall($itemBody)); } if ($component->hasResponseProcessing() === true) { $marshaller = $this->getMarshallerFactory()->createMarshaller($component->getResponseProcessing()); $element->appendChild($marshaller->marshall($component->getResponseProcessing())); } foreach ($component->getModalFeedbacks() as $modalFeedback) { $marshaller = $this->getMarshallerFactory()->createMarshaller($modalFeedback); $element->appendChild($marshaller->marshall($modalFeedback)); } return $element; }