diff --git a/completion/criteria/completion_criteria.php b/completion/criteria/completion_criteria.php index a87abd3d676..47426c987eb 100644 --- a/completion/criteria/completion_criteria.php +++ b/completion/criteria/completion_criteria.php @@ -232,6 +232,20 @@ abstract class completion_criteria extends data_object { */ abstract public function get_details($completion); + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + global $COMPLETION_CRITERIA_TYPES; + + $criteriatype = $COMPLETION_CRITERIA_TYPES[$this->criteriatype]; + return new pix_icon('i/'.$criteriatype, $alt, 'moodle', $attributes); + } + /** * Return criteria status text for display in reports * diff --git a/completion/criteria/completion_criteria_activity.php b/completion/criteria/completion_criteria_activity.php index c64805e01cf..05eda152b10 100644 --- a/completion/criteria/completion_criteria_activity.php +++ b/completion/criteria/completion_criteria_activity.php @@ -288,4 +288,15 @@ class completion_criteria_activity extends completion_criteria { return $details; } + + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + return new pix_icon('icon', $alt, 'mod_'.$this->module, $attributes); + } } diff --git a/completion/criteria/completion_criteria_date.php b/completion/criteria/completion_criteria_date.php index 883fa5a3273..93274661a0f 100644 --- a/completion/criteria/completion_criteria_date.php +++ b/completion/criteria/completion_criteria_date.php @@ -202,4 +202,15 @@ class completion_criteria_date extends completion_criteria { return $details; } + + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + return new pix_icon('i/calendar', $alt, 'moodle', $attributes); + } } diff --git a/completion/criteria/completion_criteria_grade.php b/completion/criteria/completion_criteria_grade.php index 2e9655ff88a..e43d32435c7 100644 --- a/completion/criteria/completion_criteria_grade.php +++ b/completion/criteria/completion_criteria_grade.php @@ -248,4 +248,15 @@ class completion_criteria_grade extends completion_criteria { return $details; } + + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + return new pix_icon('i/grades', $alt, 'moodle', $attributes); + } } diff --git a/completion/criteria/completion_criteria_self.php b/completion/criteria/completion_criteria_self.php index 065f00ff45b..9631f7f1ce1 100644 --- a/completion/criteria/completion_criteria_self.php +++ b/completion/criteria/completion_criteria_self.php @@ -149,4 +149,15 @@ class completion_criteria_self extends completion_criteria { return $details; } + + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + return new pix_icon('i/completion_self', $alt, 'moodle', $attributes); + } } diff --git a/completion/criteria/completion_criteria_unenrol.php b/completion/criteria/completion_criteria_unenrol.php index 6eaab0ee245..b461cdf984a 100644 --- a/completion/criteria/completion_criteria_unenrol.php +++ b/completion/criteria/completion_criteria_unenrol.php @@ -131,4 +131,15 @@ class completion_criteria_unenrol extends completion_criteria { $details['status'] = ''; return $details; } + + /** + * Return pix_icon for display in reports. + * + * @param string $alt The alt text to use for the icon + * @param array $attributes html attributes + * @return pix_icon + */ + public function get_icon($alt, array $attributes = null) { + return new pix_icon('i/user', $alt, 'moodle', $attributes); + } } diff --git a/report/completion/index.php b/report/completion/index.php index 0d1d23a9048..5cd4f9e83b4 100644 --- a/report/completion/index.php +++ b/report/completion/index.php @@ -457,18 +457,16 @@ if (!$csv) { foreach ($criteria as $criterion) { // Generate icon details - $icon = ''; $iconlink = ''; - $icontitle = ''; // Required if $iconlink set $iconalt = ''; // Required + $iconattributes = array('class' => 'icon'); switch ($criterion->criteriatype) { case COMPLETION_CRITERIA_TYPE_ACTIVITY: // Display icon - $icon = $OUTPUT->pix_url('icon', $criterion->module); $iconlink = $CFG->wwwroot.'/mod/'.$criterion->module.'/view.php?id='.$criterion->moduleinstance; - $icontitle = $modinfo->cms[$criterion->moduleinstance]->get_formatted_name(); + $iconattributes['title'] = $modinfo->cms[$criterion->moduleinstance]->get_formatted_name(); $iconalt = get_string('modulename', $criterion->module); break; @@ -478,7 +476,7 @@ if (!$csv) { // Display icon $iconlink = $CFG->wwwroot.'/course/view.php?id='.$criterion->courseinstance; - $icontitle = format_string($crs->fullname, true, array('context' => context_course::instance($crs->id, MUST_EXIST))); + $iconattributes['title'] = format_string($crs->fullname, true, array('context' => context_course::instance($crs->id, MUST_EXIST))); $iconalt = format_string($crs->shortname, true, array('context' => context_course::instance($crs->id))); break; @@ -491,16 +489,16 @@ if (!$csv) { break; } + // Create icon alt if not supplied + if (!$iconalt) { + $iconalt = $criterion->get_title(); + } + // Print icon and cell print ''; - // Create icon if not supplied - if (!$icon) { - $icon = $OUTPUT->pix_url('i/'.$COMPLETION_CRITERIA_TYPES[$criterion->criteriatype]); - } - - print ($iconlink ? '' : ''); - print ''.$iconalt.''; + print ($iconlink ? '' : ''); + print $OUTPUT->render($criterion->get_icon($iconalt, $iconattributes)); print ($iconlink ? '' : ''); print '';