function put_print_form() { global $DB, $pagename; $langs = $DB->q('KEYTABLE SELECT langid AS ARRAYKEY, name, extensions FROM language WHERE allow_submit = 1 ORDER BY name'); echo "<script type=\"text/javascript\">\n<!--\n"; echo "function detectLanguage(filename)\n\t{\n\t\tvar parts = filename.toLowerCase().split('.').reverse();\n\t\tif ( parts.length < 2 ) return;\n\n\t\t// language ID\n\n\t\tvar elt=document.getElementById('langid');\n\t\t// the 'autodetect' option has empty value\n\t\tif ( elt.value != '' ) return;\n\n\t\tvar langid = getMainExtension(parts[0]);\n\t\tfor (i=0;i<elt.length;i++) {\n\t\t\tif ( elt.options[i].value == langid ) {\n\t\t\t\telt.selectedIndex = i;\n\t\t\t}\n\t\t}\n\n\t}\n"; putgetMainExtension($langs); echo "// -->\n</script>\n"; echo addForm($pagename, 'post', null, 'multipart/form-data'); ?> <table> <tr><td><label for="code">File</label>:</td> <td><input type="file" name="code" id="code" size="40" required onChange='detectLanguage(document.getElementById("code").value);' /></td> </tr> <tr><td colspan="2"> </td></tr> <tr><td><label for="langid">Language</label>:</td> <td><?php $langlist = array(); foreach ($langs as $langid => $langdata) { $langlist[$langid] = $langdata['name']; } $langlist[''] = 'plain text'; echo addSelect('langid', $langlist, '', true); ?> </td> </tr> <tr><td colspan="2"> </td></tr> <tr><td></td> <td><?php echo addSubmit('Print code', 'submit'); ?> </td> </tr> </table> <?php echo addEndForm(); }
require LIBWWWDIR . '/header.php'; // Don't use HTTP meta refresh, but javascript: otherwise we cannot // cancel it when the user starts editing the submit form. This also // provides graceful degradation without javascript present. $refreshtime = 30; $submitted = @$_GET['submitted']; $fdata = calcFreezeData($cdata); $langdata = $DB->q('KEYTABLE SELECT langid AS ARRAYKEY, name, extensions FROM language WHERE allow_submit = 1'); echo "<script type=\"text/javascript\">\n<!--\n"; if ($fdata['cstarted']) { $probdata = $DB->q('TABLE SELECT probid, shortname, name FROM problem INNER JOIN contestproblem USING (probid) WHERE cid = %i AND allow_submit = 1 ORDER BY shortname', $cid); putgetMainExtension($langdata); echo "function getProbDescription(probid)\n{\n"; echo "\tswitch(probid) {\n"; foreach ($probdata as $probinfo) { echo "\t\tcase '" . specialchars($probinfo['shortname']) . "': return '" . specialchars($probinfo['name']) . "';\n"; } echo "\t\tdefault: return '';\n\t}\n}\n\n"; } echo "initReload(" . $refreshtime . ");\n"; echo "// -->\n</script>\n"; // Put overview of team submissions (like scoreboard) putTeamRow($cdata, array($teamid)); echo "<div id=\"submitlist\">\n"; echo "<h3 class=\"teamoverview\">Submissions</h3>\n\n"; if ($fdata['cstarted']) { echo <<<HTML