Ejemplo n.º 1
0
        /// <summary>
        /// Load properties from xml
        /// </summary>
        /// <param name="element">The XElement object.</param>
        /// <param name="locale">The locale name.</param>
        public override void Load(XElement element, string locale = "")
        {
            base.Load(element, locale);
            this.FieldType = 7;

            //this.DefaultValue = element.StrAttr(DEFAULT);
            this.ListName = element.StrAttr("list");
            this.ViewName = element.StrAttr("view");
            this.FieldName = element.StrAttr("rel");
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of  the ViewFileTemplate class.
 /// </summary>
 /// <param name="element">The template data xml file.</param>
 public ViewFileTemplate(XElement element)
 {
     this.Title = element.Element("title") != null ? element.Element("title").Value : element.Value;
     this.Description = element.Element("desc") != null ? element.Element("desc").Value : "";
     this.Name = element.StrAttr("name");
     this.Icon = element.StrAttr("icon");
     if (element.Element("title") != null)
         this.ResKey = element.Element("title").StrAttr("resKey");
     if (element.Element("desc") != null)
         this.DescResKey = element.Element("desc").StrAttr("resKey");
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Overrided. Load properties from xml.
        /// </summary>
        /// <param name="element">The XElement object.</param>
        /// <param name="locale">The locale name.</param>
        public override void Load(XElement element, string locale = "")
        {
            base.Load(element, locale);
            this.FieldType = 1;

            //if (this.DefaultValue != null && !string.IsNullOrEmpty(this.DefaultValue.ToString()))
            this.DefaultValue = element.StrAttr(DEFAULT);

            //if (MinLength > 0)
            this.MinLength = element.IntAttr(MIN_LEN);

            //if (MaxLength > 0)
            this.MaxLength = element.IntAttr(MAX_LEN);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Overrided. Load properties from xml.
 /// </summary>
 /// <param name="element">The XElement object.</param>
 /// <param name="locale">The local name.</param>
 public override void Load(XElement element, string locale = "")
 {
     base.Load(element, locale);
     this.FieldType = (int)ContentFieldTypes.Video;
     this.DefaultValue = element.StrAttr(DEFAULT);
     this.Width = element.IntAttr(WIDTH);
     this.Height = element.IntAttr(HEIGHT);
     this.ThumbnailWidth = element.IntAttr("thumbWidth");
     this.ThumbnailHeight = element.IntAttr("thumbHeight");
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Load properties from xml.
        /// </summary>
        /// <param name="element">The XElement object</param>
        /// <param name="locale">The locale name.</param>
        public void Load(XElement element, string locale = "")
        {
            var _id = element.StrAttr(DataNames.ID);
            var ns = element.GetDefaultNamespace();
            if (!string.IsNullOrEmpty(_id))
            {
                Guid gid = Guid.Empty;
                if (Guid.TryParse(_id, out gid))
                    ID = gid;
            }

            if (this.ID == Guid.Empty || this.ID == null)
                this.ID = Guid.NewGuid();

            Privacy = element.IntAttr(DataNames.Privacy);
            Created = element.DateAttr(DataNames.Created);
            if (Created == DateTime.MinValue)
                Created = DateTime.Now;

            IsPublished = element.BoolAttr(DataNames.IsPublished);
            if (IsPublished)
            {
                Published = element.DateAttr(DataNames.Published);
                if (Published == DateTime.MinValue)
                    Published = DateTime.Now;
            }
            ModerateState = element.IntAttr(DataNames.State);
            EnableComments = element.BoolAttr(DataNames.EnableComments);
            Tags = element.StrAttr(DataNames.Tags);

            //Categories = element.StrAttr(DataNames.Categories);

            Path = element.StrAttr(DataNames.Path);
            Reads = element.IntAttr(DataNames.Reads);
            Ratings = (double)element.DecimalAttr(DataNames.Ratings);
            IsCurrentVersion = true;
            var parentID = element.StrAttr(DataNames.ParentID);
            if (!string.IsNullOrEmpty(parentID))
            {
                Guid gPID = Guid.Empty;
                if (Guid.TryParse(parentID, out gPID))
                    ParentItemID = gPID;
            }
            Pos = element.IntAttr(DataNames.Pos);
            Slug = element.StrAttr(DataNames.Slug);
            Modified = element.DateAttr(DataNames.Modified);
            RawData = element.Element(ns + "data").Value;

            if (RawData.StartsWith("data:text/xml;base64"))
            {
                RawData = element.Element(ns + "data").Value.Replace("data:text/xml;base64,", "");
                RawData = Encoding.UTF8.GetString(Convert.FromBase64String(RawData));
            }

            if (RawData.Contains(ContentList.DefaultNamespace))
                RawData = RawData.Replace(" xmlns=\"" + ContentList.DefaultNamespace + "\"", "");

            if (Modified == DateTime.MinValue)
                Modified = DateTime.Now;
        }
Ejemplo n.º 6
0
        private static void RenderColPattern(XElement element, TextWriter w, ContentListDecorator list)
        {
            var prop = element.StrAttr("prop");
            var name = element.StrAttr("name");
            if (!string.IsNullOrEmpty(prop) && !string.IsNullOrEmpty(name))
            {
                var field = list.Fields[name];
                if (field != null)
                {
                    if (prop.Equals("title") && !string.IsNullOrEmpty(field.Title))
                    {
                        w.Write(field.Title);
                        return;
                    }

                    if (prop.Equals("description") && !string.IsNullOrEmpty(field.Description))
                    {
                        w.Write(field.Description);
                        return;
                    }
                }
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Load field properties from xml.
        /// </summary>
        /// <param name="element">The XElement.</param>
        /// <param name="locale">The locale name.</param>
        public virtual void Load(XElement element, string locale = "")
        {
            this.Name = element.StrAttr(NAME);
            this.IsRequired = element.BoolAttr(REQUIRED);
            this.IsReadOnly = element.BoolAttr(READONLY);
            this.IsSlug = element.BoolAttr(SLUG);
            this.IsLinkToItem = element.BoolAttr(LINKTOITEM);
            this.HideInDisplayForm = element.BoolAttr(HIDEINDISP);
            this.HideInActForm = element.BoolAttr(HIDEINACT);
            this.HideInNewForm = element.BoolAttr(HIDEINNEW);
            this.HideInEditForm = element.BoolAttr(HIDEINEDIT);
            this.HideInView = element.BoolAttr(HIDEINVIEW);
            this.IsHidden = element.BoolAttr(HIDDEN);
            this.IsSortable = element.BoolAttr(SORTABLE);
            this.ItemProp = element.StrAttr(ITEM_PROP);
            this.ItemType = element.StrAttr(ITEM_TYPE);
            var ns = element.GetDefaultNamespace();
            this.ActivityTemplate = element.StrAttr(ACTTMPL);
            this.EditTemplate = element.StrAttr(EDITTMPL);
            this.NewTemplate = element.StrAttr(NEWTMPL);
            this.ViewTemplate = element.StrAttr(VIEWTMPL);
            this.DisplayTemplate = element.StrAttr(DISPTMPL);
            var title = element.ElementWithLocale(ns + TITLE, locale);
            var desc = element.ElementWithLocale(ns + DESC, locale);
            var placeHolder = element.ElementWithLocale(ns + PLACEHOLDER, locale);

            if (title == null)
                title = element.ElementWithLocale(ns + TITLE, "");

            if (desc == null)
                desc = element.ElementWithLocale(ns + DESC, "");

            if (placeHolder == null)
                placeHolder = element.ElementWithLocale(ns + PLACEHOLDER, "");

            if (title != null)
                this.Title = title.Value;

            if (desc != null)
                this.Description = desc.Value;

            if (placeHolder != null)
                this.Placeholder = placeHolder.Value;
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Overrided.Load proeprties from xml.
        /// </summary>
        /// <param name="element">The XElement object.</param>
        /// <param name="locale">The locale name.</param>
        public override void Load(XElement element, string locale = "")
        {
            base.Load(element, locale);
            this.FieldType = (int)ContentFieldTypes.User;
            this.DefaultValue = element.StrAttr(DEFAULT);
            var dispAsStr = element.StrAttr("dispAs");
            if (!string.IsNullOrEmpty(dispAsStr))
                this.DisplayStyle = (UserDisplayStyles)Enum.Parse(typeof(UserDisplayStyles), dispAsStr);

            if (this.ThumbnailWidth > 0)
                element.Add(new XAttribute("thumbWidth", this.ThumbnailWidth));

            if (this.ThumbnailHeight > 0)
                element.Add(new XAttribute("thumbHeight", this.ThumbnailHeight));
        }
Ejemplo n.º 9
0
        public virtual void Load(XElement element, string locale)
        {
            var ns = element.GetDefaultNamespace();
            this.IsAjax = element.BoolAttr(AJAX);
            this.FormType = (int)((ContentFormTypes)Enum.Parse(typeof(ContentFormTypes), element.StrAttr(TYPE)));
            this.Roles = element.StrAttr(DataNames.AccessRoles);

            //this.CaptionField = element.StrAttr(CAPTION_FIELD);
            //this.HideCaption = element.BoolAttr(HIDE_CAP);
            //this.ShowAuthor = element.BoolAttr(SHOW_AUTHOR);
            this.NoPage = element.BoolAttr(NOPAGE);
            var title = element.ElementWithLocale(ns + DataNames.Title, locale);
            var desc = element.ElementWithLocale(ns + DataNames.Description, locale);
            var tmpl = element.ElementWithLocale(ns + DataNames.Body, locale);

            //if (element.Attribute(ANONYMOUS) != null)
                this.AllowAnonymous = element.BoolAttr(ANONYMOUS);
            //else
                //this.AllowAnonymous = true;

            if (title==null)
                title=element.ElementWithLocale(ns + DataNames.Title, "");

            if (desc==null)
                desc=element.ElementWithLocale(ns + DataNames.Description, "");

            if (tmpl==null)
                tmpl = element.ElementWithLocale(ns + DataNames.Body, "");

            if (title != null)
                this.Title = title.Value;

            if (desc != null)
                this.Description = desc.Value;

            var fieldsEle = element.Element(ns + "fields");
            if (fieldsEle != null)
                FieldsXml = fieldsEle.OuterXml();
                    //string.Format("<fields>{0}</fields>", fieldsEle.InnerXml());

            if (tmpl != null)
                this.BodyTemplateXml = tmpl.OuterXml();

            #region style and scripts
            var scripts = element.ElementsWithLocale(ns + SCRIPT, locale);
            var styles = element.ElementsWithLocale(ns + STYLE_SHEET, locale);

            if (scripts == null || (scripts != null && scripts.Count() == 0))
                scripts = element.ElementsWithLocale(ns + SCRIPT, "");

            if (styles == null || (styles != null && styles.Count() == 0))
                styles = element.ElementsWithLocale(ns + STYLE_SHEET, "");

            if (scripts!=null && scripts.Count() > 0)
            {
                var scriptEl = new XElement("scripts", scripts);
                this.ScriptsXml = scriptEl.OuterXml();
            }

            if (styles!=null && styles.Count() > 0)
            {
                var styleEl = new XElement("styles", styles);
                this.StyleSheetsXml = styleEl.OuterXml();
            }
            #endregion
        }
Ejemplo n.º 10
0
        public override void Load(XElement element, string locale = "")
        {
            var ns = element.GetDefaultNamespace();

            base.Load(element, locale);
            this.FieldType = 6;
            var fieldRefs = element.Elements(ns+FIELDREF);
            if (fieldRefs != null && fieldRefs.Count() > 0)
                this.FieldRefs = fieldRefs.Select(f => f.StrAttr(NAME)).ToArray();

            var dispPattern = element.Element(ns+PATTERN);
            if (dispPattern != null)
                DispPattern = dispPattern.OuterXml();

            this.DefaultValue = element.StrAttr(DEFAULT);
        }
Ejemplo n.º 11
0
        public override void Load(XElement element, string locale = "")
        {
            base.Load(element, locale);
            FieldType = 9;
            var defaultDateStr = element.StrAttr(DEFAULT);
            if (!string.IsNullOrEmpty(defaultDateStr))
            {
                DateTime defaultDate=DateTime.MinValue;
                if (DateTime.TryParse(defaultDateStr, out defaultDate))
                    this.DefaultValue = defaultDate;
            }

            this.FormatString = element.StrAttr(FORMAT);
            this.ShowTime = element.BoolAttr(SHOW_TIME);
        }
Ejemplo n.º 12
0
 /// <summary>
 /// Create a field instance by specified xml element.
 /// </summary>
 /// <param name="element">The XElement object.</param>
 /// <param name="locale">The locale name.</param>
 /// <returns>A new field instance returns.</returns>
 public ContentField Create(XElement element, string locale = "")
 {
     var field = Create(element.StrAttr("type"));
     field.Load(element, locale);
     return field;
 }
Ejemplo n.º 13
0
        /// <summary>
        /// Load choice field property from xml element
        /// </summary>
        /// <param name="element">The xelement object.</param>
        /// <param name="locale">The locale name</param>
        public override void Load(XElement element, string locale = "")
        {
            var ns = element.GetDefaultNamespace();

            base.Load(element, locale);

            this.FieldType = 3;
            var chocieEle = element.Element(ns + CHOCIES);
            this.DefaultValue = element.StrAttr(DEFAULT);

            if (chocieEle != null)
            {
                this.FillInChoice = chocieEle.BoolAttr(FILL);
                this.AllowMultiChoice = chocieEle.BoolAttr(MULTIPLE);
                this.DropdownFormat = chocieEle.IntAttr(FORMAT);
                var options = chocieEle.Elements(ns + OPTION);

                if (options != null && options.Count() > 0)
                {
                    // this.Choices = new NameValueCollection();
                    var _choices = new List<string>();
                    foreach (var opt in options)
                    {
                        _choices.Add(opt.StrAttr(VALUE));
                    }

                    if (_choices.Count > 0)
                        this.Choices = string.Join(",", _choices.ToArray());
                    else
                        this.Choices = "";
                }
            }
        }
Ejemplo n.º 14
0
        public virtual void Load(XElement element, string locale = "")
        {
            var ns = element.GetDefaultNamespace();

            this.Name = element.StrAttr(NAME);
            this.IsDefault = element.BoolAttr(DEFAULT);
            this.Icon = element.StrAttr(ICON);
            this.IsHierarchy = element.BoolAttr(HIERARCHY);
            this.HideToolbar = element.BoolAttr(HIDE_TOOLBAR);
            this.Roles = element.StrAttr(ACCESS_ROLES);
            this.Sort = element.StrAttr(SORT);
            this.Filter = element.StrAttr(FILTER);
            var title = element.ElementWithLocale(ns + TITLE, locale);
            var desc = element.ElementWithLocale(ns + DESC, locale);
            var paging = element.Element(ns + PAGING);

            if (element.Attribute(ANONYMOUS) != null)
                this.AllowAnonymous = element.BoolAttr(ANONYMOUS);
            else
                this.AllowAnonymous = true;

            if (title == null)
                title = element.ElementWithLocale(ns + TITLE, "");

            if (desc == null)
                desc = element.ElementWithLocale(ns + DESC, "");

            if (title != null)
                this.Title = title.Value;

            if (desc != null)
                this.Description = desc.Value;

            if (paging != null)
            {
                this.PageIndex = paging.IntAttr(INDEX);
                this.PageSize = paging.IntAttr(SIZE);
                this.AllowPaging = paging.BoolAttr(ALLOW);
            }

            var fieldsEle = element.Element(ns + FIELDS);
            if (fieldsEle != null)
                FieldRefsXml = fieldsEle.OuterXml();
            //FieldRefsXml = string.Format("<fields>{0}</fields>", fieldsEle.InnerXml());

            var body = element.ElementWithLocale(ns + BODY, locale);

            if (body == null)
                body = element.ElementWithLocale(ns + BODY, "");

            if (body != null)
                this.BodyTemplateXml = body.OuterXml();

            var empty = element.ElementWithLocale(ns + EMPTY_PATTERN, locale);

            if (empty == null)
                element.ElementWithLocale(ns + EMPTY_PATTERN, "");

            if (empty != null)
                this.EmptyTemplateXml = empty.OuterXml();

            this.NoPage = element.BoolAttr(NOPAGE);

            #region style and scripts
            var scripts = element.ElementsWithLocale(ns + SCRIPT, locale);
            var styles = element.ElementsWithLocale(ns + STYLE_SHEET, locale);

            if (scripts == null || (scripts != null && scripts.Count() == 0))
                scripts = element.ElementsWithLocale(ns + SCRIPT, "");

            if (styles == null || (styles != null && styles.Count() == 0))
                styles = element.ElementsWithLocale(ns + STYLE_SHEET, "");

            if (scripts != null && scripts.Count() > 0)
            {
                var scriptEl = new XElement("scripts", scripts);
                this.ScriptsXml = scriptEl.OuterXml();
            }

            if (styles != null && styles.Count() > 0)
            {
                var styleEl = new XElement("styles", styles);
                this.StyleSheetsXml = styleEl.OuterXml();
            }
            #endregion
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Load properties from xelement object.
        /// </summary>
        /// <param name="element">The XElement object.</param>
        /// <param name="locale">The locale name.</param>
        public override void Load(XElement element, string locale = "")
        {
            base.Load(element, locale);

            this.FieldType = 8;

            this.DefaultValue = element.BoolAttr(DEFAULT);

            if (!string.IsNullOrEmpty(element.StrAttr(YESTEXT)))
                this.YesText = element.StrAttr(YESTEXT);

            if (!string.IsNullOrEmpty(element.StrAttr(NOTEXT)))
                this.NoText = element.StrAttr(NOTEXT);
        }
Ejemplo n.º 16
0
 /// <summary>
 /// Load file field from xml
 /// </summary>
 /// <param name="element"></param>
 /// <param name="locale"></param>
 public override void Load(XElement element, string locale = "")
 {
     base.Load(element, locale);
     this.FieldType = 11;
     this.DefaultValue = element.StrAttr(DEFAULT);
 }
Ejemplo n.º 17
0
        public virtual void Load(XElement element, string locale = "")
        {
            this.EnableVersioning = element.BoolAttr(VERSIONING);
            this.AllowComments = element.BoolAttr(ALLOW_COMMENTS);
            this.AllowAttachments = element.BoolAttr(ALLOW_ATTACHS);
            this.AllowVotes = element.BoolAttr(ALLOW_VOTES);
            this.AllowResharing = element.BoolAttr(ALLOW_RESHARING);
            this.AllowCategoriesAndTags = element.BoolAttr(ALLOW_CATE_TAGS);
            this.IsHierarchy = element.BoolAttr(HIERARCHY);
            this.IsModerated = element.BoolAttr(MODERATED);
            this.IsSingle = element.BoolAttr(SINGLE);
            this.IsSystem = element.BoolAttr(SYS);
            this.ItemType = element.StrAttr("itemtype");
            this.UID = element.StrAttr("id");
            this.Version = element.StrAttr("version");
            if (string.IsNullOrEmpty(Version))
                this.Version = "1.0.0";
            this.Master = element.StrAttr("master");

            this.IsActivity = element.BoolAttr(ACTIVITY);
            var ns = element.GetDefaultNamespace();
            var defaultLocale = element.StrAttr(DEFAULT_LOCALE);
            var targetLocale = locale.Equals(defaultLocale, StringComparison.OrdinalIgnoreCase) ? "" : locale;
            var title = element.ElementWithLocale(ns + TITLE, targetLocale);
            var desc = element.ElementWithLocale(ns + DESC, targetLocale);
            this.Locale = targetLocale;

            if (string.IsNullOrEmpty(targetLocale))
            {
                if (string.IsNullOrEmpty(this.Locale))
                    this.Locale = "en-US";

                string baseType = element.StrAttr(BASE);
                if (string.IsNullOrEmpty(baseType))
                {
                    this.BaseType = element.StrAttr(NAME);
                }
                else
                {
                    this.Name = element.StrAttr(NAME);
                    this.BaseType = element.StrAttr(BASE);
                }
            }

            if (title == null)
                title = element.ElementWithLocale(ns + TITLE, "");

            if (desc == null)
                desc = element.ElementWithLocale(ns + DESC, "");

            if (title != null)
                this.Title = title.Value;

            if (desc != null)
                this.Description = desc.Value;

            var factory = new DNA.Web.Contents.ContentFieldFactory();

            var fields = element.Elements(ns + FIELDS)
                                             .Elements(ns + FIELD)
                                             .Select(f =>
                                             {
                                                 var field = factory.Create(f, targetLocale);
                                                 field.Parent = this;
                                                 return field;
                                             });

            var fieldElements = new XElement(FIELDS, new XAttribute("xmlns", DefaultNamespace),
                fields.Select(f => f.Element()));

            this.FieldsXml = fieldElements.OuterXml();

            //this.FieldsXml = element.Element(ns + FIELDS).OuterXml();

            //Views
            var viewElements = element.Descendants(ns + "view");
            this.Views = new List<ContentView>();
            foreach (var viewEle in viewElements)
            {
                var v = new ContentView() { Parent = this };
                v.Load(viewEle, targetLocale);
                this.Views.Add(v);
            }

            //Forms
            this.Forms = new List<ContentForm>();
            var formElements = element.Descendants(ns + "form");
            this.Forms = new List<ContentForm>();
            foreach (var formEle in formElements)
            {
                var f = new ContentForm() { Parent = this };
                f.Load(formEle, targetLocale);
                this.Forms.Add(f);
            }

            //Items
            this.Items = new List<ContentDataItem>();
            var itemEles = element.Descendants(ns + "row");
            this.Items = new List<ContentDataItem>();
            foreach (var row in itemEles)
            {
                var r = new ContentDataItem() { Parent = this, Locale = this.Locale };
                r.Load(row);
                this.Items.Add(r);
            }
        }