コード例 #1
0
        /// <summary>
        /// Gets the fields of a specific item version.
        /// </summary>
        /// <param name="itemDefinition">The item.</param>
        /// <param name="versionUri">The version URI.</param>
        /// <param name="context">The context.</param>
        /// <returns>Sitecore.Data.FieldList.</returns>
        public override FieldList GetItemFields(ItemDefinition itemDefinition, VersionUri versionUri, CallContext context)
        {
            if (!_setupComplete)
            {
                return(base.GetItemFields(itemDefinition, versionUri, context));
            }

            var fields = new FieldList();

            var sectionTable = SectionTable.ToList();//prevent "Collection was modified"
            var sectionInfo  = sectionTable.FirstOrDefault(x => x.SectionId == itemDefinition.ID);

            if (sectionInfo != null)
            {
                GetStandardFields(fields, sectionInfo.SectionSortOrder >= 0 ? sectionInfo.SectionSortOrder : 100);

                return(fields);
            }

            var fieldtable = FieldTable.ToList();//prevent "Collection was modified"
            var fieldInfo  = fieldtable.FirstOrDefault(x => x.FieldId == itemDefinition.ID);

            if (fieldInfo != null)
            {
                GetStandardFields(fields, fieldInfo.FieldSortOrder >= 0 ? fieldInfo.FieldSortOrder : 100);
                GetFieldFields(fieldInfo, fields);
                return(fields);
            }

            return(base.GetItemFields(itemDefinition, versionUri, context));
        }
コード例 #2
0
        /// <summary>
        /// Gets the parent ID of an item.
        /// </summary>
        /// <param name="itemDefinition">The item definition.</param>
        /// <param name="context">The context.</param>
        /// <returns>Sitecore.Data.ID.</returns>
        public override ID GetParentID(ItemDefinition itemDefinition, CallContext context)
        {
            if (!_setupComplete)
            {
                return(base.GetParentID(itemDefinition, context));
            }

            var sectionTable = SectionTable.ToList();//prevent "Collection was modified"
            var section      = sectionTable.FirstOrDefault(x => x.SectionId == itemDefinition.ID);

            if (section != null)
            {
                return(section.TemplateId);
            }

            var fieldtable = FieldTable.ToList();//prevent "Collection was modified"
            var field      = fieldtable.FirstOrDefault(x => x.FieldId == itemDefinition.ID);

            if (field != null)
            {
                return(field.SectionId);
            }

            return(base.GetParentID(itemDefinition, context));
        }
コード例 #3
0
        /// <summary>
        /// Gets the definition of an item.
        /// </summary>
        /// <param name="itemId">The item ID.</param>
        /// <param name="context">The context.</param>
        /// <returns>Sitecore.Data.ItemDefinition.</returns>
        public override ItemDefinition GetItemDefinition(ID itemId, CallContext context)
        {
            if (!_setupComplete)
            {
                return(base.GetItemDefinition(itemId, context));
            }

            var sectiontable = SectionTable.ToList();//prevent "Collection was modified"
            var section      = sectiontable.FirstOrDefault(x => x.SectionId == itemId);

            if (section != null)
            {
                return(new GlassItemDefinition(itemId, section.Name, SectionTemplateId, ID.Null));
            }

            var fieldtable = FieldTable.ToList();//prevent "Collection was modified"
            var field      = fieldtable.FirstOrDefault(x => x.FieldId == itemId);

            if (field != null)
            {
                return(new GlassItemDefinition(itemId, field.Name, FieldTemplateId, ID.Null));
            }

            return(base.GetItemDefinition(itemId, context));
        }