public void buildItem(HtmlTextWriter writer, Term term)
        {
            var navTerm = NavigationTerm.GetAsResolvedByWeb(term, Site.OpenWeb(),
                                                            StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider);

            buildItem(writer, navTerm);
        }
 /// <summary>
 /// Resolved a <see cref="NavigationTerm"/> object with the specified URL against the current site.
 /// If the specified URL resolves to a navigation term with catalog enabled, and there are remaining segments,
 /// <paramref name="matchedUrl"/> will be set to a friendly URL resolved from the navigation term without the excess segments.
 /// </summary>
 /// <param name="inputUrl">Input URL.</param>
 /// <param name="navigationTerm">Resolved <see cref="NavigationTerm"/> object if any; otherwise *null*.</param>
 /// <param name="matchedUrl">Resolved URL for the <see cref="NavigationTerm"/> object if any; otherwise *null*.</param>
 /// <returns>*true* if the specified URL resolves to a <see cref="NavigationTerm"/> object.</returns>
 public static bool TryGetNavigationTerm(string inputUrl, out NavigationTerm navigationTerm, out string matchedUrl)
 {
     CommonHelper.ConfirmNotNull(inputUrl, "inputUrl");
     if (SPContext.Current != null && !String.IsNullOrEmpty(inputUrl) && inputUrl[0] == '/')
     {
         int pathEndPos = inputUrl.IndexOfAny(new[] { '?', '#' });
         if (pathEndPos > 0)
         {
             inputUrl = inputUrl.Substring(0, pathEndPos);
         }
         SPSite currentSite = SPContext.Current.Site;
         while (inputUrl.Length > 0)
         {
             string[] segments;
             if (TaxonomyNavigation.TryParseFriendlyUrl(currentSite, inputUrl, out navigationTerm, out segments))
             {
                 matchedUrl = inputUrl;
                 return(true);
             }
             inputUrl = inputUrl.Substring(0, inputUrl.LastIndexOf('/'));
         }
     }
     navigationTerm = null;
     matchedUrl     = null;
     return(false);
 }
        public HtmlTextWriter buildItems(HtmlTextWriter writer, TermCollection terms)
        {
            //TermSet termSet = navTerms.GetTaxonomyTermSet();

            //if (navTerms.IsNavigationTermSet)
            if (terms.Count > 0)
            {
                Level++;

                foreach (var term in terms)
                {
                    try
                    {
                        var navTerm = NavigationTerm.GetAsResolvedByWeb(term, Site.OpenWeb(),
                                                                        StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider);
                        if (navTerm.ExcludeFromGlobalNavigation)
                        {
                            continue;
                        }

                        buildItem(writer, navTerm);
                    }
                    catch (Exception)
                    {
                    }
                }
                Level--;
            }
            return(writer);
        }
Exemple #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NavigationNode"/> class using a navigation term.
 /// </summary>
 /// <param name="term">The navigation term.</param>
 public NavigationNode(NavigationTerm term)
     : this()
 {
     this.Id           = term.Id;
     this.ParentNodeId = (term.Parent != null) ? term.Parent.Id : Guid.Empty;
     this.Title        = term.Title.Value;
     this.Url          = new Uri(term.GetResolvedDisplayUrl(string.Empty), UriKind.RelativeOrAbsolute);
 }
Exemple #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NavigationNode"/> class using a navigation term.
 /// </summary>
 /// <param name="term">The navigation term.</param>
 public NavigationNode(NavigationTerm term)
     : this()
 {
     this.Id = term.Id;
     this.ParentNodeId = (term.Parent != null) ? term.Parent.Id : Guid.Empty;
     this.Title = term.Title.Value;
     this.Url = new Uri(term.GetResolvedDisplayUrl(string.Empty), UriKind.RelativeOrAbsolute);
 }
