Exemple #1
0
        /// <summary>
        /// Create a Sublayout that supports the Rendering for the specified item
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public static Sublayout GetSublayoutForItem(Sitecore.Data.Items.Item item)
        {
            RenderingReference rendering =
                item.Visualization.GetRenderings(Sitecore.Context.Device, false).FirstOrDefault();

            if (null != rendering)
            {
                var sublayout = new Sublayout();

                sublayout.DataSource = item.ID.ToString();
                sublayout.Path       = rendering.RenderingItem.InnerItem["Path"];
                sublayout.Cacheable  = rendering.RenderingItem.Caching.Cacheable;

                // Copy cache settings
                if (rendering.RenderingItem.Caching.Cacheable)
                {
                    sublayout.VaryByData        = rendering.RenderingItem.Caching.VaryByData;
                    sublayout.VaryByDevice      = rendering.RenderingItem.Caching.VaryByDevice;
                    sublayout.VaryByLogin       = rendering.RenderingItem.Caching.VaryByLogin;
                    sublayout.VaryByParm        = rendering.RenderingItem.Caching.VaryByParm;
                    sublayout.VaryByQueryString = rendering.RenderingItem.Caching.VaryByQueryString;
                    sublayout.VaryByUser        = rendering.RenderingItem.Caching.VaryByUser;
                }

                return(sublayout);
            }

            return(null);
        }
Exemple #2
0
        public void GetRenderingParameters_UsingClassNoValue_ReturnsFieldWithValue()
        {
            //Arrange
            var templateId = ID.NewID;
            var targetId   = ID.NewID;
            var fieldName  = "StringField";

            using (Db database = new Db
            {
                new DbTemplate(templateId)
                {
                    { fieldName, "" }
                },
                new Sitecore.FakeDb.DbItem("Target", targetId, templateId),
            })
            {
                var resolver = Utilities.CreateStandardResolver();

                var context = Context.Create(resolver);
                var db      = database.Database;
                var control = new StubAbstractGlassUserControl(new WebFormsContext(new SitecoreService(db, context)));

                Sitecore.Context.Database = db;
                var sublayout = new Sublayout();
                sublayout.Parameters = string.Empty;

                sublayout.Controls.Add(control);

                //Act
                var result = control.GetRenderingParameters <GlassTestRenderingParameters>();

                //Act
                Assert.AreEqual(null, result);
            }
        }
        public void GetRenderingParameters_UsingInterfaceWithValue_ReturnsFieldWithValue()
        {
            //Arrange
            var templateId = new ID("{6C815B38-4D88-4F01-916D-8D7C6548005E}");
            var targetId   = ID.NewID;
            var fieldName  = "StringField";

            using (Db database = new Db
            {
                new DbTemplate(templateId)
                {
                    { fieldName, "" }
                },
                new Sitecore.FakeDb.DbItem("Target", targetId, templateId),
            })
            {
                var control  = new StubAbstractGlassUserControl();
                var resolver = Utilities.CreateStandardResolver();
                var context  = Context.Create(resolver);
                var db       = database.Database;

                Sitecore.Context.Database = db;
                control.SitecoreContext   = new SitecoreContext(context);
                var sublayout = new Sublayout();
                sublayout.Parameters = "StringField=efefefef";

                sublayout.Controls.Add(control);

                //Act
                var result = control.GetRenderingParameters <IGlassTestRenderingParameters>();

                //Act
                Assert.AreEqual("efefefef", result.StringField);
            }
        }
        private void BindSublayout(string path)
        {
            Sublayout sublayout = new Sublayout();

            sublayout.Path = path;
            phWhatsHappening.Controls.Add(sublayout);
        }
        /// <summary>
        /// This function is responsible for pulling the actual Rendering for current device that's loaded and
        /// essentially
        /// </summary>
        /// <param name="rootItem">The root item in which we need to get the child items to render.</param>
        /// <param name="placeholder">The place holder in which we want to place the child items into.</param>
        private void RenderChildItems(Item rootItem, PlaceHolder placeholder)
        {
            rootItem.GetChildren()
            .ToList()
            .ForEach(item =>
            {
                // We need to get the path of the actual Sublayout's path
                // First we need to get the device's rendering for this child item (assume the first returned rendering)
                RenderingReference renderingReference = item
                                                        .Visualization
                                                        .GetRenderings(Sitecore.Context.Device, false)
                                                        .First();

                // Now, get the actual sublayout item itself
                Item sublayoutItem = Sitecore.Context.Database
                                     .GetItem(renderingReference.RenderingID);

                // Create a new sublayout with the sublayout's path and data item path.
                Sublayout sublayout = new Sublayout
                {
                    Path       = sublayoutItem["Path"],
                    DataSource = item.Paths.Path
                };

                // now place this sublayout on the grid.
                placeholder.Controls.Add(sublayout);
            });
        }
