我如何在DotNetNuke得到所有公共页面

本文关键字:DotNetNuke | 更新日期: 2023-09-27 18:12:07

我是DNN网站的新手,并希望在我的皮肤顶部显示根级页面(Home, Contact Us等)的列表。现在我有:

TabController.GetPortalTabs(0,-1, false, "", false, false, false, true,false);

给显示链接的中继器喂食。然而,当我登录编辑页面,导航增长到包括所有管理级别的页面,以及打破我的设计。是否有一种方法可以让公共页面显示,即使我登录?

我如何在DotNetNuke得到所有公共页面

可以使用var tabs = TabController。GetTabsByParent(1、PortalId);

然后,您可以过滤该选项卡列表,以删除任何未显示在菜单中的选项卡。如下所示

var tabs = TabController.GetTabsByParent(-1, PortalId);
            foreach (var t in tabs)
            {
                if (t.IsVisible)
                {
                    Response.Write(t.TabName);
                    Response.Write("<br />");
                }
            }

一点点Linq让它变得漂亮和干净

Dim pages = (From tc In TabController.GetTabsByParent(-1, PortalId)
             Where tc.IsVisible And Not tc.IsDeleted
             Select tc).ToList

我还必须检查页面是否被删除或我得到僵尸页面显示。

var tabs = TabController.GetTabsByParent(-1, PortalId);
        foreach (var t in tabs)
        {
            if (t.IsVisible && !t.IsDeleted)
            {
                Response.Write(t.TabName);
                Response.Write("<br />");
            }
        }

使用上面的帮助到达这里:

List<DotNetNuke.Entities.Tabs.TabInfo> tabs = TabController.GetTabsByParent(-1, 0).FindAll(
         delegate(DotNetNuke.Entities.Tabs.TabInfo tab)
         {
             return tab.IsVisible && !tab.IsDeleted;
         }
        );