Я работаю над проектом SilverStripe. В моем проекте я создаю настраиваемое действие поля сетки. Я мог бы создать это. Но есть еще проблема с точки зрения пользовательского интерфейса. Кнопка пользовательского поля сетки не добавляется под существующим значком 3 точки / более, как показано на снимке экрана ниже.
![enter image description here](https://i.stack.imgur.com/EzNxA.png)
Как вы можете видеть на снимке экрана кнопка настраиваемого действия добавлена рядом со значком 3 точки / более.
Ниже приведен класс действия настраиваемого поля сетки *
class GridFieldCustomAction implements GridField_ColumnProvider, GridField_ActionProvider
{
public function augmentColumns($gridField, &$columns)
{
if (!in_array('Actions', $columns)) {
$columns[] = 'Actions';
}
}
public function getColumnAttributes($gridField, $record, $columnName)
{
return ['class' => 'grid-field__col-compact'];
}
public function getColumnMetadata($gridField, $columnName)
{
if ($columnName === 'Actions') {
return ['title' => ''];
}
}
public function getColumnsHandled($gridField)
{
return ['Actions'];
}
public function getColumnContent($gridField, $record, $columnName)
{
if (!$record->canEdit()) {
return;
}
$field = GridField_FormAction::create(
$gridField,
'CustomAction'.$record->ID,
'Do Action',
"docustomaction",
['RecordID' => $record->ID]
);
return $field->Field();
}
public function getActions($gridField)
{
return ['docustomaction'];
}
public function handleAction(GridField $gridField, $actionName, $arguments, $data)
{
if ($actionName !== 'docustomaction') {
return;
}
// the rest of the code goes here
}
}
Вот как я добавил действие в поле сетки.
$config = GridFieldConfig_RelationEditor::create();
$config->addComponent(new GridFieldCustomAction());
Как я могу поместить его под существующие ... иконки?