mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-01-09 11:21:04 +08:00
@@ -1,6 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Orchard.ContentManagement.Utilities;
|
||||
using Orchard.Taxonomies.Fields;
|
||||
using Orchard.Taxonomies.Models;
|
||||
using Orchard.Taxonomies.Services;
|
||||
@@ -49,16 +49,23 @@ namespace Orchard.Taxonomies.Handlers {
|
||||
}
|
||||
|
||||
private void InitializerTermsLoader(TermsPart part) {
|
||||
foreach (var field in part.ContentItem.Parts.SelectMany(p => p.Fields).OfType<TaxonomyField>()) {
|
||||
var tempField = field.Name;
|
||||
var fieldTermRecordIds = part.Record.Terms.Where(t => t.Field == tempField).Select(tci => tci.TermRecord.Id);
|
||||
field.TermsField.Loader(value => fieldTermRecordIds.Select(id => _contentManager.Get<TermPart>(id)).ToList());
|
||||
}
|
||||
if (part._termParts != null) {
|
||||
return;
|
||||
}
|
||||
|
||||
part._termParts.Loader(value =>
|
||||
part.Terms.Select(
|
||||
x => new TermContentItemPart { Field = x.Field, TermPart = _contentManager.Get<TermPart>(x.TermRecord.Id) }
|
||||
));
|
||||
foreach (var field in part.ContentItem.Parts.SelectMany(p => p.Fields).OfType<TaxonomyField>()) {
|
||||
var tempField = field.Name;
|
||||
field.TermsField.Loader(value => {
|
||||
var fieldTermRecordIds = part.Record.Terms.Where(t => t.Field == tempField).Select(tci => tci.TermRecord.Id);
|
||||
return fieldTermRecordIds.Select(id => _contentManager.Get<TermPart>(id)).ToList();
|
||||
});
|
||||
}
|
||||
|
||||
part._termParts = new LazyField<IEnumerable<TermContentItemPart>>();
|
||||
part._termParts.Loader(value =>
|
||||
part.Terms.Select(
|
||||
x => new TermContentItemPart { Field = x.Field, TermPart = _contentManager.Get<TermPart>(x.TermRecord.Id) }
|
||||
));
|
||||
}
|
||||
|
||||
// Retrieve the number of associated content items, for the whole hierarchy
|
||||
|
||||
Reference in New Issue
Block a user