Exemple #6
0
        public static NavigationTermSet CriarItemNaTermStore(string url, string urlweb, Guid NavTermSetId, Guid TaggingTermSetId)
        {
            SPSite site = new SPSite(url);

            SPWeb web = site.AllWebs[urlweb];

            TaxonomySession taxonomySession = new TaxonomySession(site);

            if (taxonomySession.TermStores.Count == 0)
            {
                throw new InvalidOperationException("O Serviço de taxonomia não existe");
            }

            TermStore termStore = taxonomySession.TermStores[0];

            TermSet existingTermSet = termStore.GetTermSet(NavTermSetId);

            if (existingTermSet != null)
            {
                existingTermSet.Delete();
                termStore.CommitAll();
            }


            Group   siteCollectionGroup = termStore.GetSiteCollectionGroup(web.Site);
            TermSet termSet             = siteCollectionGroup.CreateTermSet("Teste01", NavTermSetId);

            termStore.CommitAll();

            NavigationTermSet navTermSet = NavigationTermSet.GetAsResolvedByWeb(termSet, web,
                                                                                StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider);

            termStore.CommitAll();

            navTermSet.IsNavigationTermSet = true;

            navTermSet.TargetUrlForChildTerms.Value = "/en/Pages/default.aspx";

            NavigationTerm term1 = navTermSet.CreateTerm("Term 1", NavigationLinkType.SimpleLink);

            term1.SimpleLinkUrl = "http://h9j/pt/Paginas/default.aspx";
            termStore.CommitAll();

            /*
             * NavigationTerm term2 = navTermSet.CreateTerm("Term 2", NavigationLinkType.FriendlyUrl, Guid.NewGuid());
             *
             * term2.FriendlyUrlSegment.Value = "PAgInicial";
             *
             * term2.TargetUrl.Value = "/en/Pages/default.aspx";
             */


            termStore.CommitAll();

            return(navTermSet);
        }
Exemple #7
0
        private static string InsertUrlRecursive(NavigationTerm navTerm, string pageUrl)
        {
            pageUrl = pageUrl.Insert(0, $"/{navTerm.TaxonomyName}");

            if (navTerm.Parent.ServerObjectIsNull == false)
            {
                pageUrl = InsertUrlRecursive(navTerm.Parent, pageUrl);
            }
            return(pageUrl);
        }
        private void RenderLink(HtmlTextWriter writer, Term term, NavigationTerm navTerm)
        {
            _checkParam(writer, "writer");
            _checkParam(term, "term");

            /*
             * try
             * {
             *    html += "<li><a href=\"" + term.LocalCustomProperties["_Sys_Nav_SimpleLinkUrl"] + "\">" + term.Name + "</a>";
             *    writeTermsHTML(term.Terms);
             *    html += "</li>\n";
             * }
             * catch (Exception)
             * {
             *    html += "<li><a href=\"#\">" + term.Name + "</a>";
             *    writeTermsHTML(term.Terms);
             *    html += "</li>\n";
             * }
             */

            writer.AddAttribute(HtmlTextWriterAttribute.Href, GetLinkUrl(navTerm));

            var temp = "";

            if (term.CustomProperties.TryGetValue("header", out temp))
            {
                writer.RenderBeginTag(HtmlTextWriterTag.Li);
                writer.Write(temp);
                writer.RenderEndTag();
                return;
            }

            // Add ToolTip
            // @todo Make toolTip a parameter
            //string toolTip = !string.IsNullOrEmpty(item.ToolTip) ? item.ToolTip : item.Text;
            var toolTip = !string.IsNullOrEmpty(navTerm.HoverText) ? navTerm.HoverText : term.Name;

            term.CustomProperties.TryGetValue("toolTip", out toolTip);
            writer.AddAttribute(HtmlTextWriterAttribute.Title, toolTip);

            if (!term.CustomProperties.ContainsKey("iconOnly") || !term.CustomProperties.ContainsKey("imageOnly"))
            {
                writer.RenderBeginTag(HtmlTextWriterTag.A);
            }

            writer.Write(GetValue(term));

            if (!term.CustomProperties.ContainsKey("iconOnly") || !term.CustomProperties.ContainsKey("imageOnly"))
            {
                writer.RenderEndTag(); // </a>
            }
        }
Exemple #9
0
        public static NavigationTermSet RecreateSampleNavTermSet(TestContext testContext,
                                                                 TaxonomySession taxonomySession, SPWeb web)
        {
            Console.WriteLine(testContext, "RecreateSampleNavTermSet(): START");

            // Use the first TermStore object in the list.
            if (taxonomySession.TermStores.Count == 0)
            {
                throw new InvalidOperationException("The Taxonomy Service is offline or missing.");
            }

            TermStore termStore = taxonomySession.TermStores[0];

            // Does the TermSet object already exist?
            TermSet existingTermSet = termStore.GetTermSet(TestConfig.NavTermSetId);

            if (existingTermSet != null)
            {
                Console.WriteLine(testContext, "RecreateSampleNavTermSet(): Deleting old TermSet");
                existingTermSet.Delete();
                termStore.CommitAll();
            }

            Console.WriteLine(testContext, "RecreateSampleNavTermSet(): Creating new TermSet");

            // Create a new TermSet object.
            Group   siteCollectionGroup = termStore.GetSiteCollectionGroup(web.Site);
            TermSet termSet             = siteCollectionGroup.CreateTermSet("Navigation Demo", TestConfig.NavTermSetId);

            NavigationTermSet navTermSet = NavigationTermSet.GetAsResolvedByWeb(termSet, web,
                                                                                StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider);

            navTermSet.IsNavigationTermSet          = true;
            navTermSet.TargetUrlForChildTerms.Value = "~site/Pages/Topics/Topic.aspx";

            NavigationTerm term1 = navTermSet.CreateTerm("Term 1", NavigationLinkType.SimpleLink);

            term1.SimpleLinkUrl = "http://www.bing.com/";

            NavigationTerm term2  = navTermSet.CreateTerm("Term 2", NavigationLinkType.FriendlyUrl);
            NavigationTerm term2a = term2.CreateTerm("Term 2 A", NavigationLinkType.FriendlyUrl);
            NavigationTerm term2b = term2.CreateTerm("Term 2 B", NavigationLinkType.FriendlyUrl);

            NavigationTerm term3 = navTermSet.CreateTerm("Term 3", NavigationLinkType.FriendlyUrl);

            termStore.CommitAll();

            Console.WriteLine(testContext, "RecreateSampleNavTermSet(): FINISH");

            return(navTermSet);
        }
Exemple #10
0
        public static NavigationTermSet CriarItemNaTermStore(string url, string urlweb, Guid NavTermSetId, Guid TaggingTermSetId)
        {
            SPSite site = new SPSite(url);

            SPWeb web = site.AllWebs[url];

            TaxonomySession taxonomySession = new TaxonomySession(site);

            if (taxonomySession.TermStores.Count == 0)
            {
                throw new InvalidOperationException("O Serviço de taxonomia não existe");
            }

            TermStore termStore = taxonomySession.TermStores[0];

            TermSet existingTermSet = termStore.GetTermSet(NavTermSetId);

            if (existingTermSet != null)
            {
                existingTermSet.Delete();
                termStore.CommitAll();
            }


            Group             siteCollectionGroup = termStore.GetSiteCollectionGroup(web.Site);
            TermSet           termSet             = siteCollectionGroup.CreateTermSet("Teste01", NavTermSetId);
            NavigationTermSet navTermSet          = NavigationTermSet.GetAsResolvedByWeb(termSet, web,
                                                                                         StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider);

            navTermSet.IsNavigationTermSet = true;

            navTermSet.TargetUrlForChildTerms.Value = "~site/Pages/Topics/Topic.aspx";

            NavigationTerm term1 = navTermSet.CreateTerm("Term 1", NavigationLinkType.SimpleLink);

            term1.SimpleLinkUrl = "https://ekisiot.sharepoint.com/";

            NavigationTerm term2 = navTermSet.CreateTerm("Term 2", NavigationLinkType.FriendlyUrl);

            NavigationTerm term2a = term2.CreateTerm("Term 2 A", NavigationLinkType.FriendlyUrl);

            NavigationTerm term2b = term2.CreateTerm("Term 2 B", NavigationLinkType.FriendlyUrl);

            NavigationTerm term3 = navTermSet.CreateTerm("Term 3", NavigationLinkType.FriendlyUrl);

            termStore.CommitAll();

            return(navTermSet);
        }
        private string GetLinkUrl(NavigationTerm navTerm)
        {
            var href     = "#";
            var linkType = navTerm.LinkType;

            if (NavigationLinkType.FriendlyUrl == linkType)
            {
                //href = navTerm.GetResolvedDisplayUrl();
                href = navTerm.FriendlyUrlSegment.ToString();
            }
            else
            {
                href = navTerm.SimpleLinkUrl;
            }
            return(href);
        }
Exemple #12
0
        public IEnumerable <NavigationTerm> GetNavigationParentTerms(NavigationTerm navigationTerm)
        {
            if (navigationTerm != null)
            {
                var currentTerm     = navigationTerm;
                var navigationTerms = new List <NavigationTerm> {
                    currentTerm
                };
                while (currentTerm.Parent != null)
                {
                    currentTerm = currentTerm.Parent;
                    navigationTerms.Add(currentTerm);
                }

                return(navigationTerms);
            }

            return(new List <NavigationTerm>());
        }
Exemple #13
0
        public static List <ITANavigationItem> getChildTerms(NavigationTerm parent, ClientContext clientContext)
        {
            clientContext.Load(parent, p => p.Terms.Include(t => t.Title, t => t.SimpleLinkUrl));
            clientContext.ExecuteQuery();
            List <ITANavigationItem> children = new List <ITANavigationItem>();

            foreach (var navTerm in parent.Terms)
            {
                children.Add(new ITANavigationItem()
                {
                    title = navTerm.Title.Value,
                    link  = navTerm.SimpleLinkUrl,
                    //visible = true,
                    //target = "_blank",
                    children = getChildTerms(navTerm, clientContext)
                });
            }
            return(children);
        }
Exemple #14
0
        public override void ItemAdded(SPItemEventProperties properties)
        {
            base.ItemAdded(properties);
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPWeb myWeb = properties.Web;

                    if (properties.ListTitle == "SectionDetails")
                    {
                        #region "Create Termstore Set For Friendly URL"

                        TaxonomySession taxonomySession = new TaxonomySession(myWeb.Site);
                        taxonomySession.UpdateCache();
                        TermStore termStore       = taxonomySession.DefaultSiteCollectionTermStore;
                        Group siteCollectionGroup = termStore.GetSiteCollectionGroup(myWeb.Site, createIfMissing: true);
                        TermSet ts = siteCollectionGroup.TermSets.Where(p => p.Name.ToLower() == "lappia education").FirstOrDefault();
                        if (ts != null)//check term set is exist or not
                        {
                            NavigationTermSet navigationTermSet   = NavigationTermSet.GetAsResolvedByWeb(ts, myWeb, StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider);
                            navigationTermSet.IsNavigationTermSet = true;

                            NavigationTerm subterm = navigationTermSet.CreateTerm(Convert.ToString(properties.ListItem["Title"].ToString()) + ".aspx", NavigationLinkType.FriendlyUrl, Guid.NewGuid());
                            if ((uint)System.Globalization.CultureInfo.CurrentUICulture.LCID == 1033)
                            {
                                subterm.TargetUrl.Value = SPContext.Current.Web.Url + "/Pages/" + Convert.ToString(properties.ListItem["Title"].ToString()) + ".aspx";
                            }
                            else if ((uint)System.Globalization.CultureInfo.CurrentUICulture.LCID == 1035)
                            {
                                subterm.TargetUrl.Value = SPContext.Current.Web.Url + "/Pages/" + Convert.ToString(properties.ListItem["Title"].ToString()) + ".aspx";
                            }
                        }
                        termStore.CommitAll();
                        #endregion
                    }
                });
            }
            catch (Exception ex)
            {
            }
        }
 /// <summary>
 /// Gets a <see cref="NavigationTerm"/> object by the specified unique ID.
 /// </summary>
 /// <param name="termId">Term unique identifier.</param>
 /// <returns>A <see cref="NavigationTerm"/> object.</returns>
 public static NavigationTerm GetNavigationTerm(Guid termId)
 {
     if (SPContext.Current != null && termId != Guid.Empty)
     {
         SPWeb             currentWeb        = SPContext.Current.Web;
         NavigationTermSet navigationTermSet = TaxonomyNavigation.GetTermSetForWeb(currentWeb, StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider, true);
         if (navigationTermSet != null)
         {
             TaxonomySession session = new TaxonomySession(currentWeb, false);
             Term            term    = navigationTermSet.GetTaxonomyTermSet(session).GetTerm(termId);
             if (term != null)
             {
                 using (SPWeb navigationRootWeb = currentWeb.Site.OpenWeb(navigationTermSet.GetResolvedDisplayUrl(null))) {
                     return(NavigationTerm.GetAsResolvedByWeb(term, navigationRootWeb, StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider));
                 }
             }
         }
     }
     return(null);
 }
Exemple #16
0
        public IEnumerable<NavigationTerm> GetNavigationParentTerms(NavigationTerm navigationTerm)
        {
            if (navigationTerm != null)
            {
                var currentTerm = navigationTerm;
                var navigationTerms = new List<NavigationTerm> { currentTerm };
                while (currentTerm.Parent != null)
                {
                    currentTerm = currentTerm.Parent;
                    navigationTerms.Add(currentTerm);
                }

                return navigationTerms;
            }

            return new List<NavigationTerm>();
        }
Exemple #17
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NavigationNode"/> class.
 /// </summary>
 /// <param name="term">The term.</param>
 /// <param name="currentTerm">The current term.</param>
 /// <param name="currentBranchTerms">The terms in the current branch.</param>
 public NavigationNode(NavigationTerm term, NavigationTerm currentTerm, IEnumerable <NavigationTerm> currentBranchTerms)
     : this(term)
 {
     this.SetCurrentBranchProperties(currentTerm, currentBranchTerms);
 }
Exemple #18
0
 public void SetCurrentBranchProperties(NavigationTerm currentTerm, IEnumerable <NavigationTerm> currentBranchTerms)
 {
     this.IsCurrentNode         = currentTerm != null && currentTerm.Id.Equals(this.Id);
     this.IsNodeInCurrentBranch = currentBranchTerms.Any(y => y.Id.Equals(this.Id));
 }
        // Primary BuildItem
        // Outputs a single menu item or menu item + sub-tree
        //public void buildItem(HtmlTextWriter writer, Term term)
        public void buildItem(HtmlTextWriter writer, NavigationTerm navTerm)
        {
            var temp = "";
            var term = navTerm.GetTaxonomyTerm();

            // Check permissions??
            //if (!term.DoesUserHavePermissions())
            //{
            //return;
            //}

            // Instantiate current item
            CurrentItem         = new MenuItem();
            CurrentItem.Term    = new CurrentTerm(term, navTerm);
            CurrentItem.TermSet = CTermSet;

            //temp = htmlBeforeLi
            if (term.CustomProperties.TryGetValue("htmlBeforeLi", out temp))
            {
                writer.Write(temp);
            }

            // MegaMenu classes: dropdown-wide, dropdown-short, dropdown-full, dropdown-onhover, dropdown-menu, dropdown-carousel, dropdwn-grid
            if (term.CustomProperties.TryGetValue("itemClasses", out temp))
            {
                CurrentItem.AddClass(temp);
            }

            if (term.CustomProperties.TryGetValue("columns", out temp))
            {
                CurrentItem.AddClass("columns");
                CurrentItem.AddClass("columns-" + temp);
            }

            if (term.CustomProperties.TryGetValue("iconOnly", out temp))
            {
                CurrentItem.AddClass(temp);
                CurrentItem.AddClass("icon-only");
                CurrentItem.AddClass("image-icon-only");
            }
            else if (term.CustomProperties.TryGetValue("imageOnly", out temp))
            {
                CurrentItem.AddClass(temp);
                CurrentItem.AddClass("image-only");
                CurrentItem.AddClass("image-icon-only");
            }

            // Add level class
            CurrentItem.Level = Level;

            if (HasChildren(term))
            {
                CurrentItem.AddClass("dropdown");

                if (term.CustomProperties.ContainsKey("megamenu"))
                {
                    CurrentItem.AddClass("imegamenu");
                    CurrentItem.AddClass("dropdown-short");
                }

                ShowChildren = false;
                if (!term.CustomProperties.ContainsKey("showChildren"))
                {
                    if (1 < Level)
                    {
                        CurrentItem.AddClass("dropdown-right-onhover");
                        CurrentItem.AddClass("no-fix");
                    }
                    else
                    {
                        CurrentItem.AddClass("dropdown-onhover");
                    }
                }
                else
                {
                    ShowChildren = true;
                    CurrentItem.AddClass("dropdown-onhover");
                    CurrentItem.AddClass("dropdown-show");
                }


                // If dropdown, add attributes
                //writer.AddAttribute("data-toggle", "dropdown");


                // @todo Add style attribute
                if (term.CustomProperties.TryGetValue("style", out temp))
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Style, temp);
                }

                // @todo Add data tags, entered name: data-name value: *
                // Can I get all properties that begin with a string??
                //if (term.CustomProperties.TryGetValue("data", out temp)) {
                //writer.AddAttribute("", currentItem.GetStyles());
                //}
            }

            writer.AddAttribute(HtmlTextWriterAttribute.Class, CurrentItem.GetClasses());
            writer.RenderBeginTag(HtmlTextWriterTag.Li);

            if (term.CustomProperties.TryGetValue("htmlBefore", out temp))
            {
                writer.Write(temp);
            }

            //if (this.hasChildren(term) && term.CustomProperties.ContainsKey("showChildren"))
            if (HasChildren(term))
            {
                RenderDropDown(writer, term, navTerm);
            }
            else
            {
                RenderLink(writer, term, navTerm);
            }

            //writer.Write(this.getValue(term));
            //writer.Write(this.getDescription(term));


            if (term.CustomProperties.TryGetValue("htmlAfter", out temp))
            {
                writer.Write(temp);
            }

            // Now
            writer.RenderEndTag(); // </li>

            if (term.CustomProperties.TryGetValue("htmlAfterLi", out temp))
            {
                writer.Write(temp);
            }
        }
