【问题标题】:Umbraco 4.9 Display Media Picker Image in TemplateUmbraco 4.9 在模板中显示媒体选择器图像
【发布时间】:2015-03-30 10:46:43
【问题描述】:

我试图让内容编辑者能够通过 Media Picker 属性选择页面上的主横幅图像。

我已经尝试过以下标准的内联 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 上,所以我没有&lt;umbraco:Image /&gt; 标签。

【问题讨论】:

    标签: umbraco umbraco4


    【解决方案1】:

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

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

    &lt;img src="@node.Media("banner", "umbracoFile")" /&gt;

    【讨论】:

    • 有没有办法为字段名添加参数?例如,在这种情况下,我的字段被称为“横幅”,但我想让它可用于所有图像。
    • 也可以做一个函数@functions {public static string getmyimage( .....我觉得这种方式可以给一个参数,一个替代一个带参数的宏。它是很容易做到,在 Umbraco 中有一个示例宏,只需转到开发人员部分创建一个脚本文件,(选中创建宏)并且该宏在您的模板中可用(按插入宏按钮)
    • 我已经创建了宏:@string id = Parameter.MediaId; &lt;img src='@Model.Media(id, "umbracoFile")' /&gt; 但它告诉我:Invalid expression term 'string'
    • 没关系,我就放在一行里:&lt;img src='@Model.Media(Parameter.MediaId, "umbracoFile")' /&gt;
    • 关于内联宏,我尽量避免使用它们:blog.dampee.be/post/2013/01/11/…
    【解决方案2】:

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

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

    其中 headerImage 是文档类型中属性名称的别名。例如,这将呈现类似“/media/1002/sample.jpg”的内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 2013-12-29
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多