以前の記事にあったDiscussプラグインは掲示板の機能も兼ねていたのですが、それだとやはりオーバースペックであるような感じがしたため、通常の掲示板機能は専用のプラグイン(Forum)として切り離し、FriendFeedと同様の機能を提供するプラグインはStreamプラグインとなります。
そのため、以前の記事では次リリースまで変更がないようなことを書きましたが、更に変更を加え現在は下記のようになっています。なお、各プラグイン名の括弧内の数字はそのプラグインの開発の現時点での進捗状況です。
]]>最初の2冊は比較的新しい本でamazon.comでもレビューがあがっていなかったので少し不安でしたが、まさに望んでいた通りの内容の書籍なので購入しました。最後の「Designing Web Interfaces」はamazon.comでもかなり評価が高かったので迷わず購入です。
「Designing Social Interfaces」はソーシャルアプリケーションのインターフェースを作る上での必須事項を各パターンとして紹介しています。
「Building Social Web Applications」はソーシャルアプリケーション自体の開発というよりもWEB上にソーシャルサービスを立ち上げるまでのプロセスについて細かく書かれています。
「Designing Web Interfaces」はソーシャルアプリケーションに限られた内容ではありませんが、特にAJAX等を利用したRIAを開発する際にいかに快適なインターフェースを提供するかについてかなり細かく書かれています。
いずれの書籍もざっと眺めただけですが、Pluggの開発にかなり役立つことは間違いなさそうです。いずれ詳細なレビューもアップできればと思います。
]]>現在開発中のプラグインは下記の通りです。次版(1.1)リリースまではおそらく変更はないと思います。なお、各プラグイン名の括弧内の数字はそのプラグインの開発の現時点での進捗状況です。
]]>PluggでSNSの記事中で書いたプラグインの中でMyBlog(改めAggregator)プラグインおよびFootPrintプラグインはほぼ開発が完了し、現在はXOOPS Cube日本サイトにてテスト稼働中です。正式公開にまで至っていませんが、Aggregatorプラグインは http://xoopscube.jp/blogs や個別のプロフィールページの「ブログ」タブをクリックすると閲覧できます。また、FootPrintプラグインはプロフィールページの「足あと」タブをクリックすると閲覧できます。
WordPressへの対応はユーザ情報の受け渡し以外はほぼ対応が完了したので、思ったよりも早い段階で公開できそうです。WordPressへの対応が完了すると、プラグイン開発者はXOOPS Cube Legacyのほか、本家版XOOPS、ImpressCMS、XOOPS JPex、WordPressへとソースの改変なしに一度の開発で対応できるので面白くなりそうです。なお、この記事執筆時点で公開しているのはXOOPS Cube Legacy版のみです。
]]>それはユーザのプロフィール画面でのタブの取り扱いに関してです。タブが増えすぎると1つの画面に全てのタブが入りきらなくなってしまうことがあります。もちろん、あまり重要でないタブは無効にして、必要なタブのみを有効にして対応することもできますが、プラグインが多くなってくるとそれでも対応しきれない場合があると思います。
そこで、タブはプラグインが提供するのではなく、管理者が自由に作成できるようにしようと思っています。また、ユーザウィジェットは今まではプロフィールページのトップ画面にのみ表示可能でしたが、今後はどのタブにでも表示できるようになります。管理者がタブを作り、そのタブに各種ユーザウィジェットを必要に応じて自由に配置していくような感じになります。
例えば「コミュニティ」という表示名のタブを作り、そこにユーザが今まで投稿したニュース記事を表示するウィジェットや、ユーザがフォーラムで投稿したトピックを表示するウィジェットを配置していくような感じです。タブはいくつでも作成でき、また、各ウィジェットはいくつのタブ内にでも配置することができます。ドラッグ&ドロップでぐりぐり配置変更できるようなものになる予定です。
]]>具体的には、HelloWorldプラグインを閲覧したユーザが、そのページにコメントを投稿できるようにします。投稿されたコメントは全てデータベースへと保存し、HelloWorldプラグインのページ閲覧時にそれらのコメントがメッセージの下部に一緒に表示されるようにします。いわゆるゲストブックのようなものです。ここまで来るともはやHellowWorldプラグインとは言えなくなってしまうかもしれませんが。。
]]>SearchプラグインはPluggにおける各種コンテンツの検索を可能にします。ただし、Searchプラグインはその名にも関わらず、それ自体が検索する機能を提供することはありません。検索する機能を実際に提供するのはSearchEngine型プラグインと呼ばれる種類のプラグインです。
]]>具体的には、下記のように、ユーザの種類によって異なるメッセージを表示する機能を追加していきます。
というわけで、今回はモジュール開発において私自身が面倒だと感じた点、そしてPluggのプラグイン開発ではそれがどのように改善されたのかをいくつか書いていきたいと思います。
]]>Userプラグインはユーザ情報の管理や、ユーザ情報に関連する様々な機能を提供するプラグインです。ただし、このプラグイン自体は各種機能の実際の処理はほとんど行わず、他の複数のプラグインを利用してそれらの処理を行います。具体的には、Userプラグインは各種インタフェースを定義し、各インタフェースを実装したプラグインを通して様々な機能を提供します。
]]>今のところHelloWorldプラグインは「Hello World!」という文を表示するだけですが、これを少し改良し、ユーザがリンクをクリックすると「Hello World!」が表示されるようにしたいと思います。そのため、ユーザがクリックしたかどうかのチェックを行う処理(ロジック)をどこかに組み込む必要があります。この処理を組み込む方法には次の3通りが考えられます。
それでは上記3つの方法をそれぞれ詳しく見ていきましょう。なお、本記事ではPluggでのmod_rewriteの設定が有効であることを前提とします。
]]>ただ、いきなり全てをPHP5の形式で書くことはできませんので、使用頻度の高い部分から徐々に移行していくことになるかと思います。
]]>