public static function onDelete(Event $event) { $row = static::getRowById($event->getParameter('id')); if (!$row) { return; } global $USER; //todo unshare. Fork invite. Hack //not fork if owner by invite unshare user. if (!$row['IS_DELETED'] && $row['INVITE_USER_ID'] != $row['USER_ID'] && $row['USER_ID'] != $USER->getId()) { $scalarFields = array(); foreach (static::getEntity()->getFields() as $fieldName => $field) { if ($field instanceof Entity\ScalarField) { $scalarFields[$fieldName] = true; } } unset($field); $forkRow = array_intersect_key($row, $scalarFields); unset($forkRow['ID']); $forkRow['CAN_FORWARD'] = (bool) $forkRow['CAN_FORWARD']; $forkRow['CAN_EDIT'] = (bool) $forkRow['CAN_EDIT']; $forkRow['IS_DELETED'] = true; $forkRow['IS_APPROVED'] = false; \Bitrix\Webdav\FolderInviteTable::add($forkRow); } \CWebDavSymlinkHelper::sendNotifyUnshare($row); self::deleteSymlinkSections($row); }