// Skip files, that attached to some existing tasks $rsFiles = CTaskFiles::GetList(array(), array('FILE_ID' => $file)); // There is no tasks with this file, so it can be removed if (!($arFile = $rsFiles->Fetch())) { $arFilesToUnlink[] = $file; } } } foreach ($arFilesToUnlink as $file) { CFile::Delete($file); } } $result = $template->Update($arParams["TEMPLATE_ID"], $arFields, array('CHECK_RIGHTS_ON_FILES' => true, 'USER_ID' => (int) $USER->getId())); $templateID = $arParams["TEMPLATE_ID"]; } else { $templateID = $result = $template->Add($arFields, array('CHECK_RIGHTS_ON_FILES' => true, 'USER_ID' => (int) $USER->getId())); } // format check list items if (is_array($_POST['CHECKLIST_ITEM_ID'])) { $sort = 0; $items = array(); 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('TEMPLATE_ID' => $templateID, '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 ($_POST["ADD_TO_TIMEMAN"] == "Y") { CTaskPlannerMaintance::plannerActions(array('add' => array($taskID))); } if ($arFields["REPLICATE"] == "Y") { unset($arTemplateFields["DEADLINE"], $arTemplateFields["START_DATE_PLAN"], $arTemplateFields["END_DATE_PLAN"]); $arTemplateFields["TASK_ID"] = $taskID; $arTemplateFields["ACCOMPLICES"] = sizeof($arTemplateFields["ACCOMPLICES"]) ? serialize($arTemplateFields["ACCOMPLICES"]) : false; $arTemplateFields["AUDITORS"] = sizeof($arTemplateFields["AUDITORS"]) ? serialize($arTemplateFields["AUDITORS"]) : false; $arTemplateFields["TAGS"] = strlen(trim($arTemplateFields["TAGS"])) > 0 ? serialize(explode(",", $arTemplateFields["TAGS"])) : false; $arTemplateFields["FILES"] = sizeof($arTemplateFields["FILES"]) ? serialize($arTemplateFields["FILES"]) : false; $arTemplateFields["DEPENDS_ON"] = sizeof($arTemplateFields["DEPENDS_ON"]) ? serialize($arTemplateFields["DEPENDS_ON"]) : false; $arTemplateFields["REPLICATE_PARAMS"] = serialize($arTemplateFields["REPLICATE_PARAMS"]); $taskTemplate = new CTaskTemplates(); $templateId = $taskTemplate->Add($arTemplateFields, array('CHECK_RIGHTS_ON_FILES' => 'Y', 'USER_ID' => $USER->getId())); if (intval($templateId)) { // checklist if (is_array($_POST['CHECKLIST_ITEM_ID'])) { $sort = 0; $items = array(); 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; }