如何允许用户在silverstripe CMS中设置自定义全局值?

如何允许用户在silverstripe CMS中设置自定义全局值?,silverstripe,Silverstripe,我想能够在CMS中设置自定义值,如网站名称和标语。除了在单个页面上,我目前找不到任何其他方法来执行此操作。您可以通过扩展SiteConfig来执行此操作。您的扩展可能如下所示: class CustomSiteConfig extends DataExtension { private static $db = array( 'CustomContent' => 'Varchar(255)' ); public function updateCMS

我想能够在CMS中设置自定义值,如网站名称和标语。除了在单个页面上,我目前找不到任何其他方法来执行此操作。

您可以通过扩展
SiteConfig
来执行此操作。您的扩展可能如下所示:

class CustomSiteConfig extends DataExtension
{
    private static $db = array(
        'CustomContent' => 'Varchar(255)'
    );

    public function updateCMSFields(FieldList $fields)
    {
        $fields->addFieldToTab('Root.Main',
            TextField::create('CustomContent', 'Custom content')
        );
    }
}
然后需要将扩展应用于
SiteConfig
。将以下内容添加到
mysite/_config/config.yml

SiteConfig:
  extensions:
    - CustomSiteConfig

就这样。运行
dev/build
,您的新字段应该可以在CMS中编辑,也可以在模板中使用:
$SiteConfig.CustomContent

这是一堂关于扩展的好课。在本课程的底部,有一个如何扩展站点配置的示例,展示了如何添加全局变量:谢谢!我找不到一个具体的答案来回答我的问题,而且我在课程中还没有走到这一步,所以我没有看到这一点。