モジュール作成のすすめ
〜カレンダーモジュールpiCalの開発を通じて〜

2003年09月13日
後藤 峰陽 (GIJOE)
株式会社ピーク
http://www.peak.ne.jp/

目次

XOOPSにおけるモジュール

オープンソースソフトウエア開発のきっかけ

ある機能が必要だ

でも無い

だから、自分で作る



痒い場所は自分で掻く

なぜモジュール開発か

一人の力には限界がある。

効率的な分散開発の構造が必要

XOOPSは非常に優れた「分散構造」を持っている



MOD : MODIFICATION or MODULE ?



通常のオープンソースソフトウエアへの参加



XOOPSへの参加



XOOPSモジュール開発は、

最小限の開発コストで済み、

しかも「自由」がある!

モジュールの作り方



すでに存在しているモジュールを複製し書き換える

eg) myLinks→myAlbum→myAlbum-P



PHPクラスに、XOOPS用のインターフェースを用意する

eg) PHP Classes



PHPスクリプトに、XOOPS用のインターフェースを用意する

eg) PHPiCalendar

モジュールの開発例

piCal

piCalとは

PHPのカレンダークラス

XOOPS2用のモジュールインターフェース付属

piCal開発のきっかけ

同時期に来たサイト構築依頼:

その両方で、カレンダー機能が必要だった。

前者:守成クラブ

後者:神奈川県ビルメンテナンス協会

piCalの構造

新規に汎用クラスを作り、それぞれのCMS用にインターフェースを作った



piCalの構造

汎用クラスとして設計したため、XOOPS固有の機能は使えない。

テンプレートクラスも、XOOPS部はSmarty、カレンダー出力部はpatTemplateを使っている。

piCalの機能

運用画面

piCalの今後の展開

piCalとニュースの連携

myAlbum-P

myAlbum-Pとは

XOOPS2専用アルバムモジュール

XOOPSっぽい開発を練習してみたくなり、一番トラブル報告の多いモジュールを選んだ

myAlbum-Pの構造

最初はデバッグがメインの目的であったため、テーブル構造も含めてほとんどいじっていない

最初からXOOPS2専用のため、親和性は高い。開発も容易。



myAlbum-Pの構造

myAlbum-Pの特長

ImageMagickによるサムネイル生成・画像サイズ/回転

様々なデバッグ

「易しさから優しさへ」

運用画面

myAlbum-Pを作って良かったこと

国際的な評価(大げさ?)

より広い世界の様々な人物と会話できる

嬉しかった事

XOOPSモジュール3分間クッキング

モジュール作成のきっかけ

「このモジュール、ここをこうしたら良いのに」



それなら、一歩進んで、Hackではなく、モジュール作成しましょう!

Not Hack, But Module

モジュールの複製

パクるのが一番簡単。Hackの延長線上ですむ

0から書く元気があるなら、こちら

ディレクトリ名を変える

ディレクトリ名=モジュール名

modules/news→modules/mynews

ディレクトリ丸ごとコピー

テーブル名を変える

sql/mysql.sqlのすべてのテーブル名を変更

news_*→mynews_*

とりあえず構造はいじらない

xoops_version.phpを書き換える

詳細は、xoops2 wikiを!

プログラムを変える

自分の好きなように組む。

とりあえず言語は気にしない。日本語直書きOK!

モジュールを公開しましょう

公開のメリット

公開の前に

公開場所

自分のサイト
即登録 アピール度小
日本語モジュールプロジェクト
アピール度大
XOOPS本家
アピール度最大

ぜひ、XOOPS本家に公開しましょう!

モジュールを改良しましょう

バグ取り・機能追加は当たり前として……

環境因子への適応

L A M P

このうち、PHPの影響が一番大きい

XOOPSバージョン(正確にはSmarty)による影響

国際化

下の2つは、formatTimestamp()で解決

サイト運営者に使いやすく

サイト訪問者に使いやすく

= Accessibility

コア部については、オートログインHackなど

謝辞

XOOPSという素晴らしいプラットフォームを提供してくれたonokazuさん

発表の場を設けていただいたsakaikさん

piCalの改良をお手伝いしていただいたryujiさん

Linux, Apache, MySQL, PHPの開発者のみなさん

世界中のXOOPSコミュニティの方々

本当にどうもありがとうございました。


論者紹介

GIJOE

後藤峰陽

株式会社PEAKで、ネットワーク管理者担当

索引