Я использую gridfieldextensions и GridFieldEditableColumns на GridFieldConfig_RelationEditor.Silverstripe 3.4 gridfieldextensions GridFieldEditableColumns
Как можно перемещать GridField вправо?
[! [Введите описание изображения здесь] [1]] [1]
класс StaffCatObject расширяет DataObject
private static $many_many = array(
'Staffs' => 'Staff'
);
private static $many_many_extraFields = array(
'Staffs' => array(
'SortOrder' => 'Int',
'Display' => 'Boolean(1)'
),
);
public function getCMSFields() {
$fields = parent::getCMSFields();
.......
$GridFieldConfig = GridFieldConfig_RelationEditor::create();
$GridFieldConfig->removeComponentsByType('GridFieldPaginator');
$GridFieldConfig->addComponent(new GridFieldPaginator(20));
$GridFieldConfig->addComponent(new GridFieldEditableColumns());
$GridFieldConfig->addComponent(new GridFieldDeleteAction());
$items = $this->Staffs();
if (class_exists('GridFieldOrderableRows') && !$items instanceof UnsavedRelationList) {
$GridFieldConfig->addComponent(new GridFieldOrderableRows('SortOrder'));
}
$gridfield = new GridField("Staff", $this->StaffCatTitle, $this->Staffs()->sort('SortOrder'), $GridFieldConfig); //->sort('SortOrder')
$gridfield->getConfig()->getComponentByType('GridFieldEditableColumns')->setDisplayFields(array(
'Display' => array(
'callback' => function ($record, $column, $gridfield) {
return new CheckboxField('Display');
},
'title' => 'Display'
),
'AdImpressum' => array(
'title' => 'Ad Impressum',
'field' => 'CheckboxField'
)
));
$fields->addFieldToTab('Root.Main', $gridfield);
return $fields;
класс Персонал проходит DataObject
private static $belongs_many_many = array(
'StaffCatObjects' => 'StaffCatObject'
);
static $summary_fields = array(
'Thumbnail' => 'Thumbnail',
'StaffTitle' => 'Name',
'Email' => 'Email',
'CheckDisplay' => 'wird angezeigt in'
);
Пожалуйста, примите ответ, если это помогает решить проблему, чтобы поощрения плакатов для решения вашей проблемы. – g4b0