チュートリアル: プロパティ エディターを使用したカスタム評価要素の作成
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Formsには、フォームにドラッグ アンド ドロップできるデフォルトのフォーム要素が含まれています。このチュートリアルでは、jQuery Bar Ratingという既存のプラグインを使用してカスタム評価制御要素を実装する方法と、追加のプロパティを設定する方法について説明します。このチュートリアルに従うと、設定オプションを持つ評価要素が作成されます。

このチュートリアルでは、次の方法について説明します。
ソースファイルをダウンロードして準備する
ソースファイルをダウンロードして準備する
このチュートリアルでは、評価要素の例を使用します。ローカルインストールで手順を実行するには、ソースファイルをダウンロードして準備する必要があります。
jQueryバーの評価を操作するには:
-
に移動します http://antenna.io/demo/jquery-bar-rating/examples/
-
サイトで、ページの一番下までスクロールし、ダウンロードリンクをクリックします。
-
ファイルをダウンロードして解凍します。
-
次のファイルをコピーします。
-
jquery.barrating.min.js
-
jquery.barrating.min.js.map
-
-
Sitecore modules/Web/ExperienceForms/scripts/barratingに移動し、ファイルを貼り付けます。
-
ダウンロードしたjquery-bar-rating-master/themesフォルダーに移動し、テーマをコピーします。
-
barratingフォルダーにthemesフォルダーを作成し、barrating/themesフォルダーを貼り付けます。

-
コンテンツ エディターで、/sitecore/templates/Systems/Forms/Formに移動し、_Standard valuesアイテムを選択します。
-
Settings セクションのScripts フィールドに、|barrating/jquery.barrating

-
フォームスクリプトとスタイルをロードするには、それらが外部ファイルレイアウトにある必要があります。したがって、@Html.RenderFormStyles() ステートメントと @Html.RenderFormScripts() ステートメントを外側のレイアウトに追加します。
フィールド タイプ アイテムの作成
フィールド タイプ アイテムの作成
Sitecoreアイテムは、各フォーム要素を定義します。カスタム要素を フォーム要素 ウィンドウに表示するには、新しいアイテムを作成する必要があります。新しいアイテムを作成することも、既存のアイテムを複製することもできます。jQueryバー評価プラグインは選択フィールドを使用するため、リスト要素をベースとして使用すると便利です。
ドロップダウンリスト要素と同様に、jQuery Bar Ratingプラグインは選択フィールドを使用します。

既存のアイテムを複製してフィールドタイプアイテムを作成するには:
-
/sitecore/system/Settings/Forms/Field Types/Listsフォルダーに移動し、ドロップダウンリスト項目を右クリックして、Duplicateをクリックします。
-
アイテムと表示名の名前を「Rating」に変更します。
-
Appearanceセクションで、次のフィールドを編集します。
-
Icon – フォーム要素 ペインに表示されるアイコンを選択します。たとえば、OfficeWhite/32x32/star.png.
-
BackgroundColor – フォーム要素 ペインに表示されるアイコンの背景色を選択します。たとえば、Grass.
-
Sortorder – フォーム要素 ペインのListセクションで 評価 要素の最後に表示するには、並べ替え順序を1200に設定します。
メモフィールドが期待どおりに表示されない場合は、リボンのViewタブで、Standard Fieldsチェック ボックスをオンにします。これにより、開いたすべてのアイテムの標準テンプレートのすべてのフィールドが表示されます。
-
新しいフィールド テンプレートの作成
新しいフィールド テンプレートの作成
Sitecoreテンプレートはフォーム要素を定義します。この例では、追加のプロパティを設定するには、Rating要素の新しいフィールド テンプレートを作成して、それらのプロパティを定義する必要があります。
テンプレートを追加するには:
-
Sitecoreコンテンツ エディターで、sitecore/Templatesに移動し、新しいフォルダーを作成します。たとえば、Fields フォルダーなどです。
-
新しいフォルダをクリックし、New Templateをクリックします。
-
名前Ratingを入力し、Dropdown Listを基本テンプレートとして選択して、「 Next」をクリックします。

-
新しいテンプレートをクリックし、BuilderタブでOptionsというセクションを追加します。たとえば、評価要素の設定を追加するには、次のチェック ボックスを追加します。
-
値を表示
-
選択した評価を表示
-
逆
-
ホバー状態

-
-
テンプレートを保存します。
-
コンテンツ タブのAppearanceセクションで、Iconフィールドの値をOffice/32x32/star.png
-
リボンのOptionsタブで、Standard valuesをクリックします。
-
Optionsセクションで、Show Selected Ratingチェック ボックスとHover Stateチェック ボックスをオンにします。これは、これらのプロパティがデフォルトでチェックされることを意味します。
-
Field Typeフィールドで、フィールド タイプをRatingに変更します。
-
Create the field項目セクションで作成した評価項目に移動し、フィールド テンプレート の値をRatingに設定します。
新しいクラスを作成する
新しいクラスを作成する
これで、FieldViewModelクラスから派生する新しいクラスを作成することで、Viewモデルのロジックを作成できます。フォーム要素の表示方法を制御するには、HTMLを配置し、独自のCSSクラスを挿入します。
新しいクラスを追加するには:
-
Visual Studioで、新しいクラス ライブラリ プロジェクトを作成します。たとえば、Sitecore.ExperienceForms.Samples.
-
Sitecore.ExperienceForms.Mvcアセンブリを参照します。
-
RatingViewModelクラスを追加します。
-
DropDownListViewModelを継承し、クラスをSerializableとしてマークします。
-
Models フォルダーで、新しいFieldNamesクラスを作成し、設定する各プロパティの定数を定義します。
-
評価テンプレートの各フィールドに対して、RatingViewModelクラスにプロパティを作成します。
-
フィールド値を読み取るには、RatingViewModel クラスのInitItemPropertiesをオーバーライドします。
-
フィールド値を保存するには、UpdateItemFieldsを上書きします。
-
評価 フィールド タイプで新しい 評価 ビュー モデルを参照するには、/sitecore/system/Settings/Forms/Field Types/Lists/Rating に移動し、Model Typeフィールドに次のように入力します。Sitecore.ExperienceForms.Samples.Models.RatingViewModel,Sitecore.ExperienceForms.Samples

