/** * 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 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; }
/** * Marshall an Hr object into a DOMElement object. * * @param \qtism\data\QtiComponent $component A Hr object. * @return \DOMElement The according DOMElement object. * @throws \qtism\data\storage\xml\marshalling\MarshallingException */ protected function marshall(QtiComponent $component) { $element = self::getDOMCradle()->createElement('hr'); if ($component->hasXmlBase() === true) { self::setXmlBase($element, $component->getXmlBase()); } $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; }
/** * @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; }
/** * 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; }
/** * 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; }
/** * @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 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()); } }