Title: 部品の定義:日付の入力欄
ここでは、カスタマイズ版プロジェクトの投稿/編集フォームの作成方法 で紹介している、「製品保守案件」プラグインの部品「property_maintprod_contract_date」(契約日)を例に、日付入力欄の部品の定義ファイルの書き方を解説します。
定義ファイルの場所
フォームの部品の定義ファイルは、config/data/field/props に 部品名.properties という名前で保存します。
部品の名前が「property_maintprod_contract_date」なので、ファイル名は maintprod_contract_date.properties になります。
なお、ファイル名が「property_」から始まっているので、この部品(日付入力欄)に入力された内容は、「maintprod_contract_date」という名前のエントリープロパティとして記事に保存されます。
定義ファイルの内容
この property_maintprod_contract_date.properties に次の内容をコピー&ペーストして保存してください。
# 部品の種類
# 標準的な日付選択欄なので「dater」を指定する
type=date
# エントリーフィルードの名前
# 通常は部品名から「property_」を外した残りの部分
entry_field=maintprod_contract_date
# フォームに表示する時にクラス名を入れたい場合は指定する
# 指定しなくても可
class=contract_date
タイプ(種類)
type=
では、この部品の種類を指定します。ここでは数値型のテキスト入力欄を意味する number を指定しています。
エントリー フィルード(表示用の部品)
entry_field=
では、この部品に対応するエントリーフィールドの名前を指定します。
名前が「property_」から始まるフォーム部品(値をエントリープロパティとして保存する部品)に対応するエントリーフィルードの名前は、通常、「property_」の名前を取った残りに部分になります。
よって、フォーム部品「property_maintprod_contract_date」のエントリープロパティの名前は「maintprod_contract_date」になります。
クラス
class=
で指定された値は、この部品をフォーム上に表示するとき、フォームを構成する HTML 内の class=
属性として反映されます。
エントリークラスでの日付データの取り扱い設定
この部品を使って入力される日付データの取り扱い方について、エントリークラスの定義ファイル内で設定する必要があります。
# 独自の日付入力欄を使用する場合、
# そのプロパティ名や「終日」の扱いについて記述する。
standard_date_maintprod_contract_date_entry_property_name=maintprod_contract_date
standard_date_maintprod_contract_date_allday_entry_property_name=maintprod_contract_date_allday
standard_date_maintprod_contract_date_allday_entry_property_default=true
エントリークラスの定義ファイルは、config/entry/classes の中にある maintprod.properties です。
詳しくは、カスタマイズ版プロジェクト記事の定義や設定 を参照してください。
エントリーフィルードの定義
フォームの部品「property_maintprod_contract_date」に対応する、表示用の部品「maintprod_contract_date」を定義します。
定義ファイルは、定義本体、HTML レンダリング用定義、Text レンダリング用定義、Fulltext (全文検索用) レンダリング用定義、の 4 つを用意します。
定義本体
エントリーフィルードの全体的な定義ファイル maintprod_contract_date.properties を config/entry/fields/props に作成します。
次の内容をコピー&ペーストしてください。
# 記事に関する標準的な日付データを扱う
class=com.traction.sdk.token.EntryStandardDateEntryField
# 日付データの名前は「maintprod_contract_date」
date_name=maintprod_contract_date
# 部品の名前
display_name=Contract Date
# フィルター(絞り込み)として利用できるようにするか
filter_selectable=true
# フィルターとして利用する場合のグループ名と順番
filter_group=maintprod
filter_order=5000
HTML レンダリング用の定義
エントリーフィールドの値を HTML 形式で出力(レンダリング)するための定義ファイル maintprod_contract_date.properties を config/entry/fields/html に作成します。
次の内容をコピー&ペーストしてください。
# 「com」フォルダの下の、 「traction」フォルダの下の、
# 「sdl」フォルダの下の、 「fields」フォルダの下の、
# 「html.sdl」ファイルの中の、「entry-standard-date」関数を使う
sdl=com.traction.sdl.fields.html#entry-standard-date
Text レンダリング用の定義
エントリーフィールドの値をテキスト形式で出力(レンダリング)するための定義ファイル maintprod_contract_date.properties を config/entry/fields/text に作成します。
次の内容をコピー&ペーストしてください。
# 「com」フォルダの下の、 「traction」フォルダの下の、
# 「sdl」フォルダの下の、 「fields」フォルダの下の、
# 「text.sdl」ファイルの中の、「entry-standard-date」関数を使う
sdl=com.traction.sdl.fields.text#entry-standard-date
Fulltext レンダリング用の定義
エントリーフィールドの値をフルテキスト形式で出力(レンダリング)するための定義ファイル maintprod_contract_date.properties を config/entry/fields/fulltext に作成します。
次の内容をコピー&ペーストしてください。
# NullRendererを指定し、何も出力(レンダリング)しない
class=com.traction.sdk.token.NullRenderer
NullRenderer を指定しているので、フルテキストとしては「何も出力されない」ということになります。
Attachments:
image01.png
Article: DocSDK414 (
permalink)
Date: 2020/05/03; 17時43分16秒 JST
Author Name: TeamPage サポート
Author ID: jpbo