もう、5.0が出るって言う時代にいまさら感があるけど、実際に出ている、実践!オープンソースCRMアプリケーション入門とSugarCRM Developer's Manualにおけるカスタマイズの違いについて記述しているものが見当たらない気がするし(あるのかな?)、さらに、SugarCRM Developer's Manualでも、記述がぜんぜん足らない部分があるので、何回かに分けて、まとめてみようかと思います。
■SugarCRMは、モジュールという概念が基本で、これが2つにわかれてる
SugarCRMには、モジュールという概念があります。
このモジュールとは、機能やエンティティなどのまとまりです。
このうち、エンティティのように
・1つのモノ・出来事などに相当し、
・1つのテーブルをもち(永続性があるので保存しないといけない)
・それに対して、CRUDがある
ようなものは、「SugarBeanを継承したモジュール」になります。
そうでない、グラフ表示(ダッシュボード)などは、「SugarBeanを継承”しない”モジュール」となります。つまり、モジュールは、SugarBeanを継承するかどうかに分かれます。
どちらも、Sugarのホームの下にあるModulesフォルダ(ディレクトリ)の下に置かれます。
■それぞれのモジュールの作成方法の相違点と共通点
これらのモジュールを作成する(=カスタマイズのため追加する)場合、以下のファイル等が必要になります。ここで、Mytestsというモジュールをつくるとすると・・
(1)タブ部分を定義する言語ファイル(ja.lang.phpとen_us.lang.php)
(2)モジュールを登録するところ
(3)モジュールフォルダ(Mytests)
index.php
Forms.php
languageフォルダ (モジュールの言語のフォルダ)
ja.lang.php
en_us.lang.php
必要最小限のファイルとフォルダは、上記のとおりです。なお、モジュールフォルダ内のindex.phpとForms.phpはとりあえず、ファイルを作るだけで、何も書かなくても動きます。この場合、languageフォルダ内にある、ja.lang.phpとen_us.lang.phpも何も書かなくてOKです。
で、これだけそろえると、SugarBeanを継承”しない”最小限のモジュールが作れます。継承する場合は、このほかにまだまだファイルが必要ですが、とりあえず、継承しないほうを作成してしまいましょう。
■作成の仕方で、さらに2とおりにわかれる。
さらに、作成の仕方で、2とおりに分かれます。
1つは、「SugarCRM Developer's Manual」に出ているように、インストーラーを作”らず”、直接、修正してしまう方法です。もうひとつは、「実践!オープンソースCRMアプリケーション入門」にあるように、インストーラーを作る方法です。この違いで、上記、(1)、(2)の作り方が違います。
今回は、簡単な「SugarCRM Developer's Manual」に出ている、インストーラー作成しない方法を説明します。なお、このインストーラーを作らない方法は、SugarCRMを継承する場合、継承しない場合、どちらでもありえるのですが、継承する場合、作業工程が増えます。今回は継承”しない”場合を説明します。
■作る手順
「SugarCRM Developer's Manual」198ページ上にあるとおりなのですが、ちょっと説明します。
●まず、「(3)モジュールフォルダ(Mytests)」を作成する
(あ)モジュール名のフォルダー(Mytests)を Sugarのホーム/modules/の下に作成します
(い)Sugarのホーム/modules/Mytestsが出来たと思いますので、そこに
index.php
Forms.php
ファイルを作ってください(中身空で結構です)。
(う)Sugarのホーム/modules/Mytestsの下に、languageフォルダを作る
(え)Sugarのホーム/modules/Mytests/languageフォルダの下に、
ja.lang.php
en_us.lang.php
ファイルを作ってください(中身空で結構です)。
●つぎに「(2)モジュールを登録」をします
(お)SugarCRMのフォルダ/include/modules.phpを開いてください
(注意:modulesじゃないですよ、includeの下!)
$moduleList[] = 'モジュール名';
が並んでいると思うので、そこに、
$moduleList[] = 'Mytests';
も追加してあげてください。
※参考:インストーラーを使った場合は、ここではないところに追加され、そのファイルを、
このmodules.phpの最後あたりの行で、インクルードしています。
●そしたら「(1)タブ部分を定義する言語ファイル」をいれます。
(か)SugarCRMのフォルダ/custom/include/languageフォルダを開きます。
なければ、作ってください。
(注意:modulesでも、ただのincludeでもないですよ、custom/includeの下のlanguage!)
(き)そしたら、そのSugarCRMのフォルダ/custom/include/languageフォルダの下に
en_us.lang.phpファイルを作成します
(く)SugarCRMのフォルダ/custom/include/language/en_us.lang.phpを開いて
<?php $app_list_strings['moduleList']['Mytests']='mytest'; ?> |
(上記<>は本当は半角)
を追加します(=の右辺の'mytest'は好きなタブにしてくださいね)
(け)同様に、SugarCRMのフォルダ/custom/include/languageフォルダの下に
今度は、 ja.lang.phpファイルを作成します
(こ)SugarCRMのフォルダ/custom/include/language/ja.lang.phpを開いて
<?php $app_list_strings['moduleList']['Mytests']='mytestj'; ?> |
(上記<>は本当は半角)
を追加します(=の右辺の'mytestj'は好きなタブにしてくださいね)
※参考:インストーラーを使った場合は、ここではない、奇想天外なところに追加されます。
●開きます
(さ)SugarをAdmin権限ある人が立ち上げてください(Adminでなくても大丈夫かなあ??)
→この時点では、タブはみえません。
(し)上の「管理」をクリックしてください。
(す)そしたら「スタジオ」の「タブを設定」
(せ)非表示タブに(こ)で設定した名前が出ています。それを表示タブのほうに持ってきて保存
(そ)ログオフして再度ログオンすると、ちゃんとできてます。
タブをクリックすると・・・なにも表示されません(^^;)
ってことで、次回は、ここに表示させる方法、DBアクセス、ユーザー情報、メニューについてなどです。