示例#1
0
<?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);