- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskfiles.php
- Класс: CTaskFiles
- Вызов: CTaskFiles::DeleteByTaskID
static function DeleteByTaskID($TASK_ID, $SAVE_FILES = array())
{
global $DB;
$rsTaskFiles = CTaskFiles::GetList(array(), array("TASK_ID" => $TASK_ID));
$sqrWhereAdditional = '';
if (is_array($SAVE_FILES) && count($SAVE_FILES))
$sqrWhereAdditional .= 'AND FILE_ID NOT IN (' . implode(',', array_map('intval', $SAVE_FILES)) . ')';
$TASK_ID = intval($TASK_ID);
$strSql = "DELETE FROM b_tasks_file WHERE TASK_ID = " . $TASK_ID . ' ' . $sqrWhereAdditional;
$result = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
if ($result)
{
$arFilesToDelete = array();
while ($arTaskFiles = $rsTaskFiles->Fetch())
{
// Skip files, that attached to some existing tasks
$rsFiles = CTaskFiles::GetList(array(), array("FILE_ID" => $arTaskFiles["FILE_ID"]));
if (!$arFile = $rsFiles->Fetch())
{
if (!in_array($arTaskFiles["FILE_ID"], $SAVE_FILES))
{
$arFilesToDelete[] = $arTaskFiles["FILE_ID"];
}
}
}
foreach ($arFilesToDelete as $file)
{
CFile::Delete($file);
}
}
return $result;
}