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
に書くのが忍びないスタイルはこれで読み込みましょう。