SugarCRM

第8回 カスタマイズをパッケージングする


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

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

 前回「ビジネスロジックフックを使って処理を追加する」では、ビジネスロジックフックについて紹介しました。この機能を使うことにより、Beanに対するアクションなどにちょっとした処理を追加できます。

 この連載では、このように、SugarCRMをカスタマイズする方法を紹介してきました。しかし、いろいろなカスタマイズを加えるうちに、どのようなカスタマイズを加えたかを管理したり、作成したカスタマイズを別の場所で動いているSugarCRMのインスタンス上にインストールする必要が出てくるでしょう。これを行うためには、カスタマイズをきちんとSugarCRMにインストールできるようにパッケージする必要があります。

 そこで今回は、カスタマイズのパッケージの方法と、それをSugarCRMにインストールする方法を説明します。

パッケージ作成の流れ

 初めに、カスタマイズをパッケージする方法を説明します。パッケージを一から作ってもいいのですが、ここではモジュールビルダーを利用してひな形を作ってみましょう。モジュールビルダーの使い方は、本連載の第2回で紹介しましたので、そちらを参照してください。

 モジュールビルダー上で新規モジュールを作成したら、そのモジュールが所属するパッケージを選択し、「公開」ボタンを押します。すると、Zipファイルが1つダウンロードされてきます。このファイルがSugarCRM上にカスタマイズをインストールするためのパッケージになります。

 このファイルを展開すると、そのトップディレクトリにmanifest.phpというファイルがあります。これがそのパッケージがどのようなものかを記述するファイルです。このファイルは、パッケージを構成する中で最も重要なファイルの1つです。このファイルの中身を見てみましょう。

<?php
……
$manifest = array (
  ……
);
$installdefs = array (
  ……
);
?>

 manifest.phpには、$manifest$installdefsという2つの変数が定義されています。$manifest変数には、インストールするパッケージの情報が配列で記述されます。この変数に定義された情報は、モジュールローダー(SugarCRMにパッケージをインストールする機能、後述)が与えられたパッケージをインストールすることができるかどうかを判定するために利用されます。$manifest変数は、以下のように定義します。

$manifest = array (
  'acceptable_sugar_versions' => array (
    'regex_matches' => array (
      0 => "5\.0\.0",
    ),
  ),
  'acceptable_sugar_flavors' => array ('CE', 'PRO','ENT'),
  'key'=>'osc',
  'author' => 'osc',
……
);

 $manifest変数の配列の要素として定義できる代表的な値は以下のようになります。

項目名 説明
acceptable_sugar_versions
パッケージをインストールできるSugarのバージョンを指定する。以下の要素を持つ配列を用いて指定する
exact_matches:
特定のバージョンを正確に指定する
regex_matches: 正規表現(5\\.0\\.0[a-z]など)を用いてパターンに合わせていくつかのバージョンを指定する
acceptable_sugar_flavors
パッケージをインストールできるSugarのエディションを指定する。以下の値が指定可能
ENT: Sugar Enterprise
PRO: Sugar Professional
CE: Sugar Community Edition(バージョン 5.0以降)
OS: Sugar OpenSource(バージョン 5.0以前)
author
パッケージの作者を指定する
key
パッケージを特定できるキーを指定する
dependencies
依存するモジュールを指定する。以下の項目を持つ配列を指定する
id_name:
モジュールのID
version: モジュールのバージョン
description
パッケージの説明を記述する
icon
インストール時に表示されるアイコンを指定する。Zipファイルの中でのパスを指定する
is_uninstallable
パッケージをアンインストール可能か指定する。TRUEの場合アンインストール可、FALSEの場合不可
name
パッケージの名前を指定する
published_date
パッケージをリリースした日を指定する
type
パッケージのタイプを指定する。以下の値を設定できる
langpack: 言語パック
module: モジュール
patch: パッチ
theme: テーマ
version
パッケージのバージョンを指定する
表1 $manifest変数の配列の要素として定義できる値

 $installdefs変数には、実際にパッケージをインストールするときに、モジュールローダーがどのような処理を行うかを決定するための情報が配列で定義されています。$installdefs変数は以下のように指定します。

$installdefs = array (
  'id' => 'osc',
  'beans' => array (
    0 => array (
      'module' => 'osc_Servers',
      'class' => 'osc_Servers',
      'path' => 'modules/osc_Servers/osc_Servers.php',
      'tab' => true,
    ),
  ),
  ……
)

 $installdefs変数の配列の要素に定義できる代表的な値は以下のようになります。

項目名 説明
id
パッケージを一意に認識する名前を指定する
copy
Sugarのディレクトリにどのようにファイルをコピーするかを指定する
language
インストールするパッケージに関連する言語ファイルを指定する
layoutdefs
レイアウト定義ファイルを指定する。主モジュールはそのレイアウトを、それに関連するファイルはサブパネルの定義を記述する
vardefs
個々のモジュールのvardefファイルを指定する。主モジュールはフィールドの定義、そのほかのモジュールは多対多以外の関連の定義を行う
menu
新しいモジュールのメニューを指定する
relationships
新しく作成する関連に関する情報を指定する
beans
新しく作成するBeanに関する情報を指定する
表2 $installdefs変数の配列の要素に定義できる値

第7回へ
1/2

Index
徹底解剖、SugarCRM(8)
 カスタマイズをパッケージングする
Page 1
 カスタマイズをパッケージングする
  Page 2
 パッケージ設定項目の詳細
 モジュールローダーを用いてインストール
 コラム■パッケージの共有が可能なSugar Forge
 まとめ

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

本日 月間