Tipologia di domanda personalizzata: concetti generali

Tipologia di domanda personalizzata : concetti generali

HTML = HEAD & BODY

Essendo il quiz prodotto in QuizFaber un insieme di pagine html, css (fogli di stile) e javascript, la definizione della nuova tipologia di domanda dovrà fornire a QuizFaber :

  • una parte di HTML (quello che vedo nella pagina)
  • una parte di Javascript (il motore, l'intelligenza che determina se la domanda è risposta correttamente oppure no)
  • una parte di CSS (foglio di stile), se necessario, per fornire uno stile grafico coerente, esteticamente gradevole, con libera scelta di font , dimensione font e colori.

Occorre inoltre distinguere la parte Javascript e CSS che verrà inserita nella sezione HEAD dell'HTML (tag LINK REF), specificando i nomi di file .js e .css, e la parte HTML e Javascript che verrà inserita nella sezione BODY dell'HTML, scrivendo direttamente il codice.

In aggiunta, è possibile aggiungere un qualsiasi contenuto multimediale (immagini, suoni, video) di corredo. Ad esempio, una tipologia di domanda "puzzle" ("jigsaw") può prevedere un'immagine (foto) da ricostruire, che deve quindi essere specificata nella lista dei file multimediali.

Infine, per stessa definizione semantica di "tipologia di domanda", è fondamentale capire che un conto è la "tipologia" ovvero il modello della domanda e un conto è la domanda con quella tipologia personalizzata che verrà inserita in un certo punto del quiz, e che, tale tipologia potrà quasi sicuramente essere ripetuta più volte all'interno del quiz (per la stessa ragione per cui una domanda a scelta multipla sicuramente è utilizzata più volte - con risposte diverse - all'interno di uno stesso quiz).

Per questa ragione, QuizFaber per le domande a tipologia personalizzata permette di inserire parametri con un certo valore. Cosa sono i parametri e che valore bisogna associare ? Dipende dalla tipologia. Ad esempio, una domanta di tipo "puzzle" ("jigsaw") che da un'immagine scompone i pezzi che dovranno essere ricostruiti potrà avere tre parametri :

  • nome del file immagine che deve essere scomposto
  • numero di pezzi in orizzonatale
  • numero di pezzi in verticale

Chiaramente, se dovessi inserire due o più domande nel quiz di tipo "puzzle", dovrò specificare due o più immagini diverse.
Esistono già due parametri che QuizFaber definisce automaticamente, e sono i parametri:

  • %NUM% : numero di domanda, numero intero N che verrà assegnato quando la tipologia di domanda verrà scelta per la domanda in posizione N
  • %NAME% : nome della tipologia (ad esempio "puzzle")

(come regola, i parametri in QuizFaber, quando specificati nel codice html / javascript, sono preceduti dal simbolo % e sono terminati dal simbolo %)

Un'altro punto fondamentale da capire, è che esiste un punto di congiunzione tra il codice personalizzato che l'utente ha scritto (o ha riutilizzato da Internet) e il motore Javascript di QuizFaber che deve visualizzare se la risposta è stata risposta correttamente oppure no, e poi riassumerla nel report finale. Questo punto di congiunzione è una semplice riga HTML che è un campo INPUT di tipo HIDDEN, ed è la seguente:

<INPUT type="hidden" NAME="custom_%NAME%_%NUM%" VALUE="0">

Come si vede, compaiono i due parametri definiti automaticamente da QuizFaber. Ad esempio, per una domanda di tipologia "puzzle" (che avrà quindi nome "puzzle"), scelta nel quiz come domanda numero 8, la riga precedente verrà tradotta nel seguente modo:

<INPUT type="hidden" NAME="custom_puzzle_8" VALUE="0">

In cosa consiste l'anello di congiunzione con il motore Javascript di QuizFaber ? Semplicemente il valore (VALUE) del campo INPUT di tipo HIDDEN.

  • Se VALUE = 1, la risposta verrà considerata corretta
  • Se VALUE=0, la risposta verrà considerata errata

E come si imposta la variabile VALUE ? Con un'istruzione Javascript, la seguente:

document.domanda.custom_%NAME%_%NUM%.value

Che nel caso della tipologia "puzzle" con domanda numero 8, viene tradotta in:

document.domanda.custom_puzzle_8.value

Quindi verrà utilizzata nel seguente modo:

  • risposta corretta se eseguo l'istruzione : document.domanda.custom_%NAME%_%NUM%.value = 1
  • risposta errata se eseguo l'istruzione : document.domanda.custom_%NAME%_%NUM%.value = 0