mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Moving initialization of UICulture Shape to a Event
This commit is contained in:
@@ -68,6 +68,7 @@
|
||||
<Compile Include="Controllers\AdminController.cs" />
|
||||
<Compile Include="Controllers\CutlureSelectorController.cs" />
|
||||
<Compile Include="Providers\CultureSelectorSelector.cs" />
|
||||
<Compile Include="Services\CultureSelectorFactory.cs" />
|
||||
<Compile Include="Services\DefaultCultureStorageProvider.cs" />
|
||||
<Compile Include="Services\ICultureService.cs" />
|
||||
<Compile Include="Drivers\LocalizationPartDriver.cs" />
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
using System.Web.Routing;
|
||||
using Orchard.DisplayManagement;
|
||||
using Orchard.DisplayManagement.Implementation;
|
||||
using Orchard.Environment.Extensions;
|
||||
using Orchard.UI.Admin;
|
||||
|
||||
namespace Orchard.Localization.Services {
|
||||
[OrchardFeature("Orchard.Localization.CutlureSelector")]
|
||||
public class AdminCultureSelectorFactory : ShapeDisplayEvents {
|
||||
private readonly WorkContext _workContext;
|
||||
|
||||
public AdminCultureSelectorFactory(
|
||||
IWorkContextAccessor workContextAccessor,
|
||||
IShapeFactory shapeFactory) {
|
||||
_workContext = workContextAccessor.GetContext();
|
||||
Shape = shapeFactory;
|
||||
}
|
||||
dynamic Shape { get; set; }
|
||||
|
||||
private bool IsActivable() {
|
||||
// activate on front-end only
|
||||
if (AdminFilter.IsApplied(new RequestContext(_workContext.HttpContext, new RouteData())))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void Displaying(ShapeDisplayingContext context) {
|
||||
context.ShapeMetadata.OnDisplaying(displayedContext => {
|
||||
if (IsActivable() && displayedContext.ShapeMetadata.Type == "Layout") {
|
||||
_workContext.Layout.Header.Add(Shape.UICultureSelector());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
@model dynamic
|
||||
@using Orchard.Environment.Descriptor.Models
|
||||
@using Orchard.Localization
|
||||
@using Orchard.Security;
|
||||
@using Orchard.DisplayManagement.Descriptors;
|
||||
@@ -29,10 +28,6 @@
|
||||
Model.Header.Add(Display.Header());
|
||||
|
||||
Model.Header.Add(Display.User(CurrentUser: WorkContext.CurrentUser));
|
||||
|
||||
var shellDescriptor = WorkContext.Resolve<ShellDescriptor>();
|
||||
if (shellDescriptor.Features.Any(x => x.Name == "Orchard.Localization.CutlureSelector")) { Model.Header.Add(Display.UICultureSelector()); }
|
||||
|
||||
Model.Footer.Add(Display.OrchardVersion());
|
||||
|
||||
if (Model.Title != null) {
|
||||
@@ -74,7 +69,7 @@
|
||||
}
|
||||
|
||||
@if (Model.Content != null) {
|
||||
<div id="content" class="group" dir="@Html.Directionality()">
|
||||
<div id="content" class="group">
|
||||
@Zone(Model.Content)
|
||||
</div>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user