<p>
    Metadata file is not writable. Update failed.<br />
    <a href="index.html" title="Main menu">Return to the main menu</a>.
  </p><?php 
} else {
    if (!($metadata_file = @fopen(METADATA_FILE, 'wb'))) {
        ?>
</tt> Error.</p>
  
  <p>
    Can't open metadata file. Update failed.<br />
    <a href="index.html" title="Main menu">Return to the main menu</a>.
  </p><?php 
    } else {
        $metadata = new ODSTMetadata();
        $metadata->get_metadata();
        $metadata->load_metadata();
        if (fwrite($metadata_file, serialize($metadata)) === FALSE) {
            ?>
</tt> Error.</p>
  
  <p>
    Can't write to metadata file. Update failed.<br />
    <a href="index.html" title="Main menu">Return to the main menu</a>.
  </p><?php 
        } else {
            ?>
</tt> Done.</p>

  <p>Local metadata updated. <a href="index.html" title="Main menu">Return to the main menu</a>.</p><?php 
}
switch ($_GET['mode']) {
    case 'odst_game':
        // Check for a Game ID
        if ($_GET['gameid'] == '') {
            echo "Error: No Game ID given. Aborting...";
            trigger_error("No Game ID given", E_USER_ERROR);
        }
        $gameid = $_GET['gameid'];
        // Set the HTTP headers
        header('Content-Type: text/xml; charset=utf-8');
        header("Content-Disposition: attachment; filename=\"game_{$gameid}.xml\"");
        // Download and return the game XML
        $odst_game = new ODSTGame();
        $odst_game->get_game($gameid);
        echo $odst_game->dump_xml();
        break;
    case 'odst_metadata':
        // Set the HTTP headers
        header('Content-Type: text/xml; charset=utf-8');
        header('Content-Disposition: attachment; filename="game_metadata.xml"');
        // Download and return the metadata XML
        $metadata = new ODSTMetadata();
        $metadata->get_metadata();
        echo $metadata->dump_xml();
        break;
    default:
        // Given nothing to do.
        echo 'No operation selected.';
        break;
}