Exemple #6
0
        /// <summary>
        /// Raises the <see cref="E:System.Web.UI.Page.PreInit"/> event at the beginning of page initialization.
        /// </summary>
        /// <param name="e">An <see cref="T:System.EventArgs"/> that contains the event data.</param>
        protected override void OnPreInit(EventArgs e)
        {
            base.OnPreInit(e);

              Item subLayuotItem;
              switch (this.Request.QueryString["mode"])
              {
            case "forgot":
              subLayuotItem = Sitecore.Context.Database.GetItem(IDs.ForgotPasswordSublayout);
              break;
            case "change":
              subLayuotItem = Sitecore.Context.Database.GetItem(IDs.ChangePasswordSublayout);
              break;
            default:
              subLayuotItem = Sitecore.Context.Database.GetItem(IDs.LoginSublayout);
              break;
              }

              if (subLayuotItem != null)
              {
            var sublayout = new Sublayout { DataSource = subLayuotItem["Datasource Location"] };
            sublayout.Controls.Add(this.Page.LoadControl(subLayuotItem["Path"]));

            this.MainPlaceholder.Controls.Add(sublayout);
              }
        }
        protected void rptExpertChat_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.IsItem())
            {
                BaseEventDetailPageItem item = e.Item.DataItem as BaseEventDetailPageItem;

                Sublayout slExpertChat = e.FindControlAs <Sublayout>("slExpertChat");
                slExpertChat.DataSource = item.ID.ToString();
            }
        }
Exemple #8
0
        void rptArticles_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.IsItem())
            {
                DefaultArticlePageItem item = (DefaultArticlePageItem)e.Item.DataItem;

                Sublayout sbArticleEntry = e.FindControlAs <Sublayout>("sbArticleEntry");
                sbArticleEntry.DataSource = item.ID.ToString();
            }
        }
Exemple #9
0
        void rptEvents_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.IsItem())
            {
                BaseEventDetailPageItem item = (BaseEventDetailPageItem)e.Item.DataItem;

                Sublayout slEventArchive = e.FindControlAs <Sublayout>("slEventArchive");
                slEventArchive.DataSource = item.ID.ToString();
            }
        }
Exemple #10
0
            /// <summary>
            /// Will return the Path to the datasource item of the sublayout.  Can then use GetItemByPath to get the item to display the details of the source.
            /// </summary>
            /// <param name="thisSublayout">Sublayout</param>
            /// <returns>string</returns>
            //string dataSource = SitecoreHelper.GetSublayoutDataSource(Parent as Sublayout);
            //Item calloutItem = SitecoreHelper.GetItemByPath(dataSource);
            public static string GetSublayoutDataSource(Sublayout thisSublayout)
            {
                string ds = "";

                if (thisSublayout != null)
                {
                    ds = thisSublayout.DataSource;
                }
                return(ds);
            }
 /// <summary>
 /// Using the sublayout, we can pull the actual data Item that we need to render.
 /// </summary>
 /// <param name="sublayout">The sublayout we want the data from</param>
 /// <returns>An Item, either the Page Meta-Data item or the actual data item for the template.</returns>
 private Item GetDataItemFromSublayout(Sublayout sublayout)
 {
     // if there's a Data Source, then that's the item we want,
     // otherwise it's most likely the Page Meta-Data folder we need to start rendering recursively
     return(!String.IsNullOrEmpty(sublayout.DataSource)
                         ? Sitecore.Context.Database
            .GetItem(sublayout.DataSource)
                         : Sitecore.Context.Item
            .Children
            .FirstOrDefault(item => item.Name == PAGE_META_DATA_FOLDER_NAME));
 }
