mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-22 20:13:50 +08:00
@@ -208,6 +208,7 @@
|
||||
<Compile Include="Settings\Commands\SiteSettingsCommands.cs" />
|
||||
<Compile Include="Settings\Models\SiteSettings2Part.cs" />
|
||||
<Compile Include="Settings\Models\SiteSettings2PartRecord.cs" />
|
||||
<Compile Include="Settings\Models\SiteSettingsCache.cs" />
|
||||
<Compile Include="Settings\ResourceManifest.cs" />
|
||||
<Compile Include="Settings\Migrations.cs" />
|
||||
<Compile Include="Settings\Drivers\SiteSettingsPartDriver.cs" />
|
||||
|
18
src/Orchard.Web/Core/Orchard.Core.csproj.rej
Normal file
18
src/Orchard.Web/Core/Orchard.Core.csproj.rej
Normal file
@@ -0,0 +1,18 @@
|
||||
--- Orchard.Core.csproj
|
||||
+++ Orchard.Core.csproj
|
||||
@@ -18,6 +18,7 @@
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation />
|
||||
<TargetFrameworkProfile />
|
||||
+ <UseIISExpress>false</UseIISExpress>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -200,6 +201,7 @@
|
||||
<Compile Include="Scheduling\Services\ScheduledTaskManager.cs" />
|
||||
<Compile Include="Scheduling\Services\ScheduledTaskExecutor.cs" />
|
||||
<Compile Include="Scheduling\Models\Task.cs" />
|
||||
+ <Compile Include="Settings\Models\SiteSettingsCache.cs" />
|
||||
<Compile Include="Settings\Models\SiteSettings2Part.cs" />
|
||||
<Compile Include="Settings\Models\SiteSettings2PartRecord.cs" />
|
||||
<Compile Include="Settings\ResourceManifest.cs" />
|
@@ -1,4 +1,5 @@
|
||||
using JetBrains.Annotations;
|
||||
using System;
|
||||
using JetBrains.Annotations;
|
||||
using Orchard.Core.Settings.Models;
|
||||
using Orchard.Data;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
@@ -11,6 +12,14 @@ namespace Orchard.Core.Settings.Handlers {
|
||||
Filters.Add(new ActivatingFilter<SiteSettings2Part>("Site"));
|
||||
Filters.Add(StorageFilter.For(repository));
|
||||
Filters.Add(StorageFilter.For(repository2));
|
||||
|
||||
OnInitializing<SiteSettingsPart>(InitializeSiteSettings);
|
||||
}
|
||||
|
||||
private static void InitializeSiteSettings(InitializingContentContext initializingContentContext, SiteSettingsPart siteSettingsPart) {
|
||||
siteSettingsPart.Record.SiteSalt = Guid.NewGuid().ToString("N");
|
||||
siteSettingsPart.Record.SiteName = "My Orchard Project Application";
|
||||
siteSettingsPart.Record.PageTitleSeparator = " - ";
|
||||
}
|
||||
}
|
||||
}
|
141
src/Orchard.Web/Core/Settings/Models/SiteSettingsCache.cs
Normal file
141
src/Orchard.Web/Core/Settings/Models/SiteSettingsCache.cs
Normal file
@@ -0,0 +1,141 @@
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.Settings;
|
||||
|
||||
namespace Orchard.Core.Settings.Models {
|
||||
public class SiteSettingsCache : ISite {
|
||||
private readonly int _id;
|
||||
|
||||
private SiteSettingsPart _siteSettingsPart;
|
||||
|
||||
private string _pageTitleSeparator;
|
||||
private string _siteName;
|
||||
private string _siteSalt;
|
||||
private string _superUser;
|
||||
private string _homePage;
|
||||
private string _siteCulture;
|
||||
private ResourceDebugMode _resourceDebugMode;
|
||||
private int _pageSize;
|
||||
private string _baseUrl;
|
||||
|
||||
public SiteSettingsCache(ISite site) {
|
||||
_id = site.Id;
|
||||
_pageTitleSeparator = site.PageTitleSeparator;
|
||||
_siteName = site.SiteName;
|
||||
_siteSalt = site.SiteSalt;
|
||||
_superUser = site.SuperUser;
|
||||
_homePage = site.HomePage;
|
||||
_siteCulture = site.SiteCulture;
|
||||
_resourceDebugMode = site.ResourceDebugMode;
|
||||
_pageSize = site.PageSize;
|
||||
_baseUrl = site.BaseUrl;
|
||||
}
|
||||
|
||||
public int Id {
|
||||
get { return _id; }
|
||||
}
|
||||
|
||||
public string PageTitleSeparator {
|
||||
get { return _pageTitleSeparator; }
|
||||
|
||||
set {
|
||||
_pageTitleSeparator = value;
|
||||
SiteSettingsPart.PageTitleSeparator = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string SiteName {
|
||||
get { return _siteName; }
|
||||
|
||||
set {
|
||||
_siteName = value;
|
||||
SiteSettingsPart.SiteName = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string SiteSalt {
|
||||
get { return _siteSalt; }
|
||||
|
||||
set {
|
||||
_siteSalt = value;
|
||||
SiteSettingsPart.Record.SiteSalt = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string SuperUser {
|
||||
get { return _superUser; }
|
||||
|
||||
set {
|
||||
_superUser = value;
|
||||
SiteSettingsPart.SuperUser = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string HomePage {
|
||||
get { return _homePage; }
|
||||
|
||||
set {
|
||||
_homePage = value;
|
||||
SiteSettingsPart.HomePage = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string SiteCulture {
|
||||
get { return _siteCulture; }
|
||||
|
||||
set {
|
||||
_siteCulture = value;
|
||||
SiteSettingsPart.SiteCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
public ResourceDebugMode ResourceDebugMode {
|
||||
get { return _resourceDebugMode; }
|
||||
|
||||
set {
|
||||
_resourceDebugMode = value;
|
||||
SiteSettingsPart.ResourceDebugMode = value;
|
||||
}
|
||||
}
|
||||
|
||||
public int PageSize {
|
||||
get { return _pageSize; }
|
||||
|
||||
set {
|
||||
_pageSize = value;
|
||||
SiteSettingsPart.PageSize = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string BaseUrl {
|
||||
get { return _baseUrl; }
|
||||
|
||||
set {
|
||||
_baseUrl = value;
|
||||
SiteSettingsPart.BaseUrl = value;
|
||||
}
|
||||
}
|
||||
|
||||
public ContentItem ContentItem {
|
||||
get { return SiteSettingsPart.ContentItem; }
|
||||
}
|
||||
|
||||
private ISiteService SiteService { get; set; }
|
||||
|
||||
private SiteSettingsPart SiteSettingsPart {
|
||||
get {
|
||||
if (_siteSettingsPart == null) {
|
||||
_siteSettingsPart = SiteService.GetSiteSettingsPart() as SiteSettingsPart;
|
||||
}
|
||||
|
||||
return _siteSettingsPart;
|
||||
}
|
||||
|
||||
set { _siteSettingsPart = value; }
|
||||
}
|
||||
|
||||
public void ResetCache(ISiteService siteService) {
|
||||
SiteService = siteService;
|
||||
SiteSettingsPart = null;
|
||||
}
|
||||
}
|
||||
}
|
@@ -20,23 +20,27 @@ namespace Orchard.Core.Settings.Services {
|
||||
ICacheManager cacheManager) {
|
||||
_contentManager = contentManager;
|
||||
_cacheManager = cacheManager;
|
||||
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
||||
|
||||
public ILogger Logger { get; set; }
|
||||
|
||||
public ISite GetSiteSettings() {
|
||||
SiteSettingsCache siteSettingsCache = _cacheManager.Get("SiteSettings",
|
||||
ctx => new SiteSettingsCache(GetSiteSettingsPart()));
|
||||
siteSettingsCache.ResetCache(this);
|
||||
return siteSettingsCache;
|
||||
}
|
||||
|
||||
public ISite GetSiteSettingsPart() {
|
||||
var siteId = _cacheManager.Get("SiteId", ctx => {
|
||||
var site = _contentManager.Query("Site")
|
||||
.Slice(0, 1)
|
||||
.FirstOrDefault();
|
||||
|
||||
if (site == null) {
|
||||
site = _contentManager.Create<SiteSettingsPart>("Site", item => {
|
||||
item.Record.SiteSalt = Guid.NewGuid().ToString("N");
|
||||
item.Record.SiteName = "My Orchard Project Application";
|
||||
item.Record.PageTitleSeparator = " - ";
|
||||
}).ContentItem;
|
||||
site = _contentManager.Create<SiteSettingsPart>("Site").ContentItem;
|
||||
}
|
||||
|
||||
return site.Id;
|
||||
|
Reference in New Issue
Block a user