wernerkrauss/folderperpage

自动为每页创建文件夹的扩展

安装: 485

依赖关系: 0

建议者: 2

安全: 0

星标: 2

关注者: 3

分支: 2

开放问题: 6

类型:silverstripe-vendormodule

0.2.2 2016-03-09 09:59 UTC

This package is auto-updated.

Last update: 2024-08-29 04:45:16 UTC


README

Build Status Scrutinizer Code Quality codecov.io helpfulrobot

创建每页或数据对象的文件夹的扩展

要求

对于与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,或者通过开关?可能是非常大的树中的超时问题