Quasi nello stesso modo in cui si spediscono i risultati di un test via mail, si possono invece inviare ad una stampante locale. Questo sistema è particolarmente utile quando si vogliono usare i test pubblicati sul proprio sito come verifiche in classe. Nonostante il codice prodotto con HotPotatoes non sia studiato per offrire le garanzie di sicurezza (nel senso delle copiature!) che invece offrono altri programmi più complessi (come del resto è ovvio con il materiale distribuito sulla rete), la possibilità di mettere in rete un test, farlo eseguire subito dopo agli studenti, e poter avere una stampa che riepiloghi il punteggio individuale è, secondo noi, oltremodo interessante.
Il processo da seguire è molto simile a quello già considerato per l'uso dell'applicazione formmail di Digiland e richiede un intervento sempre sulle sezioni A e B considerate: per questo riporteremo solo il codice originale e quello modificato, senza particolari commenti. Partiamo dal codice originale di JBC, versione 5.4, che si trova nella cartella source di HotPotatoes, con il nome JBC5.ht_ Per gli altri programmi la procedura è simile. Anche per le successive versioni di JBC gli adattamenti sono semplici.
Codice originale:
Sezione A
[inclSendResults]
var UserName = '';
var StartTime = (new Date()).toLocaleString();
var ResultForm = '<html><body><form name="Results"
action="[strFormMailURL]" method="post"
enctype="x-www-form-encoded">';
ResultForm += '<input type="hidden" name="recipient"
value="[strEMail]"></input>';
ResultForm += '<input type="hidden" name="subject"
value="[strExerciseTitle]"></input>';
ResultForm += '<input type="hidden" name="Exercise"
value="[strExerciseTitle]"></input>';
ResultForm += '<input type="hidden" name="realname"
value=""></input>';
ResultForm += '<input type="hidden" name="Score"
value=""></input>';
ResultForm += '<input type="hidden" name="Start_Time"
value=""></input>';
ResultForm += '<input type="hidden" name="End_Time"
value=""></input>';
ResultForm += '<input type="hidden" name="title"
value="Thanks!"></input>';
[inclPageBGColor]
ResultForm += '<input type="hidden" name="bgcolor"
value="[strPageBGColor]"></input>';
[/inclPageBGColor]
ResultForm += '<input type="hidden" name="text_color"
value="[strTitleColor]"></input>';
ResultForm += '<input type="hidden" name="sort"
value="order:realname,Exercise,Score,Start_Time,End_Time"></input>';
ResultForm += '</form></body></html>';
[/inclSendResults]
Sezione B
[inclSendResults]
function SendResults(Score){
var today = new Date;
var NewName = '' + today.getTime();
var NewWin = window.open('Submission', NewName,
'toolbar=no,location=no,directories=no,status=no,
menubar=no,scrollbars=yes,resizable=no,,width=400,height=300');
NewWin.document.clear();
NewWin.document.open();
NewWin.document.write(ResultForm);
NewWin.document.close();
NewWin.document.Results.Score.value = Score + '%';
NewWin.document.Results.realname.value = UserName;
NewWin.document.Results.End_Time.value = (new Date()).toLocaleString();
NewWin.document.Results.Start_Time.value = StartTime;
NewWin.document.Results.submit();
}
[/inclSendResults]
Codice modificato
Sezione A
[inclSendResults]
var UserName = '';
var StartTime = (new Date()).toLocaleString();
var ResultForm = '<html><body onLoad="window.print()">';
ResultForm += '<form name="Results">';
ResultForm += '<input type="text" size="100" disabled
name="Exercise" value="[strExerciseTitle]"></input>';
ResultForm += '<input type="text" size="100" disabled
name="realname" value=""></input>';
ResultForm += '<input type="text" size="100" disabled
name="Score" value=""></input>';
ResultForm += '<input type="text" size="100" disabled
name="Start_Time" value=""></input>';
ResultForm += '<input type="text" size="100" disabled
name="End_Time" value=""></input>';
[inclPageBGColor]
[/inclPageBGColor]
ResultForm += '</form></body></html>';
[/inclSendResults]
N.B. Le text box sono disabled per evitare un intervento dell'utente a
modificare i dati prima della stampa.
Sezione B
[inclSendResults]
function SendResults(Score){
var today = new Date;
var NewName = '' + today.getTime();
var NewWin = window.open('Submission', NewName,
'toolbar=no,location=no,directories=no,status=no,
menubar=no,scrollbars=yes,resizable=no,,width=700,height=500');
NewWin.document.clear();
NewWin.document.open();
NewWin.document.write(ResultForm);
NewWin.document.Results.Score.value = Score + '%';
NewWin.document.Results.realname.value = UserName;
NewWin.document.Results.End_Time.value = (new Date()).toLocaleString();
NewWin.document.Results.Start_Time.value = StartTime;
NewWin.document.close();
}
[/inclSendResults]
Potete anche, naturalmente, aggiungere il Numero di risposte corrette al primo tentativo.
Buon lavoro!