/**
  * 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;
 }
Exemplo n.º 2
0
 /**
  * Marshall a PrintedVariable object into a DOMElement object.
  *
  * @param \qtism\data\QtiComponent $component A PrintedVariable object.
  * @return \DOMElement The according DOMElement object.
  * @throws \qtism\data\storage\xml\marshalling\MarshallingException
  */
 protected function marshall(QtiComponent $component)
 {
     $element = self::getDOMCradle()->createElement('printedVariable');
     $version = $this->getVersion();
     self::setDOMElementAttribute($element, 'identifier', $component->getIdentifier());
     self::setDOMElementAttribute($element, 'base', $component->getBase());
     if (Version::compare($version, '2.1.0', '>=') === true) {
         self::setDOMElementAttribute($element, 'powerForm', $component->mustPowerForm());
         self::setDOMElementAttribute($element, 'delimiter', $component->getDelimiter());
         self::setDOMElementAttribute($element, 'mappingIndicator', $component->getMappingIndicator());
     }
     if ($component->hasFormat() === true) {
         self::setDOMElementAttribute($element, 'format', $component->getFormat());
     }
     if ($component->hasIndex() === true) {
         self::setDOMElementAttribute($element, 'index', $component->getIndex());
     }
     if ($component->hasField() === true) {
         self::setDOMElementAttribute($element, 'field', $component->getField());
     }
     if ($component->hasXmlBase() === true) {
         self::setXmlBase($element, $component->getXmlBase());
     }
     $this->fillElement($element, $component);
     return $element;
 }
Exemplo n.º 3
0
 /**
  * Marshall a Br object into a DOMElement object.
  *
  * @param \qtism\data\QtiComponent $component A Br object.
  * @return \DOMElement The according DOMElement object.
  * @throws \qtism\data\storage\xml\marshalling\MarshallingException
  */
 protected function marshall(QtiComponent $component)
 {
     $element = self::getDOMCradle()->createElement('br');
     if ($component->hasXmlBase() === true) {
         self::setXmlBase($element, $component->setXmlBase());
     }
     $this->fillElement($element, $component);
     return $element;
 }
 protected function marshallChildrenKnown(QtiComponent $component, array $elements)
 {
     $element = self::getDOMCradle()->createElement($component->getQtiClassName());
     if ($component->hasXmlBase() === true) {
         self::setXmlBase($element, $component->getXmlBase());
     }
     foreach ($elements as $e) {
         $element->appendChild($e);
     }
     self::fillElement($element, $component);
     return $element;
 }
Exemplo n.º 5
0
 /**
  * @see \qtism\data\storage\xml\marshalling\RecursiveMarshaller::marshallChildrenKnown()
  */
 protected function marshallChildrenKnown(QtiComponent $component, array $elements)
 {
     $element = self::getDOMCradle()->createElement('infoControl');
     if ($component->hasXmlBase() === true) {
         self::setXmlBase($element, $component->getXmlBase());
     }
     foreach ($elements as $e) {
         $element->appendChild($e);
     }
     $this->fillElement($element, $component);
     self::setDOMElementAttribute($element, 'title', $component->getTitle());
     return $element;
 }
Exemplo n.º 6
0
 /**
  * Marshall a Table object into a DOMElement object.
  *
  * @param \qtism\data\QtiComponent $component A Table object.
  * @return \DOMElement The according DOMElement object.
  * @throws \qtism\data\storage\xml\marshalling\MarshallingException
  */
 protected function marshall(QtiComponent $component)
 {
     $element = self::getDOMCradle()->createElement('table');
     if ($component->hasSummary() === true) {
         self::setDOMElementAttribute($element, 'summary', $component->getSummary());
     }
     if ($component->hasXmlBase() === true) {
         self::setXmlBase($element, $component->getXmlBase());
     }
     if ($component->hasCaption() === true) {
         $caption = $component->getCaption();
         $marshaller = $this->getMarshallerFactory()->createMarshaller($caption);
         $element->appendChild($marshaller->marshall($caption));
     }
     $cols = $component->getCols();
     if (count($cols) > 0) {
         foreach ($cols as $c) {
             $marshaller = $this->getMarshallerFactory()->createMarshaller($c);
             $element->appendChild($marshaller->marshall($c));
         }
     }
     $colgroups = $component->getColgroups();
     if (count($colgroups) > 0) {
         foreach ($colgroups as $c) {
             $marshaller = $this->getMarshallerFactory()->createMarshaller($c);
             $element->appendChild($marshaller->marshall($c));
         }
     }
     if ($component->hasThead() === true) {
         $thead = $component->getThead();
         $marshaller = $this->getMarshallerFactory()->createMarshaller($thead);
         $element->appendChild($marshaller->marshall($thead));
     }
     if ($component->getTfoot() === true) {
         $tfoot = $component->getTfoot();
         $marshaller = $this->getMarshallerFactory()->createMarshaller($tfoot);
         $element->appendChild($marshaller->marshall($tfoot));
     }
     foreach ($component->getTbodies() as $tbody) {
         $marshaller = $this->getMarshallerFactory()->createMarshaller($tbody);
         $element->appendChild($marshaller->marshall($tbody));
     }
     $this->fillElement($element, $component);
     return $element;
 }
