0

メディア ピッカー プロパティを介して選択することで、コンテンツ エディターがページのメイン バナー画像を選択できるようにしようとしています。

次の標準のインライン 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 />タグはありません。

4

2 に答える 2

1

xslt の代わりに ac# Umbraco マクロを使用することをお勧めします。Umbraco 4.9 ではそれが可能です。マクロは、別のファイルで使用することも、単純にインライン マクロを使用することもできます。

<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")" />

于 2015-03-30T11:02:02.317 に答える
0

他の誰かがこれを見つけ、MVC を使用していない場合は、テンプレート内でこのアプローチを使用して、メディア ピッカーから選択した画像パスを取得できます。

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

headerImage は、ドキュメント タイプの属性名のエイリアスです。これは、たとえば「/media/1002/sample.jpg」のようなものをレンダリングします

于 2015-11-03T13:02:27.367 に答える