/** * Marshall a HotspotChoice/AssociableHotspot object into a DOMElement object. * * @param QtiComponent $component A HotspotChoice/AssociableHotspot object. * @return DOMElement The according DOMElement object. * @throws MarshallingException */ protected function marshall(QtiComponent $component) { $element = self::getDOMCradle()->createElement($component->getQtiClassName()); self::setDOMElementAttribute($element, 'identifier', $component->getIdentifier()); self::setDOMElementAttribute($element, 'shape', Shape::getNameByConstant($component->getShape())); self::setDOMElementAttribute($element, 'coords', $component->getCoords()->__toString()); if ($component->isFixed() === true) { self::setDOMElementAttribute($element, 'fixed', true); } if ($component->hasTemplateIdentifier() === true) { self::setDOMElementAttribute($element, 'templateIdentifier', $component->getTemplateIdentifier()); } if ($component->getShowHide() === ShowHide::HIDE) { self::setDOMElementAttribute($element, 'showHide', ShowHide::getNameByConstant($component->getShowHide())); } if ($component->hasHotspotLabel() === true) { self::setDOMElementAttribute($element, 'hotspotLabel', $component->getHotspotLabel()); } if ($component instanceof AssociableHotspot) { self::setDOMElementAttribute($element, 'matchMax', $component->getMatchMax()); if ($component->getMatchMin() !== 0) { self::setDOMElementAttribute($element, 'matchMin', $component->getMatchMin()); } } self::fillElement($element, $component); return $element; }
/** * Marshall an AreaMapEntry object into a DOMElement object. * * @param \qtism\data\QtiComponent $component An AreaMapEntry object. * @return \DOMElement The according DOMElement object. */ protected function marshall(QtiComponent $component) { $element = static::getDOMCradle()->createElement($component->getQtiClassName()); self::setDOMElementAttribute($element, 'shape', Shape::getNameByConstant($component->getShape())); self::setDOMElementAttribute($element, 'coords', $component->getCoords()); self::setDOMElementAttribute($element, 'mappedValue', $component->getMappedValue()); return $element; }
/** * @see \qtism\runtime\rendering\markup\xhtml\ChoiceRenderer::appendAttributes() */ protected function appendAttributes(DOMDocumentFragment $fragment, QtiComponent $component, $base = '') { parent::appendAttributes($fragment, $component, $base); $this->additionalClass('qti-hotspot'); $fragment->firstChild->setAttribute('data-shape', Shape::getNameByConstant($component->getShape())); $fragment->firstChild->setAttribute('data-coords', $component->getCoords()->__toString()); if ($component->hasHotspotLabel() === true) { $fragment->firstChild->setAttribute('data-hotspot-label', $component->getHotspotLabel()); } }
/** * Unmarshall an Inside object into a QTI inside element. * * @param QtiComponent The Inside object to marshall. * @param array An array of child DOMEelement objects. * @return DOMElement The marshalled QTI inside element. */ protected function marshallChildrenKnown(QtiComponent $component, array $elements) { $element = self::getDOMCradle()->createElement($component->getQtiClassName()); self::setDOMElementAttribute($element, 'shape', Shape::getNameByConstant($component->getShape())); self::setDOMElementAttribute($element, 'coords', $component->getCoords()); foreach ($elements as $elt) { $element->appendChild($elt); } return $element; }
/** * Marshall a HotspotChoice/AssociableHotspot object into a DOMElement object. * * @param \qtism\data\QtiComponent $component A HotspotChoice/AssociableHotspot object. * @return \DOMElement The according DOMElement object. * @throws \qtism\data\storage\xml\marshalling\MarshallingException */ protected function marshall(QtiComponent $component) { $version = $this->getVersion(); $element = self::getDOMCradle()->createElement($component->getQtiClassName()); self::setDOMElementAttribute($element, 'identifier', $component->getIdentifier()); self::setDOMElementAttribute($element, 'shape', Shape::getNameByConstant($component->getShape())); self::setDOMElementAttribute($element, 'coords', $component->getCoords()->__toString()); if ($component->isFixed() === true) { self::setDOMElementAttribute($element, 'fixed', true); } if (Version::compare($version, '2.1.0', '>=') === true && $component->hasTemplateIdentifier() === true) { self::setDOMElementAttribute($element, 'templateIdentifier', $component->getTemplateIdentifier()); } if (Version::compare($version, '2.1.0', '>=') === true && $component->getShowHide() === ShowHide::HIDE) { self::setDOMElementAttribute($element, 'showHide', ShowHide::getNameByConstant($component->getShowHide())); } if ($component->hasHotspotLabel() === true) { self::setDOMElementAttribute($element, 'hotspotLabel', $component->getHotspotLabel()); } if ($component instanceof AssociableHotspot) { if (Version::compare($version, '2.1.0', '<') === true) { $matchGroup = $component->getMatchGroup(); if (count($matchGroup) > 0) { self::setDOMElementAttribute($element, 'matchGroup', implode(' ', $matchGroup->getArrayCopy())); } } if (Version::compare($version, '2.1.0', '>=') === true) { if ($component->getMatchMin() !== 0) { self::setDOMElementAttribute($element, 'matchMin', $component->getMatchMin()); } } } if ($component instanceof AssociableHotspot) { self::setDOMElementAttribute($element, 'matchMax', $component->getMatchMax()); } $this->fillElement($element, $component); return $element; }
public function createFakeExpression($point = null, Coords $coords = null) { $point = is_null($point) || !$point instanceof Point ? new Point(2, 2) : $point; $coords = is_null($coords) ? new Coords(Shape::RECT, array(0, 0, 5, 3)) : $coords; return $this->createComponentFromXml(' <inside shape="' . Shape::getNameByConstant($coords->getShape()) . '" coords="' . $coords . '"> <baseValue baseType="point">' . $point . '</baseValue> </inside> '); }