Learnpath: Add extrafields in document creation form - refs BT#20639

pull/4691/head
Christian 3 years ago
parent df26e0ae95
commit 2e4e69192c
  1. 10
      main/lp/learnpath.class.php
  2. 36
      main/lp/lp_controller.php

@ -9300,13 +9300,11 @@ class learnpath
reset($arrLP);
}
if ('edit' === $action) {
if (true !== api_get_configuration_value('lp_item_prerequisite_dates')) {
$excludeExtraFields = array_merge($excludeExtraFields, ['start_date', 'end_date']);
}
$extraField = new ExtraField('lp_item');
$extraField->addElements($form, $id, $excludeExtraFields);
if (true !== api_get_configuration_value('lp_item_prerequisite_dates')) {
$excludeExtraFields = array_merge($excludeExtraFields, ['start_date', 'end_date']);
}
$extraField = new ExtraField('lp_item');
$extraField->addElements($form, $id, $excludeExtraFields);
if ($action !== 'move') {
$arrHide = [];

@ -615,6 +615,33 @@ switch ($action) {
$maxTimeAllowed = isset($_POST['maxTimeAllowed']) ? $_POST['maxTimeAllowed'] : '';
if ($_POST['type'] == TOOL_DOCUMENT) {
// form validations after submit.
$error = false;
$errMsg = '';
if (true === api_get_configuration_value('lp_item_prerequisite_dates')) {
if (!isset($_POST['extra_start_date'])) {
$_POST['extra_start_date'] = 0;
}
if (!isset($_POST['extra_end_date'])) {
$_POST['extra_end_date'] = 0;
}
$extraStartDate = $_POST['extra_start_date'];
$extraEndDate = $_POST['extra_end_date'];
if (!empty($extraStartDate) && !empty($extraEndDate)) {
$error = !(strtotime($extraEndDate) >= strtotime($extraStartDate));
}
if ($error) {
$errMsg = get_lang('StartDateMustBeBeforeTheEndDate');
}
}
if ($error) {
Display::addFlash(Display::return_message($errMsg, 'error'));
header('Location: '.api_request_uri());
exit;
}
if (isset($_POST['path']) && $_GET['edit'] != 'true') {
$document_id = $_POST['path'];
} else {
@ -629,7 +656,7 @@ switch ($action) {
}
}
$_SESSION['oLP']->add_item(
$lastItemId = $_SESSION['oLP']->add_item(
$parent,
$previous,
$type,
@ -638,6 +665,13 @@ switch ($action) {
$description,
$prerequisites
);
if (!empty($lastItemId)) {
$params = $_POST;
$params['item_id'] = $lastItemId;
$extraFieldValues = new ExtraFieldValue('lp_item');
$extraFieldValues->saveFieldValues($params, true);
}
} elseif ($_POST['type'] == TOOL_READOUT_TEXT) {
if (isset($_POST['path']) && $_GET['edit'] != 'true') {
$document_id = $_POST['path'];

Loading…
Cancel
Save