wernerkrauss / folderperpage
自动为每页创建文件夹的扩展
0.2.2
2016-03-09 09:59 UTC
Requires
This package is auto-updated.
Last update: 2024-08-29 04:45:16 UTC
README
创建每页或数据对象的文件夹的扩展
要求
对于与SS3兼容的版本,请参阅SS3分支
安装
手动下载和安装或使用composer。
确保将扩展添加到您想要装饰的类中。将以下内容添加到您的config.yml中,以将其添加到所有页面
Page: extensions: - NetWerkstatt\FolderPerPage\Extensions\RootFolder
配置
您可以排除几个页面类型。只需使用RootFolder.ignored_classes配置值。模块的config.yml中提供了一些默认值以供您开始使用
NetWerkstatt\FolderPerPage\Extensions\RootFolder: ignored_classes: - SilverStripe\CMS\Model\VirtualPage - SilverStripe\ErrorPage\ErrorPage create_folder_for_translations: false folder_root: 'Articles'
当然,每个装饰类都可以有自己的文件夹根,例如,“Articles”用于所有页面,“News”用于新闻数据对象。只需将folder_root配置添加到您的对象中。
更新您的表单
您可以使用$this->getRootFoldername()
来设置上传文件夹。
假设您有一个has_one关系"Avatar" => "Image",您可以将其添加到UploadField
function getCMSFields() { /*...*/ $pic = UploadField::create('Avatar', 'Your Avatar'); $fields->addFieldToTab('Root.Main', $pic); $pic->setFolderName($this->getRootFolderName()); /*...*/ }
待办事项
使其适用于其他数据对象单元测试- 添加自动更新所有UploadFields和BulkUploads以使用此文件夹的函数
- 添加对subsites模块的支持,例如,为每个子站点添加一个主根
- 更新/检查所有现有页面的任务
检查页面是否已移动- 是否应该自动移动rootfolder,或者通过开关?可能是非常大的树中的超时问题