对于在同一个ModelAdmin中为同一个DataObject显示的列,用户有许多不同的首选项,并希望为自己的会话控制它们。
鉴于以下数据对象......
class MyDataObject extends DataObject {
static $db = array(
'Name' => 'Varchar',
'Date' => 'SS_DateTime',
'Number' => 'Decimal(8,2)',
);
public static $summary_fields = array(
'Name',
'Date',
'Number'
);
}
...以及以下的ModelAdmin ......
class MyModelAdmin extends ModelAdmin {
static $mangaged_models = array(
'MyDataObject',
);
static $url_segment = 'mymodeladmin';
static $menu_title = 'MyModelAdmin';
static $menu_priority = 9;
}
...是否有一个简单的javascript解决方案(我想会存储在cookie中选择的列)或更多程序化(即php),它将控制每个用户的列 - 允许每个用户选择他们想要的列,它会在会话之间记住它吗?
非常感谢任何帮助。
答案 0 :(得分:3)
如评论中所述,您可以查看此模块,该模块应该为您提供您需要的功能。
https://github.com/smindel/silverstripe-GridFieldAddOns/blob/master/docs/en/GridFieldUserColumns.md
来自文档:
只需将以下代码添加到mysite / _config.php
的末尾即可Member::add_extension('GridFieldUserColumnsExtension');
Object::useCustomClass('GridFieldConfig_RecordEditor', 'GridFieldConfig_ExtendedRecordEditor');
Object::useCustomClass('GridFieldConfig_RelationEditor', 'GridFieldConfig_ExtendedRelationEditor');