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!