ある機能が必要だ
でも無い
だから、自分で作る
痒い場所は自分で掻く
一人の力には限界がある。
効率的な分散開発の構造が必要
XOOPSは非常に優れた「分散構造」を持っている
MOD : MODIFICATION or MODULE ?
通常のオープンソースソフトウエアへの参加
XOOPSへの参加
XOOPSモジュール開発は、
最小限の開発コストで済み、
しかも「自由」がある!
すでに存在しているモジュールを複製し書き換える
eg) myLinks→myAlbum→myAlbum-P
PHPクラスに、XOOPS用のインターフェースを用意する
eg) PHP Classes
PHPスクリプトに、XOOPS用のインターフェースを用意する
eg) PHPiCalendar
PHPのカレンダークラス
XOOPS2用のモジュールインターフェース付属
同時期に来たサイト構築依頼:
その両方で、カレンダー機能が必要だった。
前者:守成クラブ
新規に汎用クラスを作り、それぞれのCMS用にインターフェースを作った
piCalの構造
汎用クラスとして設計したため、XOOPS固有の機能は使えない。
テンプレートクラスも、XOOPS部はSmarty、カレンダー出力部はpatTemplateを使っている。
XOOPS2専用アルバムモジュール
XOOPSっぽい開発を練習してみたくなり、一番トラブル報告の多いモジュールを選んだ
最初はデバッグがメインの目的であったため、テーブル構造も含めてほとんどいじっていない
最初からXOOPS2専用のため、親和性は高い。開発も容易。
myAlbum-Pの構造
ImageMagickによるサムネイル生成・画像サイズ/回転
様々なデバッグ
「易しさから優しさへ」
国際的な評価(大げさ?)
より広い世界の様々な人物と会話できる
「このモジュール、ここをこうしたら良いのに」
それなら、一歩進んで、Hackではなく、モジュール作成しましょう!
Not Hack, But Module
パクるのが一番簡単。Hackの延長線上ですむ
0から書く元気があるなら、こちら
ディレクトリ名=モジュール名
modules/news→modules/mynews
ディレクトリ丸ごとコピー
sql/mysql.sqlのすべてのテーブル名を変更
news_*→mynews_*
とりあえず構造はいじらない
詳細は、xoops2 wikiを!
自分の好きなように組む。
とりあえず言語は気にしない。日本語直書きOK!
ぜひ、XOOPS本家に公開しましょう!
バグ取り・機能追加は当たり前として……
L A M P
このうち、PHPの影響が一番大きい
XOOPSバージョン(正確にはSmarty)による影響
下の2つは、formatTimestamp()で解決
= Accessibility
コア部については、オートログインHackなど
XOOPSという素晴らしいプラットフォームを提供してくれたonokazuさん
発表の場を設けていただいたsakaikさん
piCalの改良をお手伝いしていただいたryujiさん
Linux, Apache, MySQL, PHPの開発者のみなさん
世界中のXOOPSコミュニティの方々
本当にどうもありがとうございました。
GIJOE
後藤峰陽
株式会社PEAKで、ネットワーク管理者担当