チュートリアル: フォームの事前入力のための値プロバイダーの設定
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
フォームに事前に入力されたフィールド値により、ユーザーの時間を節約し、一貫性を向上させることができます。このチュートリアルは、フォームの事前入力チュートリアル シリーズの パート3であり、名前フィールドと電子メール フィールドを事前入力する値プロバイダーを実装する方法について説明します。
このチュートリアルでは、次の方法について説明します。
-
プロバイダー クラスを作成する
-
プロバイダー項目を作成する
-
フォームを作成する
-
リダイレクトリンクを追加する
-
事前入力されたフォームの結果を確認する
プロバイダー クラスを作成する
値プロバイダを作成するときは、IFieldValueProviderインターフェイスから継承するクラスを作成する必要があります。
プロバイダ・クラスを作成するには、次のようにします。
-
Visual Studioプロジェクトでフォルダを作成し、ValueProvidersという名前を付けます。
-
ValueProvidersフォルダーにUserProfileFieldValueProviderクラスを作成し、IFieldValueProviderクラスから継承します。
-
任意の型のオブジェクトを返すGetValueメソッドを実装します。このオブジェクトは、InputViewModel実装で適切な型にキャストされます。
UserProfileFieldValueProviderクラスのパラメーターは、プレーンな文字列として格納されます。たとえば、email、fullname、または使用するその他のユーザープロファイルプロパティキーなどです。
パラメーターの他のデータ (JSONやXMLなど) を格納し、そのデータを値プロバイダーの実装で解析できます。
RequestResponsepublic class UserProfileFieldValueProvider : IFieldValueProvider { public User User => Context.User; public FieldValueProviderContext ValueProviderContext { get; set; } public object GetValue(string parameters) { if (User == null || !User.IsAuthenticated) { return string.Empty; } switch (parameters) { case "name": case "username": return User.Name; case "email": return User.Profile.Email; case "fullname": return User.Profile.FullName; default: return User.Profile[parameters] ?? string.Empty; } } }
プロバイダー項目を作成する
プロバイダー項目を作成するには:
-
/sitecore/system/Settings/Formsに移動し、Value Providersを右クリックし、Insertをクリックして、Insert from Templateをクリックします。
-
/sitecore/templates/System/Forms/Value Providerテンプレートをクリックします。
-
Item Nameフィールドに名前を入力し、Insertをクリックします。
-
作成したアイテムに移動し、SettingsセクションのModel Typeフィールドで、値をクラス タイプ名に設定します。たとえば、ValueProviderSample.FieldValueProviders.UserProfileFieldValueProvider.
-
アイテムを保存します。
フォームを作成する
フォームを作成するには:
-
Formsダッシュボードで、「 Create 」をクリックし、「 Blank form」をクリックします。
-
Form elementsウィンドウで、Email要素をページにドラッグします。Labelフィールドに「Email」と入力します。
-
Single-line text要素をページにドラッグします。LabelフィールドにFullnameと入力します。
-
Emailフィールドをクリックし、Form elementsペインのAdvanced settingsセクションのValue providerフィールドで、前に作成したプロバイダーを選択します。
-
Value provider parametersフィールドにfullnameと入力します。
-
Emailフィールドをクリックし、Form elementsペインのAdvanced settingsセクションのValue providerフィールドで、前に作成したプロバイダーを選択します。
-
Value provider parametersフィールドにemailと入力します。
-
フォームを保存し、User Profile Formという名前を付けます。
-
ユーザー プロファイル フォームをWebページに追加し、User Profile Pageという名前を付けます。
-
前のチュートリアルで作成したログアウト フォームをこのユーザー プロファイル ページに追加します。
リダイレクトリンクを追加する
リダイレクトリンクを追加するには:
-
ログインフォームに「ページにリダイレクト」送信アクションを追加します。ページへのリダイレクトとしてUser Profile web pageをクリックします。
-
登録が成功したら、登録フォームでページをログインWebページにリダイレクトします。
-
ログアウトフォームで、ログアウトが成功したらログインWebページにリダイレクトします。
事前入力されたフォームの結果を確認する
事前入力されたフォームの結果を確認するには:
-
Registerダイアログボックスで、ユーザーを登録します。次に、ログインページで、ユーザーのメールアドレスとパスワードを使用してログインします。
-
ログインが成功すると、ユーザープロファイルページにこのユーザーのフルネームとメールアドレスが表示されます。ユーザープロファイルページからログアウトするには、「 Logout」をクリックします。ログインしているユーザーがいない場合、ユーザープロファイルページは空白のままになります。