/**
 * This page export the game to javame for mobile phones
 * 
 * @author  bdaloukas
 * @version $Id: exportjavame.php,v 1.17 2011/08/03 20:04:32 bdaloukas Exp $
 * @package game
 **/
function game_OnExportJavaME($game, $javame)
{
    global $CFG, $DB;
    $courseid = $game->course;
    $course = $DB->get_record('course', array('id' => $courseid));
    $destdir = game_export_createtempdir();
    if ($javame->type == 'hangmanp') {
        $destmobiledir = 'hangmanp';
    } else {
        $destmobiledir = 'hangman';
    }
    $src = $CFG->dirroot . '/mod/game/export/javame/' . $destmobiledir . '/simple';
    if ($javame->filename == '') {
        $javame->filename = 'moodle' . $destmobiledir;
    }
    $handle = opendir($src);
    while (false !== ($item = readdir($handle))) {
        if ($item != '.' && $item != '..') {
            if (!is_dir($src . '/' . $item)) {
                $itemdest = $item;
                if (substr($item, -5) == '.java') {
                    continue;
                    //don't copy the java source code files
                }
                if (substr($itemdest, -8) == '-1.class') {
                    $itemdest = substr($itemdest, 0, -8) . '$1.class';
                }
                copy($src . '/' . $item, $destdir . '/' . $itemdest);
            }
        }
    }
    mkdir($destdir . '/META-INF');
    game_exportjavame_exportdata($src, $destmobiledir, $destdir, $game, $javame->maxpicturewidth, $javame->maxpictureheight);
    game_create_manifest_mf($destdir . '/META-INF', $javame, $destmobiledir);
    $filejar = game_create_jar($destdir, $course, $javame);
    if ($filejar == '') {
        $filezip = game_create_zip($destdir, $course->id, $javame->filename . '.zip');
    } else {
        $filezip = '';
    }
    if ($destdir != '') {
        remove_dir($destdir);
    }
    if ($filezip != '') {
        echo "unzip the {$filezip} in a directory and when you are in this directory use the command <br><b>jar cvfm {$javame->filename}.jar META-INF/MANIFEST.MF<br></b> to produce the jar files<br><br>";
    }
    $file = $filejar != '' ? $filejar : $filezip;
    $fullfile = "{$CFG->dataroot}/{$courseid}/export/{$file}";
    game_send_stored_file($fullfile);
}
function game_OnExportHTML_snakes($game, $html, $destdir)
{
    require_once "exporthtml_millionaire.php";
    global $CFG, $DB;
    if ($html->filename == '') {
        $html->filename = 'snakes';
    }
    $filename = $html->filename . '.htm';
    $ret = '';
    $board = game_snakes_get_board($game);
    if ($game->sourcemodule == 'quiz' or $game->sourcemodule == 'question') {
        $questionsM = game_millionaire_html_getquestions($game, $context, $maxquestions, $countofquestionsM, $retfeedback, $files);
    } else {
        $questionsM = array();
        $countofquestionsM = 0;
        $retfeedback = '';
    }
    $questionsS = game_exmportjavame_getanswers($game, false);
    ob_start();
    //Here is the code of hangman
    require "exporthtml_snakes.php";
    $output_string = ob_get_contents();
    ob_end_clean();
    $courseid = $game->course;
    $course = $DB->get_record('course', array('id' => $courseid));
    $filename = $html->filename . '.htm';
    file_put_contents($destdir . '/' . $filename, $ret . "\r\n" . $output_string);
    $src = $CFG->dirroot . '/mod/game/export/html/snakes';
    game_copyfiles($src, $destdir);
    mkdir($destdir . '/css');
    $src = $CFG->dirroot . '/mod/game/export/html/snakes/css';
    game_copyfiles($src, $destdir . '/css');
    mkdir($destdir . '/js');
    $src = $CFG->dirroot . '/mod/game/export/html/snakes/js';
    game_copyfiles($src, $destdir . '/js');
    mkdir($destdir . '/images');
    $destfile = $destdir . '/images/' . $board->fileboard;
    if ($game->param3 != 0) {
        //Is a standard board
        copy($board->imagesrc, $destfile);
    } else {
        $cmg = get_coursemodule_from_instance('game', $game->id, $game->course);
        $modcontext = get_context_instance(CONTEXT_MODULE, $cmg->id);
        $fs = get_file_storage();
        $files = $fs->get_area_files($modcontext->id, 'mod_game', 'snakes_board', $game->id);
        foreach ($files as $f) {
            if ($f->is_directory()) {
                continue;
            }
            break;
        }
        $f->copy_content_to($destfile);
    }
    $a = array('player1.png', 'dice1.png', 'dice2.png', 'dice3.png', 'dice4.png', 'dice5.png', 'dice6.png', 'numbers.png');
    foreach ($a as $file) {
        copy($CFG->dirroot . '/mod/game/snakes/1/' . $file, $destdir . '/images/' . $file);
    }
    $filezip = game_create_zip($destdir, $courseid, $html->filename . '.zip');
    game_send_stored_file($filezip);
}
Exemplo n.º 3
0
function game_OnExportHTML_millionaire($game, $html, $destdir)
{
    global $CFG, $DB;
    if ($html->filename == '') {
        $html->filename = 'millionaire';
    }
    $filename = $html->filename . '.htm';
    $ret = game_export_printheader($html->title, false);
    $ret .= "\r<body onload=\"Reset();\">\r";
    //Here is the code of millionaire
    require "exporthtml_millionaire.php";
    $questions = game_millionaire_html_getquestions($game, $maxquestions);
    ob_start();
    game_millionaire_html_print($game, $questions, $maxquestions);
    //End of millionaire code
    $output_string = ob_get_contents();
    ob_end_clean();
    $courseid = $game->course;
    $course = $DB->get_record('course', array('id' => $courseid));
    $filename = $html->filename . '.htm';
    file_put_contents($destdir . '/' . $filename, $ret . "\r\n" . $output_string);
    //Copy the standard pictures of Millionaire
    $src = $CFG->dirroot . '/mod/game/millionaire/1';
    $handle = opendir($src);
    while (false !== ($item = readdir($handle))) {
        if ($item != '.' && $item != '..') {
            if (!is_dir($src . '/' . $item)) {
                $itemdest = $item;
                if (strpos($item, '.') === false) {
                    continue;
                }
                copy($src . '/' . $item, $destdir . '/' . $itemdest);
            }
        }
    }
    $filezip = game_create_zip($destdir, $courseid, $html->filename . '.zip');
    game_send_stored_file($filezip);
}