The current examples use an actual, real-world domain. Have changed to the 'example.com' domain, reserved by IANA for this kind of purpose.
2.2 KiB
title: SiteConfig summary: Content author configuration through the SiteConfig module.
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 setting the 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 %>
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.
app/code/extensions/CustomSiteConfig.php
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)
{
$fields->addFieldToTab("Root.Main",
new HTMLEditorField("FooterContent", "Footer Content")
);
}
}
Then activate the extension.
app/_config/app.yml
Silverstripe\SiteConfig\SiteConfig:
extensions:
- CustomSiteConfig
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.