umbraco学习5:Macros

来源:互联网 发布:淘宝摄影产品拍照商家 编辑:程序博客网 时间:2024/05/20 17:28

Macros是构造umbraco网站的主要部件,用来为网站的内容显示添加动态特性。它可以完成一些简单的应用,例如动态更新导航栏,也可以完成一些复杂的效果,例如在一个asp.net用户控件中,允许网站访问者添加新内容。

Macros主要分为两种:xslt macros和.net macros。其中xslt macros主要用于内容显示,尤其是显示网站的层级结构,例如网站导航和网站地图等;.net marcos则可用于一些复杂的操作,比如执行服务器端代码,实现表单功能等。

Macros主要用在template中,也可以用在rich-text editor框中,接下来笔者将以添加一个xslt网站导航为例介绍下macros的用法。为了对比效果,添加前的网站首页如下图所示:


首先,选中Developer section,右键点击Macros,选择create,创建一个名为Site Menu Navigation的macro,如下图所示:


在右半部分,我们可以看到可以选择用于创建macro的文件类型可以为:xslt文件,.net user control,.net custom control以及其它一些脚本语言,例如python等。这里笔者选择一个已创建的xslt文件为例,在xslt文件对应的下拉框中看以看到所有的xslt文件,选择SiteMenuNavigation.xslt,点击保存,如下图所示:


至此,我们已经创建好了macro,接下来将介绍如何在template中使用它,选中setting section,选择master template,代码如下:

<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    <html xmlns="http://www.w3.org/1999/xhtml">        <head>            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />            <title><umbraco:Item field="pageTitle" runat="server" /></title><link rel="stylesheet" href="/css/default.css"/>            <link rel="stylesheet" href="/css/main.css"/>            <link rel="stylesheet" href="/css/header-footer.css"/>            <link rel="stylesheet" href="/css/home.css"/>        </head>        <body>            <div id="siteHeader">                <div id="siteBanner"><h1><umbraco:Item field="siteName" runat="server" /></h1></div>                <div id="siteNavMenu"></div>            </div>            <div id="siteContent"><asp:ContentPlaceHolder Id="SiteContentPlaceHolder" runat="server"><!-- Insert default "SiteContentPlaceHolder" markup here --></asp:ContentPlaceHolder>            </div>            <div id="siteBottom"></div>        </body>    </html></asp:Content>
我们将在
<div id="siteNavMenu"></div>
部分插入我们创建好的macro,在编辑框的工具栏中选择Insert Macro,插入我们创建好的macro,插入后的代码如下所示:

<div id="siteNavMenu"><umbraco:Macro Alias="SiteMenuNavigation" runat="server" /></div>
打开站点,可以看到网站导航栏已经添加成功,如下图所示:



笔者在示例中使用了xslt macro,关于如何创建xslt以及.net user control的方法,以及关于macro的一些其他进阶知识,我们将在接下来的几章中一一介绍。

原创粉丝点击