1. SPEAKの使用

PageCodeを使用する

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

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

SPEAKには、すべてのSPEAKページで必要なPageCodeコンポーネントがあります。 PageCodeコンポーネントの主な機能は、SPEAKページを初期化(「ブートストラップ」)することです。

PageCodeコンポーネントを使用すると、独自のビジネスロジックをSPEAKページに追加できます。これには、次の2つの方法があります。

  • JavaScript PageCodeを使用する

代わりにRulesを使用してJavaScriptロジックを実装できるかどうかを検討してください。ルールは、時間の経過とともに維持しやすくなります。

  • C# PageCodeを使用する

PageCodeコンポーネントは、ページを初期化するときに、そのページでコンポーネントをスキャンし、各コンポーネントを初期化します。コンポーネントの初期化の一部として、現在のアプリケーション オブジェクトにコンポーネントへの参照が格納されます。

たとえば、ページにTextBoxコントロールが含まれていて、このコントロールのIDがSearchTextBoxの場合、PageCodeはページを初期化するときにSitecore.app.SearchTextBoxという参照を作成します。JavaScriptでSearchTextBoxtextプロパティにアクセスできます。

var text = this.SearchTextBox.get(“text”);

Visual Studioのセットアップ

PageCodeスクリプト ファイルを操作する場合は、Visual Studioでファイルを編集し、Visual Studioソリューション エクスプローラーからこれらのファイルを開くことができる必要があります。以下の手順に従います。

  1. Visual Studioでプロジェクトのソリューション ファイルをまだ作成していない場合は、ここで作成します。

  2. プロジェクトに関連付けられているソリューションを開きます。

  3. ソリューション エクスプローラーで、SPEAKページの項目構造に対応するフォルダー構造を作成します。ページ定義アイテムと同じ名前を付けるフォルダを含める必要があります。

JavaScriptページコードを使用する

JavaScriptページコードをページに追加するには:

  1. Visual Studioソリューション エクスプローラーで、ページ コードを追加するページに対応するフォルダーを右クリックし、Addをクリックします。 New Item…

  2. AddNew Itemダイアログで、「SPEAK Page Code」を選択し、定義アイテム名と一致する名前を入力します。

  3. Add」をクリックします。

  4. PageCodeコンポーネントのEdit Rendering Propertiesダイアログを開き、PageCodeScriptFileNameプロパティの値を作成したファイルを指定します。

これで、必要最小限のコードを含む新しいJavaScriptページ コード スクリプト ファイルが作成されました。

define(["sitecore"], function (Sitecore) {
  var ListExample = Sitecore.Definitions.App.extend({
    initialized: function () {
    }
  });
  return ListExample
});

必要なコードを追加できます。ページ内のコンポーネントにアクセスできます。

define(["sitecore"], function (Sitecore) {
  var ListExample = Sitecore.Definitions.App.extend({
      initialized: function () {
          this.DataSource.on("change:items", this.updateCount, this);
      },
      updateCount: function () {
          var items = this.DataSource.get("items");
          this.Text2.set("text", items.length + " items found");
      }
  });
  return ListExample;
});

コードは次のように機能します。

  • this.DataSource.on("change:items", this.updateCount, this);: 行は、DataSourceと呼ばれるコンポーネントのitemsプロパティが変更されたときにupdateCount関数を呼び出します。

  • updateCount関数は、DataSourceというコンポーネントからアイテムの数を取得し、Text2というコンポーネントのtextプロパティを更新します。

C# ページ コードを使用する

C# ページ コードを作成するには:

  1. Visual Studioソリューション エクスプローラーで、ページ コードを追加するページに対応するフォルダーを右クリックし、Addを選択します。 Class…

  2. Classを選択し、定義項目名と一致する名前を入力します。

  3. Add」をクリックします。

Visual Studioによって、新しいC# ページ コード スクリプト ファイルが作成されます。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace SPEAK.sitecore.client.Your_Apps.ListExample
{
    public class ListExample
    {
    }
}

クラスはSitecore.Web.PageCodes.PageCodeBaseから継承する必要があります。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Sitecore.Web.PageCodes;
namespace SPEAK.sitecore.client.Your_Apps.ListExample : PageCodeBase
{
    public class ListExample
    {
    }
}

クラス定義内で、コード内で参照する各コンポーネントのメソッド定義の前に、次のような行を追加します。

public Sitecore.Mvc.Presentation.Rendering MyComponentId { get; set; }

ここで、MyComponentIdはSPEAKページ上のコンポーネントのIDです。

Sitecoreライブラリへの次の参照をソリューションに追加する必要があります。

  • Sitecore.Kernel

  • Sitecore.Mvc

  • Sitecore.Speak.Client

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