nathancox/sortableuploadfield

A subclass of UploadField that allows for sorting the managed files.

Installs: 2 802

Dependents: 0

Suggesters: 0

Security: 0

Stars: 9

Watchers: 2

Forks: 6

Open Issues: 2

Language:Scheme

Type:silverstripe-module

1.1.0 2016-11-24 01:20 UTC

This package is not auto-updated.

Last update: 2022-05-12 08:08:22 UTC


README

This module creates a subclass of UploadField that allows for sorting the managed files.

Also changes the upload interface which is heavily inspired by the more complete but use-specific Gallery module (https://github.com/frankmullenger/silverstripe-gallery).

Still in development.

Maintainer

Nathan Cox (nathan@flyingmonkey.co.nz)

Requirements

SilverStripe 3.0+

Installation Instructions

Via composer:

composer require nathancox/sortableuploadfield

Or manually download the module and place it in a folder in your site root.

Visit yoursite.com/dev/build

Usage

By default the field will use the File's Sort attribute for sorting. You'll need to make a subclass of File or Image to give it a sort field and $default_sort:

class SlideshowImage extends Image {
	static $default_sort = 'Sort ASC';

	static $db = array(
		'Sort' => 'Int'
	);
	static $has_one = array(
		'Page' => 'Page'
	);
}

And in the page:

	...

	private static $has_many = array(
		'Slides' => 'SlideshowImage'
	);

	public function getCMSFields() {
		$fields = parent::getCMSFields();

		$fields->addFieldToTab('Root.Slides', $field = SortableUploadField::create('Slides', 'Slides'));

		return $fields;
	}

	...

This will produce

example sortableuploadfield

You can change the name of the sort attribute with $sortableField->setSortField('SortOrderOrWhatever');

Known Issues

Issue Tracker