umbraco学习5:Macros

本文介绍了如何使用Macros在Umbraco网站中添加动态特性,以实现网站导航栏的动态更新。通过创建和使用xsltmacro,作者展示了如何在模板中整合宏,最终在网站上成功展示了一个动态导航栏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的一些其他进阶知识,我们将在接下来的几章中一一介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值