使用 javascript 在 ModelAdmin 中显示隐藏的 DataObject 列
Show hide DataObject columns within ModelAdmin with javascript
用户对在同一个 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)来控制列基于每个用户 - 允许每个用户 select 他们想要的列并且它会在会话之间记住它?
非常感谢任何帮助。
如评论中所述,您可以查看此模块,它应该会为您提供所需的功能。
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');
用户对在同一个 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)来控制列基于每个用户 - 允许每个用户 select 他们想要的列并且它会在会话之间记住它?
非常感谢任何帮助。
如评论中所述,您可以查看此模块,它应该会为您提供所需的功能。
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');