Title: 新しい記事の種類「岳タスク」を定義する
ここでは、「岳タスク」というカスタマイズ版タスクの記事をどのように定義するのかを解説します。
エントリー クラス
「記事の種類」は、エントリー・クラス (記事クラス) として定義します。
TeamPage に元から用意されているエントリークラス(タスクやプロジェクトなど)は、server フォルダ下の config/entry/classes に定義ファイルが置かれています。このフォルダがエントリークラスの定義ファイルの置き場というわけです。
したがって、新しい「岳タスク」のエントリー クラスの定義ファイルは、プラグインのフォルダ com.traction.form.takashi の下の config/entry/classes フォルダの中に置かれています。このフォルダの中に takashi.properties というファイルがあることを確認します。
このファイルをテキストエディターで開くと次のようになっています。
# 「task」のエントリークラスの定義ファイルから設定を引き継ぎます。
__inherits=task
# この記事クラスの表示名
display_name=#{@takashi#entry_class_display_name}
# このEntryClassに、エントリーのclassプロパティではなく
# カスタム エントリー タイプを当てはめたい場合はtrueを選択します。
# ここではカスタム エントリー タイプの「task」ではなく、
# 「takashi」というclassを当てはめるので「false」を指定します。
prefer_custom_entry_type=false
# カスタム エントリー タイプは「task」にします。
custom_entry_type=task
# ここで指定された名前のフォームが、このカスタム エントリー タイプを
# 持つ記事の作成に既定で使用されます。
newentry_form=takashi
# ここで指定された名前のフォームが、このカスタム エントリー タイプを
# 持つ記事の編集に既定で使用されます。
editentry_form=takashi
# The config/data/forms FormFactory to use to edit entries that have
# this custom entry type.
editentry_singleentry_form=takashi
# サイドバーの「新しい岳タスク」ボタン(リンク)のテキスト
# The default link text to show for the new link or button.
newentry_link_text=#{@takashi#entry_class_newentry_link_text}
# サイドバーの「岳タスクの編集」ボタン(リンク)のテキスト
# The default link text to show for the edit link or button.
editentry_link_text=#{@takashi#entry_class_editentry_link_text}
# このエントリー クラスを投稿/編集するフォームで使用される、
# タグ関係のフィールド(フォーム上の部品)を指定します。
# これらのフォーム フィールドは、config/data/labelnamebuckets で定義されます。
labelname_buckets=tags,goal,milestone,todo,priority,color,takashi_type,takashi_category,takashi_location
# このエントリー クラスを投稿/編集するフォームで使用される、
# リレーションシップ関係のフィールド(フォーム上の部品)を指定します。
# これらのフォーム フィールドは、config/data/referencebuckets で定義されます。
reference_buckets=takashi_target
# Set the name(s) of the date entry property used for this entry class.
standard_date_takashi_specialday_entry_property_name=takashi_specialday
standard_date_takashi_specialday_allday_entry_property_name=takashi_specialday_allday
standard_date_takashi_specialday_allday_entry_property_default=true
# 履歴の差分を調べるための関数を指定します。
# 例えば、「メモ」はエントリープロパティとして記事に埋め込まれているため、
# 履歴の差分には「メモ」の変更は表示されません。
# ここで指定する関数に、差分の表示画面に「場所」の変更を表示するための記述を行います。
diffsdl=com.traction.takashi.sdl.token.diff
詳しくはコメントを読んで頂くとして、エントリークラスの定義ファイルは、次のようなことを決めるものであることがわかります。
- どの種類の仲間にするか(どの種類から設定を引き継ぐか)
- 投稿と編集に使うフォームの名前
- タグ式のフォーム部品
- リレーションシップ式のフォーム部品
- 日付入力欄の取り扱い
- 履歴の差分表示に使うSDL関数
インデックス エントリー タイプ
TeamPage のジャーナルの中に投稿されている数多のエントリーの中から「岳タスク」だけを素早く取り出せるようにするためのものが、インデックス・エントリー・タイプです。
例えば、「岳タスク」だけを表示するセクションを作る場合、「岳タスク」を素早く検索して取り出すことができなければ、セクションの表示に時間がかかってしまいます。
「岳タスク」のインデックス エントリー タイプの定義ファイルは、プラグインのフォルダ com.traction.form.takashi の下の config/entry/indextypes フォルダの中に置かれているファイル takashi.properties です。
# インデックスタイプを設定するためのクラス
class=com.traction.sdk.IndexEntryType
# エントリークラスの名前とマッチさせる
match_entry_class_name=true
# このインデックスタイプの表示名(単数形)
display_name=#{@takashi#entry_indextype_takashi_display_name}
# このインデックスタイプでフィルター(絞り込み)するための表示名(複数形)
type_filter_display_name=#{@takashi#entry_indextype_takashi_type_filter_display_name}
# このエントリークラスのためのクエリの短縮形
query_short_type_name=tks
Attachments:
image01.png
Article: DocSDK350 (
permalink)
Date: 2018/11/01; 0時29分41秒 JST
Author Name: TeamPage サポート
Author ID: jpbo