我正在扩展具有以下summary_fields(出现在CMS的Security部分)的Member对象。
private static $summary_fields = array(
'FirstName' => 'First Name',
'Surname' => 'Last Name',
'Email' => 'Email',
);
我如何删除'FirstName'和'姓',并将它们替换为自定义字段从数据扩展名:'全名'?
如何将'Email'改为'Email Address'?
我知道如何通过数据扩展添加summary_fields,但我不知道如何删除或更改它们
如果DataObject
设置了$summary_fields
,我们不能通过扩展来删除字段。扩展的$summary_fields
与原来的$summary_fields
合并
要停止$summary_fields
的合并,我们需要覆盖DataObject的updateSummaryFields()
函数。相反,我们将使updateSummaryFields()
函数只返回扩展的$summary_fields
。
class MemberExtension extends DataExtension {
private static $summary_fields = array(
'FullName' => 'Full Name',
'EmailAddress' => 'Email Address'
);
private static $casting = array(
'FullName' => 'Text',
'EmailAddress' => 'Text'
);
public function updateSummaryFields(&$fields) {
$fields = Config::inst()->get($this->class, 'summary_fields');
}
public function getFullName() {
return $this->owner->FirstName . ' ' . $this->owner->Surname;
}
public function getEmailAddress() {
return $this->owner->Email;
}
}
似乎我们也不能改变现有字段的字段标签,如Email
。我们可以做的是转换一个新的字段EmailAddress
,它将返回Email
的内容。现在我们可以设置我们想要的标签。