/**
  * 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;
 }
Exemple #2
0
 /**
  * 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;
 }
Exemple #3
0
 /**
  * @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);
     }
 }