Plugg for XOOPS Cube Legacy 1.00リリース
タグ: リリース情報, モジュール, Plugg, Plugg for XOOPS Cube Legacy
Plugg for XOOPS Cube Legacy1.00リリースです。なお、本バージョンはベータ版としての位置づけです。
【Pluggとは】
Pluggとはウェブアプリケーションプラットフォームです。管理画面よりプラグインと呼ばれる各種アプリケーションをインストールしていくことで様々な機能を追加することが可能です。Pluggでは簡単なJavascriptライブラリからフォーラムのような比較的大きめのアプリケーションまで、全てがプラグインとして構築されています。また、プラグイン間の連携が容易であるため、プラグイン同士で相互に機能を拡張したり補完したりすることが可能です。
Plugg for XOOPS Cube LegacyはXOOPS Cubeのモジュールとして動作します。Plugg for XOOPS Cube Legacyをインストールすることで、Pluggの各種プラグインをXOOPS Cube上で動作させることが可能になります。
Pluggは現時点ではXOOPS Cubeのモジュールとしてのみの提供となりますが、今後はXOOPS、ImpressCMS、XOOPS Cubeの前身であるXOOPS JP、そしてXOOPS JPの拡張メンテナンス版であるXOOPS JPexのモジュールとしても提供していく予定です。また、XOOPS CubeやXOOPS等の本体CMSを必要とせず、Plugg単体で動作するPluggスタンドアローン版の開発も進めています。
Pluggの各プラグインは、Pluggが動作する環境であればコードの変更なしに様々なプラットフォーム上にインストールすることが可能です。つまり、各プラグインはハック等の必要なしにXOOPS Cube、XOOPS、ImpressCMS等のプラットフォームとなるCMSを問わずに動作させることが可能です。一度開発されたプラグインはPluggが動作する環境であれば改変の必要がないため、開発者にとっても非常に大きなメリットになります。イメージとしては下記の画像のようになります。
【必要システム】
Plugg for XOOPS Cube Legacyをインストールするには下記のシステム構成が必要となります。
- XOOPS Cube Legacy(EUC-JP/UTF-8)
- PHP 5.2以上
- MySQL 4.1以上をお勧めします
【ダウンロード】
とりあえず仮の置き場として下記へとアップロードしました。
【インストール】
ダウンロード後、解凍すると「Plugg_XOOPSCubeLegacy-1.00」というフォルダが作成されます。このフォルダの中には「html」と「xoops_trust_path」フォルダがありますので、「html」フォルダの中身をフォルダ構成通りにXOOPS Cubeのインストール先(XOOPS_ROOT_PATH)に設置してください。なお、html/class/database/mysqldatabase.phpはコアのファイルを上書きしますが、XOOPS Cube Legacy2.1.7 RCと同じ内容のものですので、XOOPS Cube Legacy2.1.7以降は上書きの必要がなくなります。「xoops_trust_path」の中身に関してもフォルダ構成通りにXOOPS_TRUST_PATHの指定先に設置してください。
フォルダの設置が完了したら、通常のモジュールのインストールと同様にインストールします。モジュールのインストール時に、XOOPS CubeでPluggを動作させるのに必須となる各種プラグインがインストールされます。モジュールのインストール後、画面左側のメニューの「プラグイン」をクリックしてプラグイン管理ページへと進み、他にインストールしたいプラグインをそれぞれインストールします。
なお、XOOPS_ROOT_PATH/modules/Plugg/mediaおよびXOOPS_TRUST_PATH/modules/Plugg/cacheのパーミッションが書き込み可能になっていない場合は、これらのフォルダを必ず書き込み可能に設定してください。
【サポートについて】
Pluggのサポートは http://plugg.jp/ で行っていく予定ですが、現在のところ開発者ブログしかありません。そのため、質問やバグ報告等がありましたら当サイトのフォーラムを利用してください。
【同梱プラグイン】
本リリースには下記のプラグインが含まれています。「必須」と書かれているプラグインは、モジュールのインストール時に自動的にインストールされます。
- Akismet(v1.0.0)
- Akismetまたは互換性のあるスパム判定サービスを利用してスパムを見つけ除去します。現在のところ、Xiggプラグインのコメントスパムやトラックバックスパム対策に利用されています。
- Birthday(v1.0.0)
- プロフィールに誕生日項目を追加します。
- Cron(v1.0.0)
- 各種プラグインはCron実行時に実行される処理を追加することができます。このプラグインはそのCronを管理画面より手動で実行できるようにします。
- ExternalLink(v1.0.0)
- 外部サイトへのリンクの横に小さなアイコンを追加し、リンクをクリックした時に外部サイトを別ウィンドウで開きます。
- Filter(v1.0.0)- 必須
- 各種コンテンツのフィルタ処理を行います。なお、このプラグインは実際のフィルタ処理を行わず、HTMLPurifierFilterプラグインやXOOPSCodeFilterプラグイン等の各種フィルタプラグインを利用してフィルタ処理を行います。また、各種フィルタプラグインの管理を可能にします。
- Gender(v1.0.0)
- プロフィールに性別項目を追加します。
- HTMLPurifier(v1.0.0)- 必須
- HTMLPurifierライブラリを利用可能にします。また、HTMLPurifierライブラリを利用したフィルタ処理を提供します。
- HTMLPurifierFilter(v1.0.0)
- HTMLPurifierライブラリを利用したフィルタ処理を提供します。このプラグインは複製可能なため、ロール毎に使用可能なHTMLタグを設定したりする必要があるような時に使用します。
- jQuery(v1.0.0)- 必須
- jQuery Javascriptライブラリを組み込みます。PluggではjQueryを公式なJavascriptフレームワークとして採用しています。
- Locale(v1.0.0)
- 言語フレーズの変更や修正を管理画面より行えるようにします。
- Mail(v1.0.0)- 必須
- メール送信を可能にします。なお、Filterプラグインと同様に、Mailプラグインはそれ自身がメール送信を行うことはなく、XOOPSCubeプラグインやSwiftMailerプラグインが提供するメール機能を利用してメールを送信します。また、各種メールプラグインの管理を可能にします。
- Message(v1.0.0)
- ユーザ間でプライベートメッセージのやり取りを可能にします。XOOPS Cubeに標準で用意されているプライベートメッセージモジュールと同様の機能のほか、メッセージにスターを付けたり送信済みメッセージを保存する機能があります。
- OpenID(v1.0.0)
- OpenIDによるユーザ認証を可能にします。
- Profile(v1.0.0)- 必須
- ユーザIDではなく http://xoopscube.jp/profile/onokazu のようにユーザ名でプロフィールページにアクセスできるようになります。
- Search(v1.0.0)- 必須
- 各種コンテンツの検索を可能にします。なお、このプラグインは実際の検索処理は行わず、SimpleSearchプラグインやHyperEstraierプラグイン等の各種検索プラグインが提供する検索機能を利用して検索処理を行います。また、各種検索コンテンツのインポートや検索プラグインの管理を可能にします。
- ServicesTrackback(v1.0.0)
- Services_Trackbackライブラリを使用してトラックバックによるスパム投稿を除去ます、
- SimpleSearch(v1.0.0)- 必須
- 各種プラグインが提供する検索コンテンツをデータベースに格納し、それに対して単純なLIKE検索を実行します。
- Slimbox2(v1.0.0)
- Slimbox2 Javascriptライブラリを利用可能にします。
- System(v1.0.0)- 必須
- サイト管理を行うための基本的な機能を提供します。
- TextareaResizer(v1.0.0)
- ユーザがテキスト入力時にテキストエリアを自由に拡大/縮小できるようにします。
- User(v1.0.0)- 必須
- Userプラグインはユーザ情報の管理や、ユーザ情報に関連する様々な機能を提供するプラグインです。ただし、このプラグイン自体は各種機能の実際の処理はほとんど行わず、他の複数のプラグインを利用してそれらの処理を行います。多くの機能を提供するプラグインなので、このプラグインに関する詳細は開発日記のこの記事をお読みください。
- Widget(v1.0.0)- 必須
- XOOPS Cubeのプロックと同様のコンテンツを表示します。XOOPS Cubeではブロックがあるためこのプラグインは機能しませんが、一部プラグインが必要なファイルが含まれているため本リリースに同梱しています。
- Xigg(v1.0.0)
- XiggモジュールをPluggのプラグインとして対応させたものです。Xiggモジュールの後継としての位置づけですが、記事のプレビュー機能等が未完成となっています。XOOPS Cube日本サイトのニュースやフォーラムで動作中です。
- XOOPSCodeFilter(v1.0.0)- 必須
- テキスト入力時にXOOPS Codeを利用可能にするフィルタプラグインです。XOOPS Codeで書かれたテキストをHTMLへと変換します。
- XOOPSCube(v1.0.0)- 必須
- PluggをXOOPS Cube上にて動作させるためのプラグインです。
- XOOPSCubeUser(v1.0.0)
- XOOPS Cube上のユーザデータをPluggのユーザ情報として利用します。Userプラグインの設定ページにてこのプラグインをユーザ管理プラグインとして選択すると、XOOPS CubeのUserモジュールが提供するユーザ管理機能よりもより高機能なユーザ管理機能を有効にします。
- XOOPSCubeUserAPI(v1.0.0)- 必須
- XOOPS Cubeが提供するUserモジュールを使用してユーザ情報を管理します。XOOPSCubeUserプラグインとの違いは、XOOPSCubeUserプラグインはXOOPS Cubeのユーザ情報を利用しながらXOOPS CubeのUserモジュールよりも高度な機能を提供するのに対し、XOOPSCubeUserAPIプラグインはXOOPS CubeのUserモジュールへと単純に処理を委譲します。インストール時のデフォルトのユーザ管理プラグインとして設定されています。
- XOOPSCubeUserAuth(v1.0.0)
- 外部のXOOPS Cubeサイトのユーザ情報を使用したユーザ認証を可能にします。
- XOOPSGroups(v1.0.0)
- プロフィールにユーザの所属グループを表示する項目を追加します。
【開発中のプラグイン】
現在開発中または開発予定のプラグインとしては下記のプラグインがあります。
- CustomUserField(仮称)
- サイト管理者が管理画面からプロフィール項目を作成できるようにするプラグインです。
- HyperEstraier
- バックエンドにHyperEstraierを使用する検索プラグインです。XOOPS Cube日本サイトの検索ページにて動作中です。
- OpenSocial
- OpenSocialガジェットをPlugg上で動作可能にします。
- Page
- 静的コンテンツプラグインです。XOOPS Cube日本サイトの概要のページ等で動作中です。
- Project
- 各種ソフトウェアプロジェクトのリリース情報、リンク情報、コメント等を管理する機能を提供します。XOOPS Cube日本サイトのモジュールやテーマにて動作中です。
- ProjectNews
- Projectプラグインで新規リリース情報の投稿があった際にXiggのニュース記事としてリリース情報の内容を投稿します。
- Signature
- プロフィールに署名項目を追加します。
- SwiftMailer
- SwiftMailerライブラリを使用してメールを送信します。
コメント(5)

