[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/question/type/ -> upgrade.txt (source)

   1  This files describes API changes for question type plugins.
   2  
   3  === 3.1 ===
   4  
   5  * The following functions, previously used (exclusively) by upgrade steps are not available
   6    anymore because of the upgrade cleanup performed for this version. See MDL-51580 for more info:
   7      - qtype_essay_convert_to_html()
   8  
   9  === 2.7 ===
  10    + We have added a new method to the question_type base class 'break_down_stats_and_response_analysis_by_variant'. By default it
  11     returns true. If your question type does not have variants of question instances then you can ignore this method as it only
  12     applies to question types that have variants. If a question type does have variants the default action is to break down
  13     response analysis and question stats by variant. But for some question types there might be an almost infinite quantity of
  14     variants for the question, in this case you can suppress break down by variant by returning false from this method. See for
  15     example the non-core question type varnumeric or the slightly more complex stack question type.
  16    + We have added a pair of methods to the question_definition class 'prepare_simulated_post_data' and
  17    'get_student_response_values_for_simulation'. You may want to override these methods in question.php in your question type plug
  18     -in. These methods are used to convert data from a csv file of simulated step data into the simulated post data that is fed
  19     to the question engine. These csv files can be used for unit testing or manual testing the use of your question type within the
  20     quiz module.  You  can use the simulate quiz report for manual testing and also to easily generate csv test files. You can
  21     run a number of students through a test and then download a csv file representing their interaction with the quiz. For most
  22     question types the default of just passing csv data as post data, directly from the csv file will probably work fine. But for
  23     certain question types where the meaning of the post data is deliberately obfuscated it might be necessary to convert from a
  24     human friendly format in the csv file to response data expected by the question type using 'prepare_simulated_post_data' and
  25     to convert back from a question type response array to values for download in a csv file using
  26     'get_student_response_values_for_simulation'.
  27  === 2.6 ===
  28    + The changes in MDL-32750 were reverted in favour of the new pdw toggle toolbars
  29      plugin for TinyMCE. The get_non_collapsible_editor_options method has been deprecated.
  30  
  31  === 2.5 ===
  32  
  33  * There have been some tweaks to the helper class that is used to write
  34    walkthrough tests. You should not have to change your code, but you might
  35    like to take a look at some of the new helper methods available. In particular,
  36    if you had any code that did
  37    $this->process_submission(array('-finish' => 1));
  38    you should change that to
  39    $this->finish();
  40  
  41  * There have been lots of usability improvements to the question editing forms.
  42    MDL-37417 links to all the changes. There are only a few API changes that
  43    *require* you to upgrade your question type, but you are strongly recommended
  44    to make similar usability improvements in your own question types.
  45  
  46    + Some of the ids used in the form HTML have had ‘id_’ added at the front.
  47      Take care if you refer to these in your JavasSript or CSS.
  48  
  49    + MDL-32750 The HTML editing tools are now collapsed. This is applied by default
  50      to all HTML editors except question text and general feedback. If you want to
  51      add more exceptions, see the get_non_collabsible_editor_options method.
  52  
  53    + Form fields have been grouped onto one line where appropriate, to reduce
  54      the height of the form. qtype_numerical is a good example of this.
  55  
  56    + Where elements are in groups, we have changed the normal accesshide CSS, so
  57      that their labels are visible. If you were using grouped elements in the past
  58      with static elements to lable the fields, then you will need to remove the statics.
  59  
  60    + All the choices / answers have been merged into a single section of the form.
  61      This works better with the new 'shortforms' MDL-30637. Also the
  62      "Add blanks for more ..." buttons are now inside that section. This probably
  63      requries that you remove any headings from your per-answer fields, and change
  64      some of the labels.
  65  
  66    + Having merged all the elements into one form section, we then used CSS to
  67      visually group the fields for one choice, answer, etc.
  68  
  69    + When editing an existing question, we only show as many repeats are are
  70      actually needed until the user clicks the "Add blanks for more ..." button.
  71      Where you have your own repeat elements, you may need to change the
  72      number of repeats calculation.
  73  
  74    + As with all forms, setType() is now required for all text form elements.
  75  
  76    + A good example of a question type being upgraded to take account of all these
  77      changes is
  78      https://github.com/moodleou/moodle-qtype_pmatch/commit/9d8e1beb9f780246416a0f3a7622f700b8fa90c8
  79  
  80  
  81  === 2.3.5 / 2.4.2 / 2.5 ===
  82  
  83  * The special value question_attempt::PARAM_CLEANHTML_FILES that could be used
  84    in the get_expected_data method was renamed to question_attempt::PARAM_RAW_FILES
  85    in order to fix a bug. We failed to think this throught, and so did not realised
  86    that this might break some question types. If this affected your question type,
  87    please accept our apologies. Details in MDL-37847.
  88  
  89  
  90  === 2.3 ===
  91  
  92  * Support for backwards-compatible string names dropped. MDL-30120. (See under 2.2 below.)
  93  * If you are overriding export_to_xml and import_from_xml to provide Moodle XML format
  94    import and export, then you will probably get PHP strict syntax notices in developer
  95    debug mode until you change the method signature to include qformat_xml $format.
  96    That is, you need to specify the argument type.
  97  * qtype_xxx_pluginfile() is now given the 7th parameter (hopefully the last
  98    one) that contains additional options for the file serving. The array should
  99    be re-passed to question_pluginfile() as is.
 100  
 101  
 102  === 2.2 ===
 103  
 104  * The XML import/export base class has had some minor API changes. The
 105    - write_combined_feedback method now requires that you pass the questionid and
 106      contextid. (MDL-29058)
 107    - calls to the import_hints and import_answer methods now should pass the question
 108      text format as the last argument, to be used as a default if necessary. (MDL-29739)
 109    If you do not upgrade your code, it will not break, but there will be PHP
 110    warnings, and it the export will not work 100% correctly.
 111  
 112  * The old
 113      public function requires_qtypes()
 114  method is no more. Instead use the ->dependencies facility in version.php. E.g.
 115  $plugin->dependencies = array(
 116      'qtype_numerical' => 2011102700,
 117  );
 118  
 119  * The plugin name and related strings used to be defined in language strings
 120  called the same thing as the format, for example:
 121  
 122  $string['addingdescription'] = 'Adding a Description';
 123  $string['description'] = 'Description';
 124  $string['description_help'] = 'A description is not really a question type. It simply enables text to be displayed without requiring any answers, similar to a label on the course page.
 125  $string['description_link'] = 'A description is not really a question type. It simply enables text to be displayed without requiring any answers, similar to a label on the course page.
 126  $string['descriptionsummary'] = 'This is not actually a question. Instead it is a way to add some instructions, rubric or other content to the activity. This is similar to the way that labels can be used to add content to the course page.';
 127  $string['editingdescription'] = 'Editing a Description';
 128  
 129  All these need to be changed to use the standard string name pluginname, as for
 130  other plugin types, and similar for the other strings.
 131  
 132  $string['pluginname'] = 'Description';
 133  $string['pluginname_help'] = 'A description is not really a question type. It simply enables text to be displayed without requiring any answers, similar to a label on the course page.
 134  $string['pluginname_link'] = 'A description is not really a question type. It simply enables text to be displayed without requiring any answers, similar to a label on the course page.
 135  $string['pluginnameadding'] = 'Adding a Description';
 136  $string['pluginnameediting'] = 'Editing a Description';
 137  $string['pluginnamesummary'] = 'This is not actually a question. Instead it is a way to add some instructions, rubric or other content to the activity. This is similar to the way that labels can be used to add content to the course page.';
 138  
 139  The old strings will continue to work, but only until Moodle 2.3 is released.
 140  
 141  * If you are using the facilities provided by overriding the extra_answer_fields
 142    or questionid_column_name methods, then you must change these to be public
 143    methods. (This is required so that backup and restore can be made to work
 144    automatically. MDL-24408, MDL-25617, MDL-30562)
 145  
 146  
 147  === 2.1 ===
 148  
 149  * Lots of API changes due to the new question engine. See
 150  http://docs.moodle.org/dev/Developing_a_Question_Type#Converting_a_Moodle_2.0_question_type
 151  
 152  
 153  === 2.0 ===
 154  
 155  * Lots of changes due to all the API changes in Moodle 2.0.
 156  
 157  * This plugin type now supports cron in the standard way. If required, Create a
 158    lib.php file containing
 159  function qtype_mypluginname_cron() {};


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1