SugarCRM

第3回 ソースコードを読む前に知っておきたい基本動作


オープンソースのSFA/CRMアプリケーション「SugarCRM」は、利用者に合わせてカスタマイズを加えていくことで、より真価を発揮することができます。この連載では、ソースコードの内容を把握した上でさまざまなカスタマイズを加えていくまでを紹介します(編集部)

河村 嘉之
オープンソースCRM株式会社
2008/11/7


 前回「SugarCRMの簡単なカスタマイズ」では、簡単なカスタマイズであれば、SugarCRMが提供する機能を用いて、ソースコードを編集することなく行えることを説明しました。

 とはいいながら、「Sugar Community Edition」はオープンソースとして公開されています。開発者がソースコードを閲覧してアプリケーションの動作を把握できるため、より深いカスタマイズが可能です。そこはSugarCRMの大きな利点の1つです。

 しかし、いきなりソースコードを渡されても、どこから手を付ければいいのかはなかなか分かりません。そこで今回からは、ソースコードの内容にまで踏み込んで解説していきます。まず今回は、SugarCRMの動作を解説しながら、どのようにソースコードを読むべきかを紹介します。

SugarCRMの「エンドポイント」

 最初の一歩として、SugarCRMがどのように動くかを、アクセスする先(エンドポイント)のURLを入り口にして見ていきましょう。まずログインすると、ホーム画面が表示されます。このときのURLは以下のようになっています。

http://sugarsite.com/sugar/index.php?module=Home&action=index

 次に、左横のショートカットから「取引先担当者作成」を選びます。すると、このときのURLは以下のようになります。

http://sugarsite.com/sugar/index.php?module=Contacts&action
=EditView&return_module=Contacts&return_action=DetailView

 また、タブから「商談」を選び、一覧表示された商談の中から1つを選ぶと、以下のようなURLになります。

http://sugarsite.com/sugar/index.php?module=Opportunities&
offset=1&stamp=1224392655097675700&return_module=Opportunities&
action=DetailView&record=125d5990-0b45-e1d3-b01b-488578de3bb2

 このURLを分解していきましょう。

 まず、SugarCRMを利用する場合、ブラウザから送られる大部分のリクエストは、エンドポイントのindex.phpが受け取ります。そして、その際に一緒に送信されるパラメータを基に、どのように動くかを決定します。

図1
図1 SugarCRMに送られるリクエスト

 パラメータとしていくつかの値が送られているのですが、ここで初めに注目するのは、「moduleパラメータ」です。このパラメータに指定されたモジュールが、このリクエストを処理するモジュールになります。

 最初のURLでは「Home(ホーム)」、次のリクエストでは「Contacts(取引先担当者)」、3つ目のリクエストでは「Opportunities(商談)」になります。これで処理するモジュールが特定できました。

 次は、「actionパラメータ」を見てみましょう。このパラメータでは、先ほど特定したモジュールでどのような動作をするかを決定します。

 上記のURLを例にアクションを見てみましょう。最初のURLではindexなので「そのモジュールの代表的な動作」、次のURLではEditViewなので「編集ビューの表示」、3つ目はDetailViewなので「詳細ビューの表示」となります。SugarCRMの各モジュールで行う代表的なアクションは、以下のようになります。

アクション 説明
ListView
指定したモジュールのレコードを一覧する。同時に検索フォームも表示されるため、これを利用しレコードを絞り込むこともできる。ここからデータの詳細表示、削除、編集、一括更新などを行うことができる。
DetailView
指定したモジュールの特定のレコードの詳細を表示する。そのレコードそのもののデータに加え、関連するモジュールのデータをサブパネルとして表示する。ここからこのレコードの編集、削除などを行うことができる。
EditView
指定したモジュールの既存のレコードの編集、新規レコードの作成を行うための編集フォームを表示する。
Save
EditViewの保存ボタンが押されたときに、実際にそのデータのレコードを保存する。
Delete
DetailViewで削除ボタンが押されたりListViewの中で特定のレコードが選択されて削除ボタンが押されたときなどに、該当するレコードを削除する。
表1 SugarCRMの主なアクション

 上記以外にも、モジュールごとに必要なアクションを持つことができます。

 次に、3つ目のURLに付与されている「recordパラメータ」について説明します。これは例えば、DetailViewなどで表示するレコードを特定するために用いられます。

 ここまでで説明したmodule、action、recordの3つが、SugarCRMにおいて重要なパラメータです。

 そのほかにも、動作を行った後にデフォルト以外のモジュールやアクションを行うことを指定するreturn_module、return_actionなど、補助的なパラメータも用意されています。

 このように、SugarCRMではURLを見ることによって、どのモジュールでどのような動作を(場合によってはどのレコードに対して)行うかを推定できます。

 
1/3

Index
徹底解剖、SugarCRM(3)
 ソースコードを読む前に知っておきたい基本動作
Page 1
 SugarCRMの「エンドポイント」
  Page 2
 SugarCRMのディレクトリ構成
 SugarCRMの基本動作
  Page 3
 ソースコードに見るSugarCRMの動作
 応用の前に動作の骨子を把握しよう
 コラム Sugar 5.0.0h日本語版リリース

Linux Square全記事インデックス


 Linux Squareフォーラム 仮想化技術関連記事
連載:実践! Xenで実現するサーバ統合
有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します
特集:サーバの仮想化技術とビジネス展開の可能性
jailからUML/VMwareまで
1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった
特集:仮想化技術のアプローチと実装
VMwareから要注目技術Xenまで

1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう
特集:仮想OS「User Mode Linux」活用法
技術解説からカーネルカスタマイズまで
Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説
特集:仮想化技術の大本命「Xen」を使ってみよう
インストール & Debian環境構築編

高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう
特集:仮想化技術の大本命「Xen」を使ってみよう
Xen対応カスタムカーネル構築編

Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる
特集:IPv6、UML、セキュリティ機能の統合
全貌を現したLinuxカーネル2.6[第4章]

今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう
Linux Squareプロダクトレビュー VMware Workstation 4
PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう
古くて新しい「サーバ仮想化技術」の行方
サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する
Linux Squareフォーラム全記事インデックス


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間