Umbraco 4.9在模板中显示媒体选择器图像

时间:2015-03-30 10:46:43

标签: umbraco umbraco4

我试图允许内容编辑者通过媒体选择器属性选择主页横幅图像。

我已经尝试过标准的内联XSLT:

<umbraco:Item runat="server" field="banner" xslt="concat('&lt;img src=&quot;', umbraco.library:GetMedia({0},0)/umbracoFile, '&quot; /&gt;')" xsltDisableEscaping="true" />

但是在我的简单模板中:

<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
<header class="home-header">
    <div class="logo-wrapper">
        <umbraco:Item runat="server" field="banner" xslt="concat('&lt;img src=&quot;', umbraco.library:GetMedia({0},0)/umbracoFile, '&quot; /&gt;')" xsltDisableEscaping="true" />
    </div>
</header>
</asp:Content>

呈现的HTML出现在:

<header class="home-header">
    <div class="logo-wrapper">

    </div>
</header>

我已经阅读过使用宏来渲染图像但我的Umbraco知识有限。如果有人可以提供实际添加XSLT宏的步骤,我很乐意尝试这样做。

不幸的是我们现在仍然坚持使用Umbraco v4.9,所以我没有<umbraco:Image />标签。

2 个答案:

答案 0 :(得分:1)

我建议您使用c#Umbraco宏而不是xslt。 Umbraco 4.9可以做到这一点。 宏可以在differt文件中或简单使用内联宏:

<umbraco:Macro  runat="server" language="cshtml">   
    @if (@Model.visual != "")
    {
        <img src="@Model.Media("banner", "umbracoFile")" class="foto" />
    }
</umbraco:Macro>

<img src="@node.Media("banner", "umbracoFile")" />

相同

答案 1 :(得分:0)

如果其他人发现了这个并且您没有使用MVC,您可以在模板中使用此方法来获取您从媒体选择器中选择的图像路径

<umbraco:Item field='headerImage' runat='server'xslt='umbraco.library:GetMedia({0},true())/umbracoFile'xsltDisableEscaping='true'></umbraco:Item>

其中headerImage是文档类型中属性名称的别名。这将呈现像&#34; /media/1002/sample.jpg"例如