同梱のプラグインですが、主に下記の種類に分けることができます。
【ユーザ関連プラグイン】
「User」プラグインが中心となりますが、「User」プラグイン単体では機能せず、ユーザ管理プラグイン、ユーザ項目プラグイン、ユーザ認証プラグイン等と連係して各種機能を提供します。
なお、ユーザ管理プラグインとしてインストール時デフォルトの「XOOPSCubeUserAPI」が選択されている場合、XOOPS Cube Legacy標準のUserモジュールが利用されるため、各種ユーザ項目プラグインやユーザ認証プラグインを利用することはできません。これらの拡張プラグインを利用するには、プラグイン管理ページより「XOOPSCubeUser」プラグインのインストール後、「User」プラグインの設定ページへと進み、ユーザ管理プラグインとして「XOOPSCubeUser」プラグインを選択する必要があります。
また、ユーザ管理プラグインを「XOOPSCubeUser」プラグインへと変更しても元のデータが変更されたりするわけではないので、いつでもユーザ管理プラグインを「XOOPSCubeUserAPI」プラグインへと戻すことができます。
- User
- XOOPSCubeUserAPI(ユーザ管理)
- XOOPSCubeUser(ユーザ管理)
- Birthday(ユーザ項目)
- Gender(ユーザ項目)
- XOOPSGroups(ユーザ項目)
- Signature(ユーザ項目)
- OpenID(ユーザ認証)
- XOOPSCubeUserAuth(ユーザ認証)
【フィルタ関連プラグイン】
「Filter」プラグインが中心となりますが、「Filter」プラグイン単体では機能せず、実際にフィルタ機能を提供するプラグインと連係してフィルタ機能を提供します。
- Filter
- HTMLPurifier
- HTMLPurifierFilter
- XOOPSCodeFilter
【Javscript関連プラグイン】
各種Javascriptライブラリを有効にします。
- jQuery
- ExternalLink
- Slimbox2
- TextareaResizer
【検索関連プラグイン】
「Search」プラグインが中心となりますが、「Search」プラグイン単体では機能せず、検索エンジンプラグインを使用して検索機能を提供します。なお、検索対象のコンテンツは主に独立型プラグインから提供されます。
- Search
- SimpleSearch(検索エンジンプラグイン)
- HyperEstraier(検索エンジンプラグイン)
【メール関連プラグイン】
「Mail」プラグインが中心となりますが、「Mail」プラグイン単体では機能せず、メール送信プラグインを使用してメール送信機能を提供します。
- XOOPSCubeの一部(メール送信プラグイン)
- SwiftMailer(メール送信プラグイン)
【独立型プラグイン】
他のプラグインをほぼ必要とせず、単体でコンテンツや機能を提供するプラグインです。
- System
- Xigg
- Project
- Cron
- Locale
- Message
- Page
- OpenSocial
【その他】
上記一覧にないプラグインはユーティリティ系プラグインで、他のプラグインに拡張機能を追加するようなプラグインです。
なお、ユーザ管理プラグインとしてインストール時デフォルトの「XOOPSCubeUserAPI」が選択されている場合、XOOPS Cube Legacy標準のUserモジュールが利用されるため、各種ユーザ項目プラグインやユーザ認証プラグインを利用することはできません。これらの拡張プラグインを利用するには、プラグイン管理ページより「XOOPSCubeUser」プラグインのインストール後、「User」プラグインの設定ページへと進み、ユーザ管理プラグインとして「XOOPSCubeUser」プラグインを選択する必要があります。
この件に関してですが、「XOOPSCubeUser」プラグインをユーザ管理プラグインとして選択した場合、画面上にエラーメッセージが出る場合があります。これは、登録ユーザグループや匿名ユーザグループに対してPluggモジュールへのアクセス権限が付与されていないためによるものです。これらのグループに対してPluggモジュールへのアクセス権限を付与することでエラーメッセージが消えて正常に動作します。
Wow ^^'
Looks great!
Default install on MAC running Xampp and XCL 2.2
Default install on VMW XP running Xoopserver 5 and XCL 2.2
Install issue : Pear.php is missing on released package !
Warning: require_once(PEAR.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in file
/xoops_trust_path/modules/Plugg/pear/MDB2.php on line 55
Install can't access or report fatal error accessing Pear.php
but also some issues with Sabai lib. Something like:
Declaration of Plugg_InitFilter::before() must be compatible with that of Sabai_Application_ControllerFilter::before()
/xoops_trust_path/modules/Plugg/pear/Plugg/InitFilter.php on line 80
Seems to be a typo "Sabai_application" vs "Sabai_Application"
Line 6 and line 37 ^^'
I will give a try on a different environment.
Cheers
Install issue : Pear.php is missing on released package !
Warning: require_once(PEAR.php) [function.require-once]: failed to open stream: No such file or directory in file
/xoops_trust_path/modules/Plugg/pear/MDB2.php on line 55
Thanks, I will include that file in the next release.
Declaration of Plugg_InitFilter::before() must be compatible with that of Sabai_Application_ControllerFilter::before()
/xoops_trust_path/modules/Plugg/pear/Plugg/InitFilter.php on line 80
Seems to be a typo "Sabai_application" vs "Sabai_Application"
Line 6 and line 37 ^^'
You're right, 10key has also pointed out the bug here. It took me quite some time to find out that it was a typo causing that error. ^^;
いくつかバグがありましたので、フォーラムの下記スレッドも参考にしてください。