2

用户对于在同一个 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),可以在每个用户的基础上控制列 - 允许每个用户选择他们的列想要并且它从一个会话到另一个会话记住它?

任何帮助深表感谢。

4

1 回答 1

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');

列选择器的屏幕截图

于 2016-03-11T22:37:01.420 回答