webfox / silverstripe-dropzone-sortable
一个 Silverstripe 扩展,用于向 FileAttachmentField 添加拖放排序功能
Requires
- php: >=5.4
- silverstripe/cms: ~3.2
- unclecheese/dropzone: 1.2.*
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';
即可。
如果您直接与 Image
或 File
关联,则需要设置 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');