2016-07-14 56 views
3

我试图删除导出为CSV按钮在GridField的顶部ModelAdminSilverStripe删除CSV导出按钮

我似乎无法找到创建按钮的类(GridFieldExportButton吧?)。我猜测有一个函数用GridField填充我不熟悉的按钮/“操作”。

回答

6

若要删除关系脚手架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; 
    } 

    ... 

} 

如果你在进行GridField当您创建字段,则只需添加这...

$gridField->getConfig()->removeComponentsByType('GridFieldExportButton'); 

如果您正在寻找对于不在数据对象编辑表单内的网格域,实际上...

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; 
    } 

    ... 
} 

个设置model_importers清空会做反向并取下进口...

class MyAdmin extends ModelAdmin { 

    ... 

    static $model_importers = array(); 

    ... 
} 
+0

这似乎摆脱了进口功能,而不是出口按钮。这种方式也很有价值,因为我想从用户那里隐藏它​​。 – Faloude

+0

确实!更新包括删除您实际询问的按钮! – Barry

+0

'MyFieldName'应该是DataObject类的名字吗? – Faloude