public CustomAliases AliasesWindow(Item item)
        {
            var customAliases = new CustomAliases();

            customAliases.ItemId = item.ID;
            var selectedItemFullPath = item.Paths.FullPath;

            foreach (var site in Sites())
            {
                if (selectedItemFullPath.StartsWith(site.RootPath) || selectedItemFullPath.StartsWith(MultiSiteAliases.Constants.MediaPath))
                {
                    ProcessEachSite(item, customAliases, site.SiteName, site.AliasesPathId);
                }
            }


            return(customAliases);
        }
예제 #2
0
        private static void ProcessEachSite(Item item, CustomAliases customAliases, Sitecore.Sites.Site site, ID id)
        {
            var customAliasesFolderItem = Context.ContentDatabase.GetItem(id);

            if (customAliasesFolderItem != null)
            {
                //To Show in Multi List for user
                customAliases.AllSites.Add(new Sites()
                {
                    SiteName = site.Name, AliasesPathId = id
                });

                //To Show Aliases as same Url pattern
                var roothFullPath = customAliasesFolderItem.Paths.FullPath + MultiSiteAliases.Constants.ForwardSlash;

                var itemId = item.ID;
                foreach (var eachAliases in customAliasesFolderItem
                         .Axes.GetDescendants()
                         .Where(f => f.TemplateID == MultiSiteAliases.Constants.Template.AliasesTemplateId))
                {
                    LinkField lnkField = eachAliases.Fields[MultiSiteAliases.Constants.Fields.LinkedField];
                    if (lnkField?.TargetID == itemId)
                    {
                        var path = eachAliases.Paths.FullPath.Replace(roothFullPath, string.Empty);
                        //To Show as already Exists Entry
                        customAliases.AddedSites.Add(new Sites()
                        {
                            SiteName      = site.Name,
                            AliasesPathId = id,
                            AliasesName   = path,
                            AliasesItemId = eachAliases.ID
                        });
                    }
                }
            }
        }
예제 #3
0
        public CustomAliases AliasesWindow(Item item)
        {
            var customAliases = new CustomAliases();

            //ID itemId = new ID("{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}");//TODO: map from parameter

            customAliases.ItemId = item.ID;
            var selectedItemFullPath = item.Paths.FullPath;

            foreach (var site in Sitecore.Sites.SiteManager.GetSites())
            {
                var destination = site?.Properties[MultiSiteAliases.Constants.SiteProperties.SiteLevelAliases];
                if (!string.IsNullOrEmpty(destination) && ID.TryParse(destination, out ID id) && !id.IsNull && id.Guid != Guid.Empty)
                {
                    if (selectedItemFullPath.StartsWith(site.Properties[MultiSiteAliases.Constants.SiteProperties.RootPath]) ||
                        selectedItemFullPath.StartsWith(MultiSiteAliases.Constants.MediaPath))
                    {
                        ProcessEachSite(item, customAliases, site, id);
                    }
                }
            }

            return(customAliases);
        }