/*** TestPage.php ***/useSilverStripe\Forms\GridField\GridField;
useSilverStripe\Forms\GridField\GridFieldConfig_RelationEditor;
useUndefinedOffset\SortableGridField\Forms\GridFieldSortableRows;
class TestPage extends Page
{
privatestatic$many_many = [
'TestObjects' => 'TestObject',
];
privatestatic$many_many_extraFields = [
'TestObjects' => [
'SortOrder' => 'Int',
]
];
publicfunctiongetCMSFields()
{
$fields = parent::getCMSFields();
$conf = GridFieldConfig_RelationEditor::create(10);
$conf->addComponent(GridFieldSortableRows::create('SortOrder'));
$fields->addFieldToTab('Root.TestObjects', GridField::create('TestObjects', 'TestObjects', $this->TestObjects(), $conf));
return$fields;
}
publicfunctionTestObjects()
{
return$this->getManyManyComponents('TestObjects')->sort('SortOrder');
}
}
/*** TestObject.php ***/useSilverStripe\ORM\DataObject;
class TestObject extends DataObject
{
privatestatic$db = [
'Title' => 'Text',
];
privatestatic$belongs_many_many = [
'TestPages' => 'TestPage',
];
}