mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-04-05 21:01:35 +08:00
This commit is contained in:
parent
c34c00ef49
commit
3ad43bcf3f
@ -3,12 +3,14 @@ using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.DynamicForms.Elements;
|
||||
using Orchard.Environment.Extensions;
|
||||
using Orchard.Layouts.Framework.Display;
|
||||
using Orchard.Layouts.Framework.Drivers;
|
||||
using Orchard.Layouts.Helpers;
|
||||
using Orchard.Layouts.Services;
|
||||
using Orchard.Taxonomies.Models;
|
||||
using Orchard.Taxonomies.Services;
|
||||
using Orchard.Tokens;
|
||||
using DescribeContext = Orchard.Forms.Services.DescribeContext;
|
||||
@ -18,11 +20,13 @@ namespace Orchard.DynamicForms.Drivers {
|
||||
public class TaxonomyElementDriver : FormsElementDriver<Taxonomy> {
|
||||
private readonly ITaxonomyService _taxonomyService;
|
||||
private readonly ITokenizer _tokenizer;
|
||||
private readonly IContentManager _contentManager;
|
||||
|
||||
public TaxonomyElementDriver(IFormsBasedElementServices formsServices, ITaxonomyService taxonomyService, ITokenizer tokenizer)
|
||||
public TaxonomyElementDriver(IFormsBasedElementServices formsServices, ITaxonomyService taxonomyService, ITokenizer tokenizer, IContentManager contentManager)
|
||||
: base(formsServices) {
|
||||
_taxonomyService = taxonomyService;
|
||||
_tokenizer = tokenizer;
|
||||
_contentManager = contentManager;
|
||||
}
|
||||
|
||||
protected override EditorResult OnBuildEditor(Taxonomy element, ElementEditorContext context) {
|
||||
@ -146,6 +150,24 @@ namespace Orchard.DynamicForms.Drivers {
|
||||
context.ElementShape.Metadata.Alternates.Add(String.Format("Elements_{0}_{1}__{2}", typeName, displayType, element.InputType));
|
||||
}
|
||||
|
||||
protected override void OnExporting(Taxonomy element, ExportElementContext context) {
|
||||
var taxonomy = element.TaxonomyId != null ? _contentManager.Get<TaxonomyPart>(element.TaxonomyId.Value) : default(TaxonomyPart);
|
||||
var taxonomyIdentity = taxonomy != null ? _contentManager.GetItemMetadata(taxonomy).Identity.ToString() : default(string);
|
||||
|
||||
if (taxonomyIdentity != null)
|
||||
context.ExportableData["TaxonomyId"] = taxonomyIdentity;
|
||||
}
|
||||
|
||||
protected override void OnImportCompleted(Taxonomy element, ImportElementContext context) {
|
||||
var taxonomyIdentity = context.ExportableData.Get("TaxonomyId");
|
||||
var taxonomy = taxonomyIdentity != null ? context.Session.GetItemFromSession(taxonomyIdentity) : default(ContentManagement.ContentItem);
|
||||
|
||||
if (taxonomy == null)
|
||||
return;
|
||||
|
||||
element.TaxonomyId = taxonomy.Id;
|
||||
}
|
||||
|
||||
private IEnumerable<SelectListItem> GetTermOptions(Taxonomy element, string displayType, int? taxonomyId, IDictionary<string, object> tokenData) {
|
||||
var optionLabel = element.OptionLabel;
|
||||
var runtimeValues = GetRuntimeValues(element);
|
||||
|
Loading…
Reference in New Issue
Block a user