$roleids = array_map(create_function('$o', 'return $o->roleid;'), $roles);
$selection = array_intersect($acceptedroles, $roleids);
}
- list($usertest, $userparams) = $DB->get_in_or_equal($selection, SQL_PARAMS_NAMED, 'existing', true);
- $options = $DB->get_records_sql('SELECT * FROM {role} WHERE id ' . $usertest, $userparams);
- foreach ($options as $p) {
- $select[$p->id] = role_get_name($p);
- }
- if (!$role) {
- $pageurl = new moodle_url('/badges/award.php', array('id' => $badgeid));
+
+ if (!empty($selection)) {
+ list($usertest, $userparams) = $DB->get_in_or_equal($selection, SQL_PARAMS_NAMED, 'existing', true);
+ $options = $DB->get_records_sql('SELECT * FROM {role} WHERE id ' . $usertest, $userparams);
+ foreach ($options as $p) {
+ $select[$p->id] = role_get_name($p);
+ }
+ if (!$role) {
+ $pageurl = new moodle_url('/badges/award.php', array('id' => $badgeid));
+ echo $OUTPUT->header();
+ echo $OUTPUT->box(get_string('selectaward', 'badges') . $OUTPUT->single_select(new moodle_url($pageurl), 'role', $select));
+ echo $OUTPUT->footer();
+ die();
+ } else {
+ $pageurl = new moodle_url('/badges/award.php', array('id' => $badgeid));
+ $issuerrole = new stdClass();
+ $issuerrole->roleid = $role;
+ $roleselect = get_string('selectaward', 'badges') . $OUTPUT->single_select(new moodle_url($pageurl), 'role', $select, $role);
+ }
+ } else {
echo $OUTPUT->header();
- echo $OUTPUT->box(get_string('selectaward', 'badges') . $OUTPUT->single_select(new moodle_url($pageurl), 'role', $select));
+ $return = html_writer::link(new moodle_url('recipients.php', array('id' => $badge->id)), $strrecipients);
+ echo $OUTPUT->notification(get_string('notacceptedrole', 'badges', $return));
echo $OUTPUT->footer();
die();
- } else {
- $pageurl = new moodle_url('/badges/award.php', array('id' => $badgeid));
- $issuerrole = new stdClass();
- $issuerrole->roleid = $role;
- $roleselect = get_string('selectaward', 'badges') . $OUTPUT->single_select(new moodle_url($pageurl), 'role', $select, $role);
}
} else {
// User has to be an admin or the one with the required role.
$usersids = array_keys($users);
if (!$isadmin && !in_array($USER->id, $usersids)) {
echo $OUTPUT->header();
- $rlink = html_writer::link(new moodle_url('recipients.php', array('id' => $badge->id)), get_string('recipients', 'badges'));
- echo $OUTPUT->notification(get_string('notacceptedrole', 'badges', $rlink));
+ $return = html_writer::link(new moodle_url('recipients.php', array('id' => $badge->id)), $strrecipients);
+ echo $OUTPUT->notification(get_string('notacceptedrole', 'badges', $return));
echo $OUTPUT->footer();
die();
} else {
echo $output->render($badges);
} else {
echo $output->notification(get_string('nobadges', 'badges'));
- echo $OUTPUT->single_button(new moodle_url('newbadge.php', array('type' => $type, 'id' => $courseid)),
+
+ if (has_capability('moodle/badges:createbadge', $PAGE->context)) {
+ echo $OUTPUT->single_button(new moodle_url('newbadge.php', array('type' => $type, 'id' => $courseid)),
get_string('newbadge', 'badges'));
+ }
}
echo $OUTPUT->footer();
$paging = new paging_bar($badges->totalcount, $badges->page, $badges->perpage, $this->page->url, 'page');
// New badge button.
- $n['type'] = $this->page->url->get_param('type');
- $n['id'] = $this->page->url->get_param('id');
- $htmlnew = $this->output->single_button(new moodle_url('newbadge.php', $n), get_string('newbadge', 'badges'));
+ $htmlnew = '';
+ if (has_capability('moodle/badges:createbadge', $this->page->context)) {
+ $n['type'] = $this->page->url->get_param('type');
+ $n['id'] = $this->page->url->get_param('id');
+ $htmlnew = $this->output->single_button(new moodle_url('newbadge.php', $n), get_string('newbadge', 'badges'));
+ }
$htmlpagingbar = $this->render($paging);
$table = new html_table();
new pix_icon('i/badge', get_string('coursebadges', 'badges')));
if (has_capability('moodle/badges:viewawarded', $coursecontext)) {
- $url = new moodle_url($CFG->wwwroot . '/badges/index.php',
+ $url = new moodle_url('/badges/index.php',
array('type' => BADGE_TYPE_COURSE, 'id' => $course->id));
$coursenode->get('coursebadges')->add(get_string('managebadges', 'badges'), $url,
}
if (has_capability('moodle/badges:createbadge', $coursecontext)) {
- $url = new moodle_url($CFG->wwwroot . '/badges/newbadge.php',
+ $url = new moodle_url('/badges/newbadge.php',
array('type' => BADGE_TYPE_COURSE, 'id' => $course->id));
$coursenode->get('coursebadges')->add(get_string('newbadge', 'badges'), $url,
navigation_node::TYPE_SETTING, null, 'newbadge');
}
+ } else if (has_capability('moodle/badges:awardbadge', $coursecontext)) {
+ $coursenode->add(get_string('coursebadges', 'badges'), null,
+ navigation_node::TYPE_CONTAINER, null, 'coursebadges',
+ new pix_icon('i/badge', get_string('coursebadges', 'badges')));
+
+ $url = new moodle_url('/badges/index.php',
+ array('type' => BADGE_TYPE_COURSE, 'id' => $course->id));
+
+ $coursenode->get('coursebadges')->add(get_string('managebadges', 'badges'), $url,
+ navigation_node::TYPE_SETTING, null, 'coursebadges');
}
}
}