|
27 | 27 | require_once(__DIR__ . '/../config.php');
|
28 | 28 | require_once($CFG->libdir . '/badgeslib.php');
|
29 | 29 |
|
| 30 | +use core_badges\local\backpack\ob\api_base; |
| 31 | + |
30 | 32 | require_login();
|
31 | 33 |
|
32 | 34 | if (empty($CFG->enablebadges)) {
|
|
55 | 57 |
|
56 | 58 | if ($disconnect && $backpack) {
|
57 | 59 | require_sesskey();
|
| 60 | + |
58 | 61 | $sitebackpack = badges_get_user_backpack();
|
59 |
| - if ($sitebackpack->apiversion == OPEN_BADGES_V2P1) { |
60 |
| - $bp = new \core_badges\backpack_api2p1($sitebackpack); |
61 |
| - $bp->disconnect_backpack($backpack); |
62 |
| - redirect(new moodle_url('/badges/mybackpack.php'), get_string('backpackdisconnected', 'badges'), null, |
63 |
| - \core\output\notification::NOTIFY_SUCCESS); |
64 |
| - } else { |
65 |
| - // If backpack is connected, need to select collections. |
66 |
| - $bp = new \core_badges\backpack_api($sitebackpack, $backpack); |
67 |
| - $bp->disconnect_backpack($USER->id, $backpack->id); |
68 |
| - redirect(new moodle_url('/badges/mybackpack.php')); |
69 |
| - } |
| 62 | + $bp = api_base::create_from_externalbackpack($sitebackpack); |
| 63 | + $bp->disconnect_backpack(); |
| 64 | + redirect( |
| 65 | + new moodle_url('/badges/mybackpack.php'), |
| 66 | + get_string('backpackdisconnected', 'badges'), |
| 67 | + null, |
| 68 | + \core\output\notification::NOTIFY_SUCCESS, |
| 69 | + ); |
70 | 70 | }
|
71 | 71 | $warning = '';
|
72 | 72 | if ($backpack) {
|
73 | 73 |
|
74 | 74 | $sitebackpack = badges_get_user_backpack();
|
75 | 75 |
|
| 76 | + $params['email'] = $backpack->email; |
| 77 | + $params['backpackweburl'] = $sitebackpack->backpackweburl; |
| 78 | + $params['selected'] = ''; |
| 79 | + |
76 | 80 | // If backpack is connected, need to select collections.
|
77 |
| - $bp = new \core_badges\backpack_api($sitebackpack, $backpack); |
78 |
| - $request = $bp->get_collections(); |
79 |
| - $groups = $request; |
80 |
| - if (isset($request->groups)) { |
81 |
| - $groups = $request->groups; |
82 |
| - } |
83 |
| - if (empty($groups)) { |
| 81 | + if ($sitebackpack->apiversion == OPEN_BADGES_V2P1) { |
| 82 | + // TODO: Implement the funcionality for displaying external badges in profile for 2.1. |
| 83 | + // $bp = new \core_badges\backpack_api2p1(externalbackpack: $sitebackpack); |
| 84 | + // $groups = $bp->get_assertions(); |
| 85 | + |
84 | 86 | $err = get_string('error:nogroupssummary', 'badges');
|
85 | 87 | $err .= get_string('error:nogroupslink', 'badges', $sitebackpack->backpackweburl);
|
86 | 88 | $params['nogroups'] = $err;
|
| 89 | + |
| 90 | + $form = new \core_badges\form\collections(new moodle_url('/badges/mybackpack.php'), $params); |
87 | 91 | } else {
|
88 |
| - $params['groups'] = $groups; |
89 |
| - } |
90 |
| - $params['email'] = $backpack->email; |
91 |
| - $params['selected'] = $bp->get_collection_record($backpack->id); |
92 |
| - $params['backpackweburl'] = $sitebackpack->backpackweburl; |
93 |
| - $form = new \core_badges\form\collections(new moodle_url('/badges/mybackpack.php'), $params); |
| 92 | + $bp = api_base::create_from_externalbackpack($sitebackpack); |
| 93 | + $request = $bp->get_collections(); |
| 94 | + $groups = $request; |
| 95 | + if (isset($request->groups)) { |
| 96 | + $groups = $request->groups; |
| 97 | + } |
94 | 98 |
|
95 |
| - if ($form->is_cancelled()) { |
96 |
| - redirect(new moodle_url('/badges/mybadges.php')); |
97 |
| - } else if ($data = $form->get_data()) { |
98 |
| - if (empty($data->group)) { |
99 |
| - redirect(new moodle_url('/badges/mybadges.php')); |
| 99 | + if (empty($groups)) { |
| 100 | + $err = get_string('error:nogroupssummary', 'badges'); |
| 101 | + $err .= get_string('error:nogroupslink', 'badges', $sitebackpack->backpackweburl); |
| 102 | + $params['nogroups'] = $err; |
100 | 103 | } else {
|
101 |
| - $groups = array_filter($data->group); |
| 104 | + $params['groups'] = $groups; |
| 105 | + } |
| 106 | + $params['selected'] = $bp->get_collection_record($backpack->id); |
| 107 | + $form = new \core_badges\form\collections(new moodle_url('/badges/mybackpack.php'), $params); |
| 108 | + |
| 109 | + if ($form->is_cancelled()) { |
| 110 | + redirect(new moodle_url('/badges/mybadges.php')); |
| 111 | + } else if ($data = $form->get_data()) { |
| 112 | + if (empty($data->group)) { |
| 113 | + redirect(new moodle_url('/badges/mybadges.php')); |
| 114 | + } else { |
| 115 | + $groups = array_filter($data->group); |
| 116 | + } |
| 117 | + $bp->set_backpack_collections($backpack->id, $groups); |
| 118 | + redirect(new moodle_url('/badges/mybadges.php')); |
102 | 119 | }
|
103 |
| - $bp->set_backpack_collections($backpack->id, $groups); |
104 |
| - redirect(new moodle_url('/badges/mybadges.php')); |
105 | 120 | }
|
106 | 121 | } else {
|
107 | 122 | // If backpack is not connected, need to connect first.
|
|
0 commit comments