diff --git a/badges/backpack.js b/badges/backpack.js index b0caec4104c..68e736bee08 100644 --- a/badges/backpack.js +++ b/badges/backpack.js @@ -10,19 +10,23 @@ function addtobackpack(event, args) { */ function check_site_access() { var add = Y.one('#check_connection'); - var callback = { - success: function(o) { - var data = Y.JSON.parse(o.responseText); - if (data.code == 'http-unreachable') { - add.setHTML(data.response); - add.removeClass('hide'); - } - }, - failure: function(o) { } - }; - YUI().use('yui2-connection', function (Y) { - Y.YUI2.util.Connect.asyncRequest('GET', 'ajax.php', callback, null); + var callback = { + method: "GET", + on: { + success: function(id, o, args) { + var data = Y.JSON.parse(o.responseText); + if (data.code == 'http-unreachable') { + add.setHTML(data.response); + add.removeClass('hide'); + } + }, + failure: function(o) { } + } + }; + + Y.use('io-base', function(Y) { + Y.io('ajax.php', callback); }); return false; diff --git a/badges/criteria.php b/badges/criteria.php index 7844499e704..9bfd389539d 100644 --- a/badges/criteria.php +++ b/badges/criteria.php @@ -41,6 +41,9 @@ $context = $badge->get_context(); $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type)); if ($badge->type == BADGE_TYPE_COURSE) { + if (empty($CFG->badges_allowcoursebadges)) { + print_error('coursebadgesdisabled', 'badges'); + } require_login($badge->courseid); $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type, 'id' => $badge->courseid)); } diff --git a/badges/edit.php b/badges/edit.php index 9093040fe5e..1c915622031 100644 --- a/badges/edit.php +++ b/badges/edit.php @@ -44,6 +44,9 @@ $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type)); require_capability('moodle/badges:configuredetails', $context); if ($badge->type == BADGE_TYPE_COURSE) { + if (empty($CFG->badges_allowcoursebadges)) { + print_error('coursebadgesdisabled', 'badges'); + } require_login($badge->courseid); $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type, 'id' => $badge->courseid)); } diff --git a/badges/index.php b/badges/index.php index 56176fbff6f..8a304712908 100644 --- a/badges/index.php +++ b/badges/index.php @@ -56,6 +56,10 @@ if (empty($CFG->enablebadges)) { print_error('badgesdisabled', 'badges'); } +if (empty($CFG->badges_allowcoursebadges) && ($type == BADGE_TYPE_COURSE)) { + print_error('coursebadgesdisabled', 'badges'); +} + $err = ''; $urlparams = array('sort' => $sortby, 'dir' => $sorthow, 'page' => $page); diff --git a/badges/newbadge.php b/badges/newbadge.php index fa3c2c61cd8..413e56c1369 100644 --- a/badges/newbadge.php +++ b/badges/newbadge.php @@ -37,6 +37,10 @@ if (empty($CFG->enablebadges)) { print_error('badgesdisabled', 'badges'); } +if (empty($CFG->badges_allowcoursebadges) && ($type == BADGE_TYPE_COURSE)) { + print_error('coursebadgesdisabled', 'badges'); +} + $title = get_string('create', 'badges'); if (($type == BADGE_TYPE_COURSE) && ($course = $DB->get_record('course', array('id' => $courseid)))) { diff --git a/badges/overview.php b/badges/overview.php index b65855804cf..e2dec7fccd5 100644 --- a/badges/overview.php +++ b/badges/overview.php @@ -41,6 +41,9 @@ $context = $badge->get_context(); $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type)); if ($badge->type == BADGE_TYPE_COURSE) { + if (empty($CFG->badges_allowcoursebadges)) { + print_error('coursebadgesdisabled', 'badges'); + } require_login($badge->courseid); $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type, 'id' => $badge->courseid)); } diff --git a/badges/recipients.php b/badges/recipients.php index 8105863a808..539696b6ea7 100644 --- a/badges/recipients.php +++ b/badges/recipients.php @@ -56,6 +56,9 @@ $context = $badge->get_context(); $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type)); if ($badge->type == BADGE_TYPE_COURSE) { + if (empty($CFG->badges_allowcoursebadges)) { + print_error('coursebadgesdisabled', 'badges'); + } require_login($badge->courseid); $navurl = new moodle_url('/badges/index.php', array('type' => $badge->type, 'id' => $badge->courseid)); } diff --git a/badges/view.php b/badges/view.php index b4a5c2a3e7f..33f2b919849 100644 --- a/badges/view.php +++ b/badges/view.php @@ -39,6 +39,10 @@ if (empty($CFG->enablebadges)) { print_error('badgesdisabled', 'badges'); } +if (empty($CFG->badges_allowcoursebadges) && $courseid != 0) { + print_error('coursebadgesdisabled', 'badges'); +} + if (!in_array($sortby, array('name', 'dateissued'))) { $sortby = 'name'; } diff --git a/lang/en/badges.php b/lang/en/badges.php index 9d26764589a..551f7da2e03 100644 --- a/lang/en/badges.php +++ b/lang/en/badges.php @@ -131,6 +131,7 @@ $string['connected'] = 'Connected'; $string['contact'] = 'Contact'; $string['contact_help'] = 'An email address associated with the badge issuer.'; $string['copyof'] = 'Copy of {$a}'; +$string['coursebadgesdisabled'] = 'Course badges are not enabled on this site.'; $string['coursecompletion'] = 'Learners must complete this course. '; $string['coursebadges'] = 'Badges'; $string['create'] = 'New badge'; diff --git a/lib/navigationlib.php b/lib/navigationlib.php index fe4bceb7f95..35d45236b93 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -2498,7 +2498,7 @@ class global_navigation extends navigation_node { } //Badges - if (!empty($CFG->enablebadges) && has_capability('moodle/badges:viewbadges', $this->page->context)) { + if (!empty($CFG->enablebadges) && !empty($CFG->badges_allowcoursebadges) && has_capability('moodle/badges:viewbadges', $this->page->context)) { $url = new moodle_url($CFG->wwwroot . '/badges/view.php', array('type' => 1)); $coursenode->add(get_string('sitebadges', 'badges'), $url, navigation_node::TYPE_CUSTOM); }