KickAssets::handleMove PHP Метод

handleMove() публичный Метод

Moves a list of files ('ids') to a new folder ('newFolder' named file path or ID) If newFolder is a string, the folder will be created if it doesn't exist.
public handleMove ( SS_HTTPRequest $r ) : SS_HTTPResponse
$r SS_HTTPRequest
Результат SS_HTTPResponse
    public function handleMove(SS_HTTPRequest $r)
    {
        parse_str($r->getBody(), $vars);
        if (!isset($vars['ids'])) {
            return $this->httpError(400, 'No ids provided');
        }
        if (!isset($vars['newFolder'])) {
            return $this->httpError(400, 'No new folder provided');
        }
        if (is_numeric($vars['newFolder'])) {
            $folderID = $vars['newFolder'];
        } else {
            if (!empty($vars['newFolder'])) {
                if (!Injector::inst()->get('folder')->canCreate()) {
                    return $this->httpError(403, 'Cannot create folder: ' . $vars['newFolder']);
                }
                $folderID = Folder::find_or_make(self::remove_assets_dir($vars['newFolder']))->ID;
            }
        }
        $files = File::get()->byIDs(explode(',', $vars['ids']));
        foreach ($files as $file) {
            if (!$file->canEdit()) {
                return $this->httpError(403, 'Cannot edit file: ' . $file->Filename);
            }
            $file->ParentID = $folderID;
            $file->write();
        }
        return new SS_HTTPResponse('OK', 200);
    }