KickAssets::createFileJSON PHP Method

createFileJSON() public method

Given a File object, create an array of its properties and values ready to be transformed to JSON
public createFileJSON ( File $file, Folder $folder = null ) : array
$file File
$folder Folder
return array
    public function createFileJSON(File $file, $folder = null)
    {
        $isImage = $file instanceof Image;
        $w = $isImage ? self::IMAGE_WIDTH : self::ICON_SIZE;
        $h = $isImage ? self::IMAGE_HEIGHT : self::ICON_SIZE;
        $folder = $folder ?: $file->Parent();
        return array('id' => $file->ID, 'parentID' => $file->ParentID, 'title' => $file->Title ? $file->Title : basename($file->Filename), 'filename' => basename($file->Filename), 'path' => $file->Filename, 'filesize' => $file->getAbsoluteSize(), 'folderName' => $folder->Filename, 'type' => $isImage ? 'image' : 'file', 'extension' => $file->getExtension(), 'created' => $file->Created, 'updated' => $file->LastEdited, 'iconURL' => $file->getPreviewThumbnail($w, $h)->URL, 'canEdit' => $file->canEdit(), 'canCreate' => $file->canCreate(), 'canDelete' => $file->canDelete());
    }

Usage Example

 /**
  * Helper method for generating an HTTPResponse based on given JSON
  * 
  * @param array $json
  */
 protected function JSONResponse($json = null)
 {
     if (!$json) {
         $json = $this->file instanceof Folder ? $this->parent->createFolderJSON($this->file) : $this->parent->createFileJSON($this->file);
     }
     return (new SS_HTTPResponse(Convert::array2json($json)))->addHeader('Content-Type', 'application/json');
 }