原文链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/umbraco7the-navigation-menu-and-a-parent-page-with-in-finite-children/

Master Template - The Navigation Menu

现在让我们开始解决导航菜单-这里有两个方法,你可以动态创建一个导航菜单的页面内容树中,这样当一个编译器创建了一个页面会自动出现,或者可以更简单的写硬编码。现在我们准备写硬编码(当你开始建立一个网站编写硬编码,你可以移动替换这个,这是一个好的办法)我们之后会让给你之后作为练习。编辑你的Master template编写<nav>标签:

<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/contact-us">Contact Us</a></li>
<li><a href="/articles">Articles</a></li>
</ul>
</nav>

保存你的更改,然后测试我们的菜单。你将会发现点击文章链接抛出Umbraco错误说我们没有创建这个页面。现在我们开始创建这些页面。

Articles Parent and Article Items - A Parent Page with Infinite Children

拥有一个父页面的文章和一些有关子文章的编译器可以自由添加一些很好例子页面。假设我们虚构的公司,小部件有限公司,一个月写十篇文章,希望文章页面就像一个博客(例如:只用这个功能你可以为你的博客添加一个新闻和事件页面)。

创建新的文档类型“Article Main”和“Article Item”。Document Types Settings > Document Types (hover) > ... > + Create。记得Master Document Type = "none.."

创建以下的Tabs和数据类型:

Articles Main

Tab = Intro

"Articles Title" - Type = Textstring

"Articles Body Text" - type = Rich Text Editor**

【图38】Article Main的文档类型和数据类型

Articles Item

Tab = Contents

"Article Title" - Type = Textstring

"Article Contents" - type = Rich Text Editor**

【图39】Article Item的文档类型和数据类型

现在到Settings > Document Types >Articles Main node > Structure tab > Allowed child nodetypes ,然后选择Article Item。这会允许我们在该目录下创建它的Item(它作为父容器)。当然我们还需要在Acticle Main的节点下创建Homepage node(Settings > Document Types > Homepage node > Structure tab > Allowed child nodetypes --不要选择Article Item 仅仅在主节点水平就可以)。

现在到Content > Homepage node (hover)> ... 创建一个新的节点是Articles Main类型的“Articles”(如果你发现没有这个选项,你需要返回检查你是否允许子节点--你忘记了点击保存)。给这篇文章节点添加一些内容和标题,然后创建几条内容节点在这个节点上(Content > Homepage node > Articles node (hover) > ...)。

现在你应该有一个内容树看起来类似下图(很明显这里显示的都是自己页面节点的名字)。接着让我们去更新我们刚刚创建的模板(当我们创建文档类型时会自动更新)。第一次更新他用Master作为主节点Settings > Templates > Articles Main node > Properties tab > Master template dropdown = "Master"  -记得做类似Articles Item的事情,点击保存Save。

【图40】文章内容树节点

复制简单的内容页面模板,粘贴到每一个新建的模板中(记得点击保存)。然后替换页面字段相关的例句,比如:articlesTitle 和 articlesBodyText 替换为Articles Main 和 articleTitle ;articleContents 替换为Article Item。

如果我们现在去浏览器中检查我们的文章主页面,我们应该可以看到内容了。现在我们需要列出页面下的子节点,这样我们就可以看到我们的文章列表。Umbraco使这项任务变得很简单,但是我们需要使用Razor语言。

从左侧的菜单上选择Developer菜单,悬浮在Partial View Macros Files node 来获得更多的菜单...点击+ Create 名称为“listArticles”,接着在Choose a snippet片段中选择“List Child Pages Ordered By Date”后点击Create。

【图41 模板父级文章和宏代码】

现在我们要做的就是连接文章主页列出我们的子文章。编辑主文章节点模板Settings > Templates node > Master node > Articles Main node > Template tab. 根据段落标签输入回车后点击Insert Macro按钮,然后点击保存按钮。

现在来检查我们的文章页面--编辑刚才创建的部分(宏)-Developer > Partial View Macro Files > listArticles.cshtml ,改变其内容为:

@inherits Umbraco.Web.Macros.PartialViewMacroPage

@* OrderBy() takes the property to sort by and optionally order desc/asc *@

@foreach (var page in CurrentPage.Children.Where("Visible").OrderBy("CreateDate desc"))
{
<div class="article">
<div class="articletitle"><a href="@page.Url">@page.Name</a></div>
<div class="articlepreview">@Umbraco.Truncate(@page.ArticleContents,100) <a href="@page.Url">Read More..</a></div>
</div>
<hr/>
}

