/**
  * Initialize the compilation by:
  * 
  * * 1. Spawning public and private compilation directoryies.
  * * 2. Instantiating appropriate rendering engine and CSS utilities.
  * 
  * for the next compilation process.
  */
 protected function initCompilation()
 {
     $ds = DIRECTORY_SEPARATOR;
     // Initialize public and private compilation directories.
     $this->setPrivateDirectory($this->spawnPrivateDirectory());
     $this->setPublicDirectory($this->spawnPublicDirectory());
     // Extra path.
     $testService = taoQtiTest_models_classes_QtiTestService::singleton();
     $testDefinitionDir = dirname($testService->getRelTestPath($this->getResource()));
     $this->setExtraPath($testDefinitionDir);
     // Initialize rendering engine.
     $renderingEngine = new XhtmlRenderingEngine();
     $renderingEngine->setStylesheetPolicy(XhtmlRenderingEngine::STYLESHEET_SEPARATE);
     $renderingEngine->setXmlBasePolicy(XhtmlRenderingEngine::XMLBASE_PROCESS);
     $renderingEngine->setFeedbackShowHidePolicy(XhtmlRenderingEngine::TEMPLATE_ORIENTED);
     $renderingEngine->setViewPolicy(XhtmlRenderingEngine::TEMPLATE_ORIENTED);
     $renderingEngine->setPrintedVariablePolicy(XhtmlRenderingEngine::TEMPLATE_ORIENTED);
     $renderingEngine->setStateName(TAOQTITEST_RENDERING_STATE_NAME);
     $renderingEngine->setRootBase(TAOQTITEST_PLACEHOLDER_BASE_URI . rtrim($this->getExtraPath(), $ds));
     $renderingEngine->setViewsName(TAOQTITEST_VIEWS_NAME);
     $this->setRenderingEngine($renderingEngine);
     // Initialize CSS Scoper.
     $this->setCssScoper(new CssScoper());
     // Initialize Post Markup Renderer.
     $this->setMarkupPostRenderer(new MarkupPostRenderer(true, true, true));
 }
Пример #2
0
<?php

use qtism\data\storage\xml\XmlDocument;
use qtism\runtime\rendering\markup\xhtml\XhtmlRenderingEngine;
use qtism\runtime\common\State;
use qtism\runtime\common\TemplateVariable;
use qtism\common\enums\BaseType;
use qtism\common\enums\Cardinality;
use qtism\common\datatypes\QtiString;
require_once dirname(__FILE__) . '/../../vendor/autoload.php';
$doc = new XmlDocument();
$doc->load(dirname(__FILE__) . '/../samples/rendering/math_3.xml');
$tpl_E = new TemplateVariable('TPL_E', Cardinality::SINGLE, BaseType::STRING, new QtiString('E'));
$tpl_m = new TemplateVariable('TPL_m', Cardinality::SINGLE, BaseType::STRING, new QtiString('m'));
$tpl_c = new TemplateVariable('TPL_c', Cardinality::SINGLE, BaseType::STRING, new QtiString('c'));
$renderer = new XhtmlRenderingEngine();
$renderer->setState(new State(array($tpl_E, $tpl_m, $tpl_c)));
$renderer->setPrintedVariablePolicy(XhtmlRenderingEngine::TEMPLATE_ORIENTED);
$rendering = $renderer->render($doc->getDocumentComponent());
$rendering->formatOutput = true;
echo $rendering->saveXML();
use qtism\common\enums\BaseType;
use qtism\common\enums\Cardinality;
use qtism\runtime\common\TemplateVariable;
use qtism\runtime\common\State;
use qtism\data\storage\xml\XmlDocument;
use qtism\runtime\rendering\markup\xhtml\XhtmlRenderingEngine;
require_once dirname(__FILE__) . '/../../qtism/qtism.php';
$doc = new XmlDocument();
$doc->load('../samples/rendering/printedvariable_1.xml');
$renderer = new XhtmlRenderingEngine();
$state = new State();
$state->setVariable(new TemplateVariable('TPL_H', Cardinality::SINGLE, BaseType::STRING, new String('Bubble Gum')));
$state->setVariable(new TemplateVariable('TPL_He', Cardinality::SINGLE, BaseType::STRING, new String('Bacta')));
$state->setVariable(new TemplateVariable('TPL_C', Cardinality::SINGLE, BaseType::STRING, new String('Cola')));
$state->setVariable(new TemplateVariable('TPL_O', Cardinality::SINGLE, BaseType::STRING, new String('Meat')));
$state->setVariable(new TemplateVariable('TPL_N', Cardinality::SINGLE, BaseType::STRING, new String('Potatoes')));
$state->setVariable(new TemplateVariable('TPL_Cl', Cardinality::SINGLE, BaseType::STRING, new String('Candies')));
if (isset($argv[1]) && trim(strtolower($argv[1])) === 'context_aware') {
    $renderer->setPrintedVariablePolicy(XhtmlRenderingEngine::CONTEXT_AWARE);
    $renderer->setState($state);
} else {
    if (isset($argv[1]) && trim(strtolower($argv[1])) === 'template_oriented') {
        $renderer->setPrintedVariablePolicy(XhtmlRenderingEngine::TEMPLATE_ORIENTED);
        $renderer->setState($state);
    } else {
        $renderer->setPrintedVariablePolicy(XhtmlRenderingEngine::CONTEXT_STATIC);
    }
}
$rendering = $renderer->render($doc->getDocumentComponent());
$rendering->formatOutput = true;
echo $rendering->saveXML();