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.propertiesconfig/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.propertiesconfig/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.propertiesconfig/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.propertiesconfig/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