Version: current

# Class SiteConfig

Sitewide configuration.

h2. Translation

To enable translation of configurations alongside the `Translatable` extension. This also allows assigning language-specific toplevel permissions for viewing and editing pages, in addition to the normal `TRANSLATE_*`/`TRANSLATE_ALL` permissions.
Object::add_extension('SiteConig', 'Translatable');

  Object
  ViewableData implements IteratorAggregate
  DataObject implements DataObjectInterface, i18nEntityProvider
  SiteConfig implements PermissionProvider

Package: cms
Author: Tom Rix
Located at sapphire/core/model/SiteConfig.php

## Methods summary

`public static` | # `disable_theme( mixed $theme )`
`public Fieldset` | # `getCMSFields( )` Get the fields that are sent to the CMS. In your decorators: updateCMSFields(&$fields) Get the fields that are sent to the CMS. In your decorators: updateCMSFields(&$fields) #### Returns `Fieldset` Fieldset #### Overrides `DataObject::getCMSFields`
`public array` | # `getAvailableThemes( string $baseDir = null )` Get all available themes that haven't been marked as disabled. Get all available themes that haven't been marked as disabled. #### Parameters $baseDir string $baseDir Optional alternative theme base directory for testing #### Returns `array` of theme directory names
`public Fieldset` | # `getCMSActions( )` Get the actions that are sent to the CMS. In your decorators: updateEditFormActions(&$actions) Get the actions that are sent to the CMS. In your decorators: updateEditFormActions(&$actions) #### Returns `Fieldset` Fieldset #### Overrides `DataObject::getCMSActions`
`public static `SiteConfig`` | # `current_site_config( string $locale = null )` Get the current sites SiteConfig, and creates a new one through `SiteConfig::make_site_config()` if none is found. Get the current sites SiteConfig, and creates a new one through `SiteConfig::make_site_config()` if none is found. #### Parameters $locale string $locale #### Returns ``SiteConfig`` SiteConfig
`public` | # `requireDefaultRecords( )` Setup a default SiteConfig record if none exists Setup a default SiteConfig record if none exists #### Overrides `DataObject::requireDefaultRecords`
`public static `SiteConfig`` | # `make_site_config( string $locale = null )` Create SiteConfig with defaults from language file. if Translatable is enabled on SiteConfig, see if one already exist and use those values for the translated defaults. Create SiteConfig with defaults from language file. if Translatable is enabled on SiteConfig, see if one already exist and use those values for the translated defaults. #### Parameters $locale string $locale #### Returns ``SiteConfig`` SiteConfig
`public boolean` | # `canView( mixed $member = null )` Can a user view pages on this site? This method is only called if a page is set to Inherit, but there is nothing to inherit from. Can a user view pages on this site? This method is only called if a page is set to Inherit, but there is nothing to inherit from. #### Parameters $member mixed $member #### Returns `boolean` boolean #### Overrides `DataObject::canView`
`public boolean` | # `canEdit( mixed $member = null )` Can a user edit pages on this site? This method is only called if a page is set to Inherit, but there is nothing to inherit from. Can a user edit pages on this site? This method is only called if a page is set to Inherit, but there is nothing to inherit from. #### Parameters $member mixed $member #### Returns `boolean` boolean #### Overrides `DataObject::canEdit`
`public` | # `providePermissions( )` Return a map of permission codes to add to the dropdown shown in the Security section of the CMS. array( 'VIEW_SITE' => 'View the site', ); Return a map of permission codes to add to the dropdown shown in the Security section of the CMS. array( 'VIEW_SITE' => 'View the site', ); #### Implementation of `PermissionProvider::providePermissions()`
`public boolean` | # `canCreateTopLevel( mixed $member = null )` Can a user create pages in the root of this site? Can a user create pages in the root of this site? #### Parameters $member mixed $member #### Returns `boolean` boolean

### Methods inherited from DataObject

`Aggregate()`, `RelationshipAggregate()`, `__construct()`, `baseTable()`, `belongs_to()`, `buildDataObjectSet()`, `buildSQL()`, `can()`, `canCreate()`, `canDelete()`, `castedUpdate()`, `composite_fields()`, `context_obj()`, `customDatabaseFields()`, `custom_database_fields()`, `data()`, `databaseFields()`, `databaseIndexes()`, `database_extensions()`, `database_fields()`, `db()`, `dbObject()`, `debug()`, `defaultSearchFilters()`, `defineMethods()`, `delete()`, `delete_by_id()`, `destroy()`, `disableCMSFieldsExtensions()`, `disable_subclass_access()`, `duplicate()`, `enableCMSFieldsExtensions()`, `enable_subclass_access()`, `exists()`, `extendedSQL()`, `fieldLabel()`, `fieldLabels()`, `flushCache()`, `flush_and_destroy_cache()`, `forceChange()`, `get()`, `getAllFields()`, `getChangedFields()`, `getClassAncestry()`, `getComponent()`, `getComponents()`, `getComponentsQuery()`, `getDefaultSearchContext()`, `getField()`, `getFrontEndFields()`, `getManyManyComponents()`, `getManyManyComponentsQuery()`, `getManyManyFilter()`, `getManyManyJoin()`, `getRemoteJoinField()`, `getReverseAssociation()`, `getTitle()`, `get_by_id()`, `get_one()`, `get_validation_enabled()`, `hasDatabaseField()`, `hasField()`, `hasOwnTableDatabaseField()`, `hasValue()`, `has_many()`, `has_one()`, `has_own_table()`, `i18n_plural_name()`, `i18n_singular_name()`, `inheritedDatabaseFields()`, `instance_get()`, `instance_get_one()`, `isChanged()`, `isEmpty()`, `isInDB()`, `is_composite_field()`, `many_many()`, `many_many_extraFields()`, `merge()`, `newClassInstance()`, `onAfterDelete()`, `onAfterWrite()`, `onBeforeDelete()`, `onBeforeWrite()`, `plural_name()`, `populateDefaults()`, `provideI18nEntities()`, `relObject()`, `requireTable()`, `reset()`, `scaffoldFormFields()`, `scaffoldSearchFields()`, `searchableFields()`, `setCastedField()`, `setClassName()`, `setComponent()`, `setField()`, `set_context_obj()`, `set_validation_enabled()`, `singular_name()`, `summaryFields()`, `toMap()`, `update()`, `validate()`, `write()`, `writeComponents()`, `writeWithoutVersion()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `escapeTypeForField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`

### Methods inherited from Object

`__call()`, `__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`public static array` | $db | # Database field definitions. This is a map from field names to field type. The field type should be a class that extends . Database field definitions. This is a map from field names to field type. The field type should be a class that extends .
`public static array` | $many_many | # many-many relationship definitions. This is a map from component name to data type. many-many relationship definitions. This is a map from component name to data type.
`protected static array` | $disabled_themes | #

### Properties inherited from DataObject

`$allowed_actions`, `$ancestry`, `$api_access`, `$belongs_many_many`, `$belongs_to`, `$brokenOnDelete`, `$brokenOnWrite`, `$cache_get_one`, `$cache_has_own_table`, `$cache_has_own_table_field`, `$casting`, `$componentCache`, `$components`, `$create_table_options`, `$default_records`, `$default_sort`, `$defaults`, `$destroyed`, `$field_labels`, `$has_many`, `$has_one`, `$indexes`, `$many_many_extraFields`, `$original`, `$plural_name`, `$record`, `$searchable_fields`, `$singular_name`, `$summary_fields`

### Properties inherited from ViewableData

`$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -