Ejemplo n.º 1
0
        public static Item GetContextItem(this SiteContext site, ID derivedFromTemplateID)
        {
            if (site == null)
                throw new ArgumentNullException(nameof(site));

            var startItem = site.GetStartItem();
            return startItem?.GetAncestorOrSelfOfTemplate(derivedFromTemplateID);
        }
Ejemplo n.º 2
0
        public IEnumerable <SitemapModel> GetSitemapItems(SitemapDefinitionModel sitemapDefinition, SiteContext siteContext)
        {
            var sitemapitems = new List <SitemapModel>();
            var urlList      = new List <string>();

            var embedLanguage = sitemapDefinition.EmbedLanguage;
            var db            = Context.Database != null ? Context.Database : Factory.GetDatabase(Sitemap.Constants.WebDatabase);

            var urlOptions = UrlOptions.DefaultOptions;

            urlOptions.AlwaysIncludeServerUrl = true;

            urlOptions.LanguageEmbedding = embedLanguage ? LanguageEmbedding.Always : LanguageEmbedding.Never;

            var items = db.SelectItems($"fast:{siteContext.StartPath}//*")
                        .Where(i => IsSitemapItem(i, sitemapDefinition))
                        .ToList();

            var dynamicItems = this.GetDynamicWildcardItems(siteContext);

            items.AddRange(dynamicItems);

            var startItem = siteContext.GetStartItem();

            if (IsSitemapItem(startItem, sitemapDefinition))
            {
                items.Insert(0, startItem);
            }
            foreach (var item in items)
            {
                var regex = new Regex(@"(\/[A-Za-z0-9]\/)");
                var url   = LinkManager.GetItemUrl(item, urlOptions);
                url = regex.Replace(url, "/").ToLowerInvariant();
                if (urlList.Contains(url))
                {
                    continue;
                }

                urlList.Add(url);
                sitemapitems.Add(new SitemapModel
                {
                    Url          = url,
                    LastModified = item.Statistics.Updated
                });
            }
            return(sitemapitems);
        }
Ejemplo n.º 3
0
        public static Item GetTenantItem(this SiteContext site)
        {
            var startItem = site.GetStartItem();

            return(startItem?.Parent);
        }