现在去浏览器看一下我们的页面。

Umbraco(7)-The Navigation Menu And A Parent Page with Infinite Children的更多相关文章

  1. Pass value from child popup window to parent page window using JavaScript--reference

    Here Mudassar Ahmed Khan has explained how to pass value from child popup window to parent page wind ...

  2. Ionic2中的Navigation.md

    1. 概述 为了能够得到同原生应用类似的导航效果,Ionic创建了几个navagation组件来实现pages之间的导航操作,这种导航跟原生Angular2中的route机制是不一样的,我们可以借助于 ...

  3. iphone Dev 开发实例10:How To Add a Slide-out Sidebar Menu in Your Apps

    Creating the Xcode Project With a basic idea about what we’ll build, let’s move on. You can create t ...

  4. [AngularJS] Reusable directive, require from parent controller

    Glorious Directives for Our Navigation NoteWrangler navigation has now been broken into two parts: t ...

  5. Mvc htmlhelper that generates a menu from a controller

    Simple menu system that grabs a list of actions from a single controller and creates an unordered li ...

  6. Windows-universal-samples学习笔记系列三:Navigation

    Navigation Back Button Master/detail Navigation menu (XAML) Pivot Projection XHR, handling navigatio ...

  7. Tkinter Menu(菜单)

      Tkinter Menu: 这个小工具的目标是,让我们来创建我们的应用程序,可以通过使用各种菜单.核心功能,提供的方式来创建三个菜单类型:弹出式,顶层,和下拉   这个小工具的目标是,让我们来创建 ...

  8. Xamarin.Forms中 Navigation,NavigationPage详解

    1.Xamarin Forms下有四个成员类:Element,VisualElement,Page,NavigationPage 基类为Element,继承的子类分别是VisualElement,Pa ...

  9. Android开发 navigation入门详解

    前言 Google 在2018年推出了 Android Jetpack,在Jetpack里有一种管理fragment的新架构模式,那就是navigation. 字面意思是导航,但是除了做APP引导页面 ...

随机推荐

  1. Custom ReadOnlyProperty【PluraSight】

    Limited functionality: Not settable No data binding No validation No animation No Inheritance When t ...

  2. OC中控制台日志打印

    OC中Debug版本常用的打印格式化操作   %@ 对象   %d,%i 整型 (%i的老写法)   %hd 短整型   %ld , %lld 长整型   %u 无符整型   %f 浮点型和doubl ...

  3. log4net使用简明教程

    转自: http://www.cnblogs.com/songhaipeng/p/3343606.html http://www.cnblogs.com/TianFang/archive/2013/0 ...

  4. HTML要点(四)<meta>标签

    浏览器支持 所有浏览器都支持 <meta> 标签. 定义和用法 <meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和 ...

  5. 负载均衡LVS集群详解

     一.LB--负载均衡 在负载均衡集群中需要一个分发器,我们将其称之为Director,它位于多台服务器的上面的中间层,根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来进行响应请求,而其 ...

  6. ssh-keygen 无密码登陆需要注意一个问题

    从今天开始记录一下工程上的小知识. ssh-keygen -t rsa cat id_rsa.pub >> authorized_keys后,切记,将authrorized_keys文件的 ...

  7. ASP.NET中IsPostBack属性研究

    通过页面的IsPostback属性,可以检查 .aspx 页是否为传递回服务器的页面:当加载页面并对控件的更改属性处理之前,用户可以在page_Load事件中检查该页面是否被传递回的页面. 一般是在p ...

  8. 一步步学Mybatis-实现简单的分页效果逻辑 (5)

    在前四章中我们已经基本完成了对单表的CRUD与多表联合查询方式的Mybatis操作与配置方式,今天这里要讲的是关于一个业务问题中我们常碰到的分页问题.在开发web项目的时候我们经常会使用到列表显示,一 ...

  9. 窗口界面编程之一:VB实现简单异形窗口

    一.运行效果图(在Win8里的运行效果,在XP里运行就不能体现出来,因为我使用的XP的界面效果) 二.编译环境:Visual Basic 6.0 (SP6) 三.实现原理:通过区域合并 四.使用API ...

  10. Linux五种IO模型

    http://www.cnblogs.com/renxs/p/3683189.html