6

Sitecoreのページの1つに「 GeneralLink 」フィールドがあります。このフィールドは基本的に、ビデオの再生に使用されるビデオファイルのリンクを指定します。

今、私がやろうとしているのは、このリンクのタイプ、ユーザーがリンクを内部リンク、メディア、または外部リンクとしてアップロードしたかどうかを確認することです。リンクの種類に応じて、それに応じていくつかのアクションを実行する必要があるため、この情報が必要です。

Sitecoreでリンクのタイプを確認する方法はありますか?

4

2 に答える 2

21

まず、アイテムからフィールドを削除する必要があります。

Sitecore.Data.Fields.LinkField field = Sitecore.Context.Item.Fields["FIELD_NAME"];

次に、フィールドのさまざまなプロパティを検査できます。

bool isInternal = field.IsInternal;
bool isMedia = field.IsMediaLink;
string linkType = field.LinkType;

さまざまなLinkType値はinternal、、、、、、、およびexternal_mediaanchormailtojavascript

于 2012-02-06T15:02:36.173 に答える
11

追加のことを述べさせてください。あなたの場合、リンクタイプに基づいていくつかの追加のアクションが必要です。サイトコアのドキュメントで、これに関する詳細情報を見つけることができます。これを支援するために、以下のコードを参照してください。

public static string GetUrl(this Sitecore.Data.Fields.LinkField LinkField) {

        string url = "";

        switch (LinkField.LinkType) {
            case "internal":
            case "external":
            case "mailto":
            case "anchor":
            case "javascript":
                url = LinkField.Url;
                break;
            case "media":
                MediaItem media = new MediaItem(LinkField.TargetItem);
                url = Sitecore.StringUtil.EnsurePrefix('/', MediaManager.GetMediaUrl(media));
                break;
            case "":
            default:
                break;
        }

        return url;

    }

このようにして、リンクタイプに基づいて常に正しいURLを返すメソッドを取得できます。それで頑張ってください!

于 2012-02-07T11:03:07.580 に答える