SilverStripe更改父类的字段标签

时间:2016-07-23 12:00:21

标签: php silverstripe

Matcher<Boolean> matchesTrue = IsEqual.equalTo(true); collector.checkThat("String on Failure", condition1, matchesTrue); collector.checkThat("String on Failure", condition2, matchesTrue); collector.checkThat("String on Failure", condition3, matchesTrue); collector.checkThat("String on Failure", condition4, matchesTrue); collector.checkThat("String on Failure", condition5, matchesTrue); 内,有一个SiteConfig 网站标题。我正在尝试通过课程TextField中的 SiteConfig扩展程序更改此文本字段$titleField的标签。

以下是来自 siteconfig / code / model / 的代码:

SiteConfigExtension extends DataExtension

问:更换SiteTitle标签的最简单方法是什么,而不必删除SiteConfig扩展中的字段并使用所需的标签重新添加它?

2 个答案:

答案 0 :(得分:2)

您可以使用已实施的_t()功能。将以下内容放入mysite/lang/{LANG_CODE}.yml文件中:

{LANG_CODE}:
  SiteConfig:
    SITETITLE: 'My new title'

{LANG_CODE}替换为正在使用的管理语言(例如,sv代表瑞典语,或en代表英语代码。将字符串与代码分开可带来许多好处。请记住在更新YAML文件后运行?flush

https://docs.silverstripe.org/en/3.4/developer_guides/i18n/

答案 1 :(得分:1)

从SiteConfigExtension更新标题使用updateCMSFields ...

class SiteConfigExtension extends DataExtension {

    public function updateCMSFields(FieldList $fields) {
        if ($titleField = $fields->dataFieldByName('Title'))
            $titleField->setTitle('my title');
    }

}