SilverStripe SiteConfig标题字段操作


SilverStripe SiteConfig titlefield manipulation

我已经设置了一个SiteConfig扩展(用yml声明,经过测试和确认),通过它我试图将Title字段(用于Site title的字段)更改为只读字段。

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

所以在我的扩展SiteConfigTweaks extends DataExtensions中,我尝试过:

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

但这并不管用。我在这里错过了什么?

我建议您执行以下操作:

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

首先获取现有的"标题"字段,并检查其是否存在。然后将字段替换为其只读转换的变体。

相关文章: