mirror of
https://github.com/moodle/moodle.git
synced 2025-04-14 13:02:07 +02:00
MDL-26429 usability: Add course completion icons.
This patch adds a method to the course completion criteria classes which allows them to specify an icon for display in the course completion report table. There is a default implementation which simply looks for an icon in pix/i with a name matching the completion criteria type.
This commit is contained in:
parent
08dc6b095e
commit
7062e7c6b3
@ -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
|
||||
*
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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 '<th class="criteriaicon">';
|
||||
|
||||
// Create icon if not supplied
|
||||
if (!$icon) {
|
||||
$icon = $OUTPUT->pix_url('i/'.$COMPLETION_CRITERIA_TYPES[$criterion->criteriatype]);
|
||||
}
|
||||
|
||||
print ($iconlink ? '<a href="'.$iconlink.'" title="'.$icontitle.'">' : '');
|
||||
print '<img src="'.$icon.'" class="icon" alt="'.$iconalt.'" '.(!$iconlink ? 'title="'.$iconalt.'"' : '').' />';
|
||||
print ($iconlink ? '<a href="'.$iconlink.'" title="'.$iconattributes['title'].'">' : '');
|
||||
print $OUTPUT->render($criterion->get_icon($iconalt, $iconattributes));
|
||||
print ($iconlink ? '</a>' : '');
|
||||
|
||||
print '</th>';
|
||||
|
Loading…
x
Reference in New Issue
Block a user