2009,06,10, Wednesday
lastfmプラグイン制作日誌(1/n)
BlognPlusを2.6.1にバージョンアップしたいけど、自作のphpをincludeしてくれなくなったのでlastfmの最近聴いた曲が表示出来なくて困っているほりさんです。
2.6.1にバージョンアップ出来たらXERAに移転するのになぁ。
と、いうわけで自前でlastfmの最近聴いた曲を表示するプラグインを作ってみよう!となりました。
制作日誌風にちまちま書いていくのでこれからBlognPlusのプラグインを作ろうという人にも参考になる?かもしれません。
今日は1回目という事で「BlognPlusのプラグインには何が必要なのか」を書いてみようと思います。
と、偉そうに始めてみましたが私も手探りです。記述に間違いがあるかも知れませんのでそのときはスルーせずにご指摘いただけると助かります。
PHPに慣れた方にしてみれば「何を偉そうに語っているんだ」と思われるかも知れません。
そのあたりは温かく見守っていただけると大変ありがたいです。
ここから先はPHP(というかBlognPlus)の話ばかりになるので興味のある方は続きをどうぞ。
2.6.1にバージョンアップ出来たらXERAに移転するのになぁ。
と、いうわけで自前でlastfmの最近聴いた曲を表示するプラグインを作ってみよう!となりました。
制作日誌風にちまちま書いていくのでこれからBlognPlusのプラグインを作ろうという人にも参考になる?かもしれません。
今日は1回目という事で「BlognPlusのプラグインには何が必要なのか」を書いてみようと思います。
と、偉そうに始めてみましたが私も手探りです。記述に間違いがあるかも知れませんのでそのときはスルーせずにご指摘いただけると助かります。
PHPに慣れた方にしてみれば「何を偉そうに語っているんだ」と思われるかも知れません。
そのあたりは温かく見守っていただけると大変ありがたいです。
ここから先はPHP(というかBlognPlus)の話ばかりになるので興味のある方は続きをどうぞ。
まず、BlognPlusの本体はindex.phpですのでこれのソースを見てみます。
ざざっと眺めてみると246行目からモジュール処理の記述がありますね。
まず、blogn_mod_db_module_load()でmodules.cgiからモジュールリストを読み込んでるようです。
そして次のblogn_module_load()でmoduleディレクトリにあるモジュールの実体を読み込んでるようです。
つまり、blogn_module_load()で読み込む(include,freadなどする)物=BlognPlusのモジュールとして最低限必要な物となりそうです。
ではblogn_module_load()はどこにあるかというとcommon.phpで定義されています。
ちょっと長いですけど関数全部を引用しますね。
ここで赤字にした行に注目して下さい。
モジュールのあるディレクトリのinfo.phpをincludeしています。
つまり、info.phpが「BlognPlusのモジュールとして最低限必要な物」になりそうです。
じゃあどうしてモジュールのあるディレクトリにはいっぱいphpファイルがあるのか?
その謎は次回読み解くことにします。(予定は未定)
■この記事は役に立ちましたか? この記事の平均評価: 未評価 (0人)
ツイート
ざざっと眺めてみると246行目からモジュール処理の記述がありますね。
//-------------------------------------------------------------------- モジュール処理
$blogn_loaded_modules = blogn_mod_db_module_load(); // インストール済モジュールの読み込み
$blogn_modules = blogn_module_load(); // moduleディレクトリにあるモジュール全て読み込み
まず、blogn_mod_db_module_load()でmodules.cgiからモジュールリストを読み込んでるようです。
そして次のblogn_module_load()でmoduleディレクトリにあるモジュールの実体を読み込んでるようです。
つまり、blogn_module_load()で読み込む(include,freadなどする)物=BlognPlusのモジュールとして最低限必要な物となりそうです。
ではblogn_module_load()はどこにあるかというとcommon.phpで定義されています。
ちょっと長いですけど関数全部を引用しますね。
/* ----- モジュール一覧読み込み ----- */
function blogn_module_load() {
// モジュールディレクトリの有無チェック
if (!$moduledir = @dir(BLOGN_MODDIR)) {
$error[0] = false;
return $error;
}
// モジュール一覧取得
$modules[0] = false;
while (($modulelist = $moduledir -> read()) !== false) {
if ($modulelist != "." && $modulelist != ".." && is_dir(BLOGN_MODDIR.$modulelist)) {
$blogn_mod_name = $blogn_mod_desc = $blogn_mod_update = $blogn_mod_control = $blogn_mod_index_function = $blogn_mod_admin_function = $blogn_mod_admin_css_name = $blogn_mod_viewer = $blogn_mod_cache_trigger = $blogn_mod_cache_time = $blogn_mod_version = "";
$blogn_mod_index_anchor = $blogn_mod_admin_anchor = array();
include_once(BLOGN_MODDIR.$modulelist."/info.php");
$modules[1][$modulelist]["name"] = $blogn_mod_name;
$modules[1][$modulelist]["desc"] = $blogn_mod_desc;
$modules[1][$modulelist]["install"] = @$blogn_mod_install;
$modules[1][$modulelist]["update"] = $blogn_mod_update;
$modules[1][$modulelist]["uninstall"] = $blogn_mod_uninstall;
$modules[1][$modulelist]["control"] = $blogn_mod_control;
$modules[1][$modulelist]["index_function"] = $blogn_mod_index_function;
$modules[1][$modulelist]["admin_function"] = $blogn_mod_admin_function;
$modules[1][$modulelist]["admin_css"] = $blogn_mod_admin_css_name;
$modules[1][$modulelist]["viewer"] = $blogn_mod_viewer;
$modules[1][$modulelist]["cache"] = $blogn_mod_cache_trigger;
$modules[1][$modulelist]["cachetime"] = $blogn_mod_cache_time;
$modules[1][$modulelist]["version"] = @$blogn_mod_version;
$modules[0] = true;
}
}
return $modules;
}
ここで赤字にした行に注目して下さい。
モジュールのあるディレクトリのinfo.phpをincludeしています。
つまり、info.phpが「BlognPlusのモジュールとして最低限必要な物」になりそうです。
じゃあどうしてモジュールのあるディレクトリにはいっぱいphpファイルがあるのか?
その謎は次回読み解くことにします。(予定は未定)
■この記事は役に立ちましたか? この記事の平均評価: 未評価 (0人)
| software::BlognPlus | 08:21 PM | comments (0) | trackback (0) |
コメント
コメントする
トラックバックURL
http://horisanu.info/tb.php/158