Razorビュー ファイルを作成する
Razorビュー ファイルを作成する
次の手順では、Razorビュー ファイルを作成します。
-
Website/Views/FormBuilder/FieldTemplates/Samplesに移動し、Rating.cshtmlという新しいかみそりファイルを作成します。
-
コードを追加します。たとえば、rating要素の場合は次のようになります。
-
新しい評価フィールドをRazorビュー ファイルにポイントするには、/sitecore/system/Settings/Forms/Field Types/Lists/Ratingに移動し、View PathフィールドにRazorビュー ファイルの場所を追加します (この例では、次のようにします)。 FieldTemplates/Samples/Rating
プロパティエディタを作成する
プロパティエディタを作成する
これで、フォーム要素 ウィンドウに表示されるセクションを追加できます。この例では、1行のテキスト要素には、Details, Validation, Styling, とAdvanced の設定のセクションが含まれています。
このチュートリアルの例では、Sitecore Rocks Visual Studioプラグインが必要です。このプラグインは、Visual Studio 2019以前と互換性があります。
この例では、Rating要素をDropdownリスト要素に基づいており、Dropdownリスト要素に既に存在するプロパティ エディターを複製します。
フォーム要素ペインにセクションを追加するには:
-
Sitecore Rocksで、コア データベースを展開し、次の場所に移動します。 /sitecore/client/Applications/FormsBuilder/Components/Layouts/PropertyGridForm/PageSettings/Settings/DropDownList
-
アイテムを複製し、名前をRatingに変更します。
手記ドロップダウンリスト要素には、プロパティエディタのリスト項目展開のコントロールを定義する子項目が含まれています。複製後、Rating/ListItemsはControlsDefinitionsフィールド値のDropDownList/ListItemsを参照します。コントロール ラベルをカスタマイズしたり、評価デザイナーをドロップダウン リスト デザイナーから切断したりするには、重複した子項目のIDを使用してControlsDefinitionフィールド値を更新できます。
-
「Styling」アイテムを右クリックし、「 Add 」をクリックして、「 New Item」をクリックします。
-
新しい項目の追加 ダイアログ ボックスで、フォーム パラメーター テンプレートを検索して選択します。
-
「追加」を3回クリックし、アイテム名を入力します: ShowValues, ShowSelectedRating, HoverState, Reverse。
-
Styling セクションで、ShowValues アイテムをダブルクリックし、次のフィールドを編集します。
-
Label – チェックボックスのラベル「Show values」を入力します。
-
IsLabelOnTop – スタイリングの一貫性を確保するために選択します。
-
BindingConfiguration –入る showValues
手記オプションで、ヘルプテキスト情報を入力できます。
-
-
他の3つのチェックボックスパラメータ項目の値を適宜設定します。
-
次に、作成したアイテムのIDをControlDefinitions フィールドに含める必要があります。以前に作成したアイテムを /sitecore/client/Applications/FormsBuilder/Components/Layouts/PropertyGridForm/PageSettings/Settings/Rating/Stylingに移動して追加します
-
最後に、新しいプロパティ エディターを 評価 フィールド項目で参照する必要があります。/sitecore/system/Settings/Forms/Field Types/Lists/Rating itemに移動し、Property Editor フィールドで Rating プロパティ エディターを選択します。
評価要素が フォーム要素 ウィンドウで使用できるようになりました。

Rating要素をフォーム キャンバスにドラッグすると、新しいスタイル設定オプションが使用可能になります。

オプション: テーマに別のプロパティ エディターを追加する
オプション: テーマに別のプロパティ エディターを追加する
以前に追加したバー評価プラグインのテーマは、CSSクラスフィールドにクラスを入力した後で使用できます。ドロップダウン ボックスからテーマを使用できるようにする場合は、評価プロパティ エディターに別のコントロールを追加できます。タスクの概要は次のとおりです。
-
ListItemテンプレートを使用して、10個のテーマに10個のアイテムを追加します。

-
項目を編集し、Value フィールドに評価テーマ名を入力します。
-
FormSection スタイルを調整します。
-
FormDropList Parametersテンプレートを使用して子アイテムThemeを追加します
-
StaticData - RatingThemes フォルダのIDを入力します
-
ValueFieldName -価値
-
FormLabel -テーマ
-
IsLabelOnTop -入選
-
BindingConfiguration - cssClassプロパティ


-
-
ControlDefinitions フィールドで、新しいテーマを参照します。CSSクラス バインディングをStyling FormSectionに追加したため、ここで削除する必要があります。
