コード例 #1
0
        public List <ContentFieldViewModel> GetFields(ApiCall call)
        {
            Guid FolderId = call.GetGuidValue("FolderId");

            if (FolderId != default(Guid))
            {
                var contenttype = call.WebSite.SiteDb().ContentTypes.GetByFolder(FolderId);
                List <ContentFieldViewModel> result = new List <ContentFieldViewModel>();

                foreach (var item in contenttype.Properties)
                {
                    if (item.Editable)
                    {
                        ContentFieldViewModel model = new ContentFieldViewModel();
                        model.Name        = item.Name;
                        model.Validations = item.Validations;
                        model.ControlType = item.ControlType;
                        model.ToolTip     = item.Tooltip;
                        model.Order       = item.Order;
                        // model.Value = content.GetValue(item.Name);
                        model.IsMultilingual   = item.MultipleLanguage;
                        model.MultipleValue    = item.MultipleValue;
                        model.selectionOptions = item.selectionOptions;
                        result.Add(model);
                    }
                }
                return(result);
            }
            return(null);
        }
コード例 #2
0
        private List <ContentFieldViewModel> GetProperties(ApiCall call, Guid FolderId)
        {
            var culture = call.WebSite.DefaultCulture;

            List <ContentFieldViewModel> result = new List <ContentFieldViewModel>();
            var contenttype = call.WebSite.SiteDb().ContentTypes.GetByFolder(FolderId);

            bool        online         = true;
            TextContent textcontentnew = null;

            if (call.ObjectId != default(Guid))
            {
                textcontentnew = call.WebSite.SiteDb().TextContent.Get(call.ObjectId);
                online         = textcontentnew.Online;
            }

            if (textcontentnew == null)
            {
                foreach (var item in contenttype.Properties)
                {
                    if (item.Editable)
                    {
                        ContentFieldViewModel model = new ContentFieldViewModel();
                        model.Name        = item.Name;
                        model.DisplayName = item.DisplayName;
                        model.Validations = item.Validations;
                        model.ControlType = item.ControlType;
                        model.ToolTip     = item.Tooltip;
                        model.Order       = item.Order;

                        if (item.MultipleLanguage)
                        {
                            foreach (var cultureitem in call.WebSite.Culture.Keys.ToList())
                            {
                                model.Values.Add(cultureitem, "");
                            }
                        }
                        else
                        {
                            if (item.DataType == Data.Definition.DataTypes.Bool)
                            {
                                model.Values.Add(call.WebSite.DefaultCulture, "true");
                            }
                            else
                            {
                                model.Values.Add(call.WebSite.DefaultCulture, "");
                            }
                        }
                        model.IsMultilingual   = item.MultipleLanguage;
                        model.selectionOptions = item.selectionOptions;
                        model.MultipleValue    = item.MultipleValue;

                        result.Add(model);
                    }
                }
            }
            else
            {
                foreach (var item in contenttype.Properties)
                {
                    if (item.Editable)
                    {
                        ContentFieldViewModel model = new ContentFieldViewModel();
                        model.Name             = item.Name;
                        model.Validations      = item.Validations;
                        model.ControlType      = item.ControlType;
                        model.DisplayName      = item.DisplayName;
                        model.IsMultilingual   = item.MultipleLanguage;
                        model.ToolTip          = item.Tooltip;
                        model.Order            = item.Order;
                        model.selectionOptions = item.selectionOptions;
                        model.MultipleValue    = item.MultipleValue;

                        if (item.MultipleLanguage)
                        {
                            foreach (var lang in textcontentnew.Contents)
                            {
                                var itemvalue = textcontentnew.GetValue(model.Name, lang.Lang);
                                model.Values[lang.Lang] = itemvalue != null?itemvalue.ToString() : string.Empty;
                            }
                            foreach (var sitelang in call.WebSite.Culture.Keys.ToList())
                            {
                                if (!model.Values.ContainsKey(sitelang))
                                {
                                    model.Values.Add(sitelang, "");
                                }
                            }
                        }
                        else
                        {
                            var itemvalue = textcontentnew.GetValue(model.Name, culture);
                            model.Values[culture] = itemvalue != null?itemvalue.ToString() : null;
                        }
                        result.Add(model);
                    }
                }
            }

            var onlineitem = result.Find(o => o.Name.ToLower() == "online");

            if (onlineitem != null)
            {
                result.Remove(onlineitem);

                onlineitem.ControlType = "boolean";
                result.Add(onlineitem);
            }

            return(result);
        }