示例#1
0
 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);
 }