Exemple #12
0
        void rptWidgets_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.IsItem())
            {
                Item item = (Item)e.Item.DataItem;

                Sublayout slWidget = e.FindControlAs <Sublayout>("slWidget");
                slWidget.DataSource = item.ID.ToString();

                slWidget.Path = ToolWidgetItem.GetWidgetSublayoutPath(item);
            }
        }
        protected void rptPatternList_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Item node = (Item)e.Item.DataItem;

                Sublayout currentPattern = (Sublayout)e.Item.FindControl("currentPattern");

                if (currentPattern != null)
                {
                    currentPattern.DataSource = node.Paths.FullPath;
                }
            }
        }
Exemple #14
0
            /// <summary>
            /// Will return the value of a parameter set in a sublayout in the presentation of an item
            /// </summary>
            /// <param name="key">parameter key</param>
            /// <param name="thisSublayout">Sublayout</param>
            /// <returns>the parameter value set in the presentation</returns>
            public static string GetSublayoutParameter(string key, Sublayout thisSublayout)
            {
                string value = String.Empty;

                string rawParameters = thisSublayout.Parameters; // Attributes["sc_parameters"]
                var    parameters    = Sitecore.Web.WebUtil.ParseUrlParameters(rawParameters);

                if (parameters[key] != null)
                {
                    value = parameters[key];
                }

                return(value);
            }
 /// <summary>
 /// Renders the configuration view.
 /// </summary>
 private void RenderConfigurationView()
 {
     if (this.myDataSourceItem == null)
     {
         this.myDataSourceItem = HealthIS.Apps.Util.createDatasourceItem("RSS Reader/RSS Feed", "SublayoutRSSFeedNewDataSource", "_RSS");
         if (this.myDataSourceItem == null)
         {
             ;
         }
     }
     else if (this.FeedSetting == null)
     {
         this.lblError.Text = "//TODO: render view that allows selection of feed settings item (data source)";
     }
     else
     {
         this.configItemName.Text              = this.FeedSetting.FeedItemTitle;
         this.fldFeedUrl.Item                  = this.FeedSetting.InnerItem;
         this.fldFeedCSSClass.Item             = this.FeedSetting.InnerItem;
         this.fldFeedItemCSSClass.Item         = this.FeedSetting.InnerItem;
         this.fldItemDescriptionCharLimit.Item = this.FeedSetting.InnerItem;
         this.fldNumberOfItems.Item            = this.FeedSetting.InnerItem;
         this.fldNumberOfImages.Item           = this.FeedSetting.InnerItem;
         this.fldFeedTitle.Item                = this.FeedSetting.InnerItem;
         this.cbShowFeedTitle.Checked          = this.FeedSetting.DisplayFeedTitle;
         this.cbShowTitleFirst.Checked         = this.FeedSetting.DisplayTitleFirst;
         this.cbShowFeedDesc.Checked           = this.FeedSetting.DisplayFeedDesc;
         Sublayout sublayout = (Sublayout)this.Parent;
         string    str1      = this.FeedSetting.InnerItem.ID.ToShortID().ToString();
         string    str2      = "";
         string    str3      = "";
         string    str4      = "";
         try
         {
             str2 = this.FeedSetting.InnerItem.Fields["display feed title"].ID.ToShortID().ToString();
             str3 = this.FeedSetting.InnerItem.Fields["display title first"].ID.ToShortID().ToString();
             str4 = this.FeedSetting.InnerItem.Fields["display feed description"].ID.ToShortID().ToString();
         }
         catch
         {
         }
         string str5 = this.FeedSetting.InnerItem.Language.ToString();
         string str6 = this.FeedSetting.InnerItem.Version.ToString();
         string str7 = this.FeedSetting.InnerItem[FieldIDs.Revision].Replace("-", string.Empty);
         this.cbShowFeedTitle.Attributes.Add("onclick", string.Format("var val = ''; if(this.checked) val='1';  var itemURI = new Sitecore.ItemUri('{0}','{1}','{2}','{3}');Sitecore.WebEdit.setFieldValue(itemURI,'{4}',val);", (object)str1, (object)str5, (object)str6, (object)str7, (object)str2, (object)sublayout.ClientID.ToString()));
         this.cbShowTitleFirst.Attributes.Add("onclick", string.Format("var val = ''; if(this.checked) val='1';  var itemURI = new Sitecore.ItemUri('{0}','{1}','{2}','{3}');Sitecore.WebEdit.setFieldValue(itemURI,'{4}',val);", (object)str1, (object)str5, (object)str6, (object)str7, (object)str3, (object)sublayout.ClientID.ToString()));
         this.cbShowFeedDesc.Attributes.Add("onclick", string.Format("var val = ''; if(this.checked) val='1';  var itemURI = new Sitecore.ItemUri('{0}','{1}','{2}','{3}');Sitecore.WebEdit.setFieldValue(itemURI,'{4}',val);", (object)str1, (object)str5, (object)str6, (object)str7, (object)str4, (object)sublayout.ClientID.ToString()));
     }
 }
        public void GetRenderingParameters_SingleLevelSubLayout_ReturnsParameters()
        {
            //Arrange
            var parameters = "afeafaefaef";
            var sublayout  = new Sublayout();

            sublayout.Parameters = parameters;
            var renderingContext = new RenderingContextUserControlWrapper(sublayout);

            //Act
            var result = renderingContext.GetRenderingParameters();

            //Assert
            Assert.AreEqual(parameters, result);
        }
        public static Control GetControl(Guid sublayoutId, Item currentItem)
        {
            Guard.AssertThat(sublayoutId != null && sublayoutId != Guid.Empty, "SublayoutId cannot be an empty Guid");
            Guard.AssertThat(currentItem != null, "Cannot get sublayout for a null item");

            var sublayoutItem = GetSublayoutItem(sublayoutId);
            if (sublayoutItem != null)
            {
                var sublayout = new Sublayout();
                sublayout.Path = sublayoutItem.FilePath;
                sublayout.DataSource = currentItem.Paths.FullPath;
                return sublayout.GetUserControl();
            }
            return null;
        }
        public static Control GetControl(Guid sublayoutId, Item currentItem)
        {
            Guard.AssertThat(sublayoutId != null && sublayoutId != Guid.Empty, "SublayoutId cannot be an empty Guid");
            Guard.AssertThat(currentItem != null, "Cannot get sublayout for a null item");

            var sublayoutItem = GetSublayoutItem(sublayoutId);

            if (sublayoutItem != null)
            {
                var sublayout = new Sublayout();
                sublayout.Path       = sublayoutItem.FilePath;
                sublayout.DataSource = currentItem.Paths.FullPath;
                return(sublayout.GetUserControl());
            }
            return(null);
        }
