/** * 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; }