次の記事 | 前の記事

2006-09-21

プラグインを作ってみた流れ

まず、プラグイン作成で参考になったところ

[導入編]
「プラグイン API」
通常は各インストール先のNucleusにも含まれているドキュメント。
これで、「NP_HelloWorld」の作り方とその使い方が判る。
私は、「function doSkinVar($skinType)」の中に表示に関するコードをいろいろと埋め込めばスキンからプラグイン名で呼出すことができるということを理解しました。

[実践編]
「Nucleusプラグインの技術情報」
導入編以降、よりどころになるであろうドキュメント。
まあ、公式リファレンスと認識。
ある程度弄ってみたあとで見直すと理解できる部分が増えてくる。

「どうにかなるBLOG」
「NP_SendPing」を解析しながらプラグインを理解していく記事が参考になる。

「Nucleusの使い方」
おさえておくべきメソッド等がまとめられている。

(まだ続く...)

前の記事の「仕様案1」を作るにあたり、
この時点では $manager がどの場面で使えるものなのかがよく判らなかったので「Nucleusグローバルファンクション リファレンス」で使えそうな関数を探し、行き着いたのがSQL関連の関数類。
結局、「情報は全てデータベースに保存されているのだから適切な条件で検索した結果を取得して表示すれば表示系の機能は何でも対応できるなー」という考えのもと以下のファンクションに注目した。

quickQuery、sql_query

あとは、既存の有名プラグインのソースを見てグローバル変数
$blogid, $catid
とかが使えることを確認した。

ここで上記の機能を使い、以下のように作ってみた。
・カテゴリテーブルからカテゴリ名が「TFA」で終わるカテゴリのカテゴリIDを特定する
・上記カテゴリIDと$blogidを条件としてアイテムテーブルを検索し、
 「記事タイトル」
 「記事本文」
 「追加本文」
 を結果件数分ループさせながら処理する。
・記事本文の最初に「[TFAID=XX]」のXXがパラメータで渡されたIDと一致すれば
 「記事タイトル」は前後に見出し用のタグを付けて出力
 「追加本文」を続けて出力

PHPも正規表現もあまり詳しく理解して私だがなんかそれらしく「簡易フリーエリアプラグイン」は実現できた。
簡単なものならばNucleusのプラグインは意外と簡単に作れることを実感したのでした。

できたのは、NP_TinyFreeAreaCTG

ところで、前記の「実践編」で紹介したページ等をもう一度見ると
$managerからインスタンスを生成してアイテムIDを指定すれば特定のアイテムを取得することができ事を知る。
アイテムIDが前もって特定されるならば以下のようなコードでそのタイトルや記事内容を出力できることを確認した。

global $manager; // , $catid, $blogid;
$itemTFA =& $manager -> getItem($intTFAItemID, 0, 0);
echo $strTitleTagBegin . $itemTFA['title'] . $strTitleTagEnd;
echo '<p>' . $itemTFA['more'] . '</p>';

このやりかたで「仕様案2」を作ってみた。

できたのは、NP_TinyFreeAreaItem

category03. Nucleus  time2006-09-21 05:10  authorkagekino 

コメント

コメントはまだありません。

コメント追加

このアイテムは閉鎖されました。このアイテムへのコメントの追加、投票はできません。

トラバ

トラバ
トラバピングURL
http://weblog.hip-labo.com/action.php?action=plugin&name=TrackBack&tb_id=54
手動によるトラバは こちらからどうぞ。