0

我是 Umbraco 的新手,所以如果我遗漏了一些明显的东西,请原谅。我已经在互联网上搜索过,但我找不到解决问题的方法。

我主要使用 Umbraco.TV 视频来指导我完成这个,特别是这个:http ://umbraco.com/help-and-support/video-tutorials/umbraco-fundamentals/datatypes/using-content- and-media-pickers/TVPlayer

其他视频和教程成功地让我通过设置响应式导航和子导航,但在这个问题上,我被卡住了。

我正在构建一个需要多个 CTA 的站点。这些文本需要由没有编码经验的人输入,因此我设置了包含富文本编辑器字段的文档类型,供他们输入所需的文本和图像。

选项卡:通用属性

H2 (h2), Type: Richtext editor
Article Description (articleDescription), Type: Richtext editor
Article Feature Image (articleFeatureImage), Type: Media Picker
Label (label), Type: Label

然后在模板中插入了一个引用相关文档类型的 Umbraco 页面字段:

<div class="rel-art">
<umbraco:Item field="relatedContent1" runat="server" />
</div>

但是,当我在浏览器中查看页面时,我在页面上得到的只是文档类型 ID:

<div class="rel-art"> 1202 </div> 

我尝试设置它并将其作为 xslt 插入:

<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:param name="currentPage"/>
<xsl:template match="/">
<xsl:value-of select="umbraco.library:GetXmlNodeById($currentPage/data [@alias = 'relatedContent1'])/@nodeName"/>
</xsl:template>
</xsl:stylesheet>

我的“Visualise XSLT”按钮不起作用,所以我不知道此时会说什么。我没有模式窗口。(我在我客户的系统上远程工作,因此可能会产生影响。)

现在,如果我将随附的宏插入到我的模板中:

<div class="rel-art">
<umbraco:Macro Alias="RelatedContent1" runat="server"></umbraco:Macro>
</div>

这导致我查看页面时甚至没有显示 ID:

    <div class="rel-art">  </div> 

我尝试过使用和不使用@nodeName,但没有区别。

怎么了?我究竟做错了什么?我唯一能想到的是,在我将其唯一的属性类型从 RichText 编辑器更改为 Textstring 之前,我在页面上显示另一个文档类型时遇到了一些麻烦。但是我也用这个试过了,这没有任何区别。

如果有帮助,我正在使用 Umbraco v4.9。

任何帮助将不胜感激!

谢谢!:-)

4

2 回答 2

0

看起来好像您正在尝试显示使用媒体选择器选择的图像。如果是这种情况,那么您应该使用 GetMedia 方法:

<xsl:value-of select="umbraco.library:GetMedia($currentPage/data[@alias='relatedContent1'], 'false')/data[@alias='umbracoFile']" />

查看Lee KelleherHow to use umbraco.library GetMedia in XSLT了解更多详细信息以及获取媒体的更简单的方法。

于 2013-06-16T15:57:59.183 回答
0

三位一体,

不是很清楚,但我注意到返回的值是' 1202 '(有空格)。您能否使用静态值检查您的代码,即

<xsl:value-of select="umbraco.library:GetXmlNodeById(1202)/@nodeName"/>

如果这工作正常,那么问题是你的'relatedContent1'。您可以修剪它的值并在 GetXmlNodeById 函数中使用它。

于 2013-06-16T13:24:56.513 回答