} $_POST['CHECKLIST_ITEMS'] = $items; // too bad } $arResult["ERRORS"] = $template->GetErrors(); if (sizeof($arResult["ERRORS"]) == 0) { $arUploadedFils = unserialize($arFields["FILES"]); if (is_array($arUploadedFils) && count($arUploadedFils)) { $userId = (int) $USER->GetID(); foreach ($arUploadedFils as $fileId) { CTaskFiles::removeTemporaryFile($userId, (int) $fileId); } } // add\update check list items here try { \Bitrix\Tasks\Template\CheckListItemTable::updateForTemplate($templateID, $_POST['CHECKLIST_ITEMS']); } catch (\Bitrix\Main\ArgumentException $e) { } if (strlen($_POST["save"]) > 0) { if ((string) $arParams['PATH_TO_TEMPLATES_TEMPLATE'] !== '' && intval($templateID)) { $redirectPath = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_TEMPLATES_TEMPLATE"], array('template_id' => $templateID, 'action' => 'view')); } else { $redirectPath = $arResult["RETURN_URL"]; } } else { $redirectPath = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_TASKS_TEMPLATES"], array()); } LocalRedirect($redirectPath); } else { $arData = $_POST; // specially for USER FIELDS
foreach ($_POST['CHECKLIST_ITEM_ID'] as $clId) { if ((string) $_POST['CHECKLIST_ITEM_TITLE'][$clId]) { $id = (string) $clId === (string) intval($clId) ? intval($clId) : false; $data = array('TITLE' => $_POST['CHECKLIST_ITEM_TITLE'][$clId], 'CHECKED' => $_POST['CHECKLIST_ITEM_IS_CHECKED'][$clId] == 'Y', 'SORT' => $sort++); if (intval($id)) { $data['ID'] = $id; $items[$id] = $data; } else { $items[] = $data; } } } if (!empty($items)) { // add\update check list items here try { \Bitrix\Tasks\Template\CheckListItemTable::updateForTemplate($templateId, $items); } catch (\Bitrix\Main\SystemException $e) { } } } } } $arFields["MULTITASK"] = $arFields["REPLICATE"] = "N"; $arFields["PARENT_ID"] = $taskID; if (!is_array($arFields["ACCOMPLICES"])) { $arFields["ACCOMPLICES"] = array(); } // Save TASK_CONTROL and ALLOW_TIME_TRACKING checkboxes states $arPopupOptions = CTasksTools::getPopupOptions(); if ($arPopupOptions['time_tracking'] !== $arFields['ALLOW_TIME_TRACKING'] || $arPopupOptions['task_control'] !== $arFields['TASK_CONTROL']) { $arPopupOptions['task_control'] = $arFields['TASK_CONTROL'];