ウォークスルー
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
フォーム内のフィールド値がプリ入力され、ユーザーの時間を節約し、一貫性を向上させます。このウォークスルーは フォームのプリ入力ウォークスルーシリーズ の第3部であり、名前とメールアドレスのフィールドをプリフィルするバリュープロバイダーの実装方法を説明します。
このウォークスルーでは、以下の方法を説明します:
- プロバイダークラスを作成する
- 提供者アイテムを作成する
- フォームを作成する
- リダイレクトリンクを追加してください
- 事前に記入済みのフォームの結果を確認してください
プロバイダークラスを作成する
価値提供者を作成する際には、IFieldValueProviderインターフェースから継承するクラスを作成しなければなりません。
プロバイダークラスを作成するには:
-
Visual Studioプロジェクトでフォルダを作成し、ValueProvidersと名付けてください。
-
ValueProvidersフォルダでUserProfileFieldValueProviderクラスを作成し、IFieldValueProviderクラスから継承します。
-
GetValueメソッドを実装して任意の型のオブジェクトを返します。このオブジェクトはInputViewModel実装で適切な型にキャストされます。
UserProfileFieldValueProviderクラスのパラメータはプレーンな文字列として格納されます。例えば、メール、フルネーム、または使いたい他のユーザープロファイルプロパティキーなどです。
パラメータの他のデータをJSONやXMLとして保存し、そのデータを値提供者の実装で解析することができます。
public 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.Profileparameters ?? string.Empty; } } }
提供者アイテムを作成する
提供者項目を作成するには:
- /sitecore/system/Settings/Formsにアクセスし、「値提供者」を右クリックし、「挿入」をクリックし、「テンプレートから挿入」をクリックしてください。
- /sitecore/templates/System/Forms/Value Providerテンプレートをクリックしてください。
- アイテム名欄で名前を入力し、「挿入」をクリックします。
- 作成したアイテムにアクセスし、 設定 セクションの Model Type フィールドで値をクラスタイプ名に設定します。例えば、ValueProviderSample.FieldValueProviders.UserProfileFieldValueProvider.
- アイテムを保存してください。
フォームを作成する
フォームを作成するには:
- フォームダッシュボードで「 作成 」をクリックし、「 空白フォーム」をクリックします。
- フォーム要素ペインで、メール要素をページにドラッグします。ラベル欄でEmailを入力します。
- 単行テキスト要素をページにドラッグします。ラベル欄でFullnameを入力します。
- メール 欄をクリックし 、 フォーム要素 の パネルの詳細設定 セクションの価値プロバイダー欄で、先ほど作成したプロバイダーを選択してください。
- Value provider パラメータ欄にfullnameを入力してください。
- メール 欄をクリックし 、 フォーム要素 の パネルの詳細設定 セクションの価値プロバイダー欄で、先ほど作成したプロバイダーを選択してください。
- Valueプロバイダーパラメータ欄にメールアドレスを入力してください。
- フォームを保存して、 User Profile Formと名付けてください。
- ユーザープロフィールフォームをウェブページに追加し、 User Profile Pageと名付けてください。
- 前回のウォークスルーで作成したログアウトフォームをこのユーザープロフィールページに追加してください。
リダイレクトリンクを追加してください
リダイレクトリンクを追加すると:
- ログインフォームに「ページへのリダイレクト」送信アクションを追加してください。リダイレクトページとして「 ユーザープロフィールウェブページ 」をクリックしてください。
- 登録フォームで、登録が成功した後、ページをログインウェブページへリダイレクトしてください。
- ログアウトフォームで、ログアウトが成功したらログインウェブページにリダイレクトしてください。
事前に記入済みのフォームの結果を確認してください
事前に記入済みのフォーム結果を確認するには:
-
「 登録 」ダイアログボックスでユーザーを登録します。次にログインページで、ユーザーのメールアドレスとパスワードを使ってログインします。
-
ログイン成功後、ユーザープロフィールページにこのユーザーのフルネームとメールアドレスが表示されます。ユーザープロファイルページからログアウトするには、ログ アウトをクリックしてください。ログインしていないユーザーの場合、ユーザープロファイルページは空欄のままです。
