Umbraco - пользовательский контроль - UmbracoNaviHide - PullRequest
1 голос
/ 17 мая 2011

Я знаю, что могу получить текущий узел с помощью 'var top = Node.GetCurrent ();' но я не могу найти, где я могу получить связанные свойства, в частности, «umbracoNaviHide». Я хотел бы знать, как получить доступ к тем же данным, которые доступны из XSLT в пользовательском элементе управления

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Чтобы получить свойства, вам нужно использовать метод GetProperty ().

var top = Node.GetCurrent ();top.GetProperty ( "umbracoNaviHide") Значение,.

0 голосов
/ 22 апреля 2019

В Umbraco 8 вам нужно будет сделать что-то вроде этого:

    private List<NavigationListItem> GetChildNavigationList(IPublishedContent page)
    {
        List<NavigationListItem> listItems = null;
        var childPages = page.Children.Where(i => i.IsPublished());

        if (childPages != null && childPages.Any() && childPages.Count() > 0)
        {
            listItems = new List<NavigationListItem>();
            foreach (var childPage in childPages)
            {
                int myTrueFalseFieldValue = 1;
                if (childPage.HasProperty("umbracoNaviHide"))
                {
                    Int32.TryParse(childPage.GetProperty("umbracoNaviHide").GetValue().ToString(), out myTrueFalseFieldValue);
                    //myTrueFalseFieldValue = 0 // hide the page
                    //myTrueFalseFieldValue = 1 // don't hide the page
                    string name = childPage.Name;
                    int test = myTrueFalseFieldValue;
                }

                if (myTrueFalseFieldValue == 1)
                {
                    NavigationListItem listItem = new NavigationListItem(new NavigationLink(childPage.Url, childPage.Name));
                    listItem.Items = GetChildNavigationList(childPage);
                    listItems.Add(listItem);
                }
            }
        }
        return listItems;
    }

Выше кода будет гарантировать, что те страницы, которые установили там свойство флажка umbrachoNaviHide в true, не будут включены в список навигации,

Чтобы узнать, как создать собственное свойство: umbracoNaviHide, поищите на YouTube «Day11: Скрыть страницы из навигации в Umbraco»

...