/** * Transforms an AssetFolderModel into a source info array. * * @param AssetFolderModel $folder * @param bool $includeNestedFolders * * @return array */ private function _assembleSourceInfoForFolder(AssetFolderModel $folder, $includeNestedFolders = true) { $source = array('label' => $folder->parentId ? $folder->name : Craft::t($folder->name), 'hasThumbs' => true, 'criteria' => array('folderId' => $folder->id), 'data' => array('upload' => is_null($folder->sourceId) ? true : craft()->assets->canUserPerformAction($folder->id, 'uploadToAssetSource'))); if ($includeNestedFolders) { $source['nested'] = $this->_assembleSourceList($folder->getChildren(), true); } return $source; }