Skip to content

Commit 3957b59

Browse files
authored
Merge pull request #4691 from christianbeeznest/FS-20639-3
Learnpath: Add extrafields in document creation form - refs BT#20639
2 parents df26e0a + 2e4e691 commit 3957b59

File tree

2 files changed

+39
-7
lines changed

2 files changed

+39
-7
lines changed

main/lp/learnpath.class.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9300,13 +9300,11 @@ public function display_document_form(
93009300
reset($arrLP);
93019301
}
93029302

9303-
if ('edit' === $action) {
9304-
if (true !== api_get_configuration_value('lp_item_prerequisite_dates')) {
9305-
$excludeExtraFields = array_merge($excludeExtraFields, ['start_date', 'end_date']);
9306-
}
9307-
$extraField = new ExtraField('lp_item');
9308-
$extraField->addElements($form, $id, $excludeExtraFields);
9303+
if (true !== api_get_configuration_value('lp_item_prerequisite_dates')) {
9304+
$excludeExtraFields = array_merge($excludeExtraFields, ['start_date', 'end_date']);
93099305
}
9306+
$extraField = new ExtraField('lp_item');
9307+
$extraField->addElements($form, $id, $excludeExtraFields);
93109308

93119309
if ($action !== 'move') {
93129310
$arrHide = [];

main/lp/lp_controller.php

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,33 @@ function(reponse) {
615615
$maxTimeAllowed = isset($_POST['maxTimeAllowed']) ? $_POST['maxTimeAllowed'] : '';
616616

617617
if ($_POST['type'] == TOOL_DOCUMENT) {
618+
619+
// form validations after submit.
620+
$error = false;
621+
$errMsg = '';
622+
if (true === api_get_configuration_value('lp_item_prerequisite_dates')) {
623+
if (!isset($_POST['extra_start_date'])) {
624+
$_POST['extra_start_date'] = 0;
625+
}
626+
if (!isset($_POST['extra_end_date'])) {
627+
$_POST['extra_end_date'] = 0;
628+
}
629+
$extraStartDate = $_POST['extra_start_date'];
630+
$extraEndDate = $_POST['extra_end_date'];
631+
if (!empty($extraStartDate) && !empty($extraEndDate)) {
632+
$error = !(strtotime($extraEndDate) >= strtotime($extraStartDate));
633+
}
634+
if ($error) {
635+
$errMsg = get_lang('StartDateMustBeBeforeTheEndDate');
636+
}
637+
}
638+
639+
if ($error) {
640+
Display::addFlash(Display::return_message($errMsg, 'error'));
641+
header('Location: '.api_request_uri());
642+
exit;
643+
}
644+
618645
if (isset($_POST['path']) && $_GET['edit'] != 'true') {
619646
$document_id = $_POST['path'];
620647
} else {
@@ -629,7 +656,7 @@ function(reponse) {
629656
}
630657
}
631658

632-
$_SESSION['oLP']->add_item(
659+
$lastItemId = $_SESSION['oLP']->add_item(
633660
$parent,
634661
$previous,
635662
$type,
@@ -638,6 +665,13 @@ function(reponse) {
638665
$description,
639666
$prerequisites
640667
);
668+
669+
if (!empty($lastItemId)) {
670+
$params = $_POST;
671+
$params['item_id'] = $lastItemId;
672+
$extraFieldValues = new ExtraFieldValue('lp_item');
673+
$extraFieldValues->saveFieldValues($params, true);
674+
}
641675
} elseif ($_POST['type'] == TOOL_READOUT_TEXT) {
642676
if (isset($_POST['path']) && $_GET['edit'] != 'true') {
643677
$document_id = $_POST['path'];

0 commit comments

Comments
 (0)