Exemple #19
0
        internal static Item GetDataSourceItem(this Sublayout sublayout)
        {
            String dataSource = sublayout.DataSource;

            if (String.IsNullOrEmpty(dataSource))
            {
                return(null);
            }

            if (IsDataSourceQuery(dataSource))
            {
                return(GetDataSourceItemByQuery(dataSource));
            }

            return(Context.Database != null?Context.Database.GetItem(dataSource) : null);
        }
        /// <summary>
        /// When we initialize the page, we essentially need to grab this item's presentation and model layers.
        /// </summary>
        /// <param name="e">Event Args</param>
        /// <exception cref="NullReferenceException">Error is thrown when the Page Meta-Data item couldn't be found.</exception>
        protected override void OnInit(EventArgs e)
        {
            // call our base first
            base.OnInit(e);

            // We need to get the sublayout, it's the Parent item of this UserControl instance
            Sublayout sublayout = Parent as Sublayout;

            // if this isn't a Sublayout, we don't do anything, something probably happened that shouldn't.
            if (sublayout == null)
            {
                throw new NullReferenceException(string.Format(SUBLAYOUT_IS_NULL_EXCEPTION_MESSAGE));
            }

            // Get our data item from the sublayout
            DataItem = GetDataItemFromSublayout(sublayout);
        }
        public void GetRenderingParameters_MultiLevelSubLayout_ReturnsParameters()
        {
            //Arrange
            var parameters = "afeafaefaef";
            var sublayout  = new Sublayout();

            sublayout.Parameters = parameters;
            var control = new HtmlGenericControl();

            sublayout.Controls.Add(control);

            var renderingContext = new RenderingContextUserControlWrapper(control);


            //Act
            var result = renderingContext.GetRenderingParameters();

            //Assert
            Assert.AreEqual(parameters, result);
        }
        public void GetRenderingParameters_UsingInterfaceWithValue_ReturnsFieldWithValue()
        {
            //Arrange
            var control = new StubAbstractGlassUserControl();
            var resolver = Utilities.CreateStandardResolver();
            var context = Context.Create(resolver);
            var db = Sitecore.Configuration.Factory.GetDatabase("master");

            Sitecore.Context.Database = db;
            control.SitecoreContext = new SitecoreContext(context);
            var sublayout = new Sublayout();
            sublayout.Parameters = "StringField=efefefef";

            sublayout.Controls.Add(control);

            //Act
            var result = control.GetRenderingParameters<IGlassTestRenderingParameters>();

            //Act
            Assert.AreEqual("efefefef", result.StringField);
        }
