当前位置: 首页>>代码示例>>PHP>>正文


PHP QtiComponent::getTemplateDeclarations方法代码示例

本文整理汇总了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;
 }
开发者ID:swapnilaptara,项目名称:tao-aptara-assess,代码行数:60,代码来源:AssessmentItemMarshaller.php

示例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;
 }
开发者ID:nagyist,项目名称:qti-sdk,代码行数:54,代码来源:AbstractMarkupRenderingEngine.php


注:本文中的qtism\data\QtiComponent::getTemplateDeclarations方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。