/** * 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)); }
<?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();