public dynamic MapContentToHighlightsItemViewModel(HighlightsItemPart itemPart) { var title = itemPart.ContentItem.As <TitlePart>(); dynamic body = itemPart.Fields.First(f => f.Name == "MediaText"); var mediaUrl = ""; try { var mediaContainerPart = itemPart.ContentItem.Parts.Where(w => w.Fields.SingleOrDefault(w1 => w1.GetType() == typeof(MediaLibraryPickerField)) != null).FirstOrDefault(); MediaLibraryPickerField mediafield = (MediaLibraryPickerField)mediaContainerPart.Fields.FirstOrDefault(w => w.GetType() == typeof(MediaLibraryPickerField)); mediaUrl = mediafield.MediaParts.ToList()[0].MediaUrl; } catch { } string displayUrl = ContentItemExtensions.ItemDisplayUrl(new UrlHelper(new RequestContext( new HttpContextWrapper(HttpContext.Current), new RouteData()), RouteTable.Routes), itemPart); var HLItem = new HighlightsItemViewModel { Title = title != null ? title.Title : "", TitleSize = itemPart.TitleSize, SubTitle = itemPart.Sottotitolo, Body = body != null ? body.Value : "", ItemOrder = itemPart.ItemOrder, LinkTarget = itemPart.LinkTarget, LinkUrl = itemPart.LinkUrl, LinkText = itemPart.LinkText, GroupShapeName = itemPart.GroupShapeName, MediaUrl = mediaUrl, Video = itemPart.Video, GroupDisplayTemplate = itemPart.GroupDisplayTemplate, GroupDisplayPlugin = itemPart.GroupDisplayPlugin, Content = itemPart.ContentItem }; return(HLItem); }
private bool CheckFlag(GDPRContentContext context, MediaLibraryPickerField fi) { var settings = fi.PartFieldDefinition.Settings.GetModel <MediaLibraryPickerFieldGDPRPartFieldSettings>(); return(context.Erase ? settings.AttemptToEraseItems : settings.AttemptToAnonymizeItems); }
public IList <dynamic> MapContentToHighlightsItemsViewModel(IEnumerable <ContentItem> queryItems, Enums.DisplayTemplate displayTemplate, string displayPlugin, ViewsInfos viewsInfos) { var order = 0; IList <dynamic> fromQueryItems = new List <dynamic>(); foreach (var queryItem in queryItems) { var title = queryItem.As <TitlePart>(); var body = queryItem.As <BodyPart>(); var bodyText = ""; if (body == null) { try { var mediaContainerPart = queryItem.Parts.Where(w => w.Fields.SingleOrDefault(w1 => w1.GetType() == typeof(TextField)) != null).FirstOrDefault(); TextField textfield = (TextField)mediaContainerPart.Fields.FirstOrDefault(w => w.GetType() == typeof(TextField)); bodyText = textfield.Value; } catch { } } else { bodyText = body.Text; } var mediaUrl = ""; try { var mediaContainerPart = queryItem.Parts.Where(w => w.Fields.SingleOrDefault(w1 => w1.GetType() == typeof(MediaLibraryPickerField)) != null && w.GetType() == typeof(ContentPart)).FirstOrDefault(); MediaLibraryPickerField mediafield = (MediaLibraryPickerField)mediaContainerPart.Fields.FirstOrDefault(w => w.GetType() == typeof(MediaLibraryPickerField)); mediaUrl = mediafield.MediaParts.ToList()[0].MediaUrl; } catch { } string displayUrl = ContentItemExtensions.ItemDisplayUrl(new UrlHelper(new RequestContext( new HttpContextWrapper(HttpContext.Current), new RouteData()), RouteTable.Routes), queryItem); var HLItem = new HighlightsItemViewModel { Title = title != null ? title.Title : "", TitleSize = "", Body = bodyText, ItemOrder = order, LinkTarget = Enums.LinkTargets._self, LinkUrl = displayUrl, GroupShapeName = viewsInfos.SuffixShapeName.Replace("_", ""), LinkText = T("Details").Text, MediaUrl = mediaUrl, Video = false, GroupDisplayTemplate = displayTemplate, GroupDisplayPlugin = displayPlugin, Content = queryItem }; fromQueryItems.Add(HLItem); order++; } return(fromQueryItems); }
protected override void Cloning(ContentPart part, MediaLibraryPickerField originalField, MediaLibraryPickerField cloneField, CloneContentContext context) { cloneField.Ids = originalField.Ids; }
/// <summary> /// esempio http://localhost/Laser.Orchard/expoincitta/api/Laser.Orchard.ContentExtension/Content?ContentType=User /// da richiamare come application/json e non come form /// </summary> /// <param name="ContentType"></param> /// <param name="Language"></param> /// <returns></returns> public dynamic Get(string ContentType, string Language = "it-IT") { ContentTypeDefinition contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(ContentType); if (contentTypeDefinition == null) { Response resp = new Response() { Success = false, Message = T("ContentType not exist").ToString(), ErrorCode = ErrorCode.Validation }; return(resp); } var eObj = new ExpandoObject() as IDictionary <string, Object>; #region Tutti i field foreach (ContentTypePartDefinition ctpd in contentTypeDefinition.Parts) { var fields = ctpd.PartDefinition.Fields.ToList(); string tipofield = ""; foreach (ContentPartFieldDefinition singleField in fields) { tipofield = singleField.FieldDefinition.Name; if (tipofield == typeof(TaxonomyField).Name) { #region Tassonomia in Lingua var taxobase = _taxonomyService.GetTaxonomyByName(singleField.Settings["TaxonomyFieldSettings.Taxonomy"]); int idmaster = taxobase.Id; if (taxobase.ContentItem.As <LocalizationPart>() != null) { if (((dynamic)taxobase.ContentItem).LocalizationPart.MasterContentItem != null) { idmaster = ((dynamic)taxobase.ContentItem).LocalizationPart.MasterContentItem.Id; } if (((dynamic)taxobase.ContentItem).LocalizationPart.Culture != null) { if (((dynamic)taxobase.ContentItem).LocalizationPart.Culture.Culture != Language) { taxobase = _taxonomyService.GetTaxonomies().Where(x => (x.Id == idmaster || (((dynamic)x.ContentItem).LocalizationPart.MasterContentItem != null && ((dynamic)x.ContentItem).LocalizationPart.MasterContentItem.Id == idmaster)) && ((dynamic)x.ContentItem).LocalizationPart.Culture.Culture == Language).FirstOrDefault(); } } } List <TermPart> cata = _taxonomyService.GetTerms(taxobase.Id).ToList();//.GetTermsForContentItem(currentUser.Id, singleField.Name).ToList(); List <string> ListCategory = new List <string>(); ListCategory = cata.Select(x => x.Id.ToString()).ToList(); List <ElementDetail> elements = new List <ElementDetail>(); foreach (var term in taxobase.Terms) { Int32?valore = term.Id; Int32?mediaid = null; try { MediaLibraryPickerField mpf = (MediaLibraryPickerField)(term.Fields.Where(x => x.FieldDefinition.Name == "MediaLibraryPickerField").FirstOrDefault()); mediaid = mpf.Ids[0]; } catch { } if (!term.Selectable) { valore = null; } if (term.FullPath == "/" + term.Id.ToString() || term.FullPath == term.Id.ToString()) { elements.Add(new ElementDetail() { Name = term.Name, Value = valore, ImageId = mediaid }); } else { Int32 idtermfather = Convert.ToInt32(term.FullPath.Split('/')[term.FullPath.Split('/').Length - 2]); FindTaxoVM(elements, idtermfather).Children.Add(new ElementDetail() { Name = term.Name, Value = valore, ImageId = mediaid }); } } ResponseElement re = new ResponseElement(); bool solofoglie = Convert.ToBoolean(singleField.Settings["TaxonomyFieldSettings.LeavesOnly"]); if (solofoglie) { ElementDetail TempElement = new ElementDetail(); //elemento fittizzio per procedura ricorsiva TempElement.Children = elements; AnnullaNonFoglie(TempElement); elements = TempElement.Children; } re.Values = elements; re.Setting = new ResponseSetting { Type = "Taxonomie", Required = Convert.ToBoolean(singleField.Settings["TaxonomyFieldSettings.Required"]), SingleChoice = Convert.ToBoolean(singleField.Settings["TaxonomyFieldSettings.SingleChoice"]) }; eObj.Add(ctpd.PartDefinition.Name + "." + singleField.Name, re); #endregion Tassonomia in Lingua } else if (tipofield == typeof(EnumerationField).Name) { string[] elencovalori = singleField.Settings["EnumerationFieldSettings.Options"].Split(new string[] { "\r\n" }, StringSplitOptions.None); List <string> elencoValoriInLingua = new List <string>(); List <ElementDetail> ele = new List <ElementDetail>(); foreach (string val in elencovalori) { ElementDetail tvm = new ElementDetail(); tvm.Value = val; tvm.Name = _localizedStringManager .GetLocalizedString(new string[] { "UserEnumeratore" }, val, Language) .Format; ele.Add(tvm); } ResponseElement re = new ResponseElement(); re.Values = ele; bool singlechoise = true; if (singleField.Settings["EnumerationFieldSettings.ListMode"] == "Listbox" || singleField.Settings["EnumerationFieldSettings.ListMode"] == "Checkbox") { singlechoise = false; } re.Setting = new ResponseSetting { Type = "Enumerator", Required = Convert.ToBoolean(singleField.Settings["EnumerationFieldSettings.Required"]), SingleChoice = singlechoise }; eObj.Add(ctpd.PartDefinition.Name + "." + singleField.Name, re); } } } #endregion Tutti i field return(Json(eObj)); }
private MediaPart MediaPart(MediaLibraryPickerField field) { var mediaId = field.Ids.FirstOrDefault(); return(_contentManager.Get <MediaPart>(mediaId)); }
private bool ShouldDetachPersonal(GDPRContentContext context, MediaLibraryPickerField field) { return(context.Erase ? Setting(field).DetachGDPRItemsOnErase : Setting(field).DetachGDPRItemsOnAnonymize); }
private int[] RemainingIds(MediaLibraryPickerField field, Func <ContentItem, bool> shouldRemain) { var items = _contentManager.GetMany <ContentItem>(field.Ids, VersionOptions.AllVersions, QueryHints.Empty); return(items.Where(shouldRemain).Select(ci => ci.Id).Distinct().ToArray()); }
private MediaLibraryPickerFieldGDPRPartFieldSettings Setting(MediaLibraryPickerField field) { return(field.PartFieldDefinition.Settings.GetModel <MediaLibraryPickerFieldGDPRPartFieldSettings>()); }