Skip to content

Commit 43d53a7

Browse files
committed
Add more prerequisite information if exists when loading an item
See BT#5776
1 parent 1790082 commit 43d53a7

File tree

3 files changed

+30
-39
lines changed

3 files changed

+30
-39
lines changed

main/inc/ajax/lp.ajax.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -291,10 +291,8 @@
291291
$lpItemId = isset($_GET['lp_item']) ? intval($_GET['lp_item']) : 0;
292292
if ($lp) {
293293
$position = $lp->isFirstOrLastItem($lpItemId);
294+
echo json_encode($position);
294295
}
295-
296-
echo json_encode($position);
297-
298296
break;
299297
case 'get_parent_names':
300298
$newItemId = isset($_GET['new_item']) ? intval($_GET['new_item']) : 0;
@@ -325,9 +323,9 @@
325323
echo '1';
326324
} else {
327325
if (!empty($lp->error)) {
328-
echo $lp->error;
326+
echo addslashes($lp->error);
329327
} else {
330-
echo get_lang('LearnpathPrereqNotCompleted');
328+
echo addslashes(get_lang('LearnpathPrereqNotCompleted'));
331329
}
332330
}
333331
$lp->error = '';

main/lp/blank.php

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,28 +23,21 @@
2323
if (isset($_GET['error'])) {
2424
switch ($_GET['error']) {
2525
case 'document_deleted':
26-
$message = Display::return_message(
27-
get_lang('DocumentHasBeenDeleted'),
28-
'error'
29-
);
26+
$message = Display::return_message(get_lang('DocumentHasBeenDeleted'), 'error');
3027
break;
3128
case 'prerequisites':
32-
$message = Display::return_message(
33-
get_lang('LearnpathPrereqNotCompleted'),
34-
'warning'
35-
);
29+
$prerequisiteMessage = isset($_GET['prerequisite_message']) ? $_GET['prerequisite_message'] : '';
30+
$message = Display::return_message(get_lang('LearnpathPrereqNotCompleted'), 'warning');
31+
if (!empty($prerequisiteMessage)) {
32+
$message = Display::return_message(Security::remove_XSS($prerequisiteMessage), 'warning');
33+
}
34+
3635
break;
3736
case 'document_not_found':
38-
$message = Display::return_message(
39-
get_lang('FileNotFound'),
40-
'warning'
41-
);
37+
$message = Display::return_message(get_lang('FileNotFound'), 'warning');
4238
break;
4339
case 'reached_one_attempt':
44-
$message = Display::return_message(
45-
get_lang('ReachedOneAttempt'),
46-
'warning'
47-
);
40+
$message = Display::return_message(get_lang('ReachedOneAttempt'), 'warning');
4841
break;
4942
case 'x_frames_options':
5043
$src = Session::read('x_frame_source');

main/lp/lp_content.php

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,63 +27,63 @@
2727
/** @var learnpath $learnPath */
2828
$learnPath = Session::read('oLP');
2929
$learnPath->error = '';
30-
$lp_type = $learnPath->get_type();
31-
$lp_item_id = $learnPath->get_current_item_id();
30+
$lpType = $learnPath->get_type();
31+
$lpItemId = $learnPath->get_current_item_id();
3232

3333
/**
3434
* Get a link to the corresponding document.
3535
*/
3636
$src = '';
3737
if ($debug > 0) {
3838
error_log('New lp - In lp_content.php - Looking for file url');
39-
error_log("lp_type $lp_type");
40-
error_log("lp_item_id $lp_item_id");
39+
error_log("lp_type $lpType");
40+
error_log("lp_item_id $lpItemId");
4141
}
4242

4343
$list = $learnPath->get_toc();
4444
$dir = false;
4545

4646
foreach ($list as $toc) {
47-
if ($toc['id'] == $lp_item_id && $toc['type'] == 'dir') {
47+
if ($toc['id'] == $lpItemId && $toc['type'] == 'dir') {
4848
$dir = true;
4949
}
5050
}
5151

5252
if ($dir) {
5353
$src = 'blank.php';
5454
} else {
55-
switch ($lp_type) {
55+
switch ($lpType) {
5656
case 1:
5757
$learnPath->stop_previous_item();
58-
$prereq_check = $learnPath->prerequisites_match($lp_item_id);
58+
$prerequisiteCheck = $learnPath->prerequisites_match($lpItemId);
5959

60-
if ($prereq_check === true) {
61-
$src = $learnPath->get_link('http', $lp_item_id);
60+
if ($prerequisiteCheck === true) {
61+
$src = $learnPath->get_link('http', $lpItemId);
6262
$learnPath->start_current_item(); // starts time counter manually if asset
6363
$src = $learnPath->fixBlockedLinks($src);
6464

6565
break;
6666
}
6767

68-
$src = 'blank.php?error=prerequisites';
68+
$src = 'blank.php?error=prerequisites&prerequisite_message='.$learnPath->error;
6969
break;
7070
case 2:
7171
$learnPath->stop_previous_item();
72-
$prereq_check = $learnPath->prerequisites_match($lp_item_id);
72+
$prerequisiteCheck = $learnPath->prerequisites_match($lpItemId);
7373

74-
if ($prereq_check === true) {
75-
$src = $learnPath->get_link('http', $lp_item_id);
74+
if ($prerequisiteCheck === true) {
75+
$src = $learnPath->get_link('http', $lpItemId);
7676
$learnPath->start_current_item(); // starts time counter manually if asset
7777
} else {
78-
$src = 'blank.php?error=prerequisites';
78+
$src = 'blank.php?error=prerequisites&prerequisite_message='.$learnPath->error;
7979
}
8080
break;
8181
case 3:
8282
// save old if asset
8383
$learnPath->stop_previous_item(); // save status manually if asset
84-
$prereq_check = $learnPath->prerequisites_match($lp_item_id);
85-
if ($prereq_check === true) {
86-
$src = $learnPath->get_link('http', $lp_item_id);
84+
$prerequisiteCheck = $learnPath->prerequisites_match($lpItemId);
85+
if ($prerequisiteCheck === true) {
86+
$src = $learnPath->get_link('http', $lpItemId);
8787
$learnPath->start_current_item(); // starts time counter manually if asset
8888
} else {
8989
$src = 'blank.php';
@@ -97,7 +97,7 @@
9797
if ($debug > 0) {
9898
error_log('New lp - In lp_content.php - File url is '.$src);
9999
}
100-
$learnPath->set_previous_item($lp_item_id);
100+
$learnPath->set_previous_item($lpItemId);
101101

102102
if (api_is_in_gradebook()) {
103103
$interbreadcrumb[] = [

0 commit comments

Comments
 (0)