Exemple #20
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NavigationNode"/> class.
 /// </summary>
 /// <param name="term">The term.</param>
 /// <param name="currentTerm">The current term.</param>
 /// <param name="currentBranchTerms">The terms in the current branch.</param>
 public NavigationNode(NavigationTerm term, NavigationTerm currentTerm, IEnumerable<NavigationTerm> currentBranchTerms)
     : this(term)
 {
     this.SetCurrentBranchProperties(currentTerm, currentBranchTerms);
 }
 public CurrentTerm(Term term, NavigationTerm navigationTerm)
 {
 }
Exemple #22
0
 public void SetCurrentBranchProperties(NavigationTerm currentTerm, IEnumerable<NavigationTerm> currentBranchTerms)
 {
     this.IsCurrentNode = currentTerm != null && currentTerm.Id.Equals(this.Id);
     this.IsNodeInCurrentBranch = currentBranchTerms.Any(y => y.Id.Equals(this.Id));
 }
        private void RenderDropDown(HtmlTextWriter writer, Term term, NavigationTerm navTerm)
        {
            _checkParam(writer, "writer");

            writer.AddAttribute(HtmlTextWriterAttribute.Href, GetLinkUrl(navTerm));
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "dropdown-toggle");
            writer.AddAttribute("data-toggle", "dropdown");
            writer.AddAttribute("data-dropdown", "hover");

            if (!term.CustomProperties.ContainsKey("iconOnly") || !term.CustomProperties.ContainsKey("imageOnly"))
            {
                writer.RenderBeginTag(HtmlTextWriterTag.A); //<a>
            }
            //writer.RenderBeginTag(HtmlTextWriterTag.A); // <a>

            var anchorValue = GetValue(term);

            if (1 == Level)
            {
                anchorValue += "&nbsp;";
            }
            writer.Write(anchorValue);

            if (1 == Level)
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "caret");
                writer.RenderBeginTag(HtmlTextWriterTag.B); // <b>
                writer.RenderEndTag();                      // </b>
            }

            if (!term.CustomProperties.ContainsKey("iconOnly") || !term.CustomProperties.ContainsKey("imageOnly"))
            {
                writer.RenderEndTag(); // </a>
            }
            //writer.RenderEndTag(); // </a>

            writer.AddAttribute(HtmlTextWriterAttribute.Class, "dropdown-menu pull-center");
            writer.RenderBeginTag(HtmlTextWriterTag.Ul); // <ul>

            // Maybe add Custom Properties
            if (ShowChildren)
            {
                var counter = 0;

                /*
                 * foreach (Term t in term.Terms)
                 * {
                 *  counter++;
                 *  if (!t.CustomProperties.ContainsKey("itemClasses"))
                 *  {
                 *      term.Terms[counter - 1].SetCustomProperty("itemClasses", "imegamenu-content");
                 *  }
                 *  else
                 *  {
                 *      var temp = "";
                 *      t.CustomProperties.TryGetValue("itemClasses", out temp);
                 *      term.Terms[counter - 1].SetCustomProperty("itemClasses", temp);
                 *  }
                 *  if (1 == counter && !t.CustomProperties.ContainsKey("htmlBeforeLi"))
                 *  {
                 *      //term.Terms[counter - 1].SetCustomProperty("htmlBeforeLi", "<li><div class=\"imegamenu-content\"><div class=\"row\">");
                 *  }
                 *  else if (term.Terms.Count == counter && !t.CustomProperties.ContainsKey("htmlAfterLi"))
                 *  {
                 *      //term.Terms[counter - 1].SetCustomProperty("htmlAfterLi", "</div></div></li>");
                 *  }
                 * }
                 * */
            }

            //this.buildItems(writer, term.Terms);
            //this.buildItems(writer, navTerm);
            //this.buildItems(writer, navTerm.b);
            buildItems(writer, term.Terms);

            //TermSet childTermSet = (TermSet) cTermSet.termSet.GetTerms();

            //this.buildItems(writer,);
            writer.RenderEndTag(); // </ul>
        }
 private NavigationTerm CreateSubTerm(NavigationTerm navTerm, string termTitle, string termURL)
 {
     NavigationTerm subTerm = navTerm.CreateTerm(termTitle, NavigationLinkType.SimpleLink);
     subTerm.SimpleLinkUrl = termURL;
     return navTerm;
 }
        /// <summary>
        /// Creates an instance of the <see cref="SeoMetaListItem"/> with the specified managed navigation node.
        /// </summary>
        /// <param name="contextWeb"></param>
        /// <param name="term"></param>
        public SeoMetaNavigationTerm(SPWeb contextWeb, NavigationTerm term)
        {
            TaxonomySession session = new TaxonomySession(contextWeb, false);

            this.term = term.GetTaxonomyTerm(session);
        }
