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à quattro parametri che QuizFaber definisce automaticamente, e sono:

  • %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")
  • %MEDIA_DIR% : il path relativo per le immagini associate alla domanda personalizzata, da usare ad esempio per l'attributo SRC del tag html <IMG>
  • %CALL_EVALUATION% : per le tipologie di domande che non prevedono la conferma esplicita da parte dell'utente della risposta selezionata, è la funzione conclusiva Javascript che deve essere richiamata da codice quando la logica determinerà che l'utente ha scelto definitivamente la sua risposta.

(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 jQuery, che nel caso di risposta esatta sarà:

$('#custom_%NAME%_%NUM%').val(1);

Oppure per una risposta errata:

$('#custom_%NAME%_%NUM%').val(0);

Oppure nel caso di risposta con punteggio, anzichè 0 o 1, un numero compreso tra il punteggio minimo e quello massimo.

Ad esempio, nel caso della tipologia "puzzle" nella domanda numero 8, con risposta esatta, verrà tradotta in:

$('#custom_puzzle_8').val(1);