diff --git a/mod/quiz/attemptlib.php b/mod/quiz/attemptlib.php index cb05a5466bf..30c05e69c9a 100644 --- a/mod/quiz/attemptlib.php +++ b/mod/quiz/attemptlib.php @@ -1664,7 +1664,7 @@ abstract class quiz_nav_panel_base { $button->stateclass = 'complete'; } $button->statestring = $this->get_state_string($qa, $showcorrectness); - $button->currentpage = $this->attemptobj->get_question_page($slot) == $this->page; + $button->currentpage = $this->showall || $this->attemptobj->get_question_page($slot) == $this->page; $button->flagged = $qa->is_flagged(); $button->url = $this->get_question_url($slot); $buttons[] = $button; @@ -1715,6 +1715,20 @@ abstract class quiz_nav_panel_base { } return $userpicture; } + + /** + * Return 'allquestionsononepage' as CSS class name when $showall is set, + * otherwise, return 'multipages' as CSS class name. + * @return string, CSS class name + */ + public function get_button_container_class() { + // Quiz navigation is set on 'Show all questions on one page'. + if ($this->showall) { + return 'allquestionsononepage'; + } + // Quiz navigation is set on 'Show one page at a time'. + return 'multipages'; + } } diff --git a/mod/quiz/renderer.php b/mod/quiz/renderer.php index 6900a3b007c..aca16a57c1b 100644 --- a/mod/quiz/renderer.php +++ b/mod/quiz/renderer.php @@ -313,7 +313,8 @@ class mod_quiz_renderer extends plugin_renderer_base { } $output .= $panel->render_before_button_bits($this); - $output .= html_writer::start_tag('div', array('class' => 'qn_buttons')); + $bcc = $panel->get_button_container_class(); + $output .= html_writer::start_tag('div', array('class' => "qn_buttons $bcc")); foreach ($panel->get_question_buttons() as $button) { $output .= $this->render($button); }