webfox/silverstripe-dropzone-sortable

此包已被弃用,不再维护。未建议替代包。

一个 Silverstripe 扩展,用于向 FileAttachmentField 添加拖放排序功能

安装: 860

依赖者: 0

建议者: 0

安全性: 0

星星: 2

关注者: 4

分支: 3

开放问题: 4

类型:silverstripe-module

v1.0.2 2016-01-25 00:21 UTC

This package is auto-updated.

Last update: 2022-10-14 02:51:39 UTC


README

目前正在等待一个拉取请求合并 unclecheese/silverstripe-dropzone#34 才能正常使用。
在此合并之前,如果您想使用此模块,请使用此拉取请求引用的分支。

#Silverstripe Dropzone Sortable# 此插件允许通过 FileAttachmentField 从 dropzone 包进行拖放排序。

安装说明

Composer

运行以下命令将此模块作为需求添加,并通过 composer 安装。

composer require "webfox/silverstripe-dropzone-sortable"

设置

设置关系

我们需要在 SortOrder 列表上为 FileAttachmentField 连接的 Image/File 关系添加一个 SortOrder 列表。
对于与自定义 DataObject 的 has_many 关系,只需在 DataObject 中添加 'SortOrder' => 'int'private static $default_sort = 'SortOrder'; 即可。

如果您直接与 ImageFile 关联,则需要设置 many_many 并使用 many_many_extrafields 和一个在模板中循环的访问器。
<% loop $SortedImages>...<% end_loop %> 或您可以使用 <% loop $Images.Sort('SortOrder') %>...<% end_loop %>。此包将自动对 FileAttachmentField 中的文件进行排序。

以下是一个 many_many 设置示例

class MyPage extends Page {
    
    private static $many_many = [
        'Images' => 'Image'
    ];

    private static $many_many_extraFields = [
        'Images' => ['SortOrder' => 'Int']
    ];
    
    public function getSortedImages(){
        return $this->Images()->sort('SortOrder');
    }
}

启用排序

要启用排序,只需在 FileAttachmentField 上调用 ->sortable(),例如 FileAttachmentField::create('Images')->sortable()->imagesOnly();

自定义

唯一可用的自定义是更改排序列。 FileAttachmentField::create('Images')->sortable()->setSortableColumn('OtherSortColumn');