SilverStripe删除CSV导出按钮

Fal*_*ude 4 silverstripe

我试图删除导出为CSV按钮,在顶部GridFieldModelAdmin.

我似乎找不到创建按钮的类(GridFieldExportButton对吧?).我猜有一个函数用我不熟悉的按钮/"动作"填充GridField.

Bar*_*rry 7

要删除脚手架的GridField以获得关系......

class MyDataObject extends DataObject {

    ...

    private static $has_many= array(
        'OtherDataObjects' => 'OtherDataObject'
    );

    ...

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

        if($grid = $fields->dataFieldByName('OtherDataObjects'))
            $grid->getConfig()
                ->removeComponentsByType('GridFieldExportButton');

        return $fields;
    }

    ...

}
Run Code Online (Sandbox Code Playgroud)

如果您正在创建GridField,那么只需在创建字段时添加它...

$gridField->getConfig()->removeComponentsByType('GridFieldExportButton'); 
Run Code Online (Sandbox Code Playgroud)

如果您正在寻找不在数据对象编辑表单中的网格字段,实际上是......

class MyAdmin extends ModelAdmin {

    ...

    function getEditForm($id = null, $fields = null) {
        $form = parent::getEditForm($id, $fields);

        if($this->modelClass == 'MyDataObjectName') {
            $form->Fields()
                ->fieldByName($this->sanitiseClassName($this->modelClass))
                ->getConfig()
                ->removeComponentsByType('GridFieldExportButton');
        }
        return $form;
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

将model_importers设置为空将执行相反操作并删除导入...

class MyAdmin extends ModelAdmin {

    ...

    static $model_importers = array();

    ...
}
Run Code Online (Sandbox Code Playgroud)