<?php /* Copyright (c) 2012 Association France-ioi, MIT License http://opensource.org/licenses/MIT */ // Disable for now, see later if this file is still usefull exit; require_once 'bebras/Bebras.php'; require_once 'lib/Route.php'; require_once 'lib/Task.php'; if (!isset($_GET['url'])) { throw new Exception('This file cannot be accessed directly.'); } $route = new Route(Bebras::getQuestionsDirectory(), $_GET['url']); if ($route::isImage($_GET['url'])) { $route->displayImage(); exit; } if ($route::isFile($_GET['url'])) { // TODO: Maybe manage this with pub/private keys if (!in_array($_SERVER['REMOTE_ADDR'], array('127.0.0.1'))) { echo 'Access denied'; exit; } $route->displayFile(); exit; } echo $route->getJsonPath() . ' ' . $route->getTaskPath() . ' ' . $route->getTaskDir(); die; $task = new Task($route->getJsonPath(), $route->getTaskPath(), $route->getTaskDir()); // Disable, see later if this file is still usefull exit; // Asking for the JSON
/** * Generate Bebras JSON for each tasks */ require_once "../../shared/common.php"; require_once 'Bebras.php'; function getAllQuestions($db) { $stmt = $db->prepare("SELECT `question`.`ID`, `question`.`key`, `question`.`folder`, `question`.`name`, `question`.`answerType`, `question`.`expectedAnswer` FROM `question`"); $stmt->execute(); $questionsData = array(); while ($row = $stmt->fetchObject()) { $questionsData[$row->ID] = $row; } return $questionsData; } $questionsDir = Bebras::getQuestionsDirectory(); $questions = getAllQuestions($db); foreach ($questions as $curQuestion) { $curQuestionDir = $questionsDir . '/' . $curQuestion->folder . '/' . $curQuestion->key; if (is_dir($curQuestionDir)) { $content = file_get_contents($curQuestionDir . '/index.html'); // Add id //$content = preg_replace('#(var json = {.*\"id\": \")(\",)#isU', '$1http://castor-informatique.fr/tasks/'.$curQuestion->folder . '/' . $curQuestion->key.'/$2', $content); // Windows to UNIX conversion //$content = str_replace(chr(13).chr(10), chr(10), $content); //file_put_contents($curQuestionDir.'/index.html', $content); // Add postmessage $content = str_replace('<script class="remove" type="text/javascript" src="../../modules/gen_task_resources.js"></script>', '<script class="remove" type="text/javascript" src="../../modules/gen_task_resources.js"></script>' . "\r\n" . '<script class="module beaver" type="text/javascript" src="../../modules/jquery.ba-postmessage.min.js" id="http://castor-informatique.fr/tasks/modules/jquery.ba-postmessage.min.js"></script>' . "\r\n" . '<script class="module beaver" type="text/javascript" src="../../modules/pm_task_interface.js" id="http://castor-informatique.fr/tasks/modules/pm_task_interface.js"></script>' . "\r\n", $content); file_put_contents($curQuestionDir . '/index.html', $content); echo $curQuestionDir . '<br />'; /*$bebras = new Bebras($curQuestion, $curQuestionDir);