[Sugar_dev]一部のドロップダウン定義を編集不可にする(後編)

前回のカスタマイズの続きです。
SugarCRMの標準機能に対してカスタマイズを仕掛けていきます。
 



今回編集するファイルは、前回の記事で配置した、以下の2ファイルです。
custom/modules/ModuleBuilder/tpls/MBModule/dropdown.tpl
custom/modules/ModuleBuilder/views/view.dropdown.php

まず「dropdown.tpl」ですが、前回のカスタマイズでコメントアウトした「保存」ボタンについて、
「特定のフラグが立っている場合のみ表示する」ように改修内容を変更します。


「特定のフラグ」については、「view.dropdown.php」にて、条件分岐で定義できます。
その前に、今回編集不可の対象とする「一部のドロップダウン」をどのように定義するか、ですが、
本実装をした際は、これを定義するためのドロップダウンリストを新規に作成し、そこに定義することとしました。
上記ドロップダウンについて、名称を「dnt_mod_dd_list」とした上で、以降の解説に入ります。

「dnt_mod_dd_list」に対し、「編集不可としたいドロップダウンのドロップダウン名称」をキーとして、
要素を追加していきます。ここでは、「master_data_test_list」を編集不可にするものとします。


もちろん、「dnt_mod_dd_list」を編集不可にすることも可能です。
その場合、今後、画面上からは編集不可の対象とする「一部のドロップダウン」を追加することが出来なくなります。
(ドロップダウン設定ファイルを直接書き換える運用となります)

ドロップダウンの設定が済んだら、「view.dropdown.php」に対し、フラグ生成処理を記述していきます。

今回処理を記述した箇所ですが、各ドロップダウンリストの編集画面を開いた際に処理が走ります。
処理内容は以下の通りです。
・「dnt_mod_dd_list」から、編集不可にする対象のドロップダウンの一覧を取得
・編集画面を開いているドロップダウンが、「dnt_mod_dd_list」に含まれていなければ、フラグを立てる。

ファイルの編集が終わったら、管理メニューから「クイックリペア」を実施して、ドロップダウン編集画面を見てみましょう。

「master_data_test_list」の編集画面では、「保存」ボタンが非表示になっています。



一方、その他の編集画面では、「保存」ボタンが表示されており、ドロップダウンの編集が可能となっています。


 

Filed under: 開発部ブログ