Exemple #23
0
        public void GetRenderingParameters_UsingInterfaceNoValue_ReturnsFieldWithValue()
        {
            //Arrange
            var control  = new StubAbstractGlassUserControl();
            var resolver = Utilities.CreateStandardResolver();
            var context  = Context.Create(resolver);
            var db       = Sitecore.Configuration.Factory.GetDatabase("master");

            Sitecore.Context.Database = db;
            control.SitecoreContext   = new SitecoreContext(context);
            var sublayout = new Sublayout();

            sublayout.Parameters = string.Empty;

            sublayout.Controls.Add(control);

            //Act
            var result = control.GetRenderingParameters <IGlassTestRenderingParameters>();

            //Act
            Assert.AreEqual(null, result);
        }
        void rptWidgets_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.IsItem())
            {
                Item item = (Item)e.Item.DataItem;

                Sublayout   slWidget           = e.FindControlAs <Sublayout>("slWidget");
                PlaceHolder phToolWrapperStart = e.FindControlAs <PlaceHolder>("phToolWrapperStart");
                PlaceHolder phToolWrapperEnd   = e.FindControlAs <PlaceHolder>("phToolWrapperEnd");

                slWidget.DataSource = item.ID.ToString();

                if (item.InheritsTemplate(ToolWidgetItem.TemplateId))
                {
                    phToolWrapperStart.Visible = phToolWrapperEnd.Visible = true;
                    slWidget.Path = ToolWidgetItem.GetWidgetSublayoutPath(item);
                }
                else if (item.InheritsTemplate(UpcomingEventWidgetItem.TemplateId))
                {
                    slWidget.Path = String.Concat(baseWidgetPath, "UpcomingEvent.ascx");
                }
            }
        }
        public void GetRenderingParameters_UsingInterfaceWithValue_ReturnsFieldWithValue()
        {
            //Arrange
            var templateId = new ID("{6C815B38-4D88-4F01-916D-8D7C6548005E}");
            var targetId = ID.NewID;
            var fieldName = "StringField";

            using (Db database = new Db
            {
                new DbTemplate(templateId)
                {
                    {fieldName, ""}
                },
                new Sitecore.FakeDb.DbItem("Target", targetId, templateId),

            })
            {
                var control = new StubAbstractGlassUserControl();
                var resolver = Utilities.CreateStandardResolver();
                var context = Context.Create(resolver);
                var db = database.Database;

                Sitecore.Context.Database = db;
                control.SitecoreContext = new SitecoreContext(context);
                var sublayout = new Sublayout();
                sublayout.Parameters = "StringField=efefefef";

                sublayout.Controls.Add(control);

                //Act
                var result = control.GetRenderingParameters<IGlassTestRenderingParameters>();

                //Act
                Assert.AreEqual("efefefef", result.StringField);
            }
        }
