diff --git a/lib/questionlib.php b/lib/questionlib.php index 1bfe045e44f..081a0e67cd0 100644 --- a/lib/questionlib.php +++ b/lib/questionlib.php @@ -825,16 +825,8 @@ function get_question_options(&$questions, $loadtags = false) { * @return string the HTML for the img tag. */ function print_question_icon($question) { - global $OUTPUT; - - $qtype = question_bank::get_qtype($question->qtype, false); - $namestr = $qtype->menu_name(); - - // TODO convert to return a moodle_icon object, or whatever the class is. - $html = '' .
-            $namestr . ''; - - return $html; + global $PAGE; + return $PAGE->get_renderer('question', 'bank')->qtype_icon($question->qtype); } /** diff --git a/mod/quiz/editlib.php b/mod/quiz/editlib.php index 6b5ddf9f74a..0097787deb5 100644 --- a/mod/quiz/editlib.php +++ b/mod/quiz/editlib.php @@ -781,7 +781,7 @@ function quiz_print_singlequestion($question, $returnurl, $quiz) { echo quiz_question_edit_button($quiz->cmid, $question, $returnurl, quiz_question_tostring($question) . ' '); echo ''; - print_question_icon($question); + echo print_question_icon($question); echo ' ' . question_bank::get_qtype_name($question->qtype) . ''; echo '' . quiz_question_preview_button($quiz, $question, true) . ''; @@ -807,7 +807,7 @@ function quiz_print_randomquestion(&$question, &$pageurl, &$quiz, $quiz_qbanktoo } echo '
'; - print_question_icon($question); + echo print_question_icon($question); print_random_option_icon($question); echo ' ' . get_string('randomfromcategory', 'quiz') . '
'; @@ -886,7 +886,7 @@ function quiz_print_randomquestion(&$question, &$pageurl, &$quiz, $quiz_qbanktoo function quiz_print_singlequestion_reordertool($question, $returnurl, $quiz) { echo '
'; echo ''; echo '' . @@ -920,7 +920,7 @@ function quiz_print_randomquestion_reordertool(&$question, &$pageurl, &$quiz) { echo '
'; echo '
'; echo $reordercheckboxlabel; - print_question_icon($question); + echo print_question_icon($question); print_random_option_icon($question); if ($questioncount == 0) { diff --git a/question/editlib.php b/question/editlib.php index 8bc1c2c80c1..4079d48488b 100644 --- a/question/editlib.php +++ b/question/editlib.php @@ -1793,7 +1793,7 @@ function print_qtype_to_add_option($qtype) { echo ''; $fakequestion = new stdClass(); $fakequestion->qtype = $qtype->name(); - print_question_icon($fakequestion); + echo print_question_icon($fakequestion); echo $qtype->menu_name() . '' . $summary; echo "\n"; echo "
\n"; diff --git a/question/renderer.php b/question/renderer.php new file mode 100644 index 00000000000..f8f667b5981 --- /dev/null +++ b/question/renderer.php @@ -0,0 +1,49 @@ +. + +/** + * Renderers for outputting parts of the question bank. + * + * @package moodlecore + * @subpackage questionbank + * @copyright 2011 The Open University + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + + +defined('MOODLE_INTERNAL') || die(); + + +/** + * This renderer outputs parts of the question bank. + * + * @copyright 2011 The Open University + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class core_question_bank_renderer extends plugin_renderer_base { + + /** + * Output the icon for a question type + * @param string $qtype the question type. + * @return string HTML fragment. + */ + public function qtype_icon($qtype) { + $qtype = question_bank::get_qtype($qtype, false); + $namestr = $qtype->local_name(); + + return $this->pix_icon('icon', $namestr, $qtype->plugin_name(), array('title' => $namestr)); + } +}