Ticket #494 (closed 新規開発: 修正済)
プラグイン機能
Reported by: | nanasess | Owned by: | nanasess |
---|---|---|---|
Priority: | 中 | Milestone: | EC-CUBE2.12.0beta |
Component: | その他 | Version: | コミュニティ (eccube-comu) |
Keywords: | Cc: | ||
修正済み: | yes |
Description (last modified by nanasess) (diff)
2.x で使用しているモジュール機能は, EC-CUBE 本体のバージョンに強く依存しやすく, 第三者が簡単にモジュールを開発, 追加できないため, 新たにプラグインの仕組みを開発する.
パッチ
source:/branches/comu-ver2/patches/GoogleAnalytics_plugin.patch@18230
(r18345 で comu-ver2 にコミット済み)
設置場所
プラグインは, USER_DIR/plugins 以下に保存する.
定数
- PLUGIN_DIR - "plugins/"
- PLUGIN_PATH - USER_PATH . PLUGIN_DIR
- PLUGIN_URL - USER_URL . PLUGIN_DIR
設定ファイル
各プラグインの設定は, PLUGIN_DIR/plugins.xml に設定する.
plugins.xml の例
<?xml version="1.0" encoding="utf-8"?> <plugins> <plugin> <name>Google Analytics</name> <path>google_analytics</path> </plugin> <plugin> <name>カレンダーブロック</name> <path>calendar_block</path> </plugin> </plugins>
- plugins
- ルート要素です. 複数の plugin を含むことができます.
- plugin
- 各プラグインを定義します.
- name
- プラグインの名前を定義します. 任意の名前をつけることが可能です.
- path
- プラグインのデータファイルが格納されたパスを定義します. PLUGIN_DIR からのパスになります. 相対パスは使用できません. 半角英数字, 「_(アンダーバー)」のみ使用可能です.
管理画面からは, plugins.xml を読み取り, JavaScript でメニューにプラグイン一覧を表示する.
プラグインのファイル構成
plugins.xml の path 要素で設定したディレクトリに, 各プラグインのデータを格納します.
- plugins -+- plugins.xml +- .htaccess | +- foo_plugin_dir -+ | +- require.php +- index.php +- foo_plugin.php | +- tpl - example.tpl | +- classes - LC_Foo_Plugin.php | +- sql -+- install.sql +- deinstall.sql
- require.php - html/require.php で自動的に require されるファイル
- index.php - 管理画面のプラグイン設定メニューからリンクされるファイル
- tpl ディレクトリ - プラグインで使用する Smarty テンプレートを格納します.
- classes ディレクトリ - PHPクラスファイルを格納します.
- sql - install/deinstall 時に実行する SQL を格納します.
ドキュメントの項目
- プラグインの名前 (name)
- 作成者 (author)
- プラグインのサイト (url)
- プラグインのバージョン (version)
- プラグインの短い説明 (description)
- 必要なEC-CUBE最小バージョン (min_eccube_ver)
- 注意事項/免責事項表示 (notice)
- ライセンス(lisence)
検討事項, TODO など
- プラグイン管理ページを作る(登録/削除)
- SC_Helper_Plugins_ParserFactory で plugins.xml パーサーの PHP4 と PHP5 の実装を分ける
- プラグインでも bloc を使えるように, bloc クラスを改修
- prefix が plugins/ だったら, plugin を見に行くように
- インストール/アンインストールは, プラグイン管理から行う
- 内容の編集はブロック編集でも可能だが推奨しない...
- プラグインディレクトリの PHP ファイルを直接実行されないように .htaccess を置く
order deny,allow deny from all
- 参考実装として, bloc はすべてプラグインに移植してみたい
- プラグイン用のユニットテストを格納するディレクトリを作っても良いかも
- プラグインのURLを入力すると自動でインストールできるようにしたい
- PC のみか, モバイルのみか, PC & モバイル対応か設定できるように
Attachments
Change History
comment:9 Changed 14 years ago by nanasess
r18218 とのパッチを登録. Google Analytics のタグを埋めるためのプラグインの参考実装です.
まだ, TODO 項目のほとんどが実装できてない...(汗)
comment:10 follow-up: ↓ 12 Changed 14 years ago by nanasess
resize_image.php が機能しなくなる場合あり.
thanx. ramrun さん
comment:11 Changed 14 years ago by nanasess
- Description modified (diff)
パッチをバージョン管理したかったので, patches ディレクトリ以下にコミットしました
comment:12 in reply to: ↑ 10 Changed 14 years ago by nanasess
comment:13 Changed 14 years ago by nanasess
comment:15 Changed 14 years ago by nanasess
comment:19 Changed 13 years ago by Seasoft
comment:20 Changed 13 years ago by Seasoft
関連(上記未記載分) r18380
comment:21 Changed 13 years ago by nanasess
r19661 でマージしました.
開発合宿 B, Eチームの成果物です
comment:22 Changed 12 years ago by AMUAMU
r19661 の変更が反映されていなかった高度なデータベース管理ページを、r20037にて、同一の構造(sendResponse使用、actionに処理を記述)に変更しました。
comment:23 Changed 12 years ago by kotani
- Priority changed from 高 to 中
- Milestone changed from EC-CUBE2.11.0 to EC-CUBE2.11.1(仮)
#976 ([管理画面]プラグイン) で若干仕様変更。
comment:24 Changed 12 years ago by nanasess
- 修正済み unset
- Milestone changed from EC-CUBE2.11.1 to EC-CUBE2.11.2
r20870 不具合修正
- プラグインの存在チェック, デバックログ出力を追加
- プラグインのロード順位を指定できるよう修正
comment:25 Changed 12 years ago by kajiwara
- Milestone changed from EC-CUBE2.11.2 to EC-CUBE2.12.0(仮)
根本解決に向けては、次期バージョンで対応する予定です。
comment:27 Changed 11 years ago by kajiwara
- Status changed from assigned to closed
- Resolution set to 修正済
comment:28 Changed 11 years ago by h_yoshimoto
- Milestone changed from EC-CUBE2.12.0alpha to EC-CUBE2.12.0beta