...Человеческий поиск в разработке...
- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/control/template.php
- Класс: BitrixTasksControlTemplate
- Вызов: Template::fullDelete
private function fullDelete(): bool { $template = $this->getTemplateData(); // delete syslog records SystemLog::deleteByEntity($this->templateId, 1); // delete files if ($template["FILES"]) { $files = unserialize($template["FILES"], ['allowed_classes' => false]); if (is_array($files)) { $filesToDelete = array(); foreach ($files as $file) { $rsFile = CTaskFiles::GetList([], ["FILE_ID" => $file]); if (!$arFile = $rsFile->Fetch()) { $filesToDelete[] = $file; } } foreach ($filesToDelete as $file) { CFile::Delete($file); } } } // delete checklist TemplateCheckListFacade::deleteByEntityIdOnLowLevel($this->templateId); // delete access rights BitrixTasksItemAccessTaskTemplate::revokeAll($this->templateId, ['CHECK_RIGHTS' => false]); TemplateMemberTable::deleteList([ '=TEMPLATE_ID' => $this->templateId, ]); TemplateTagTable::deleteList([ '=TEMPLATE_ID' => $this->templateId, ]); TemplateDependenceTable::deleteList([ '=TEMPLATE_ID' => $this->templateId, ]); ScenarioTable::delete($this->templateId); // delete sub templates if ($this->deleteSubTemplates) { $subTemplatesBdResult = DependenceTable::getSubTree($this->templateId, ['select' => ['ID' => 'TEMPLATE_ID']], ['INCLUDE_SELF' => false]); while ($subTemplateItem = $subTemplatesBdResult->fetch()) { $manager = new self($this->userId); if ($this->unsafeDelete) { $manager->withUnsafeDelete(); } if ($this->deleteSubTemplates) { $manager->withDeleteSubTemplates(); } $manager->delete((int)$subTemplateItem['ID']); } try { DependenceTable::deleteSubtree($this->templateId); } catch (TargetNodeNotFoundException $e) { // had no children, actually don't care } } // delete user fields $this->ufManager->Delete("TASKS_TASK_TEMPLATE", $this->templateId); $res = TemplateTable::delete($this->templateId); return $res->isSuccess(); }