/** * Marshall a Stylesheet object into a DOMElement object. * * @param QtiComponent $component A Stylesheet object. * @return DOMElement The according DOMElement object. */ protected function marshall(QtiComponent $component) { $element = static::getDOMCradle()->createElement($component->getQtiClassName()); self::setDOMElementAttribute($element, 'href', $component->getHref()); self::setDOMElementAttribute($element, 'media', $component->getMedia()); self::setDOMElementAttribute($element, 'type', $component->getType()); if (($title = $component->getTitle()) != '') { self::setDOMElementAttribute($element, 'title', $component->getTitle()); } return $element; }
/** * Marshall a Param object into a DOMElement object. * * @param \qtism\data\QtiComponent $component A Param object. * @return \DOMElement The according DOMElement object. * @throws \qtism\data\storage\xml\marshalling\MarshallingException */ protected function marshall(QtiComponent $component) { $element = self::getDOMCradle()->createElement('param'); self::setDOMElementAttribute($element, 'name', $component->getName()); self::setDOMElementAttribute($element, 'value', $component->getValue()); self::setDOMElementAttribute($element, 'valuetype', ParamType::getNameByConstant($component->getValueType())); if ($component->hasType() === true) { self::setDOMElementAttribute($element, 'type', $component->getType()); } return $element; }
/** * @see \qtism\data\storage\xml\marshalling\RecursiveMarshaller::marshallChildrenKnown() */ protected function marshallChildrenKnown(QtiComponent $component, array $elements) { $element = self::getDOMCradle()->createElement($component->getQtiClassName()); self::setDOMElementAttribute($element, 'data', $component->getData()); self::setDOMElementAttribute($element, 'type', $component->getType()); if ($component->hasWidth() === true) { self::setDOMElementAttribute($element, 'width', $component->getWidth()); } if ($component->hasHeight() === true) { self::setDOMElementAttribute($element, 'height', $component->getHeight()); } if ($component->hasXmlBase() === true) { self::setXmlBase($element, $component->getXmlBase()); } foreach ($elements as $e) { $element->appendChild($e); } $this->fillElement($element, $component); return $element; }
protected function marshallChildrenKnown(QtiComponent $component, array $elements) { /** @var Object $component */ switch ($this->getMIMEType($component->getType())) { case self::MIME_IMAGE: $this->checkObjectComponents($component, '<img> tag'); $element = self::getDOMCradle()->createElement('img'); $element->setAttribute('src', $component->getData()); return $element; break; case self::MIME_AUDIO: $this->checkObjectComponents($component, '`audioplayer` feature'); $element = self::getDOMCradle()->createElement('span'); $element->setAttribute('class', 'learnosity-feature'); $element->setAttribute('data-type', 'audioplayer'); $element->setAttribute('data-src', $component->getData()); return $element; break; case self::MIME_VIDEO: $this->checkObjectComponents($component, '`videoplayer` feature'); $element = self::getDOMCradle()->createElement('span'); $element->setAttribute('class', 'learnosity-feature'); $element->setAttribute('data-type', 'videoplayer'); $element->setAttribute('data-src', $component->getData()); return $element; break; case self::MIME_HTML: $fragment = self::getDOMCradle()->createDocumentFragment(); $fragment->appendXML(QtiMarshallerUtil::marshallCollection(ContentCollectionBuilder::buildFlowCollectionContent($component->getComponents()))); $element = self::getDOMCradle()->createElement('div'); $element->setAttribute('data-type', 'sharedpassage'); $element->appendChild($fragment); return $element; break; default: // TODO: Need to think external HTML object file, what we are going to do with them? // Just parse <object> as default LogService::log('Unknown <object> MIME type, outputting <object> as it is'); return parent::marshallChildrenKnown($component, $elements); } }