Umbraco:创建一个复选框列表,用于定义要添加到页面的内容

时间:2011-11-23 03:06:42

标签: xslt umbraco

好的,所以我最近开始学习在Umbraco设置网站,因为我的客户希望将它用于他们的网站。现在,在他们的网站中,他们希望有三种类型的“操作”,他们应该能够添加到他们的任何页面中。这些操作实际上只是一行HTML。然而,他们希望将它添加到页面的方式不是复制/粘贴一行代码(可以理解..),而是有一个复选框区域。

代码行如下所示:

<a class="action people" href="/link/"><span>Testimonials</span></a>

<a class="action rac" href="/link/"><span>Request a Call</span></a>

<a class="action contact" href="/link/"><span>Contact Us</span></a>

简而言之,用户需要能够输入例如“推荐书”,保存并发布到页面并显示第一行代码。

我尝试进入开发人员&gt;数据类型&gt;根据复选框列表创建和定义自己的,但这显然是错误的,因为没有在哪里定义“当用户勾选此框时,将”保存为HTML并将其插入页面“

修改

下面,Marapet向我推动了我需要的正确方向。而不是像他建议的那样使用Razor脚本,因为我对Razor一无所知,所以我决定用XSLT来完成问题,所以为了完成答案,这里是代码。 (这是由Marapet建议的宏引用的xslt文件。)

<xsl:choose>
  <xsl:when test="$currentPage/actionTestimonials = '1'">CODE HERE</xsl:when>
  <xsl:otherwise></xsl:otherwise>
</xsl:choose>

<xsl:choose>
  <xsl:when test="$currentPage/actionContactUs = '1'">CODE HERE</xsl:when>
  <xsl:otherwise></xsl:otherwise>
</xsl:choose>

<xsl:choose>
  <xsl:when test="$currentPage/actionRequestACall = '1'">CODE HERE</xsl:when>
  <xsl:otherwise></xsl:otherwise>
</xsl:choose>

1 个答案:

答案 0 :(得分:1)

如果这些链接始终显示在同一位置(例如页脚,侧边栏等):

  • 创建基础文档类型,其中包含所有页面共有的所有属性(这是一种很好的做法,也适用于元描述等数据)
  • 基础文档类型中,为每个链接添加一个复选框
    • 转到设置 - 文档类型并选择基本文档类型
    • 转到标签通用属性
    • 添加新媒体资源下方的下拉列表中,选择 True / false - 这将为您提供一个复选框。
  • 使表示页面的所有其他文档类型继承自此基本类型 - 至少应该显示那些链接的文档类型
  • 使用脚本创建一个宏,该脚本根据复选框字段中的值显示这些链接
    • 转到开发人员部分并将脚本添加到脚本文件 - 确保选中创建宏复选框
    • 在脚本文件中,添加代码以显示或隐藏链接。您可以使用Razor访问在基本文档类型中创建的属性,例如: if (Model.MyProperty) { ... }
  • 在主要布局(母版页)中,应显示链接,插入宏
    • 类似于:<umbraco:Macro Alias="MyMacro" runat="server" /> - 您可以使用Umbraco中的UI按钮插入代码。