Exam Area: Area 1 – Product Knowledge (15%)
Reference: https://docs.developers.optimizely.com/content-management-system/docs/sites
Access: /episerver/cms/admin → Websites
// SiteDefinition - site configuration
public class SiteDefinition
{
public string Name { get; set; } // Site name
public Uri SiteUrl { get; set; } // Primary URL
public ContentReference StartPage { get; set; } // Start page
public IList<SiteHost> Hosts { get; set; } // Host bindings
}
// SiteHost - host binding
public class SiteHost
{
public string Name { get; set; } // Hostname
public CultureInfo Language { get; set; } // Language for host
public HostDefinitionType Type { get; set; } // Primary/Edit/Undecided
}
Admin → Websites
→ List of all sites
→ Each site:
- Primary URL
- Start page
- Host bindings
→ Add site
→ Edit site settings
→ Manage host bindings
public class SiteService
{
private readonly ISiteDefinitionRepository _siteRepository;
public SiteService(ISiteDefinitionRepository siteRepository)
{
_siteRepository = siteRepository;
}
public IEnumerable<SiteDefinition> GetAllSites()
{
return _siteRepository.List();
}
public SiteDefinition GetCurrentSite()
{
return SiteDefinition.Current; // Static access
}
}
// Multiple sites in 1 CMS instance
Site 1: www.company.com → StartPage ID 5
Site 2: blog.company.com → StartPage ID 100
Site 3: shop.company.com → StartPage ID 200
// Each site can have its own languages
Site 1 (www.company.com/en) → English
Site 1 (www.company.com/sv) → Swedish
/episerver/cms/admin → Websites)SiteDefinition.Current return? (The SiteDefinition of the current request's site)