MyFieldRules
条件に応じた入力欄の表示と、保存時・公開時の入力ルールを設定します。
- 対象製品
- MyAdminPack
- 対象バージョン
- v2
概要
MyFieldRulesは、入力内容や公開ステータスを条件として、入力欄の表示と入力ルールを制御するプラグインです。たとえば、選択した種別に必要な項目だけを表示する、公開時だけ特定の項目を必須にする、といった入力ルールを設定できます。
ルールはサイト、入力対象、MyFieldLayoutのレイアウトを指定して作成します。公開中のルールだけが入力画面に適用されます。
対応環境と対象
| CMS | 対応環境 | 入力ルールの対象 |
|---|---|---|
| Movable Type/Movable Type Premium | 9以降 | 記事、ウェブページ、コンテンツタイプごとのコンテンツデータ |
| PowerCMS | 7 | 記事、ウェブページ、登録済みのカスタムオブジェクト |
Movable Type版のコンテンツタイプとPowerCMS版のカスタムオブジェクトでは、対象やフィールドの構造が異なるため、ルールを一方のCMSから他方へ移行する機能はありません。
管理できるユーザー
入力ルールの一覧、作成、編集、複製、公開、無効化、削除は、システム管理者だけが操作できます。
システムスコープでは、全サイトの入力ルールを一覧で確認できます。ルールを新規作成するときは、対象のサイトまたは子サイトを選択してください。公開したルールは、そのサイトで編集するユーザーの入力画面に適用されます。
設定場所
対象サイトを選択し、管理画面の「入力ルール」メニューを開きます。
- 「入力ルール」:登録済みルールの一覧
- 「入力ルールの新規作成」:対象、条件、制御を指定する設定画面
ルールの作成
- 対象サイトで「入力ルールの新規作成」を開きます。
- ルール名を入力します。説明は任意です。
- 記事、ウェブページ、コンテンツタイプまたはカスタムオブジェクトから対象を選択します。
- ルールを適用するレイアウトを1件以上選択します。
- 必要に応じて条件を追加し、「すべての条件」または「いずれかの条件」を選択します。
- 表示または検証の制御を1件以上追加します。
- 検証を行う制御では、「保存時」または「公開時」と、必要に応じてエラーメッセージを設定します。
- 画面の概要を確認し、「下書き保存」または「公開」を選択します。
対象とするレイアウトには、公開中のMyFieldLayoutだけを選択できます。MyFieldLayoutを使用していない入力画面へ適用する場合は、「レイアウトなし」を明示的に選択します。
条件を1件も追加しないルールは、選択した対象とレイアウトで常に一致します。
条件で利用できる項目と比較方法は、条件設定を参照してください。
表示制御と各入力ルールは、制御と入力ルールを参照してください。
レイアウトとフィールドの関係
条件または制御で参照するフィールドは、選択したすべてのレイアウトに配置されている必要があります。複数のレイアウトのうち1件でもフィールドが含まれていない場合、そのルールは公開できません。
公開後に次のような不整合が見つかると、ルールは自動的に「無効」になります。
- 対象サイト、コンテンツタイプ、カスタムオブジェクト、レイアウトまたはフィールドが削除された
- フィールドの種類が変更された
- 条件に指定した選択肢が削除された
- カテゴリセットなど、フィールドが必要とする設定が利用できなくなった
- 保存されているルール定義を読み取れない
自動的に無効になったルールは、表示された診断内容に従って修正し、いったん下書きとして保存してから公開し直してください。
ルールの状態
| 状態 | 動作 |
|---|---|
| 下書き | 入力画面へ適用されません。作成途中の設定を保存できます。 |
| 公開 | 対象とレイアウトが一致する入力画面へ適用されます。 |
| 無効 | 入力画面へ適用されません。公開済みルールに不整合が見つかったとき、自動的に変更されます。 |
下書きでは、ルール名だけを入力した作成途中の状態も保存できます。公開時には、対象、レイアウト、条件、制御、フィールドの参照先と、ほかの公開ルールとの競合が検査されます。エラーがある場合は公開できません。警告だけの場合は公開できます。
一覧からルールを複製すると、「Copy of 元のルール名」という名前の下書きが作成されます。削除したルールは一覧から削除され、元に戻す操作はありません。
入力画面での動作
入力画面では、現在選択されているレイアウトに対応する公開済みルールが読み込まれます。入力値が変わると条件を再評価し、表示制御を更新します。
保存操作ではブラウザ上で検証した後、サーバー側でも同じルールを検証します。違反がある場合は保存されず、該当するルール名とメッセージが表示されます。
入力途中でレイアウトを切り替えた場合、同じブラウザの同じセッションでは入力値が一時的に保持されます。保持期間は30分です。ファイル入力とパスワード入力は保持されません。
注意事項と制限事項
- 表示制御で入力欄を非表示にしても、すでに入力されている値は削除されません。
- CMS標準で必須に設定されているフィールドを非表示または空欄必須にはできません。
- 日時指定公開では、日時指定として保存するときに保存時・公開時の両方を検証します。指定日時に実際に公開されるときは再検証しません。
- 全体再構築、個別再構築、バックグラウンド再構築、Publish Queueの処理では入力ルールを検証しません。既存データが現在のルールに違反していても、再構築は停止せず、警告も作成しません。
- CMS管理画面の通常の保存経路が対象です。Data API、インポート、データベースの直接更新など、管理画面を経由しない更新は検証対象として確認されていません。
- 公開後にルールを変更しても、保存済みデータへ遡って一括検証する機能はありません。
