diff --git a/src/Orchard.Web/Core/Localization/Handlers/LocalizedHandler.cs b/src/Orchard.Web/Core/Localization/Handlers/LocalizedHandler.cs index 670e0e6f9..9a1ac701e 100644 --- a/src/Orchard.Web/Core/Localization/Handlers/LocalizedHandler.cs +++ b/src/Orchard.Web/Core/Localization/Handlers/LocalizedHandler.cs @@ -5,6 +5,7 @@ using Orchard.Localization; using Orchard.ContentManagement; using Orchard.ContentManagement.Handlers; using Orchard.Localization.Services; +using Orchard.Settings; namespace Orchard.Core.Localization.Handlers { [UsedImplicitly] @@ -22,6 +23,8 @@ namespace Orchard.Core.Localization.Handlers { OnActivated(InitializePart); OnLoaded(LazyLoadHandlers); + + OnIndexed((context, localized) => context.IndexDocument.Add("culture", localized.Culture != null ? localized.Culture.Culture : _cultureManager.GetSiteCulture()).Store(false).Analyze(false)); } public Localizer T { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Search/Services/SearchService.cs b/src/Orchard.Web/Modules/Orchard.Search/Services/SearchService.cs index 289cd57ba..8ee7cab2d 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Services/SearchService.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Services/SearchService.cs @@ -4,8 +4,10 @@ using System.Linq; using Orchard.Collections; using Orchard.Indexing; using Orchard.Localization; +using Orchard.Localization.Services; using Orchard.Search.Models; using Orchard.UI.Notify; +using System.Web; namespace Orchard.Search.Services { @@ -14,11 +16,13 @@ namespace Orchard.Search.Services private const string SearchIndexName = "Search"; private readonly IIndexManager _indexManager; private readonly IEnumerable _indexNotifierHandlers; + private readonly ICultureManager _cultureManager; - public SearchService(IOrchardServices services, IIndexManager indexManager, IEnumerable indexNotifierHandlers) { + public SearchService(IOrchardServices services, IIndexManager indexManager, IEnumerable indexNotifierHandlers, ICultureManager cultureManager) { Services = services; _indexManager = indexManager; _indexNotifierHandlers = indexNotifierHandlers; + _cultureManager = cultureManager; T = NullLocalizer.Instance; } @@ -37,6 +41,10 @@ namespace Orchard.Search.Services .WithField("title", query) .WithField("body", query); + if(HttpContext.Current != null) { + searchBuilder.WithField("culture", _cultureManager.GetCurrentCulture(HttpContext.Current)); + } + var totalCount = searchBuilder.Count(); if (pageSize != null) searchBuilder = searchBuilder