You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
199 lines
8.6 KiB
199 lines
8.6 KiB
This files describes API changes in the quiz code.
|
|
|
|
=== 3.7 ===
|
|
|
|
* Quiz_cron() has been removed. Sub-plugins should implemented scheduled tasks, however legacy cron in subplugins are
|
|
supported.
|
|
|
|
=== 3.6 ===
|
|
|
|
* The following renamed classes have been completely removed:
|
|
- quiz_question_bank_view (now: mod_quiz\question\bank\custom_view)
|
|
- question_bank_add_to_quiz_action_column (now: mod_quiz\question\bank\add_action_column)
|
|
- question_bank_question_name_text_column (now: mod_quiz\question\bank\question_name_text_column)
|
|
|
|
=== 3.5 ===
|
|
* Removed questionbank.ajax.php. Please use the quiz_question_bank fragment instead.
|
|
* Adding "random" questions to a quiz via quiz_add_quiz_question() has been deprecated. Please use quiz_add_random_questions().
|
|
|
|
=== 3.3.2 ===
|
|
|
|
* quiz_refresh_events() Now takes two additional parameters to refine the update to a specific instance. This function
|
|
now optionally takes the module instance object or ID, and the course module object or ID. Please try to send the full
|
|
objects instead of the ids to save DB calls.
|
|
|
|
=== 3.2 ===
|
|
|
|
* External functions mod_quiz_external::get_attempt_data, mod_quiz_external::get_attempt_summary
|
|
and mod_quiz_external::get_attempt_review now return additional optional fields:
|
|
- blockedbyprevious: Whether a question is blocked by the previous question.
|
|
|
|
=== 3.1 ===
|
|
|
|
* quiz_attempt::question_print_comment_fields() has been removed. It was broken
|
|
since at least Moodle 2.0.
|
|
|
|
* quiz::confirm_start_attempt_message and mod_quiz_view_object::$startattemptwarning
|
|
have been deprecated. This functionality is now entirely handled within the
|
|
quiz access rule plugins.
|
|
|
|
* The third argument to mod_quiz_renderer::start_attempt_button has been changed
|
|
from a warning string to a mod_quiz_preflight_check_form.
|
|
|
|
* mod_quiz_renderer::review_next_navigation has a new optional argument. If you
|
|
have overridden that method, consider updating your code to match.
|
|
|
|
* mod_quiz\output\edit_renderer::start_section_list now takes $structure as an
|
|
argument. If you have overridden this method (it's hard to believe anyone ever
|
|
would) you will need to update your renderer.
|
|
|
|
* Several methods relating to preview links/buttons/urls have a new optional
|
|
argument to make the preview be of a particular variant.
|
|
|
|
|
|
=== 2.9 ===
|
|
|
|
* There have been changes in classes/output/edit_renderer.php for MDL-40990.
|
|
+ Some methods use to take $structure & $question as the first two arguments.
|
|
They now take $structure & $slot number. If you need $question, you can get
|
|
it using $question = $structure->get_question_in_slot($slot);
|
|
+ Some methods used to take $quiz & $question. They now take $structure & $slot
|
|
number. You can get $question as above. $quiz is $structure->get_quiz().
|
|
+ initialise_editing_javascript has had some redundant arguments removed.
|
|
Hopefully, with these changes, we will have less need to make other changes in future.
|
|
|
|
* Due to MDL-40992, you should be aware that extra slots can get added to an attempt.
|
|
You may get slot numbers beyone the end of the original quiz layout, and you
|
|
may want to call $attemptobj->get_original_slot to find where the question
|
|
originally came from.
|
|
|
|
* You now need to pass an instance of the mod_quiz_renderer if you call
|
|
$attemptobj->render_question or $attemptobj->render_question_at_step.
|
|
|
|
* The array values in mod_quiz_links_to_other_attempts may now be either a moodle_url,
|
|
or renderable (or null). Previously they could only be a moodle_url or null.
|
|
|
|
* The contents of the navigation block is now not just quiz_nav_question_button-s.
|
|
It can also contain quiz_nav_section_heading-s. If you have overridden
|
|
mod_quiz_renderer::navigation_panel, then you may need to account for this.
|
|
This change also has implications for the Edit quiz page.
|
|
|
|
|
|
=== 2.8 ===
|
|
|
|
* Classes that were defined in various lib files have been moved to the classes
|
|
folder to take advantage of auto-loading. This has involved renaming them.
|
|
see the list in mod/quiz/db/renamedclasses.php.
|
|
|
|
* The quiz no longer handles its own \mod_quiz\event\attempt_becameoverdue event,
|
|
and so the event handler function quiz_attempt_overdue_handler has been deleted.
|
|
Also, the internal function quiz_send_overdue_message has add the arguments
|
|
changed. It now takes the $attemptobj object, not separate stdClass objects.
|
|
|
|
* Major changes to the Edit quiz page.
|
|
|
|
The goal of this work was to increase usability, and also clean up the page
|
|
enough that it will be possible to add new features in future.
|
|
|
|
Display of mod/quiz/edit.php is now entirely generated by
|
|
mod_quiz\output\edit_renderer. This uses a helper class mod_quiz\structure
|
|
to provide details of the structure of the quiz, and mod_quiz\repaginate to
|
|
alter that structure. (Actually, there are still some modification methods on
|
|
mod_quiz\structure. Expect that to be cleaned up in future.)
|
|
|
|
The new code uses much more ajax, and there are new scripts mod/quiz/edit_rest.php
|
|
and mod/quiz/repaginate.php to handle this. (Again, don't be surprised if those
|
|
two scripts get merged in future.) Also questionbank.ajax.php (which may, in
|
|
future, be made more generic, and moved into the core question bank code.)
|
|
|
|
As a result of this, mod/quiz/editlib.php has gone. (A few remaining functions
|
|
were moved to locallib.php.)
|
|
|
|
Here is a list of all the old functions or classes that have changed.
|
|
If you used any of these in custom code, you will need to update your code.
|
|
(Note that many of these functions should have been considered private internals
|
|
of the quiz module, and you should not have been using them!)
|
|
|
|
From editlib.php:
|
|
quiz_remove_slot
|
|
quiz_delete_empty_page
|
|
quiz_add_page_break_after_slot - Use methods of structure or repaginate
|
|
quiz_update_slot_maxmark - classes instead.
|
|
_quiz_move_question
|
|
quiz_move_question_up
|
|
quiz_move_question_down
|
|
|
|
quiz_print_question_list
|
|
quiz_print_pagecontrols
|
|
quiz_print_singlequestion - Use methods of edit_renderer instead.
|
|
quiz_print_randomquestion
|
|
quiz_print_singlequestion_reordertool
|
|
quiz_print_randomquestion_reordertool
|
|
print_random_option_icon
|
|
quiz_print_grading_form
|
|
quiz_print_status_bar
|
|
|
|
Moved from editlib.php to locallib.php:
|
|
quiz_question_tostring - now always returns a string (the only option used).
|
|
The $return argument has gone.
|
|
|
|
Old editing JavaScript (e.g. mod/quiz/edit.js) is gone. Replaced with YUI modules.
|
|
|
|
|
|
=== 2.7.1 ===
|
|
|
|
* The function quiz_fire_attempt_started_event has been removed. This function
|
|
should not have been used outside the quiz, but if you were using it, you should
|
|
trigger the event outside this function. Note that the appropriate start event is
|
|
fired automatically by the quiz_attempt_save_started function.
|
|
|
|
|
|
=== 2.7 ===
|
|
|
|
* The old quiz.questions database column (comma-separated list of question ids)
|
|
is gone, and instead the quiz_question_instances table has been renamed to
|
|
to quiz_slots. Some of the columns of that table have been renamed to match
|
|
the coding guidelines. Specifically:
|
|
quiz -> quizid
|
|
question -> questionid
|
|
grade -> maxmark
|
|
also there are two new columns:
|
|
slot - numbers the questions in the quiz in order, as on the edit quiz page.
|
|
page - new way to determine which question is on which page.
|
|
naturally, other parts of the code and APIs have been updated to reflect that
|
|
change.
|
|
|
|
* The following functions, which were part of the internal workings of the quiz,
|
|
have been removed.
|
|
quiz_get_slot_for_question
|
|
quiz_number_of_questions_in_quiz
|
|
quiz_repaginate (there is now a quiz_repaginate_questions with a different API).
|
|
quiz_add_page_break_at (see quiz_add_page_break_after_slot)
|
|
quiz_add_page_break_after (see quiz_add_page_break_after_slot)
|
|
quiz_number_of_pages
|
|
quiz_remove_question (see quiz_remove_slot)
|
|
quiz_update_question_instance (see quiz_update_slot_maxmark)
|
|
|
|
* The following internal functions have had their API changed.
|
|
quiz_delete_empty_page: has had its arguments changed to $quiz and $pagenumber.
|
|
quiz_has_question_use: now takes $quiz and $slot, not $questionid.
|
|
|
|
|
|
=== 2.6 ===
|
|
|
|
* As part of improving the page usability and accessibility, we updated the
|
|
heading levels for quiz module so it has a proper nesting. (MDL-41615)
|
|
|
|
* mod_quiz_renderer::view_best_score has been removed. (It did not do what the
|
|
name suggested anyway.)
|
|
|
|
|
|
=== 2.4 ===
|
|
|
|
* mod_quiz_renderer::finish_review_link now requires $attemptobj to be passed in
|
|
instead of a moodle_url.
|
|
|
|
|
|
=== Earlier changes ===
|
|
|
|
* Were not documented in this way. Sorry.
|
|
|