2

かみそりでマルチノードピッカーを反復しようとしています。私のウィジェットのエイリアスは「venuesPicker」です。「マクロ ファイルを読み込めません」というエラーが表示されます。これが私がこれまでに持っているものです:

<umbraco:Macro runat="server" language="cshtml">
@{
    using uComponents.Core;
    using uComponents.Core.uQueryExtensions;

    foreach (var x in Model.venuesPicker)
    {
        @x.highlightTitle
    }
}
</umbraco:Macro>
4

2 に答える 2

7

このour.umbraco.org フォーラムの投稿に対する私の回答をご覧ください。基本的に、MNTP が XML を使用しているか CSV を使用しているかに応じて、次のいずれかを実行できます。

CSV:

@using umbraco.MacroEngines
@inherits DynamicNodeContext
@if (Model.HasValue("venuesPicker"))
{
    string[] ids = Model.venuesPicker.Split(',');

    <ul>
    @foreach (string id in ids)
    {
        var node = Library.NodeById(id);
        if (node.Id != 0)
        {
            // If node exists:
            <li><a href="@node.Url">@node.Name</a></li>
        }
    }
    </ul>
}

XML:

@using umbraco.MacroEngines
@inherits DynamicNodeContext
@if (Model.HasValue("venuesPicker"))
{
    <ul>
    @foreach (var item in Model.venuesPicker)
    {
        var node = Library.NodeById(item.InnerText);
        if (node.Id != 0)
        {
            // If node exists:
            <li><a href="@node.Url">@node.Name</a></li>
        }
    }
    </ul>
}
于 2012-07-20T16:34:36.353 に答える
0

uQuery.getNodesByCSV または uQuery.getMediaByCSV も使用できます。uQuery は 4.9 で Umbraco コアに追加されたと思いますが、それ以外の場合は uComponents パッケージをインストールできます

たとえば、4.9.1 でいくつかのメディアをループするためにこのようなものがあります

@using umbraco.MacroEngines
@using umbraco.cms.businesslogic.media
@inherits umbraco.MacroEngines.DynamicNodeContext
@{
    <div class="slideshow">
        @foreach (Media img in uQuery.GetMediaByCsv(Model.lightBoxImages))
        {
            <figure>
                <a href="#">
                    <img src="@img.GetImageUrl()"  />
                </a>
            </figure>   
        }
    </div>
}

Umbracoフォーラムの詳細情報

于 2013-04-25T12:23:48.493 に答える