Version 3 end of life
This version of Silverstripe CMS will not recieve any additional bug fixes or documentation updates. Go to documentation for the most recent stable version.

SiteConfig

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 selecting the current site theme, site name and site wide access.

Accessing variables

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

	$SiteConfig.Title 
	$SiteConfig.Tagline
	
	<% with $SiteConfig %>
		$Title $AnotherField
	<% end_with %>
	$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.

mysite/code/extensions/CustomSiteConfig.php

	<?php
	
	class CustomSiteConfig extends DataExtension {
		
		private static $db = array(
			'FooterContent' => 'HTMLText'
		);
	
		public function updateCMSFields(FieldList $fields) {
			$fields->addFieldToTab("Root.Main", 
				new HTMLEditorField("FooterContent", "Footer Content")
			);
		}
	}

mysite/_config/app.yml

	SiteConfig:
	  extensions:
	    - CustomSiteConfig

After adding the class and the YAML change, make sure to rebuild your database by visiting http://yoursite.com/dev/build. You may also need to reload the screen with a ?flush=1 i.e http://yoursite.com/admin/settings?flush=1. [/notice]

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