- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/folder.php
- Класс: BitrixDiskFolder
- Вызов: Folder::deleteNonRecursive
protected function deleteNonRecursive($deletedBy)
{
foreach($this->getSharingsAsReal() as $sharing)
{
$sharing->delete($deletedBy);
}
//with status unreplied, declined (not approved)
$success = SharingTable::deleteByFilter(array(
'REAL_OBJECT_ID' => $this->id,
));
if(!$success)
{
return false;
}
SimpleRightTable::deleteBatch(array('OBJECT_ID' => $this->id));
$success = RightTable::deleteByFilter(array(
'OBJECT_ID' => $this->id,
));
if(!$success)
{
return false;
}
Driver::getInstance()->getIndexManager()->dropIndex($this);
Driver::getInstance()->getDeletedLogManager()->mark($this, $deletedBy);
$resultDelete = FolderTable::delete($this->id);
if(!$resultDelete->isSuccess())
{
return false;
}
if(!$this->isLink())
{
//todo potential - very hard operation.
foreach(Folder::getModelList(array('filter' => array('REAL_OBJECT_ID' => $this->id))) as $link)
{
$link->deleteTree($deletedBy);
}
}
$event = new Event(Driver::INTERNAL_MODULE_ID, "onAfterDeleteFolder", array($this->getId(), $deletedBy));
$event->send();
return true;
}