←(新しい記事) lastfmモジュール... | top | P.S.すりーさんグ... (昔の記事)→

lastfmプラグイン制作日誌(1/n)

BlognPlusを2.6.1にバージョンアップしたいけど、自作のphpをincludeしてくれなくなったのでlastfmの最近聴いた曲が表示出来なくて困っているほりさんです。
2.6.1にバージョンアップ出来たらXERAに移転するのになぁ。

と、いうわけで自前でlastfmの最近聴いた曲を表示するプラグインを作ってみよう!となりました。

制作日誌風にちまちま書いていくのでこれからBlognPlusのプラグインを作ろうという人にも参考になる?かもしれません。

今日は1回目という事で「BlognPlusのプラグインには何が必要なのか」を書いてみようと思います。
と、偉そうに始めてみましたが私も手探りです。記述に間違いがあるかも知れませんのでそのときはスルーせずにご指摘いただけると助かります。汗
PHPに慣れた方にしてみれば「何を偉そうに語っているんだぷん」と思われるかも知れません。
そのあたりは温かく見守っていただけると大変ありがたいです。

ここから先はPHP(というかBlognPlus)の話ばかりになるので興味のある方は続きをどうぞ。


まず、BlognPlusの本体はindex.phpですのでこれのソースを見てみます。

ざざっと眺めてみると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

トラックバック

←(新しい記事) lastfmモジュール... | top | P.S.すりーさんグ... (昔の記事)→

NEW ENTRIES

RECENT COMMENTS

RECENT TRACKBACK

自分用新刊カレンダー

つぶやき

PROFILE


ARCHIVES

<前月 2024年03月 次月>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31       

CATEGORIES

LINK

OTHER

合計:53064
今日:152
昨日:150

POWERED BY