Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Calculated multiquestions proposal

From MoodleDocs
Revision as of 16:14, 12 August 2007 by Pierre Pichet (talk | contribs)

This page will be used to document and structure a project of adding multiquestion capability to the calculated question like the cloze questiontype and allowing the calculated questions to be used as usual calculated question or as multiplechoice question. This imply developping a structure similar to the multiquestion i.e adding calculated questions records with the main question as parent. An additional multiplechoice record is necessary to each calculated question.

Actually (august 2007) the general interface to create and edit this improved calculated questiontype almost completed. The real difficulties are to modify the code related to grade each subquestion and store the session and responses parameters.

stdClass Object
(
   [category] => 1
   [parent] => 0
   [name] => my first multichoice
   [questiontext] => What is the surface of a rectangle of {h} m by {l} m ?
{#0}
What is the perimeter of this rectangle?
{#1}
   [questiontextformat] => 1
   [image] => 
   [generalfeedback] => 
   [defaultgrade] => 1
   [penalty] => 0.1
   [qtype] => calculated
   [length] => 1
   [stamp] => 132.208.141.198+070613190851+gCcidQ
   [version] => 132.208.141.198+070812043753+37cXs7
   [hidden] => 0
   [id] => 382
   [maxgrade] => 1
   [name_prefix] => resp382_
   [options] => stdClass Object
       (
           [answers] => Array
               (
                   [1141] => stdClass Object
                       (
                           [question] => 382
                           [answer] => {h}* {l}
                           [fraction] => 1
                           [feedback] => OK
                           [tolerance] => 0.01
                           [tolerancetype] => 1
                           [correctanswerlength] => 2
                           [correctanswerformat] => 1
                           [id] => 1141
                       )
                   [1142] => stdClass Object
                       (
                           [question] => 382
                           [answer] => 2*({h}+{l})
                           [fraction] => 0.5
                           [feedback] => You give me the perimeter !
                           [tolerance] => 0.01
                           [tolerancetype] => 1
                           [correctanswerlength] => 2
                           [correctanswerformat] => 1
                           [id] => 1142
                       )
                   [1143] => stdClass Object
                       (
                           [question] => 382
                           [answer] => {rr}
                           [fraction] => 0
                           [feedback] => Go back and try again
                           [tolerance] => 0.01
                           [tolerancetype] => 1
                           [correctanswerlength] => 2
                           [correctanswerformat] => 1
                           [id] => 1143
                       )
               )
           [multichoice] => stdClass Object
               (
                   [id] => 257
                   [question] => 382
                   [layout] => 0
                   [answers] => 0
                   [single] => 1
                   [shuffleanswers] => 1
                   [correctfeedback] => 
                   [partiallycorrectfeedback] => 
                   [incorrectfeedback] => 
                   [answernumbering] => abc
               )
           [subquestions] => Array
               (
                   [383] => stdClass Object
                       (
                           [category] => 1
                           [parent] => 382
                           [name] => {#1}
                           [questiontext] => {#1}
                           [questiontextformat] => 1
                           [image] => 
                           [generalfeedback] => 
                           [defaultgrade] => 1
                           [penalty] => 0.1
                           [qtype] => calculated
                           [length] => 1
                           [stamp] => 132.208.141.198+070613203735+MrdwQ3
                           [version] => 132.208.141.198+070812043754+Os3B8Z
                           [hidden] => 0
                           [id] => 383
                           [options] => stdClass Object
                               (
                                   [answers] => Array
                                       (
                                           [1144] => stdClass Object
                                               (
                                                   [question] => 383
                                                   [answer] => 2*({h}+{l})
                                                   [fraction] => 1
                                                   [feedback] => OK 1
                                                   [tolerance] => 0.01
                                                   [tolerancetype] => 1
                                                   [correctanswerlength] => 0
                                                   [correctanswerformat] => 1
                                                   [id] => 1144
                                               )
                                       )
                                   [multichoice] => stdClass Object
                                       (
                                           [id] => 258
                                           [question] => 383
                                           [layout] => 0
                                           [answers] => 0
                                           [single] => 0
                                           [shuffleanswers] => 1
                                           [correctfeedback] => 
                                           [partiallycorrectfeedback] => 
                                           [incorrectfeedback] => 
                                           [answernumbering] => abc
                                       )
                                   [units] => Array
                                       (
                                       )
                               )
                           [editasmultichoice] => 0
                       )
               )
           [units] => Array
               (
               )
       )
   [editasmultichoice] => 0
)