--HG--
branch : dev
This commit is contained in:
Louis DeJardin
2010-04-07 17:02:27 -07:00
4 changed files with 30 additions and 2 deletions

View File

@@ -7,6 +7,7 @@ using Orchard.ContentManagement;
using Orchard.ContentManagement.Records;
using Orchard.Extensions;
using Orchard.Utility.Extensions;
using Orchard.Extensions.Records;
namespace Orchard.Environment {
//TEMP: This will be replaced by packaging system
@@ -42,6 +43,7 @@ namespace Orchard.Environment {
new RecordDescriptor { Prefix = "Core", Type = typeof (ContentTypeRecord)},
new RecordDescriptor { Prefix = "Core", Type = typeof (ContentItemRecord)},
new RecordDescriptor { Prefix = "Core", Type = typeof (ContentItemVersionRecord)},
new RecordDescriptor { Prefix = "Core", Type = typeof (ExtensionRecord)},
};
foreach (var extension in _extensionManager.ActiveExtensions()) {

View File

@@ -16,15 +16,19 @@ namespace Orchard.Extensions {
private readonly IEnumerable<IExtensionFolders> _folders;
private readonly IEnumerable<IExtensionLoader> _loaders;
private IEnumerable<ExtensionEntry> _activeExtensions;
//private readonly IRepository<ExtensionRecord> _extensionRepository;
public Localizer T { get; set; }
public ILogger Logger { get; set; }
public ExtensionManager(
IEnumerable<IExtensionFolders> folders,
IEnumerable<IExtensionLoader> loaders) {
IEnumerable<IExtensionLoader> loaders
//IRepository<ExtensionRecord> extensionRepository
) {
_folders = folders;
_loaders = loaders.OrderBy(x => x.Order);
//_extensionRepository = extensionRepository;
T = NullLocalizer.Instance;
Logger = NullLogger.Instance;
}
@@ -163,8 +167,8 @@ namespace Orchard.Extensions {
}
private IEnumerable<ExtensionEntry> BuildActiveExtensions() {
//TODO: this component needs access to some "current settings" to know which are active
foreach (var descriptor in AvailableExtensions()) {
//_extensionRepository.Create(new ExtensionRecord { Name = descriptor.Name });
// Extensions that are Themes don't have buildable components.
if (String.Equals(descriptor.ExtensionType, "Module", StringComparison.OrdinalIgnoreCase)) {
yield return BuildEntry(descriptor);
@@ -172,7 +176,15 @@ namespace Orchard.Extensions {
}
}
private bool IsExtensionEnabled(string name) {
//ExtensionRecord extensionRecord = _extensionRepository.Get(x => x.Name == name);
//if (extensionRecord.Enabled) return true;
//return false;
return true;
}
private ExtensionEntry BuildEntry(ExtensionDescriptor descriptor) {
if (!IsExtensionEnabled(descriptor.Name)) return null;
foreach (var loader in _loaders) {
var entry = loader.Load(descriptor);
if (entry != null)

View File

@@ -0,0 +1,13 @@
namespace Orchard.Extensions.Records {
public class ExtensionRecord {
public ExtensionRecord() {
// ReSharper disable DoNotCallOverridableMethodsInConstructor
Enabled = true;
// ReSharper restore DoNotCallOverridableMethodsInConstructor
}
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual bool Enabled { get; set; }
}
}

View File

@@ -175,6 +175,7 @@
<Compile Include="Extensions\ExtensionFolders.cs" />
<Compile Include="Extensions\FeatureDescriptor.cs" />
<Compile Include="Extensions\Loaders\AreaExtensionLoader.cs" />
<Compile Include="Extensions\Records\ExtensionRecord.cs" />
<Compile Include="Mvc\AntiForgery\ValidateAntiForgeryTokenOrchardAttribute.cs" />
<Compile Include="Mvc\FollowReturnUrl\FollowReturnUrlFilter.cs" />
<Compile Include="Mvc\Html\FileRegistrationContextExtensions.cs" />