Making Href() tenant aware

This commit is contained in:
Sebastien Ros
2014-02-03 15:36:26 -08:00
parent e7d4626394
commit 10a0257f19
3 changed files with 18 additions and 9 deletions

View File

@@ -1,13 +1,11 @@
@using Orchard.Environment.Configuration
@model dynamic
@model dynamic
@{
var urlPrefix = WorkContext.Resolve<ShellSettings>().RequestUrlPrefix;
var siteName = WorkContext.CurrentSite.SiteName;
var siteLinkText = !string.IsNullOrWhiteSpace(siteName) ? siteName : T("Your site").Text;
var appLinkText = !string.IsNullOrWhiteSpace(siteName) ? siteName : T("Project Orchard").Text;
}
<div id="branding">
<div id="app">@Html.Link(appLinkText, Url.Content("~/" + urlPrefix))</div>
<div id="site">@Html.Link(siteLinkText, Url.Content("~/" + urlPrefix))</div>
<div id="app">@Html.Link(appLinkText, Href("~/"))</div>
<div id="site">@Html.Link(siteLinkText, Href("~/"))</div>
</div>

View File

@@ -1,4 +1 @@
@{
var homeUrl = Href("~/");
}
<h1 id="branding"><a href="@homeUrl">@WorkContext.CurrentSite.SiteName</a></h1>
<h1 id="branding"><a href="@Href("~/")">@WorkContext.CurrentSite.SiteName</a></h1>

View File

@@ -6,6 +6,7 @@ using System.Web.WebPages;
using Orchard.ContentManagement;
using Orchard.DisplayManagement;
using Orchard.DisplayManagement.Shapes;
using Orchard.Environment.Configuration;
using Orchard.Localization;
using Orchard.Mvc.Html;
using Orchard.Mvc.Spooling;
@@ -189,6 +190,19 @@ namespace Orchard.Mvc.ViewEngines.Razor {
return writer;
}
private string _tenantPrefix = null;
public override string Href(string path, params object[] pathParts) {
if (_tenantPrefix == null) {
_tenantPrefix = WorkContext.Resolve<ShellSettings>().RequestUrlPrefix ?? "";
}
if (!String.IsNullOrEmpty(_tenantPrefix)) {
return base.Href(path, new [] {_tenantPrefix }.Concat(pathParts).ToArray());
}
return base.Href(path, pathParts);
}
public IDisposable Capture(Action<IHtmlString> callback) {
return new CaptureScope(this, callback);
}