1. Go to this page and download the library: Download bummzack/sortablefile library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bummzack / sortablefile example snippets
use SilverStripe\Assets\Image;
use SilverStripe\Forms\FieldList;
use Bummzack\SortableFile\Forms\SortableUploadField;
class PortfolioPage extends Page
{
// This page can have many images
private static $many_many = [
'Images' => Image::class
];
// this adds the SortOrder field to the relation table.
// Please note that the key (in this case 'Images')
// has to be the same key as in the $many_many definition!
private static $many_many_extraFields = [
'Images' => ['SortOrder' => 'Int']
];
public function getCMSFields()
{
$this->beforeUpdateCMSFields(function (FieldList $fields) {
$fields->addFieldToTab('Root.Main', SortableUploadField::create(
'Images', $this->fieldLabel('Images')
));
});
return parent::getCMSFields();
}
}
// Use this in your templates to get the correctly sorted images
public function Images()
{
return $this->getManyManyComponents('Images')->sort('SortOrder');
}
// and/or
public function SortedImages()
{
return $this->Images()->Sort('SortOrder');
}
use Bummzack\SortableFile\Forms\SortableUploadField;
use SilverStripe\Forms\FieldList;
class PortfolioPage extends Page
{
private static $many_many = [
'Images' => [
'through' => PortfolioImage::class,
'from' => 'PortfolioPage',
'to' => 'Image',
]
];
// This is nction (FieldList $fields) {
$fields->addFieldToTab('Root.Main', SortableUploadField::create(
'Images', $this->fieldLabel('Images')
));
});
return parent::getCMSFields();
}
// This is a helper method, that is needed to display the items in the
// correct order. Is
use SilverStripe\Assets\Image;
use SilverStripe\ORM\DataObject;
use SilverStripe\Versioned\Versioned;
class PortfolioImage extends DataObject
{
private static $db = [
'SortOrder' => 'Int'
];
private static $has_one = [
'Image' => Image::class,
'PortfolioPage' => PortfolioPage::class
];
private static $default_sort = 'SortOrder';
// It's important that you add the Versioned extension to this!
private static $extensions = [
Versioned::class
];
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.