2010/11/26

[サイボウズ]ガルーン2,3のカスタマイズ 仕様理解編

サイボウズガルーンシリーズのカスタマイズについてもう2エントリ書いておこうと思います。



サイボウズガルーンとは?

サイボウズ社の主力製品であるグループウェアアプリケーションの1シリーズです。
サイボウズ社のグループウェアはこのガルーンシリーズともうひとつOfficeシリーズというのもあります。
Officeシリーズは小中規模向け、ガルーンシリーズは大規模向けというすみわけで、
見た目はそれほど変わらないのですが内部のアーキテクチャがまったく別ものです。

なお、このエントリでいう「ガルーン」とは「サイボウズガルーン2」および「サイボウズガルーン3」について言っているものと思ってください。
(初代ガルーンはこれまた内部が違っているのです。)

商流と正規のカスタマイズ

Officeシリーズはサイボウズ社から直接ライセンスを購入できますが、ガルーンシリーズはかならず代理店を通さないとライセンスを購入できません。
そして標準的な機能以外の要件がある場合は代理店にその依頼をすることになっています。
つまりもともと多少のカスタマイズはサポートを受けられる範囲の中にもあるのです。きっと。
お金をかけられるかたは素直に代理店に相談しましょう。
この記事は暇人、貧乏人、もしくは都合により予算を余計に取れない方のためのエントリです。

CyDE2って?

サイボウズ社はOfficeシリーズのデータベースエンジンを「CyDE」と呼び、高速軽量と謳っています。
これに対してガルーンシリーズで使用しているエンジンを「CyDE2」と呼び、スケーラビリティの向上を図ったとされています。
この「CyDE2」というのがたまたま自分が触ったことのある技術で構成されていたため、カスタマイズも比較的容易だったのです。

詳しくはサイボウズ社のWEBサイトを見ていただくのがいいのですが、
http://products.cybozu.co.jp/garoon/product/cyde2/
簡単に言うと、PHP + MySQLで作られてます。
そう、多くのWeb技術者が携わっているあのPHPとMySQLです。

構成

Apache2
サイボウズガルーンをWindowsにインストール際、WEBサーバーが入っていない環境だと「WEBサーバーをインストールするか」を聞いてきます。
ここで指示に従ってインストールするとApache2がインストールされます。
ガルーン3の場合Apache2.2.9でした。(他のバージョンは未確認)
WEBサーバーがすでに稼動している場合(たぶん80番ポート指定)はインストールされません。
IISでも動作可能です。

MySQL
すでにMySQLがインストールされているかどうかに関わらず、MySQLはインストールされます。
レジストリ上のプログラム名は「Cybozu DatabaseEngin 5.0」です。そうMySQL5.0です。
正確には「5.0.68-enterprise-cybozu」です。

PHP
CGIモードで動作します。ちなみにバージョンは「4.4.7」です。
ただし、PHPのファイルはすべて暗号化されており、書き換えるどころかソースを見ることもできません。
「ITpro:サイボウズがPHPとMySQLでフレームワークを開発,第一弾としてグループウエア製品を再構築」
によれば、「ロジック部分のPHPコードは,英ionCubeのコード保護ツールを使ってバイナリ化している。」とのこと。

Smarty
先に紹介したサイボウズ社のサイトを見ると、テンプレートエンジンとしてSmartyを使われているのがわかります。
SmartyはPHPのテンプレートフレームワークで、MVCのVを分離しやすくしてくれるものです。
Smartyのバージョンは「2.6.18」です。



比較的安心して触れる部分

一番の肝であるPHPのロジック部が触れない以上、カスタマイズは小規模にせざるを得ません。
まぁ、そんな大それたことをしたければサイボウズをわざわざ使う必要はありません。
ロジック部をいじれるほどの技術があるなら他のオープンソースのグループウェアを使ったり開発したりすればいいんですよね。

では、カスタマイズできるのはどんなところでしょう。

1.MySQLのデータ
MySQLのデータは暗号化されてません。(パスワードを除く)
インストール時に指定されるユーザー名と指定したパスワードを使用すれば、別のアプリケーションから接続可能です。
つまりphpMyAdminなどで覗くこともできます。
ただし、ロジックが見えないということはデータの挿入・変更・削除はやめた方が無難でしょう。
読み取るだけなら大丈夫です。
「スケジュールやタイムカードを書き出して好きな形に加工する」などの使い道がありそうです。

2.Smartyのテンプレートファイル
テンプレートファイル=TPLファイルにはHTMLのソースが書いてあります。
PHPから渡された変数を表示する部分以外は基本的にHTMLファイルとほぼ同じように記述されています。
このHTMLソースの部分を書き換えたり、追記したり、JavaScriptのコードを追記したりもできますし、
PHPを書いたり、PHPからSmartyに渡された変数をさらにテンプレートファイル内で加工することもできます。

ちなみに、Smartyのテンプレートファイル内にPHPのコードを書くのはパフォーマンスがよろしくないため一般的には推奨されません。
もちろん、本来はロジック部で加工したいところなのですが、先述のとおり変更はできません。
致し方ないのです。
逆に末端で書くからこそ「他の重要な動作に影響が少なく済む」というメリットもあります。

3.PHPポートレット
画面を変更しないのであれば「PHPポートレット」という標準の機能も利用できます。
PHPのソースコードを登録しておくとポータル画面でそれを表示させることができる機能です。
これはカスタマイズとはちょっと違いますが、結構色々できそうです。


次回はガルーンにおけるSmartyのテンプレートファイルのいじりかたを具体的に紹介したいと思ってます。


0 件のコメント:

コメントを投稿