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

今回はSugarCRMの機能に対する制御を仕掛けていきます。
アップグレードセーフの範囲内で可能なカスタマイズです。
 



以前請け負った案件で、標記のような要件が挙がり、その時に実装したカスタマイズの紹介となります。
こうした要件が他の案件で挙がるかどうかはわかりませんが、ご参考まで。

まず、「どのように『編集不可』という状態を実現するか」について考えます。
ドロップダウンの編集画面では、ドロップダウン要素を編集した後に「保存」ボタンをクリックすることで編集完了となります。



この「保存」ボタンを非表示にすることで、保存不可 = 編集不可の状態を作り出すことにします。

保存ボタンが定義されているファイルのパスは次の通りです。
modules/ModuleBuilder/tpls/MBModule/dropdown.tpl

上記smartyのテンプレートファイルに、ドロップダウン編集画面のレイアウトが掲載されています。
このうち、次の記載をコメントアウトすることで、「保存」ボタンを非表示にすることが可能です。





さて、これでドロップダウンを編集不可にする状態が作れそうですが、
上記のカスタマイズだと、2点の問題があります。
・今回の要件は「一部のドロップダウンに対して」変更を適用したいが、このままでは全てのドロップダウンが編集不可となってしまう
・modules直下のファイルを直接編集するため、アップグレードセーフでない

これらの問題を解決するために、次のファイルに着目します。
modules/ModuleBuilder/views/view.dropdown.php

このファイルを、custom配下にコピーします。
custom/modules/ModuleBuilder/views/view.dropdown.php

先ほどの「dropdown.tpl」も、以下のパスにコピーして編集するようにします。
custom/modules/ModuleBuilder/tpls/MBModule/dropdown.tpl

custom配下に「dropdown.tpl」を配置したことを、「view.dropdown.php」に定義する必要があります。


これで、アップグレードセーフに関する問題は解消しました。
次は「特定のドロップダウン編集時に限り、編集不可にする」という点です。
これについては、別記事にまとめます。
 

Filed under: 開発部ブログ