代码之家  ›  专栏  ›  技术社区  ›  Barry

使用javascript在ModelAdmin中显示隐藏数据对象列

  •  2
  • Barry  · 技术社区  · 9 年前

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

    任何帮助都非常感谢。

    1 回复  |  直到 9 年前
        1
  •  3
  •   wmk    9 年前

    如注释中所述,您可以查看此模块,它将为您提供所需的功能。

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

    Screenshot of the column selector