今まで、SugarCRM 4.5のカスタマイズのまとめをやってきて、決して十分とはいえないけれど、モジュールの作り方について説明してきました。
で、それをもとにSugar CRM5.0のモジュールカスタマイズについてやりたいと思います。
とはいえ、SugarCRM4.5と5.0では、外見は似たようなものなのですが、内部は、星飛雄馬のお父さんがちゃぶ台ひっくり返しちゃったくらい、違います。
具体的にどのくらい違うか(って、「ちゃぶ台ひっくり返しちゃったくらい」って言われても、さっぱり分かりませんよね ^^;)について、今回は書きたいと思います。
その後、カスタマイズの方法についてかきます。
■ホームのindex.phpが違う。
まず、SugarCRMはログインするとホームにあるindex.phpが表示されます。
Sugar5.0のindex.phpは、コメントをはずすと、以下のことしか書いていません。
$startTime = microtime(); require_once('include/entryPoint.php'); ob_start(); require_once('include/MVC/SugarApplication.php'); $app = new SugarApplication(); $app->startSession(); $app->execute(); |
(上記>は、本当は半角。index.phpより引用)
いままではごちゃごちゃありました。
つまり、権利関係その他を、index.phpで処理していた場合、一切書き直しです。
そして、ここで見られるように、実際の処理を、いままでもincludeの中に書かれていましたが、
5.0からは、それが徹底しています。さらに、include/MVCというのができ、MVCに基づく考え方も
徹底してきました。
■モジュールのindex.phpの意味合いが違う。
そして、index.phpを処理すると、ホーム画面になり、そこのタブをクリックすると、URLが
http://127.0.0.1/Sugarのホーム/index.php?module=モジュール名&action=index
となることまでは同じなのですが、このaction=indexの意味合いが、4.5とは違います。
4.5のときは、必ず、モジュールの下にindex.phpがあり、タブをクリックしたときは、
それが呼び出されました。
ところが、5.0においては、
・SugarBeanを継承しないものは、モジュールの下にindex.phpがあり、これが実行されます。
・SugarBeanを継承するものは、基本的にはindex.phpを書きません。
そうすると、includeのListViewがいろいろ呼び出され、Modules/metadata内にある定義を元に、
表示しているようです(まだ追いきれてないのですが)
つまり、index.phpがあればそれを表示し(SugarBeanを継承してないケース)、なければ、SugarBeanを継承したものとしています。
■4.5とはちょっと違う
じゃあ、いままで(4.5で)SugarBeanを継承したモジュールを使えば、index.phpがあるので、それを実行するからいいじゃん。と思うかもしれません。
たしかに、4.5はincludeの下に、ListView,DetailView,EditViewのフォルダがあり、それぞれの機能を行ってきました。5.0にも、それはあります。
でも、vardefs.phpの末尾が、ちょっと違うように、5.0になり違っているところもあるので、簡単に入るかどうかは・・・?
ということで、
SugarBeanを継承しているものに関して、5.0は大きくかわりました。
ま、それについては、おいおい話していくことにして、
次回から、カスタマイズの方法についてです。