Version 4 supported
This version of Silverstripe CMS is still supported though will not receive any additional features. Go to documentation for the most recent stable version.


The SiteConfig module provides a generic interface for managing site-wide settings or functionality which is used throughout the site. Out of the box, this includes setting the site name and site-wide access.

Accessing variables

SiteConfig options can be accessed from any template by using the $SiteConfig variable.


<% with $SiteConfig %>
    $Title $AnotherField
<% end_with %>

To access variables in the PHP:

use Silverstripe\SiteConfig\SiteConfig;

$config = SiteConfig::current_site_config(); 

echo $config->Title;

// returns "Website Name"

Extending SiteConfig

To extend the options available in the panel, define your own fields via a DataExtension.


use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\HTMLEditor\HTMLEditorField;
use SilverStripe\ORM\DataExtension;

class CustomSiteConfig extends DataExtension 
    private static $db = [
        'FooterContent' => 'HTMLText'

    public function updateCMSFields(FieldList $fields) 
            new HTMLEditorField("FooterContent", "Footer Content")

Then activate the extension.


    - CustomSiteConfig
After adding the class and the YAML change, make sure to rebuild your database by visiting You may also need to reload the screen with a ?flush=1 i.e

You can define as many extensions for SiteConfig as you need. For example, if you're developing a module and want to provide the users a place to configure settings then the SiteConfig panel is the place to go it.

API Documentation

Related Lessons