Exemple #26
0
        internal static Item GetDataSourceItem(this UserControl control)
        {
            Sublayout sublayout = GetSublayout(control);

            return(sublayout != null?sublayout.GetDataSourceItem() : null);
        }
 /// <summary>
 /// Using the sublayout, we can pull the actual data Item that we need to render.
 /// </summary>
 /// <param name="sublayout">The sublayout we want the data from</param>
 /// <returns>An Item, either the Page Meta-Data item or the actual data item for the template.</returns>
 private Item GetDataItemFromSublayout(Sublayout sublayout)
 {
     // if there's a Data Source, then that's the item we want,
     // otherwise it's most likely the Page Meta-Data folder we need to start rendering recursively
     return !String.IsNullOrEmpty(sublayout.DataSource)
            	? Sitecore.Context.Database
            	  	.GetItem(sublayout.DataSource)
            	: Sitecore.Context.Item
            	  	.Children
            	  	.FirstOrDefault(item => item.Name == PAGE_META_DATA_FOLDER_NAME);
 }
        /// <summary>
        /// This function is responsible for pulling the actual Rendering for current device that's loaded and
        /// essentially 
        /// </summary>
        /// <param name="rootItem">The root item in which we need to get the child items to render.</param>
        /// <param name="placeholder">The place holder in which we want to place the child items into.</param>
        private void RenderChildItems(Item rootItem, PlaceHolder placeholder)
        {
            rootItem.GetChildren()
                .ToList()
                .ForEach(item =>
                {
                    // We need to get the path of the actual Sublayout's path
                    // First we need to get the device's rendering for this child item (assume the first returned rendering)
                    RenderingReference renderingReference = item
                        .Visualization
                        .GetRenderings(Sitecore.Context.Device, false)
                        .First();

                    // Now, get the actual sublayout item itself
                    Item sublayoutItem = Sitecore.Context.Database
                        .GetItem(renderingReference.RenderingID);

                    // Create a new sublayout with the sublayout's path and data item path.
                    Sublayout sublayout = new Sublayout
                    {
                        Path = sublayoutItem["Path"],
                        DataSource = item.Paths.Path
                    };

                    // now place this sublayout on the grid.
                    placeholder.Controls.Add(sublayout);
                });
        }
 public static RenderingReference GetRenderingItem(Sublayout sublayout)
 {
     var renderings = Sitecore.Context.Item.Visualization.GetRenderings(Sitecore.Context.Device, true);
     return renderings.FirstOrDefault(r => r.RenderingItem.InnerItem["Path"] == sublayout.Path);
 }
 private void BindSublayout(string path)
 {
     Sublayout sublayout = new Sublayout();
     sublayout.Path = path;
     phWhatsHappening.Controls.Add(sublayout);
 }
        public void GetRenderingParameters_UsingClassNoValue_ReturnsFieldWithValue()
        {
            //Arrange
            var templateId = ID.NewID;
            var targetId = ID.NewID;
            var fieldName = "StringField";

            using (Db database = new Db
            {
                new DbTemplate(templateId)
                {
                    {fieldName, ""}
                },
                new Sitecore.FakeDb.DbItem("Target", targetId, templateId),

            })
            {
                var control = new StubAbstractGlassUserControl();
                var resolver = Utilities.CreateStandardResolver();
                var context = Context.Create(resolver);
                var db = database.Database;

                Sitecore.Context.Database = db;
                control.SitecoreContext = new SitecoreContext(context);
                var sublayout = new Sublayout();
                sublayout.Parameters = string.Empty;

                sublayout.Controls.Add(control);

                //Act
                var result = control.GetRenderingParameters<GlassTestRenderingParameters>();

                //Act
                Assert.AreEqual(null, result);
            }
        }
Exemple #32
0
        /// <summary>
        /// Create a Sublayout that supports the Rendering for the specified item
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public static Sublayout GetSublayoutForItem(Sitecore.Data.Items.Item item)
        {
            RenderingReference rendering =
                item.Visualization.GetRenderings(Sitecore.Context.Device, false).FirstOrDefault();
            if (null != rendering)
            {
                var sublayout = new Sublayout();

                sublayout.DataSource = item.ID.ToString();
                sublayout.Path = rendering.RenderingItem.InnerItem["Path"];
                sublayout.Cacheable = rendering.RenderingItem.Caching.Cacheable;

                // Copy cache settings
                if (rendering.RenderingItem.Caching.Cacheable)
                {
                    sublayout.VaryByData = rendering.RenderingItem.Caching.VaryByData;
                    sublayout.VaryByDevice = rendering.RenderingItem.Caching.VaryByDevice;
                    sublayout.VaryByLogin = rendering.RenderingItem.Caching.VaryByLogin;
                    sublayout.VaryByParm = rendering.RenderingItem.Caching.VaryByParm;
                    sublayout.VaryByQueryString = rendering.RenderingItem.Caching.VaryByQueryString;
                    sublayout.VaryByUser = rendering.RenderingItem.Caching.VaryByUser;
                }

                return sublayout;
            }

            return null;
        }
