mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-26 20:16:15 +08:00
Added version options to GetTermsForContentItem.
This allows to get only Published terms the driver's Display method and the Latest terms from the Editor method. Question to be answered: what about Exporting: should only Published terms be exported, Latest terms, or based on the "Published content only" checkbox on the Export screen?
This commit is contained in:
@@ -60,7 +60,7 @@ namespace Orchard.Taxonomies.Drivers {
|
||||
protected override DriverResult Editor(ContentPart part, TaxonomyField field, dynamic shapeHelper) {
|
||||
return ContentShape("Fields_TaxonomyField_Edit", GetDifferentiator(field, part), () => {
|
||||
var settings = field.PartFieldDefinition.Settings.GetModel<TaxonomyFieldSettings>();
|
||||
var appliedTerms = _taxonomyService.GetTermsForContentItem(part.ContentItem.Id, field.Name).Distinct(new TermPartComparer()).ToDictionary(t => t.Id, t => t);
|
||||
var appliedTerms = _taxonomyService.GetTermsForContentItem(part.ContentItem.Id, field.Name, VersionOptions.Latest).Distinct(new TermPartComparer()).ToDictionary(t => t.Id, t => t);
|
||||
var taxonomy = _taxonomyService.GetTaxonomyByName(settings.Taxonomy);
|
||||
var terms = taxonomy != null
|
||||
? _taxonomyService.GetTerms(taxonomy.Id).Where(t => !string.IsNullOrWhiteSpace(t.Name)).Select(t => t.CreateTermEntry()).ToList()
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace Orchard.Taxonomies.Services {
|
||||
|
||||
string GenerateTermTypeName(string taxonomyName);
|
||||
TermPart NewTerm(TaxonomyPart taxonomy);
|
||||
IEnumerable<TermPart> GetTermsForContentItem(int contentItemId, string field = null);
|
||||
IEnumerable<TermPart> GetTermsForContentItem(int contentItemId, string field = null, VersionOptions versionOptions = null);
|
||||
void UpdateTerms(ContentItem contentItem, IEnumerable<TermPart> terms, string field);
|
||||
IEnumerable<TermPart> GetParents(TermPart term);
|
||||
IEnumerable<TermPart> GetChildren(TermPart term);
|
||||
|
||||
@@ -157,12 +157,12 @@ namespace Orchard.Taxonomies.Services {
|
||||
.Where(x => x.Id == id).List().FirstOrDefault();
|
||||
}
|
||||
|
||||
public IEnumerable<TermPart> GetTermsForContentItem(int contentItemId, string field = null) {
|
||||
public IEnumerable<TermPart> GetTermsForContentItem(int contentItemId, string field = null, VersionOptions versionOptions = null) {
|
||||
var termIds = String.IsNullOrEmpty(field)
|
||||
? _termContentItemRepository.Fetch(x => x.TermsPartRecord.ContentItemRecord.Id == contentItemId).Select(t => t.TermRecord.Id).ToArray()
|
||||
: _termContentItemRepository.Fetch(x => x.TermsPartRecord.Id == contentItemId && x.Field == field).Select(t => t.TermRecord.Id).ToArray();
|
||||
|
||||
return _contentManager.GetMany<TermPart>(termIds, VersionOptions.Latest, QueryHints.Empty);
|
||||
return _contentManager.GetMany<TermPart>(termIds, versionOptions ?? VersionOptions.Published, QueryHints.Empty);
|
||||
}
|
||||
|
||||
public TermPart GetTermByName(int taxonomyId, string name) {
|
||||
|
||||
Reference in New Issue
Block a user