一般的なリンクフィールドへのアクセス

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore.Data.Fields.LinkFieldクラスを使用して、General Link型のデータ テンプレート フィールドにアクセスできます。フィールド内のリンクのタイプに応じて、Sitecore.Data.Fields.LinkFieldクラスの次のプロパティを使用できます。

財産

価値

Anchor

HTML <a> 要素のname属性で、先頭のハッシュ文字 ("#") は除きます。

Class

HTML <a> 要素のclass属性。

IsInternal

内部リンクの場合はTrue、メディアおよびその他の種類のリンクの場合はFalse。

IsMediaLink

メディアリンクに当てはまります。

LinkType

リンクのタイプ (internal、media、external、mailto、anchor、javascript) を識別するトークン。

QueryString

URLに追加する文字列パラメーターをクエリします。

Target

HTML <a> 要素のtarget属性。

TargetID

内部リンクまたはメディアリンクで指定されたアイテムのID。

TargetItem

内部リンクまたはメディア リンクで指定されたSitecore.Data.Items.Item。

Text

HTML <a> 要素のテキスト コンテンツ。

Title

HTML <a> 要素のtitle属性。

Url

リンクのURL (メディア項目を除く) で、Urlプロパティに /Sitecore/Mediaライブラリを基準としたメディア項目への相対パスが含まれています。

Masterデータベース内の /Sitecore/Content/HomeアイテムのGeneral LinkフィールドのGeneralLinkFieldのURLを確認するには、次の手順を実行します。

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");
Sitecore.Data.Fields.LinkField linkField = home.Fields["generallinkfield"];

string url = String.Empty;

switch(linkField.LinkType)
{
    case "internal":
    case "external":
    case "mailto":
    case "anchor":
    case "javascript":
        url = linkField.Url;
        break;
    case "media":
        Sitecore.Data.Items.MediaItem media = new Sitecore.Data.Items.MediaIte(linkField.TargetItem);
        url = Sitecore.StringUtil.EnsurePrefix('/',
        Sitecore.Resources.Media.MediaManager.GetMediaUrl(media));
        break;
    case "":
        break;
    default:
        string message = String.Format("{0} : Unknown link type {1} in {2}", this.GetType(), linkField.LinkType, home.Paths.FullPath); Sitecore.Diagnostics.Log.Error(message,this);
    break;
}

Sitecore.Data.Fields.LinkField.Clearメソッドを使用して、タイプGeneral Linkのフィールドからデータを削除できます。たとえば、Masterデータベースの /Sitecore/Content/HomeアイテムのGeneral Linkフィールド (GeneralLinkField) からリンクを削除するには、次のようにします。

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.LinkField linkField = home.Fields["generallinkfield"];

home.Editing.BeginEdit();
linkField.Clear();
home.Editing.EndEdit();

Masterデータベース内の /Sitecore/Content/HomeアイテムのGeneralLinkFieldという名前のGeneral Linkフィールドを アイテムに更新するには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.LinkField linkField = home.Fields["generallinkfield"];

Sitecore.Data.Items.Item sample = master.GetItem("/sitecore/content/home/sample");

home.Editing.BeginEdit();

linkField.Clear();

linkField.LinkType = "internal";

Sitecore.Links.UrlOptions urlOptions = Sitecore.Links.LinkManager.GetDefaultUrlOptions();

urlOptions.AlwaysIncludeServerUrl = false;

linkField.Url = Sitecore.Links.LinkManager.GetItemUrl(sample,urlOptions);

linkField.TargetID = sample.ID;

home.Editing.EndEdit();

Masterデータベースの /Sitecore/Content/HomeアイテムにあるGeneralLinkFieldという名前のGeneral Linkフィールドを /Sitecore/Media Library/Files/Sampleメディアアイテムに更新するには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.LinkField linkField = home.Fields["generallinkfield"];

Sitecore.Data.Items.Item sample = master.GetItem("/sitecore/media library/files/sample");

home.Editing.BeginEdit();

linkField.Clear();

linkField.LinkType = "media";

linkField.Url = sample.Paths.MediaPath;

linkField.TargetID = sample.ID;

home.Editing.EndEdit();

Masterデータベースの /Sitecore/Content/HomeアイテムのGeneralLinkFieldという名前のGeneral Linkフィールドを外部URL http://sitecore.netに更新するには

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.LinkField linkField = home.Fields["generallinkfield"];

home.Editing.BeginEdit();

linkField.Clear();

linkField.LinkType = "external";

linkField.Url = "http://sitecore.net";

home.Editing.EndEdit();

Masterデータベース内の /Sitecore/Content/HomeアイテムのGeneralLinkField という名前のGeneral Linkフィールドをアンカー フィールドに更新するにはnamedAnchor

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.LinkField linkField = home.Fields["generallinkfield"];

home.Editing.BeginEdit();

linkField.Clear();

linkField.LinkType = "anchor";

linkField.Url = "namedAnchor";

home.Editing.EndEdit();

Masterデータベースの /Sitecore/Content/HomeアイテムのGeneralLinkFieldという名前のGeneral Linkフィールドを電子メール アドレスに更新するには、次の操作を行います[email protected]

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.LinkField linkField = home.Fields["generallinkfield"];

home.Editing.BeginEdit();

linkField.Clear();

linkField.LinkType = "mailto";

linkField.Url = "mailto:[email protected]";

home.Editing.EndEdit();

Master データベースの /Sitecore/Content/HomeアイテムのGeneralLinkFieldという名前のGeneral LinkフィールドをJavaScript関数に更新するには、次のようにします。

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.LinkField linkField = home.Fields["generallinkfield"];

home.Editing.BeginEdit();

linkField.Clear();

linkField.Text = "";

linkField.LinkType = "javascript";

linkField.Url = @"javascript:alert('javascript')";

home.Editing.EndEdit();
この記事を改善するための提案がある場合は、 お知らせください!