オープンソースCRM (株)
ホーム
ダウンロード
フォーラム
WIKI (日本語ドキュメント)
@エクスチェンジ
SugarForge
本文
ノート
ソースを表示
履歴
ソースを表示
出典: SugarForum.jp
Detailviewdefs/editviewdefs
のソース
この処理は user の権限を持った利用者のみが実行できます。
以下にソースを表示しています:
バージョン5では、エンドユーザによるカスタマイズが重視され、$viewdefs配列で表示項目を設定するスタイルをとる DetailView(詳細ビュー)とEditView(編集ビュー)の設定は、共通部分が多い。Sugar内部でも、DetailViewはEditViewクラスを継承しており、基本的には画面表示の際のテンプレートが異なるだけだ。 == 定義の場所 == [[SugarRoot/modules/@モジュール名/metadata/detailviewdefs.php]] [[SugarRoot/modules/@モジュール名/metadata/editviewdefs.php]] == 書式 == $viewdefs = array( '<モジュール名>' => array( '<ビューの種類>' => array( 'templateMeta' => array( //上部に並ぶ「編集」「削除」などのボタン設定 //横に並べるカラムの数や、幅などの全体的なレイアウトの設定、など ), 'panels' => array( //項目の並べ方、各項目の表示方法の指定 ), ) ) ) === templateMeta === * form : ** buttons : *** customCode : ** hidden : * maxColumns : 最大カラム数 * widths : ラベル幅とセル幅の指定 * panelClass : CSSのクラス。デフォルトは「tabForm」 * labelsOnTop : * includes : JavaScriptの読み込みなど === panels === 下記のように、パネル > 行 > セル の順で配列に入れて表現する。 '@パネル名' => array ( array ( array ( 'name' => 'full_name', 'label' => 'LBL_NAME', ), array ( 'name' => 'phone_work', 'label' => 'LBL_OFFICE_PHONE', ), ), ), セルに指定可能な属性は、nameやlabelの他、さまざまな指定が可能。 * name : フィールド名称。vardefsに対応するフィールドがあれば、その設定が使われる * label : フィールドのラベル。モジュールの言語ファイルが参照される * displayParams : 表示するSugarFieldのパラメータ設定。フォームのサイズなど。 * customCode : セルにカスタムのHTMLを出力する場合に使う。Smartyの記法で。 * customLabel : ラベルの内容を動的に変える場合など。 ==== displayParams ==== ビュー表示用のメタデータ定義ファイル(editviewdefs.php等)では、表示フィールドに対して'''displayParams'''というオプションパラメータを設定することが出来ます。このパラメータを指定すると、画面表示時のテキストフィールドのサイズの変更や、ボタンの表示/非表示を簡単に設定することができます。displayParamsは指定したいフィールドに対して、連想配列で記述します。 'displayParams' => array( 'パラメータ1' => '値1', 'パラメータ2' => '値2', ...) パラメータに指定する値は、パラメータ名がそのままHTMLタグの属性名になっている場合には対応する値を記述します。それ以外は基本的にBoolean(true/false)を指定します。例えばmodules/Accounts/metadata/editviewdefs.phpでは、displayParamsは次のように記述されています。 array( 'name'=>'name', 'label'=>'LBL_NAME', 'displayParams'=>array('required'=>true) ), このように通常の定義に追加する形で''''displayParams''''を追加して記述します。 '''指定可能なパラメータ''' ---- '''size''' *対象のフィールドにsize属性を追加します。値は数値で記述します。本パラメータ未指定時には、以下の値がsize属性のデフォルト値となります。(例外あり) **テキストフィールド => 30 **Sugarのフィールドがdatetime => 11 **select,その他 => 6 *定義例 **ほとんどのモジュールのeditviewdefs.phpで指定 *利用しているテンプレート **include/SugarFields/Fields/Base/EditView.tpl:include/SugarFields/Fields/Collection/CollectionEditViewRow.tpl **include/SugarFields/Fields/Relate/EditView.tpl **include/SugarFields/Fields/Relate/SearchView.tpl '''maxlength''' *input type=text, textareaに対してmaxlength属性を追加します。値は数値で記述します。未指定の場合には、vardefのlenの値が指定されます(されない場合もあり)。また、このパラメータを指定してもvardefのlenの値が優先されます場合もあります。 *定義例 **modules/Contacts/metadata/editviewdefs.php *利用しているテンプレート **include/SugarFields/Fields/Text/EditView.tpl **include/SugarFields/Fields/Base/EditView.tpl **include/SugarFields/Fields/Address/en_us.EditView.tpl '''class''' *class属性を追加します。値は文字列でclass名を記述します。対象のSugarフィールドがrelateの場合、"sqsEnabled"を同時に指定しない限りクイックサーチはoffとなります。(入力フィールドのクイックサーチの指定がclass属性で行われているため) *定義例 **modules/Cases/metadata/popupdefs.php *利用しているテンプレート **include/SugarFields/Fields/Relate/EditView.tpl **include/SugarFields/Fields/Relate/SearchView.tpl **include/SugarFields/Fields/Collection/CollectionEditViewRow.tpl **include/SugarFields/Fields/Collection/ViewSugarFieldCollection.php '''rows''' *textareaを表示するフィールドに対してrows属性を追加します。値は数値で記述します。本パラメータが指定されていない場合、デフォルトでは"4"が設定されます。 *定義例 **modules/Contacts/metadate/editviewdefs.php *利用しているテンプレート **include/SugarFields/Fields/Text/EditView.tpl **include/SugarFields/Fields/Address/EditView.tpl **include/SugarFields/Fields/Address/en_us.EditView.tpl '''cols''' *textareaを表示するフィールドに対してcols属性を追加します。値は数値で記述します。本パラメータが指定されていない場合、デフォルトでは"60"が設定されます。 *定義例 **modules/Contacts/metadate/editviewdefs.php *利用しているテンプレート **include/SugarFields/Fields/Text/EditView.tpl **include/SugarFields/Fields/Address/EditView.tpl **include/SugarFields/Fields/Address/en_us.EditView.tpl '''selectOnly''' *relateフィールドに対して、クリアボタンを非表示にします(検索ボタンのみ表示)。値はtrueで記述します。 *定義例 **modules/Accounts/metadata/sidecreateviewdefs.php *利用しているテンプレート **include/SugarFields/Fields/Relate/EditView.tpl **include/SugarFields/Fields/Relate/SearchView.tpl **include/SugarFields/Fields/Parent/EditView.tpl **include/SugarFields/Fields/Parent/SearchView.tpl '''clearOnly''' *検索エリアのrelateフィールドに対して、検索ボタンを非表示にします(クリアボタンのみ表示)。値はtrueで記述します。ポップアップ画面の検索エリアでは、このパラメータが自動的に追加されます。 *定義例 **なし(標準モジュールはこのパラメータを指定していない) *利用しているテンプレート **include/SugarFields/Fields/Relate/SearchView.tpl '''hideButtons''' *relateフィールドに対して、ボタンを非表示にします(検索/クリアボタン非表示)。値はtrueで記述します。 *定義例 **modules/Cases/metadata/popupdefs.php *利用しているテンプレート **include/SugarFields/Fields/Relate/SearchView.tpl **include/SugarFields/Fields/Relate/EditView.tpl '''required''' *対象フィールドを必須フィールドとして扱います。この時、画面上にはフィールドラベル名の横に"LBL_REQUIRED_SYMBOL(デフォルトでは赤色の*)"が表示されます。また、未入力のまま保存した場合に、ヴァリデーションエラーのメッセージを表示します。 *対象フィールドがvardef内ですでに"required=>true"で宣言されている場合、本パラメータを指定しなくても自動的に必須フィールドとなります。ただし、vardef内で"required=>true"が宣言されているにもかかわらず、本パラメータをfalseに指定すると、必須フィールド扱いが無効となります(おそらく障害)。 *定義例 **modules/Accounts/metadate/editviewdefs.php *利用/実装しているテンプレート **include/EditView/EditView.tpl **include/SugarFields/Fields/Address/EditView.tpl **include/SugarFields/Fields/Address/en_us.EditView.tpl **include/TemplateHandler/TemplateHandler.php **include/EditView/EditView2.php '''link''' *fileフィールドに対して、DetailViewで表示する時の表示名となります。fileフィールドを画面上に表示する際には、このパラメータは必須となります。値はフィールド名で記述します。指定したフィールド名が存在しない場合には画面上に何も表示されません。 *定義例 **modules/Notes/metadata/detailview.php **include/SugarObjects/templates/file/metadata/detailviewdefs.php *利用しているテンプレート **include/SugarFields/Fields/Image/DetailView.tpl **include/SugarFields/Fields/File/SugarFieldFile.php '''id''' *fileフィールドに対して、DetailViewで表示したリンクアドレスで指定されるidとなります。標準のファイルアップロードロジックを利用する限り、 id => 'id'を指定します。fileフィールドを画面上に表示する際には、このパラメータは必須となります。 *定義例 **modules/Notes/metadata/detailview.php **include/SugarObjects/templates/file/metadata/detailviewdefs.php *利用しているテンプレート **include/SugarFields/Fields/File/SugarFieldFile.php '''showFormats''' *datetime(combo)型のフィールド表示時に、ユーザ設定で指定された日付フォーマット(例:yyyy-mm-dd)を表示します。値はtrue/falseで記述します。 *定義例 **modules/Tasks/metadata/editviewdefs.php **modules/Campaigns/metadata/editviewdefs.php **modules/Campaigns/metadata/searchdefs.php *利用しているテンプレート **include/SugarFields/Fields/Datetime/SugarFieldDatetime.php **include/SugarFields/Fields/Datetime/EditView.tpl **include/SugarFields/Fields/Datetimecombo/EditView.tpl **include/SugarFields/Fields/Datetimecombo/SugarFieldDatetimecombo.php '''showNoneCheckbox''' *datetime(combo)型のフィールド表示時に、Noneチェック用のチェックボックスを配置します。チェックボックスが有効になった場合、該当フィールドの時/分ドロップダウンにreadOnlyが設定されます。値はtrue/falseで記述します。 *定義例 **modules/Tasks/metadata/editviewdefs.php *利用しているテンプレート **include/SugarFields/Fields/Datetime/SugarFieldDatetime.php **include/SugarFields/Fields/Datetimecombo/EditView.tpl **include/SugarFields/Fields/Datetimecombo/SugarFieldDatetimecombo.php '''splitDateTime''' *datetimecombo型のフィールド表示時に、日付入力フィールドの後ろに<br>を追加します。指定はtrue/falseで記述します。 *定義例 **modules/Calls/metadata/sidecreateviewdefs.php **modules/Meetings/metadata/sidecreateviewdefs.php *利用しているテンプレート **include/SugarFields/Fields/Datetimecombo/EditView.tpl '''hiddeCallendar''' *datetime型のフィールド表示時にカポップアップレンダー非表示にします。値はtrue/falseで記述します。 *定義例 *なし(基本モジュールでは利用されていない) *利用しているテンプレート **include/SugarFields/Fields/Datetime/SugarFieldDatetime.php **include/SugarFields/Fields/Datetime/SugarFieldDatetime.php **include/SugarFields/Fields/Datetime/EditView.tpl **include/SugarFields/Fields/Datetime/EditView.tpl '''[未実装]showHoursDropdown/showMinutesDropdown''' *datetime(combo)型のフィールド表示時に、それぞれ時/分のドロップダウンを非表示にします。値はtrue/falseで記述します。フラグの受け渡しのみ実装されており、、テンプレートの表示ロジックが未実装。非表示処理を入れたい場合には、以下のファイル内で該当パラメータのチェックを行うようにカスタマイズします。 **include/SugarFields/Fields/Datetime/EditView.tpl **include/SugarFields/Fields/Datetimecombo/EditView.tpl *利用しているテンプレート **include/SugarFields/Fields/Datetime/SugarFieldDatetime.php **include/SugarFields/Fields/Datetimecombo/SugarFieldDatetimecombo.php * tabindex : * hideLabel : cf. 「[http://d.hatena.ne.jp/frave/20091216 displayParamsで指定可能なパラメータ]」「[http://d.hatena.ne.jp/frave/20091217/1261037617 displayParamsで指定可能なパラメータ(2)]」 ==== customLabel ==== ラベルの内容を動的に変える場合などに有効。 例として、動的に関連づけされるフィールドの場合。Tasksモジュールより。 'customLabel' => '{sugar_translate label=\'LBL_MODULE_NAME\' module=$fields.parent_type.value}', == アップグレードセーフな拡張 == [[SugarRoot/custom/modules/@モジュール名/metadata/detailviewdefs.php]] [[SugarRoot/custom/modules/@モジュール名/metadata/editviewdefs.php]]
日本語ドキュメント
に戻る。
メインコンテンツ
はじめての方へ
管理者ドキュメント
開発者ドキュメント
ダウンロード
開発リファレンス
ファイル
クラス・関数
変数・オブジェクト
ツールボックス
リンク元
リンク先の更新状況
アップロード
特別ページ
アカウント
38.107.191.117
このIP利用者の会話
ログイン