/** * Generate a new Booklet from a specific test * in a specific class and return a report * * @param core_kernel_classes_Resource $test * @param core_kernel_classes_Class $class * @return common_report_Report */ public static function generate(core_kernel_classes_Resource $test, core_kernel_classes_Class $class) { $report = new common_report_Report(common_report_Report::TYPE_SUCCESS); $model = \taoTests_models_classes_TestsService::singleton()->getTestModel($test); if ($model->getUri() != INSTANCE_TEST_MODEL_QTI) { $report->setType(common_report_Report::TYPE_ERROR); $report->setMessage(__('%s is not a QTI test', $test->getLabel())); return $report; } // generate file content $tmpFolder = \tao_helpers_File::createTempDir(); $tmpFile = $tmpFolder . 'test.txt'; $content = ''; foreach (self::getItems($test) as $item) { $content .= self::renderItem($item); } file_put_contents($tmpFile, $content); // generate tao instance $instance = BookletClassService::singleton()->createBookletInstance($class, __('%s Booklet', $test->getLabel()), $tmpFile); \tao_helpers_File::delTree($tmpFolder); // return report with instance $report->setMessage(__('%s created', $instance->getLabel())); $report->setData($instance); return $report; }
/** * (non-PHPdoc) * @see tao_actions_SaSModule::getClassService() */ protected function getClassService() { return BookletClassService::singleton(); }