function Delete($ID) { global $DB, $USER_FIELD_MANAGER; $ID = intval($ID); if ($ID > 0) { $rsTemplate = CTaskTemplates::GetByID($ID); if ($arTemplate = $rsTemplate->Fetch()) { // Remove all agents for this template /** @noinspection PhpDynamicAsStaticMethodCallInspection */ CAgent::RemoveAgent('CTasks::RepeatTaskByTemplateId(' . $ID . ');', 'tasks'); /** @noinspection PhpDynamicAsStaticMethodCallInspection */ CAgent::RemoveAgent('CTasks::RepeatTaskByTemplateId(' . $ID . ', 0);', 'tasks'); /** @noinspection PhpDynamicAsStaticMethodCallInspection */ CAgent::RemoveAgent('CTasks::RepeatTaskByTemplateId(' . $ID . ', 1);', 'tasks'); if ($arTemplate["FILES"]) { $arFiles = unserialize($arTemplate["FILES"]); if (is_array($arFiles)) { $arFilesToDelete = array(); foreach ($arFiles as $file) { $rsFile = CTaskFiles::GetList(array(), array("FILE_ID" => $file)); if (!($arFile = $rsFile->Fetch())) { $arFilesToDelete[] = $file; } } foreach ($arFilesToDelete as $file) { CFile::Delete($file); } } } $dbConnection = \Bitrix\Main\HttpApplication::getConnection(); $strSql = "DELETE FROM b_tasks_template WHERE ID = " . $ID; if ($DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__)) { $USER_FIELD_MANAGER->Delete("TASKS_TASK_TEMPLATE", $ID); // drop children (sub-templates) $dbConnection->query("delete from b_tasks_template where ID in (" . Template\DependencyTable::getSubTreeSql($ID) . ")"); // drop tree records for this templates and it`s children try { Template\DependencyTable::dropLinkL($ID); } catch (\Bitrix\Tasks\DB\Tree\TargetNodeNotFoundException $e) { } return true; } } } return false; }
return $arChecklistItems; } else { throw new \Bitrix\Main\SystemException(); } $arResult['BLOCKS'] = array_intersect($arWhiteList, $arParams['BLOCKS']); if (isset($arParams['TASK_ID']) && isset($arParams['LOAD_TASK_DATA']) && $arParams['LOAD_TASK_DATA'] === 'Y') { $oTask = CTaskItem::getInstance($arParams['TASK_ID'], $arResult['LOGGED_IN_USER']); $arResult['ALLOWED_ACTIONS'] = $oTask->getAllowedActions($asStrings = true); $arResult['TASK'] = $oTask->getData(); $arResult['TASK']['META:ALLOWED_ACTIONS_CODES'] = $oTask->getAllowedTaskActions(); $arResult['TASK']['META:ALLOWED_ACTIONS'] = $arResult['ALLOWED_ACTIONS']; $arResult['TASK']['META:IN_DAY_PLAN'] = 'N'; $arResult['TASK']['META:CAN_ADD_TO_DAY_PLAN'] = 'N'; // Was task created from template? if ($arResult['TASK']['FORKED_BY_TEMPLATE_ID']) { $rsTemplate = CTaskTemplates::GetByID($arResult['TASK']['FORKED_BY_TEMPLATE_ID']); if ($arTemplate = $rsTemplate->Fetch()) { $arTemplate['REPLICATE_PARAMS'] = unserialize($arTemplate['REPLICATE_PARAMS']); $arResult['TASK']['FORKED_BY_TEMPLATE'] = $arTemplate; } } if (($arResult['TASK']["RESPONSIBLE_ID"] == $arResult['LOGGED_IN_USER'] || in_array($arResult['LOGGED_IN_USER'], $arResult['TASK']['ACCOMPLICES'])) && CModule::IncludeModule("timeman") && (!CModule::IncludeModule('extranet') || !CExtranet::IsExtranetSite())) { $arResult['TASK']['META:CAN_ADD_TO_DAY_PLAN'] = 'Y'; $arTasksInPlan = CTaskPlannerMaintance::getCurrentTasksList(); // If in day plan already if (is_array($arTasksInPlan) && in_array($arResult['TASK']["ID"], $arTasksInPlan)) { $arResult['TASK']['META:IN_DAY_PLAN'] = 'Y'; $arResult['TASK']['META:CAN_ADD_TO_DAY_PLAN'] = 'N'; } } }
<?php define('STOP_STATISTICS', true); define('NO_AGENT_CHECK', true); define('DisableEventsCheck', true); define('BX_SECURITY_SHOW_MESSAGE', true); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; CUtil::JSPostUnescape(); CModule::IncludeModule('tasks'); __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__)); __IncludeLang(dirname(__FILE__) . '/templates/.default/lang/' . LANGUAGE_ID . '/template.php'); if (check_bitrix_sessid()) { if (intval($_POST["id"]) > 0) { $rsTemplate = CTaskTemplates::GetByID((int) $_POST["id"], array('USER_ID' => $USER->getId())); if ($arTemplate = $rsTemplate->Fetch()) { if ($_POST["mode"] == "delete") { $template = new CTaskTemplates(); $rc = $template->Delete(intval($_POST["id"])); if ($rc === false) { $strError = 'Error'; if ($ex = $APPLICATION->GetException()) { $strError = $ex->GetString(); } if ($_POST["type"] == "json") { echo "['strError' : '" . CUtil::JSEscape(htmlspecialcharsbx($strError)) . "']"; } else { echo htmlspecialcharsbx($strError); } } } elseif ($_POST["mode"] == "load") { $arPaths = array('PATH_TO_TASKS_TASK' => null, 'PATH_TO_USER_PROFILE' => null, 'PATH_TO_USER_TASKS_TASK' => null, 'PATH_TO_TEMPLATES_TEMPLATE' => null);
$arData["REMINDERS"][] = array("date" => $arReminder["REMIND_DATE"], "type" => $arReminder["TYPE"], "transport" => $arReminder["TRANSPORT"]); } // checklist items $arData['CHECKLIST_ITEMS'] = array(); list($arChecklistItems, $arMetaData) = CTaskCheckListItem::fetchList($oTask, array('SORT_INDEX' => 'ASC')); unset($arMetaData); foreach ($arChecklistItems as $oChecklistItem) { $checklistItemId = $oChecklistItem->getId(); $arData['CHECKLIST_ITEMS'][$checklistItemId] = $oChecklistItem->getData(); $arData['CHECKLIST_ITEMS'][$checklistItemId]['META:CAN_MODIFY'] = $oChecklistItem->isActionAllowed(CTaskCheckListItem::ACTION_MODIFY); $arData['CHECKLIST_ITEMS'][$checklistItemId]['META:CAN_REMOVE'] = $oChecklistItem->isActionAllowed(CTaskCheckListItem::ACTION_REMOVE); $arData['CHECKLIST_ITEMS'][$checklistItemId]['META:CAN_TOGGLE'] = $oChecklistItem->isActionAllowed(CTaskCheckListItem::ACTION_TOGGLE); } } else { if (intval($_GET["TEMPLATE"]) > 0) { $rsTemplate = CTaskTemplates::GetByID(intval($_GET["TEMPLATE"])); if ($arTemplate = $rsTemplate->GetNext()) { if ($arTemplate["CREATED_BY"] == $loggedInUserId) { if (isset($arTemplate["~DESCRIPTION_IN_BBCODE"])) { $arTemplate["DESCRIPTION_IN_BBCODE"] = $arTemplate["~DESCRIPTION_IN_BBCODE"]; } $arTemplate["ACCOMPLICES"] = $arTemplate["~ACCOMPLICES"] ? unserialize($arTemplate["~ACCOMPLICES"]) : array(); $arTemplate["AUDITORS"] = $arTemplate["~AUDITORS"] ? unserialize($arTemplate["~AUDITORS"]) : array(); $arTemplate["RESPONSIBLES"] = $arTemplate["~RESPONSIBLES"] ? unserialize($arTemplate["~RESPONSIBLES"]) : array(); $arTemplate["FILES"] = $arTemplate["~FILES"] ? unserialize($arTemplate["~FILES"]) : array(); $arTemplate["TAGS"] = $arTemplate["~TAGS"] = $arTemplate["~TAGS"] ? unserialize($arTemplate["~TAGS"]) : ""; $arTemplate["DEPENDS_ON"] = $arTemplate["~DEPENDS_ON"] ? unserialize($arTemplate["~DEPENDS_ON"]) : array(); $arTemplate["DESCRIPTION"] = $arTemplate["~DESCRIPTION"]; $arTemplate["CREATED_BY_NAME"] = $arTemplate["~CREATED_BY_NAME"]; $arTemplate["CREATED_BY_LAST_NAME"] = $arTemplate["~CREATED_BY_LAST_NAME"]; $arTemplate["CREATED_BY_SECOND_NAME"] = $arTemplate["~CREATED_BY_SECOND_NAME"];