SugarCRMネタ。
共通で使用するJavaScriptをアップグレードセーフに読み込む方法。
カスタムで共通なJavaScriptを読み込むために、今まではSugarViewに書いたり、layout_utilに書いたり、苦肉のカスタマイズを施していたがこの方法でついに決着!
JavaScriptのグルーピング機構を使う
SugarはJavaScriptのリペアによってinclude/javascript/の下に生成されたJavaScriptをグルーピングして、まとめたJavaScriptをcacheに生成している。
jssource/JSGroupings.phpに設定が書かれている。
で、このファイルの最後にExtensionを読む設定が!!
カスタムグルーピング設定を記述
設定は以下のファイルに書く。ファイル名はなんでも良い。
custom/Extension/application/Ext/JSGroupings/custom_jsgroupings.php |
$js_groupingsに追加する形で定義すればよい。
ただ、グルーピングの定義の仕方に癖があるので注意。こう書かないと正しくマージされない。
|
include/javascript/sugar_grp1.jsと書くことで、sugar_grp1.jsにマージされるようになる。
最近、自分はRailsのようにassetsディレクトリにJavaScript、CSSを置くことが多い。マージ先はsugar_grp1.jsを指定しておけばロードの手間も省けるし一石二鳥。
おわりに
多分これがアップグレードセーフでやる最適解だと思われる。
同じ手法でCSSもロードできるのでstyle.cssに書くのが忍びないスタイルはこれで読み込みましょう。