|
23 | 23 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
24 | 24 | * @author Tung Thai <Tung.ThaiDuc@nashtechglobal.com>
|
25 | 25 | */
|
26 |
| -define('AJAX_SCRIPT', true); |
27 |
| -define('NO_MOODLE_COOKIES', true); // No need for a session here. |
28 | 26 |
|
29 | 27 | require_once(__DIR__ . '/../config.php');
|
30 |
| -require_once($CFG->libdir . '/badgeslib.php'); |
31 | 28 |
|
32 |
| -$id = required_param('id', PARAM_INT); |
| 29 | +$badgeid = required_param('id', PARAM_INT); |
33 | 30 | $action = optional_param('action', null, PARAM_INT); // Generates badge class if true.
|
34 |
| -$json = array(); |
35 |
| -$badge = new badge($id); |
36 |
| -if ($badge->status != BADGE_STATUS_INACTIVE) { |
37 |
| - if (is_null($action)) { |
38 |
| - // Get the content of badge class. |
39 |
| - if (empty($badge->courseid)) { |
40 |
| - $context = context_system::instance(); |
41 |
| - } else { |
42 |
| - $context = context_course::instance($badge->courseid); |
43 |
| - } |
44 |
| - $urlimage = moodle_url::make_pluginfile_url($context->id, 'badges', 'badgeimage', $badge->id, '/', 'f3')->out(false); |
45 | 31 |
|
46 |
| - $url = new moodle_url('/badges/badge_json.php', array('id' => $badge->id)); |
47 |
| - |
48 |
| - $json['name'] = $badge->name; |
49 |
| - $json['description'] = $badge->description; |
50 |
| - if ($badge->imageauthorname || |
51 |
| - $badge->imageauthoremail || |
52 |
| - $badge->imageauthorurl || |
53 |
| - $badge->imagecaption) { |
54 |
| - $urlimage = moodle_url::make_pluginfile_url($context->id, |
55 |
| - 'badges', 'badgeimage', $badge->id, '/', 'f3')->out(false); |
56 |
| - $json['image'] = array(); |
57 |
| - $json['image']['id'] = $urlimage; |
58 |
| - if ($badge->imageauthorname || $badge->imageauthoremail || $badge->imageauthorurl) { |
59 |
| - $authorimage = new moodle_url('/badges/image_author_json.php', array('id' => $badge->id)); |
60 |
| - $json['image']['author'] = $authorimage->out(false); |
61 |
| - } |
62 |
| - if ($badge->imagecaption) { |
63 |
| - $json['image']['caption'] = $badge->imagecaption; |
64 |
| - } |
65 |
| - } else { |
66 |
| - $json['image'] = $urlimage; |
67 |
| - } |
68 |
| - |
69 |
| - $params = ['id' => $badge->id]; |
70 |
| - $badgeurl = new moodle_url('/badges/badgeclass.php', $params); |
71 |
| - $json['criteria']['id'] = $badgeurl->out(false); |
72 |
| - $json['criteria']['narrative'] = $badge->markdown_badge_criteria(); |
73 |
| - $json['issuer'] = $badge->get_badge_issuer(); |
74 |
| - $json['@context'] = OPEN_BADGES_V2_CONTEXT; |
75 |
| - $json['id'] = $url->out(); |
76 |
| - $json['type'] = OPEN_BADGES_V2_TYPE_BADGE; |
77 |
| - if (!empty($badge->version)) { |
78 |
| - $json['version'] = $badge->version; |
79 |
| - } |
80 |
| - if (!empty($badge->language)) { |
81 |
| - $json['@language'] = $badge->language; |
82 |
| - } |
83 |
| - $badgetags = $badge->get_badge_tags(); |
84 |
| - if ($badgetags) { |
85 |
| - $json['tags'] = $badgetags; |
86 |
| - } |
87 |
| - |
88 |
| - $relatedbadges = $badge->get_related_badges(true); |
89 |
| - if (!empty($relatedbadges)) { |
90 |
| - foreach ($relatedbadges as $related) { |
91 |
| - $relatedurl = new moodle_url('/badges/badge_json.php', array('id' => $related->id)); |
92 |
| - $relateds[] = array('id' => $relatedurl->out(false), |
93 |
| - 'version' => $related->version, '@language' => $related->language); |
94 |
| - } |
95 |
| - $json['related'] = $relateds; |
96 |
| - } |
97 |
| - |
98 |
| - $endorsement = $badge->get_endorsement(); |
99 |
| - if (!empty($endorsement)) { |
100 |
| - $endorsementurl = new moodle_url('/badges/endorsement_json.php', array('id' => $badge->id)); |
101 |
| - $json['endorsement'] = $endorsementurl->out(false); |
102 |
| - } |
103 |
| - |
104 |
| - $alignments = $badge->get_alignments(); |
105 |
| - if (!empty($alignments)) { |
106 |
| - foreach ($alignments as $item) { |
107 |
| - $alignment = array('targetName' => $item->targetname, 'targetUrl' => $item->targeturl); |
108 |
| - if ($item->targetdescription) { |
109 |
| - $alignment['targetDescription'] = $item->targetdescription; |
110 |
| - } |
111 |
| - if ($item->targetframework) { |
112 |
| - $alignment['targetFramework'] = $item->targetframework; |
113 |
| - } |
114 |
| - if ($item->targetcode) { |
115 |
| - $alignment['targetCode'] = $item->targetcode; |
116 |
| - } |
117 |
| - $json['alignments'][] = $alignment; |
118 |
| - } |
119 |
| - } |
120 |
| - } else if ($action == 0) { |
121 |
| - // Get the content for issuer. |
122 |
| - $json = $badge->get_badge_issuer(); |
123 |
| - } |
124 |
| -} else { |
125 |
| - // The badge doen't exist or not accessible for the users. |
126 |
| - header("HTTP/1.0 410 Gone"); |
127 |
| - $badgeurl = new moodle_url('/badges/badge_json.php', array('id' => $id)); |
128 |
| - $json['id'] = $badgeurl->out(); |
129 |
| - $json['error'] = get_string('error:relatedbadgedoesntexist', 'badges'); |
| 32 | +if ($action == 0) { |
| 33 | + // Display only the Issuer. |
| 34 | + redirect(new moodle_url('/badges/json/issuer.php', ['id' => $badgeid])); |
130 | 35 | }
|
131 |
| -echo $OUTPUT->header(); |
132 |
| -echo json_encode($json); |
| 36 | + |
| 37 | +// Display the Badge. |
| 38 | +redirect(new moodle_url('/badges/json/badge.php', ['id' => $badgeid])); |
0 commit comments