SugarCRM(SugarPro 6.1.2)インスタンスのEditViewのカスタムフィールド(チェックボックス)の動作を変更しようとしています。具体的には、誰かがチェックボックスをクリックするたびにdivを表示したいと思います。このフィールドは期待どおりに編集ビューに表示され、onclickを実行するJavaScriptを追加しました。これも問題なく機能します。問題は、レコードが保存されるときに、チェックボックスの値が保存されないことです。フィールドを追加し、JavaScriptを関連付ける方法の詳細は次のとおりです。
- Studioでチェックボックスとしてフィールドを作成しました。それはwire_payment_cと呼ばれます
- このフィールドをDetailViewおよびEditViewレイアウトに追加しました。
- Quick Repair&Rebuildを実行しました
./custom/modules/MODULE/metadata/editviewdefs.phpを次のように編集しました。
1 => array ( 0 => '', 1 => array ( 'name' => 'wire_payment_c', 'label' => 'LBL_WIRE_PAYMENT', 'customCode' => '<input type="hidden" value="0" name="wire_payment_c"> <input id="wire_payment_c" type="checkbox" tabindex="107" title="" value="{$fields.wire_payment_c.value}" name="wire_payment_c" onclick="showMe(\'wire_message\', this)"> <div id="wire_message" style="display:none">Please obtain wire payment information.</div>' , ), ),
また、パネル定義のすぐ下に、以下も追加しました。
'includes'=> array(
array('file'=>'custom/modules/MODULE/wire_pmt.js' ),
),
- ./custom/modules/MODULE/wire_pmt.jsにshowMe()を含むJavaScriptを作成しました。
- クイックリペア&リビルドを再度実行しました
editviewdefs.phpのcustomCode行を削除した場合、チェックボックスの値が期待どおりにデータベースに保存および保持されていることを確認できました。さらに、onclickディレクティブを削除し、customCodeに割り当てられた値に入力タグを残すだけで問題を再現できることを確認できます。結果として、この問題はjavascriptとは何の関係もないようです。これは、入力タグを再レンダリングする方法に関するものです。しかし、入力タグ用に配置したコードは、customCodeを完全にコメントアウトして、FireBugを介してフォームを表示したときに表示されるものとまったく同じように見えます。
このような状況で、Sugarにカスタムフィールドの値をデータベースに保存させ、保存した値をロード時に詳細ビューと編集ビューに表示させるために、他に何かしなければならないことはありますか?このプロセスに関するドキュメントを読んでうれしいですが、この特定の種類のタスクに当てはまると思われるものを見つけることができませんでした。
どうもありがとうございます!