Exemplo n.º 7
0
 /**
  * Marshall a TextEntryInteraction/ExtendedTextInteraction object into a DOMElement object.
  *
  * @param \qtism\data\QtiComponent $component A TextEntryInteraction/ExtendedTextInteraction object.
  * @return \DOMElement The according DOMElement object.
  * @throws \qtism\data\storage\xml\marshalling\MarshallingException
  */
 protected function marshall(QtiComponent $component)
 {
     $element = self::getDOMCradle()->createElement($component->getQtiClassName());
     $version = $this->getVersion();
     self::setDOMElementAttribute($element, 'responseIdentifier', $component->getResponseIdentifier());
     if ($component->getBase() !== 10) {
         self::setDOMElementAttribute($element, 'base', $component->getBase());
     }
     if ($component->hasStringIdentifier() === true) {
         self::setDOMElementAttribute($element, 'stringIdentifier', $component->getStringIdentifier());
     }
     if ($component->hasExpectedLength() === true) {
         self::setDOMElementAttribute($element, 'expectedLength', $component->getExpectedLength());
     }
     if ($component->hasPatternMask() === true) {
         self::setDOMElementAttribute($element, 'patternMask', $component->getPatternMask());
     }
     if ($component->hasPlaceholderText() === true) {
         self::setDOMElementAttribute($element, 'placeholderText', $component->getPlaceholderText());
     }
     if ($component->hasXmlBase() === true) {
         self::setXmlBase($element, $component->setXmlBase());
     }
     if ($element->localName === 'extendedTextInteraction') {
         if ($component->hasMaxStrings() === true) {
             self::setDOMElementAttribute($element, 'maxStrings', $component->getMaxStrings());
         }
         if (Version::compare($version, '2.1.0', '>=') === true && $component->getMinStrings() !== 0) {
             self::setDOMElementAttribute($element, 'minStrings', $component->getMinStrings());
         }
         if ($component->hasExpectedLines() === true) {
             self::setDOMElementAttribute($element, 'expectedLines', $component->getExpectedLines());
         }
         if (Version::compare($version, '2.1.0', '>=') === true && $component->getFormat() !== TextFormat::PLAIN) {
             self::setDOMElementAttribute($element, 'format', TextFormat::getNameByConstant($component->getFormat()));
         }
         if ($component->hasPrompt() === true) {
             $element->appendChild($this->getMarshallerFactory()->createMarshaller($component->getPrompt())->marshall($component->getPrompt()));
         }
     }
     $this->fillElement($element, $component);
     return $element;
 }
Exemplo n.º 8
0
 /**
  * Marshall an Img object into a DOMElement object.
  *
  * @param \qtism\data\QtiComponent $component An Img object.
  * @return \DOMElement The according DOMElement object.
  * @throws \qtism\data\storage\xml\marshalling\MarshallingException
  */
 protected function marshall(QtiComponent $component)
 {
     $element = self::getDOMCradle()->createElement('img');
     self::setDOMElementAttribute($element, 'src', $component->getSrc());
     self::setDOMElementAttribute($element, 'alt', $component->getAlt());
     if ($component->hasWidth() === true) {
         self::setDOMElementAttribute($element, 'width', $component->getWidth());
     }
     if ($component->hasHeight() === true) {
         self::setDOMElementAttribute($element, 'height', $component->getHeight());
     }
     if ($component->hasLongdesc() === true) {
         self::setDOMElementAttribute($element, 'longdesc', $component->getLongdesc());
     }
     if ($component->hasXmlBase() === true) {
         self::setXmlBase($element, $component->getXmlBase());
     }
     $this->fillElement($element, $component);
     return $element;
 }
Exemplo n.º 9
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;
 }
Exemplo n.º 10
0
 protected function handleXmlBase(QtiComponent $component, DOMNode $node)
 {
     if ($node instanceof DOMElement && $this->getRenderingEngine()->getXmlBasePolicy() === AbstractMarkupRenderingEngine::XMLBASE_KEEP && $component instanceof Flow && $component->hasXmlBase()) {
         $node->setAttributeNS('http://www.w3.org/XML/1998/namespace', 'base', $component->getXmlBase());
     }
 }