SilverStripe SiteConfig标题字段操作

时间:2016-07-31 17:35:00

标签: php silverstripe

我已设置SiteConfig扩展名(以yml声明,经过测试并确认),我试图更改Title字段(网站标题的字段)到只读字段。

我知道在父类SiteConfig中,Title字段存储在变量中。 SiteConfig 第85行:$titleField = new TextField("Title", _t('SiteConfig.SITETITLE', "Site title"))

所以在我的分机SiteConfigTweaks extends DataExtensions中,我尝试过:

 public function updateCMSFields(FieldList $fields) {
     $titleField->performReadonlyTransformation();
 }

但这并不能解决问题。我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

我建议你做以下事情:

public function updateCMSFields(FieldList $fields)
{
    if ($titleField = $fields->dataFieldByName('Title')) {
        $fields->replaceField(
            'Title', 
            $titleField->performReadonlyTransformation()
        );
    }
}

首先,您获得现有的Title-field并检查其存在性。然后用其只读变换变量替换该字段。