Exemple #26
0
    /// Creates a TermSet object for demonstration purposes.  If it already exists, it will be deleted
    /// and then recreated.

    public static NavigationTermSet RecreateSampleNavTermSet(
        ClientContext clientContext, TaxonomySession taxonomySession, Web web)
    {
        clientContext.Load(taxonomySession, ts => ts.TermStores);
        clientContext.ExecuteQuery();

        // Use the first TermStore object in the list.
        if (taxonomySession.TermStores.Count == 0)
        {
            throw new InvalidOperationException("The Taxonomy Service is offline or missing.");
        }

        TermStore termStore = taxonomySession.TermStores[0];

        clientContext.Load(termStore,
                           ts => ts.Name,
                           ts => ts.WorkingLanguage);

        // Does the TermSet object already exist?
        TermSet existingTermSet;

        clientContext.ExecuteQuery();

        if (!existingTermSet.ServerObjectIsNull.Value)
        {
            existingTermSet.DeleteObject();

            termStore.CommitAll();
            clientContext.ExecuteQuery();
        }

        // Create a new TermSet object.
        TermGroup siteCollectionGroup = termStore.GetSiteCollectionGroup(clientContext.Site,
                                                                         createIfMissing: true);
        TermSet termSet = siteCollectionGroup.CreateTermSet("Navigation Demo", TestConfig.NavTermSetId,
                                                            termStore.WorkingLanguage);

        termStore.CommitAll();
        clientContext.ExecuteQuery();

        NavigationTermSet navTermSet = NavigationTermSet.GetAsResolvedByWeb(clientContext,
                                                                            termSet, clientContext.Web, "GlobalNavigationTaxonomyProvider");

        navTermSet.IsNavigationTermSet          = true;
        navTermSet.TargetUrlForChildTerms.Value = "~site/Pages/Topics/Topic.aspx";

        termStore.CommitAll();
        clientContext.ExecuteQuery();

        NavigationTerm term1 = navTermSet.CreateTerm("Term 1", NavigationLinkType.SimpleLink, Guid.NewGuid());

        term1.SimpleLinkUrl = "http://www.bing.com/";

        NavigationTerm term2 = navTermSet.CreateTerm("Term 2", NavigationLinkType.FriendlyUrl, Guid.NewGuid());

        NavigationTerm term2a = term2.CreateTerm("Term 2 A", NavigationLinkType.FriendlyUrl, Guid.NewGuid());
        NavigationTerm term2b = term2.CreateTerm("Term 2 B", NavigationLinkType.FriendlyUrl, Guid.NewGuid());

        NavigationTerm term3 = navTermSet.CreateTerm("Term 3", NavigationLinkType.FriendlyUrl, Guid.NewGuid());

        termStore.CommitAll();
        clientContext.ExecuteQuery();

        return(navTermSet);
    }
        public TaxonomyNavigationRequestContext()
        {
            this.context   = TaxonomyNavigationContext.Current;
            this.variation = VariationContext.Current;
            if (context.HasNavigationContext)
            {
                this.navigationTerm = context.NavigationTerm;
            }
            else
            {
                using (new SPSecurity.GrantAdditionalPermissionsInScope(SPBasePermissions.FullMask)) {
                    SPWeb  currentWeb = SPContext.Current.Web;
                    string url        = TaxonomyNavigationHelper.ResolveFriendlyUrl(currentWeb, SPUrlUtility.CombineUrl(currentWeb.ServerRelativeUrl, currentWeb.RootFolder.WelcomePage));
                    TaxonomyNavigationHelper.TryGetNavigationTerm(url, out this.navigationTerm, out url);
                }
            }
            if (this.navigationTerm == null)
            {
                NavigationTermSet termSet;
                TaxonomyNavigationHelper.IsRequestingNavigationTermSet(out termSet);
                this.navigationTermSetItem = termSet;
            }
            else
            {
                this.navigationTermSetItem = navigationTerm;
            }

            if (context.HasFriendlyUrl || context.HasCatalogUrl)
            {
                this.serverRelativeRequestUrl = context.ResolvedDisplayUrl;
            }
            else if (navigationTermSetItem != null)
            {
                this.serverRelativeRequestUrl = navigationTermSetItem.GetResolvedDisplayUrl(null);
            }
            else
            {
                this.serverRelativeRequestUrl = SPUtility.OriginalServerRelativeRequestPath;
            }
            this.variationRelativeRequestUrl = PublishingWebHelper.TrimVariationFromPath(serverRelativeRequestUrl);

            this.query = HttpUtility.ParseQueryString(HttpContext.Current.Request.Url.Query);
            query.Remove(null);
            query.Remove("TermStoreId");
            query.Remove("TermSetId");
            query.Remove("TermId");
            this.queryString = query.AllKeys.Length > 0 ? "?" + query : String.Empty;

            SPListItem listItem = SPContext.Current.ListItem;

            if (listItem != null)
            {
                this.currentItem = SPModel.TryCreate(listItem);
            }
            if (currentItem is ICatalogPage)
            {
                ICatalogPageFilter filter = CommonHelper.AccessNotNull(((ICatalogPage)currentItem).Filter, "Filter");
                SetCatalogPageFilter(filter);
            }
            if (currentItem is ISeoMetaProvider)
            {
                seoMeta.Add((ISeoMetaProvider)currentItem);
            }
            seoMeta.Add(new SeoMetaListItem(listItem));
            for (NavigationTerm t = navigationTerm; t != null; t = t.Parent)
            {
                seoMeta.Add(new SeoMetaNavigationTerm(listItem.Web, t));
            }
        }