Exemple #33
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("web");

            Sublayout           sublayout           = Parent as Sublayout;
            NameValueCollection sublayoutParameters = Sitecore.Web.WebUtil.ParseUrlParameters(sublayout.Parameters);

            StringBuilder html         = new StringBuilder();
            string        path         = sublayoutParameters["Start URL"];
            string        onlyOneDepth = sublayoutParameters["Only One Depth"];
            //string path = "/sitecore/content/Home/medicine/animal_imaging_core";

            int count = path.Split('/').Length - 1;

            Sitecore.Data.Items.Item item = master.Items[path];


            if (item == null || String.IsNullOrEmpty(path) || count <= 4)
            {
                error.Text  = "<div>\"" + path + "\" has not been found. " + count + " </div>";
                error.Text += "<div>The path should start with /sitecore/content/Home/department/theItemYouWantToCall/</div>";
                return;
            }

            if (item.HasChildren)
            {
                foreach (Sitecore.Data.Items.Item i in item.Children)
                {
                    Sitecore.Data.Items.Item item2 = Sitecore.Context.Database.GetItem(Sitecore.Data.ID.Parse(i.ID));
                    if (item2 != null)
                    {
                        Sitecore.Data.Items.LayoutItem layoutItem = item2.Visualization.GetLayout(Sitecore.Context.Device);
                        if (layoutItem != null)
                        {
                            string newPath = i.Paths.Path.Replace("/sitecore/content/Home/", "http://health.usf.edu/");

                            html.Append("<tr>" +
                                        "<td class=\"confluenceTd\">" + i.DisplayName + "</td>" +
                                        "<td class=\"confluenceTd\"><a href=\"" + newPath + "\" class=\"external-link\" rel=\"nofollow\" target=\"_blank\">" + newPath + "</a></td>" +
                                        "<td class=\"confluenceTd\"></td>" +
                                        "<td class=\"confluenceTd\"></td>" +
                                        "<td class=\"confluenceTd\"></td>" +
                                        "<td class=\"confluenceTd\"></td>" +
                                        "<td class=\"confluenceTd\"></td>" +
                                        "</tr>");
                        }
                    }

                    if (!String.IsNullOrEmpty(onlyOneDepth))
                    {
                        foreach (Sitecore.Data.Items.Item i2 in i.Children)
                        {
                            Sitecore.Data.Items.Item item3 = Sitecore.Context.Database.GetItem(Sitecore.Data.ID.Parse(i2.ID));
                            if (item3 != null)
                            {
                                Sitecore.Data.Items.LayoutItem layoutItem2 = item3.Visualization.GetLayout(Sitecore.Context.Device);
                                if (layoutItem2 != null)
                                {
                                    string newPath2 = i2.Paths.Path.Replace("/sitecore/content/Home/", "http://health.usf.edu/");

                                    html.Append("<tr>" +
                                                "<td class=\"confluenceTd\">" + i2.DisplayName + "</td>" +
                                                "<td class=\"confluenceTd\"><a href=\"" + newPath2 + "\" class=\"external-link\" rel=\"nofollow\" target=\"_blank\">" + newPath2 + "</a></td>" +
                                                "<td class=\"confluenceTd\"></td>" +
                                                "<td class=\"confluenceTd\"></td>" +
                                                "<td class=\"confluenceTd\"></td>" +
                                                "<td class=\"confluenceTd\"></td>" +
                                                "<td class=\"confluenceTd\"></td>" +
                                                "</tr>");
                                }

                                foreach (Sitecore.Data.Items.Item i3 in i2.Children)
                                {
                                    Sitecore.Data.Items.Item item4 = Sitecore.Context.Database.GetItem(Sitecore.Data.ID.Parse(i3.ID));
                                    if (item4 != null)
                                    {
                                        Sitecore.Data.Items.LayoutItem layoutItem3 = item4.Visualization.GetLayout(Sitecore.Context.Device);
                                        if (layoutItem3 != null)
                                        {
                                            string newPath3 = i3.Paths.Path.Replace("/sitecore/content/Home/", "http://health.usf.edu/");

                                            html.Append("<tr>" +
                                                        "<td class=\"confluenceTd\">" + i3.DisplayName + "</td>" +
                                                        "<td class=\"confluenceTd\"><a href=\"" + newPath3 + "\" class=\"external-link\" rel=\"nofollow\" target=\"_blank\">" + newPath3 + "</a></td>" +
                                                        "<td class=\"confluenceTd\"></td>" +
                                                        "<td class=\"confluenceTd\"></td>" +
                                                        "<td class=\"confluenceTd\"></td>" +
                                                        "<td class=\"confluenceTd\"></td>" +
                                                        "<td class=\"confluenceTd\"></td>" +
                                                        "</tr>");
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            lists.Text = html.ToString();
        }
 /// <summary>
 /// Renders the sublayout.
 ///
 /// </summary>
 /// <param name="output">The output.</param><param name="rendering">The rendering.</param><param name="renderingDefinition">The rendering definition.</param><param name="index">The index.</param>
 private void RenderSublayout(HtmlTextWriter output, Item rendering, RenderingDefinition renderingDefinition, int index)
 {
     Assert.ArgumentNotNull((object)output, "output");
     Assert.ArgumentNotNull((object)rendering, "rendering");
     Assert.ArgumentNotNull((object)renderingDefinition, "renderingDefinition");
     foreach (Control control in this.Controls)
     {
         Sublayout sublayout = control as Sublayout;
         if (sublayout != null && string.Compare(sublayout.Path, rendering["Path"], StringComparison.InvariantCulture) == 0)
         {
             output.Write("<table width=\"100%\" style=\"table-layout:fixed;background:#e2ebf8;border:1px solid #97b3e1;margin:3px 0px 0px 0px\" cellpadding=\"2\" cellspacing=\"0\" border=\"0\">");
             output.Write("<tr><td>");
             string str1 = rendering.DisplayName;
             if (rendering.ID == RenderingIDs.FieldRenderer)
             {
                 string @string = StringUtil.GetString(new string[1]
                 {
                     WebUtil.ParseQueryString(renderingDefinition.Parameters)["FieldName"]
                 });
                 if (!string.IsNullOrEmpty(@string))
                 {
                     TemplateFieldItem templateFieldItem = (TemplateFieldItem)rendering.Database.GetItem(@string);
                     if (templateFieldItem != null)
                     {
                         str1 = "\"" + StringUtil.GetString(new string[2]
                         {
                             templateFieldItem.Title,
                             templateFieldItem.Name
                         }) + "\" " + Translate.Text("Field");
                     }
                     else
                     {
                         str1 = Translate.Text("[unknown field]");
                     }
                 }
                 else
                 {
                     str1 = Translate.Text("[unknown field]");
                 }
             }
             string str2            = string.Empty;
             string qualifiedKey    = this.GetQualifiedKey();
             Item   placeholderItem = Sitecore.Context.Page.GetPlaceholderItem(this, Sitecore.Context.Database);
             if (placeholderItem != null)
             {
                 str2 = placeholderItem["Allowed Controls"];
             }
             string str3 = "javascript:return window.parent.scForm.postEvent(this,event,'pagedesigner:editplaceholder(placeholdername=" + (object)qualifiedKey + ",allowedrenderings=" + str2 + ",index=" + (string)(object)index + ")')";
             output.Write("<a href=\"#\" style=\"display:block;color:black;font:8pt tahoma;padding:2px 2px 0px 2px;text-decoration:none\" onclick=\"" + str3 + "\" onmouseover=\"javascript:this.style.textDecoration='underline'\" onmouseout=\"javascript:this.style.textDecoration='none'\">");
             output.Write(ItemTileService.RenderTile(rendering, TileView.IconOnly, ImageDimension.id16x16));
             output.Write(' ');
             output.Write(str1);
             output.Write("</a>");
             output.Write("</td></tr>");
             output.Write("<tr><td>");
             ((Control)sublayout).RenderControl(output);
             output.Write("</td></tr></table>");
             break;
         }
     }
 }
Exemple #35
0
 public static NameValueCollection ParameterList(this Sublayout s)
 {
     return(Sitecore.Web.WebUtil.ParseUrlParameters(s.Parameters));
 }