SugarCRM

第9回 自分のホームページをカスタマイズする


河村 嘉之
オープンソースCRM株式会社
2009/6/8

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

 前回「カスタマイズをパッケージングする」では、作成したカスタマイズコードをパッケージし、それをSugarCRMで管理する方法について説明しました。これにより、どのような機能がSugarCRMに追加されているかをきちんと把握することができます。

 今回は、SugarCRMの「ホームページ」をカスタマイズする方法を説明します。ここでは、一般的な意味合いとは異なり、SugarCRMにユーザーがログインした際に最初に表示されるページをホームページと呼んでいます。

 ホームページには、SugarCRMに蓄積されているデータを一覧表示できます。表示する情報は小窓の中に表示され、ホームページ上に並べられます。この小窓をSugarCRMでは「ダッシュレット」と呼びます。

 ユーザーはそれぞれ、ダッシュレットをホームページ上に追加したり、不要なら削除したり、好みに合わせて配置を変えたりすることができます。それにより、ユーザーは自分にとって重要な情報を一覧できるページを柔軟に作成できます。

 また、ダッシュレットはSugarCRMをインストールしたデフォルトの状態でも多数システム上にセットアップされているのですが、それ以上の機能が必要な場合は、自分で作成することも可能です。

 ここから、自分のホームページをカスタマイズする方法とダッシュレットを新たに作成する方法を説明します。

ホームページのカスタマイズ

 SugarCRMにログインします。すると、最初にユーザーのホームページが表示されます。左右にいくつかのダッシュレットが並んだ状態で、デフォルトでは左側に「私のコール」などのダッシュレットと右側に「簡易メモ」などのダッシュレットが並んでいます。

 ダッシュレットの配置を変更する場合は、ダッシュレットのタイトルバー(上側の領域)にマウスカーソルを持っていき、ドラッグします。すると、そのダッシュレットが移動できますので、表示されるガイドに従って好きな場所にドロップします。こうすることにより、自由にダッシュレットの配置を変更できます。

画面1
画面1 ホームページおよびダッシュレットの移動

 ダッシュレットの追加は、右上にある「Dashletの追加」ボタンを押します。するとダイアログが表示されますので、ここで追加したいダッシュレットをクリックすると自分のホームページ上にそのダッシュレットが追加されます(追加直後は左上に配置されます)。削除する場合は、ダッシュレットのタイトルバーの「×」ボタンを押します。

 また、ダッシュレットのツールバーにある「鉛筆」ボタンを押すと、そのダッシュレットの設定を変更できます。「何件のデータを表示するか」「どの列を表示するか」などをここで変更することができます。ダッシュレットに表示するデータの絞り込み条件もここで設定できます。

 このように、自分のホームページにどのようなダッシュレットをどこに配置するかや、そのダッシュレットにどのようなデータを表示するかを、それぞれのユーザーが簡単にカスタマイズすることができます。

ダッシュレットの作成

 SugarCRMでは、主要なモジュールに対するダッシュレットが用意されています。ダッシュレットは、各モジュールの以下のディレクトリに配置されています。

modules/[モジュール名]/Dashlets/[ダッシュレット名]/

 例えばリードモジュールには、MyLeadsDashletというダッシュレットが用意されています。このダッシュレットは、以下のディレクトリに配置されています。

modules/Leads/Dashlets/MyLeadsDashlet

 また、カスタムでダッシュレットを作成する場合は、以下のディレクトリに置くことにより、アップグレードセーフに新しいダッシュレットを追加することができます。

custom/modules/[モジュール名]/Dashlets/

 ここからは、ダッシュレットの作り方を見てみます。ダッシュレットに必須のファイルは2つあります。

 1つ目のファイルは、ダッシュレットの実装ファイルです。このファイルの名前(拡張子を除く)と、ここに定義されるダッシュレットのクラス名は同一でなければいけません。2つ目のファイルは、このダッシュレットはどのようなダッシュレットなのかを定義するメタデータを記述したファイルです。このファイルの名前は、クラス名.meta.phpでなければいけません。

 ここからは、それぞれのファイルについて詳しく見ていきます。

ダッシュレット実装ファイル

 ダッシュレットは、Dashletクラスを継承したクラスとして作成します。Dashletクラスは、include/Dashlets/Dashlet.phpに定義されていますので、各実装ファイルでは、このクラスを取り込んでおく必要があります。ダッシュレットでは、このクラスの各メソッドをオーバーライドして独自の処理を実装していきます。以下が代表的なメソッドです。

メソッド名 説明
getTitle($text)
ダッシュレットのタイトルを表示する。デフォルトでは、タイトルと閉じるアイコンが表示され、$textが指定された場合は、その文字列がタイトルとアイコンの間に表示される
display($text=’’)
ダッシュレットの中身を表示する
displayOptions()
ダッシュレットのオプション設定画面を表示する。オプションを設定する場合はisConfigurableメソッドがtrueを返すようにする
process()
displayメソッドが呼ばれる前の前処理を実装する
saveOptions($req)
オプションを保存する
表1 ダッシュレット実装ファイルの主なメソッド

メタデータファイル

 次に、ダッシュレットのメタデータを説明します。以下のコードは、リードモジュールにあるMyLeadsDashletのメタデータです。

<?php
……
global $app_strings;

$dashletMeta['MyLeadsDashlet'] = array(
  'module' => 'Leads',
  'title' => translate('LBL_LIST_MY_LEADS', 'Leads'),
  'description' => '私のリード',
  'category' => 'Module Views'
);
?>

 メタデータは、$dashletMeta変数にそのダッシュレットのクラス名の要素を定義し、そこに配列でメタデータを記述していきます。配列には、module要素に対象となるモジュール、title要素にタイトル、descriptionに簡単な説明、categoryにカテゴリを指定します。

 指定できるカテゴリは以下のようになります。

カテゴリ名 説明
Module Views
モジュールのデータを表示する
Portal
外部のデータを参照する
Charts
データをチャートで表示する
Tools
メモ帳、計算機などのツールを指定する
Miscellaneous
その他
表2 メタデータに指定できるカテゴリ

 上記のコードではdescriptionなどに直接日本語を記述していますが、ダッシュレットは多言語対応の仕組みも持っています。言語ファイルは、ダッシュレットクラス名.言語名.lang.phpになります。例えばMyLeadsDashletの日本語言語ファイルは、MyLeadsDashlet.ja.lang.phpになります。言語ファイルは、以下のように記述します。

<?php
……
$dashletStrings['MyLeadsDashlet'] = array(
  'LBL_DESCRIPTION' => '私のリード',
  ……
);
?>

 ここで記述したラベルは、メタデータファイルの中で以下のように参照することができます。

'description' => 'LBL_DESCRIPTION'

 各モジュールのDashletsディレクトリ以下にそのダッシュレットのクラス名のディレクトリを作成し、この2つのファイルを配置します。

第8回へ
1/2

Index
徹底解剖、SugarCRM(9)
 自分のホームページをカスタマイズする
Page 1
 ホームページのカスタマイズ
 ダッシュレットの作成
  Page 2
 一覧表示用のダッシュレット、「DashletGeneric」
 ダッシュレットの認識
 コラム Sugar Community Edition バージョン5.2リリース
 まとめ

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 記事ランキング

本日 月間