Sitecoreのリンクの種類の確認

私はSitecoreの私のページの1つに 'General Link'フィールドを持っています。このフィールドは、基本的にビデオの再生に使用されるビデオファイルのリンクを指定します。

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

Sitecoreのリンクのタイプをチェックする方法はありますか?

5

2 答え

1つ目はあなたの項目のフィールドを取得する必要があります。

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

次に、フィールドのさまざまなプロパティを調べることができます。

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

The various LinkType values are internal, external, media, anchor, mailto, and javascript

20
追加された
驚くばかり!ありがとう!
追加された 著者 YashG99,

もう少し何かを言わせてください。あなたの場合、あなたはlinktypeに基づいていくつかの追加アクションが必要です。サイトマップのドキュメントには、これに関するさらに詳しい情報があります。これを助けるために、下のコードを参照してください:

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が返される、いくつかのメソッドを呼び出すことができます。それと幸運!

11
追加された