1. アクセスフィールド値

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

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

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

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

財産

価値

Anchor

HTML要素の名前属性 で、先頭のハッシュ文字(「#」)を含まない。

Class

HTML要素のクラス属性 です。

IsInternal

内部リンクは真、メディアやその他の種類のリンクは偽です。

IsMediaLink

メディア関連のリンクも同様です。

LinkType

リンクの種類(内部リンク、メディアリンク、外部リンク、Mailto、アンカー、またはJavaScript)を識別するトークンです。

QueryString

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

Target

HTML要素のターゲット属性 です。

TargetID

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

TargetItem

Sitecore。Data.Items.Item。内部またはメディアリンクによって指定されるアイテム。

Text

HTML要素のテキスト内容 。

Title

HTML要素のタイトル属性 。

Url

リンクのURLは、メディア項目を除き、Urlプロパティが/Sitecore/Media Libraryに対するメディアアイテムへのパスを含みます。

Masterデータベースの/Sitecore/Content/Home項目のGeneral LinkフィールドのURLを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";

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項目にあるGeneral LinkフィールドのGeneralLinkFieldを/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項目にあるGeneralLinkFielGeneral Link dという名前のフィールドをメールアドレスに更新するには[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

@domain.tld";

home.Editing.EndEdit();

Masterデータベースの/Sitecore/Content/Home項目にあるGeneral LinkフィールドGeneralLinkFieldを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

('javascript')";

home.Editing.EndEdit();

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