本文整理汇总了PHP中qtism\data\QtiComponent::getTemplateDeclarations方法的典型用法代码示例。如果您正苦于以下问题:PHP QtiComponent::getTemplateDeclarations方法的具体用法?PHP QtiComponent::getTemplateDeclarations怎么用?PHP QtiComponent::getTemplateDeclarations使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qtism\data\QtiComponent
的用法示例。
在下文中一共展示了QtiComponent::getTemplateDeclarations方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: marshall
/**
* Marshall an AssessmentItem object into a DOMElement object.
*
* @param QtiComponent $component An AssessmentItem object.
* @return DOMElement The according DOMElement object.
*/
protected function marshall(QtiComponent $component)
{
$element = static::getDOMCradle()->createElement($component->getQtiClassName());
self::setDOMElementAttribute($element, 'identifier', $component->getIdentifier());
self::setDOMElementAttribute($element, 'title', $component->getTitle());
self::setDOMElementAttribute($element, 'timeDependent', $component->isTimeDependent());
self::setDOMElementAttribute($element, 'adaptive', $component->isAdaptive());
if ($component->hasLang() === true) {
self::setDOMElementAttribute($element, 'lang', $component->getLang());
}
if ($component->hasLabel() === true) {
self::setDOMElementAttribute($element, 'label', $component->getLabel());
}
if ($component->hasToolName() === true) {
self::setDOMElementAttribute($element, 'toolName', $component->getToolName());
}
if ($component->hasToolVersion() === true) {
self::setDOMElementAttribute($element, 'toolVersion', $component->getToolVersion());
}
foreach ($component->getResponseDeclarations() as $responseDeclaration) {
$marshaller = $this->getMarshallerFactory()->createMarshaller($responseDeclaration);
$element->appendChild($marshaller->marshall($responseDeclaration));
}
foreach ($component->getOutcomeDeclarations() as $outcomeDeclaration) {
$marshaller = $this->getMarshallerFactory()->createMarshaller($outcomeDeclaration);
$element->appendChild($marshaller->marshall($outcomeDeclaration));
}
foreach ($component->getTemplateDeclarations() as $templateDeclaration) {
$marshaller = $this->getMarshallerFactory()->createMarshaller($templateDeclaration);
$element->appendChild($marshaller->marshall($templateDeclaration));
}
if ($component->hasTemplateProcessing() === true) {
$marshaller = $this->getMarshallerFactory()->createMarshaller($component->getTemplateProcessing());
$element->appendChild($marshaller->marshall($component->getTemplateProcessing()));
}
foreach ($component->getStylesheets() as $stylesheet) {
$marshaller = $this->getMarshallerFactory()->createMarshaller($stylesheet);
$element->appendChild($marshaller->marshall($stylesheet));
}
if ($component->hasItemBody() === true) {
$itemBody = $component->getItemBody();
$marshaller = $this->getMarshallerFactory()->createMarshaller($itemBody);
$element->appendChild($marshaller->marshall($itemBody));
}
if ($component->hasResponseProcessing() === true) {
$marshaller = $this->getMarshallerFactory()->createMarshaller($component->getResponseProcessing());
$element->appendChild($marshaller->marshall($component->getResponseProcessing()));
}
foreach ($component->getModalFeedbacks() as $modalFeedback) {
$marshaller = $this->getMarshallerFactory()->createMarshaller($modalFeedback);
$element->appendChild($marshaller->marshall($modalFeedback));
}
return $element;
}
示例2: createFinalRendering
/**
* Create the final rendering of the rendered $component as it must be rendered by the final
* implementation.
*
* @return mixed
*/
protected function createFinalRendering(QtiComponent $component)
{
$dom = $this->getDocument();
if (($last = $this->getLastRendering()) !== null) {
$dom->appendChild($last);
}
// If we are rendering an item, let's try to find some Math to
// for template variable mapping.
if ($component instanceof AssessmentItem && count($templateDeclarations = $component->getTemplateDeclarations()) > 0) {
$xpath = new DOMXPath($dom);
$xpath->registerNamespace('m', 'http://www.w3.org/1998/Math/MathML');
$maths = $xpath->query('//m:math|//math');
if ($maths->length > 0) {
$printedVariableRenderer = new PrintedVariableRenderer($this);
foreach ($templateDeclarations as $templateDeclaration) {
if ($templateDeclaration->isMathVariable() === true) {
$templateIdentifier = $templateDeclaration->getIdentifier();
foreach ($maths as $math) {
// Find <mi> and <ci> elements.
foreach ($xpath->query(".//m:mi[text() = '{$templateIdentifier}']|.//m:ci[text() = '{$templateIdentifier}']|.//mi[text() = '{$templateIdentifier}']|.//ci[text() = '{$templateIdentifier}']", $math) as $mathElement) {
$localElementName = $mathElement->localName === 'mi' ? 'mn' : 'cn';
$newMathElement = $mathElement->ownerDocument->createElement($localElementName);
$printedVariable = new PrintedVariable($templateIdentifier);
$printedVariableFragment = $printedVariableRenderer->render($printedVariable);
if ($this->getPrintedVariablePolicy() === self::CONTEXT_STATIC) {
foreach ($printedVariableFragment->childNodes as $node) {
$newMathElement->appendChild($node);
$mathElement->parentNode->replaceChild($newMathElement, $mathElement);
}
} else {
if ($this->getPrintedVariablePolicy() === self::CONTEXT_AWARE) {
$newMathElement->appendChild($newMathElement->ownerDocument->createTextNode($printedVariableFragment->firstChild->nodeValue));
$mathElement->parentNode->replaceChild($newMathElement, $mathElement);
} else {
foreach ($printedVariableFragment->firstChild->childNodes as $node) {
$newMathElement->appendChild($node);
$mathElement->parentNode->replaceChild($newMathElement, $mathElement);
}
}
}
}
}
}
}
}
}
return $dom;
}