Move list of default features to SetupService

This is so that the "setup" command doesn't require a list of
features and can use the default list.

Also add back tags, widgets and media as enabled by default.

--HG--
branch : dev
This commit is contained in:
Renaud Paquay
2010-05-13 19:07:53 -07:00
parent 132e4236e3
commit 2ad6aafc40
3 changed files with 45 additions and 30 deletions

View File

@@ -1,4 +1,5 @@
using System.Linq;
using System.Collections.Generic;
using System.Linq;
using Orchard.Commands;
using Orchard.Setup.Services;
@@ -37,6 +38,14 @@ namespace Orchard.Setup.Commands {
[CommandName("setup")]
[OrchardSwitches("SiteName,AdminUsername,AdminPassword,DatabaseProvider,DatabaseConnectionString,DatabaseTablePrefix,EnabledFeatures")]
public void Setup() {
IEnumerable<string> enabledFeatures = null;
if (!string.IsNullOrEmpty(this.EnabledFeatures)) {
enabledFeatures = this.EnabledFeatures
.Split(',')
.Select(s => s.Trim())
.Where(s => !string.IsNullOrEmpty(s));
}
var setupContext = new SetupContext {
SiteName = this.SiteName,
AdminUsername = this.AdminUsername,
@@ -44,19 +53,15 @@ namespace Orchard.Setup.Commands {
DatabaseProvider = this.DatabaseProvider,
DatabaseConnectionString = this.DatabaseConnectionString,
DatabaseTablePrefix = this.DatabaseTablePrefix,
EnabledFeatures = this.EnabledFeatures.Split(',').Select(s => s.Trim())
EnabledFeatures = enabledFeatures
};
_setupService.Setup(setupContext);
Context.Output.WriteLine("Site \"{0}\" setup to run data provider \"{1}\" (with table prefix \"{2}\") with the following features enabled:",
Context.Output.WriteLine(T("Site \"{0}\" sucessfully setup to run data provider \"{1}\" (with table prefix \"{2}\").",
setupContext.SiteName,
setupContext.DatabaseProvider,
setupContext.DatabaseTablePrefix);
foreach (var feature in setupContext.EnabledFeatures) {
this.Context.Output.WriteLine("{0}", feature);
}
setupContext.DatabaseTablePrefix));
}
}
}

View File

@@ -65,25 +65,6 @@ namespace Orchard.Setup.Controllers {
}
try {
// The vanilla Orchard distibution has the following features enabled.
string[] hardcoded = {
"Orchard.Framework",
"Common",
"Dashboard",
"Feeds",
"HomePage",
"Navigation",
"Scheduling",
"Settings",
"XmlRpc",
"Orchard.Users",
"Orchard.Roles",
"TinyMce",
"Orchard.Modules",
"Orchard.Themes",
"Orchard.Pages",
"Orchard.Blogs",
"Orchard.Comments"};
var setupContext = new SetupContext {
SiteName = model.SiteName,
@@ -92,7 +73,7 @@ namespace Orchard.Setup.Controllers {
DatabaseProvider = model.DatabaseOptions ? "SQLite" : "SqlServer",
DatabaseConnectionString = model.DatabaseConnectionString,
DatabaseTablePrefix = model.DatabaseTablePrefix,
EnabledFeatures = hardcoded
EnabledFeatures = null // default list
};
_setupService.Setup(setupContext);

View File

@@ -49,13 +49,40 @@ namespace Orchard.Setup.Services {
}
public void Setup(SetupContext context) {
// The vanilla Orchard distibution has the following features enabled.
if (context.EnabledFeatures == null || context.EnabledFeatures.Count() == 0) {
string[] hardcoded = {
"Orchard.Framework",
"Common",
"Dashboard",
"Feeds",
"HomePage",
"Navigation",
"Scheduling",
"Settings",
"XmlRpc",
"Orchard.Users",
"Orchard.Roles",
"TinyMce",
"Orchard.Modules",
"Orchard.Themes",
"Orchard.Pages",
"Orchard.Blogs",
"Orchard.Comments",
"Orchard.Tags",
"Orchard.Media",
"Futures.Widgets"};
context.EnabledFeatures = hardcoded;
}
var shellSettings = new ShellSettings(_shellSettings);
if (string.IsNullOrEmpty(shellSettings.DataProvider)) {
shellSettings.DataProvider = context.DatabaseProvider;
shellSettings.DataConnectionString = context.DatabaseConnectionString;
shellSettings.DataTablePrefix = context.DatabaseTablePrefix;
};
}
var shellDescriptor = new ShellDescriptor {
EnabledFeatures = context.EnabledFeatures.Select(name => new ShellFeature { Name = name })
@@ -113,8 +140,10 @@ namespace Orchard.Setup.Services {
page.As<BodyAspect>().Text = "<p>Welcome to Orchard!</p><p>Congratulations, you've successfully set-up your Orchard site.</p><p>This is the home page of your new site. We've taken the liberty to write here about a few things you could look at next in order to get familiar with the application. Once you feel confident you don't need this anymore, just click <a href=\"Admin/Pages/Edit/3\">Edit</a> to go into edit mode and replace this with whatever you want on your home page to make it your own.</p><p>One thing you could do (but you don't have to) is go into <a href=\"Admin/Settings\">Manage Settings</a> (follow the <a href=\"Admin\">Admin</a> link and then look for it under \"Settings\" in the menu on the left) and check that everything is configured the way you want.</p><p>You probably want to make the site your own. One of the ways you can do that is by clicking <a href=\"Admin/Themes\">Manage Themes</a> in the admin menu. A theme is a packaged look and feel that affects the whole site.</p><p>Next, you can start playing with the content types that we installed. For example, go ahead and click <a href=\"Admin/Pages/Create\">Add New Page</a> in the admin menu and create an \"about\" page. Then, add it to the navigation menu by going to <a href=\"Admin/Navigation\">Manage Menu</a>. You can also click <a href=\"Admin/Blogs/Create\">Add New Blog</a> and start posting by clicking \"Add New Post\".</p><p>Finally, Orchard has been designed to be extended. It comes with a few built-in modules such as pages and blogs or themes. You can install new themes by going to <a href=\"Admin/Themes\">Manage Themes</a> and clicking <a href=\"Admin/Themes/Install\">Install a new Theme</a>. Like for themes, modules are created by other users of Orchard just like you so if you feel up to it, please <a href=\"http://www.orchardproject.net/\">consider participating</a>.</p><p>--The Orchard Crew</p>";
page.As<RoutableAspect>().Slug = "home";
page.As<RoutableAspect>().Title = T("Home").ToString();
page.As<HasComments>().CommentsShown = false;
page.As<CommonAspect>().Owner = user;
if (page.Has<HasComments>()) {
page.As<HasComments>().CommentsShown = false;
}
contentManager.Publish(page);
siteSettings.Record.HomePage = "PageHomePageProvider;" + page.Id;