Note:

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

Calculated question back to quiz button: Difference between revisions

From MoodleDocs
m (Calculated question back to quiz button moved to Development:Calculated question back to quiz button)
(Removing all content from page)
 
Line 1: Line 1:
{{Calculated question dev docs}}
From [[Calculated question creation developper docs#A more FULL PROOF code|Calculated question creation]]
==The code can be improved==


by not allowing the user do an operation when all the preceedings steps have not be done.
If the user at the third step click BACK TO QUIZ EDITING when NO dataset items added,
he LOOSE all his work because the question general parameters where not solved.
see Calculated question back to quiz button
This page explain the code modification that has been implemented in Moodle 1,7 and 1.65 BETA
to solve this problem
==Controlling the display of the '''Back to quiz editing''' button==
The question\type\datasetdependent\datasetitems.php which code the display of the third and last form of the creation of a calculated question have been modified so that when there is no data the '''Back to quiz editing''' button does not appears items but instead there is a warning.
[[Image:nobackbutton.jpg]]
When the user as clicked once on the '''Add''' button,
#the question parameters are save.
#the dataset definitions are updated
#the first data items set is saved
and a '''valid''' but perhaps incomplete calculated question is created.
== The '''Back to quiz editing''' button appears.==
[[Image:backtoquizbutton.jpg]]
the following code in question\type\datasetdependent\datasetitems.php do the trick.
    $strdataitemneed = get_string('dataitemneed', 'quiz');
    if (!empty($table->data)) {
        echo "<form method=\"post\" action=\"question.php\">
            <input type=\"hidden\" name=\"id\" value=\"$question->id\"/>
            <input type=\"hidden\" name=\"category\" value=\"$question->category\"/>
            <input type=\"hidden\" name=\"qtype\" value=\"$question->qtype\"/>
            <input type=\"hidden\" name=\"sesskey\" value=\"".sesskey()."\"/>
            <input type=\"hidden\" name=\"wizardpage\" value=\"datasetitems\"/>";
        echo " ".$datatableoption."<\p>"; 
        print_table($table); // this prints the remove button and the actual sets of data items
        echo "</form>";      // this form returns to datasetitems.php to remove one set of  data items 
        echo "&lt;center&gt;&lt;br /&gt;&lt;br /&gt;<form method=\"post\" action=\"question.php\">
          <input type=\"hidden\" name=\"id\" value=\"$question->id\"/>
          <input type=\"hidden\" name=\"category\" value=\"$question->category\"/>
          <input type=\"hidden\" name=\"qtype\" value=\"$question->qtype\"/>
          <input type=\"hidden\" name=\"sesskey\" value=\"".sesskey()."\"/>
          <input type=\"hidden\" name=\"wizardpage\" value=\"datasetitems\"/>
          <input type=\"submit\" name=\"backtoquiz\" value=\"$strbacktoquiz\">
          </form>&lt;/center&gt;\n";// this form returns to datasetitems.php and exits to quiz edition
    } else {
          notify( $strdataitemneed );//
    }
in /;lib/quiz.php
    $string['dataitemneed'] = 'You need to add at least one set of data items to get a valid question';

Latest revision as of 13:01, 4 November 2009