プラグインの作成例 †更新日 2010-08-25 (水) 09:22:13
PukiWiki上でRSSブロガーを表示させるブロガーのプラグインをここのサイトを参考にさせていただいて作成してみた。RSSブロガーにはPEAR(The PHP Extension and Application Repository)というPHPのライブラリ集が必要になる。 今回はXML_Parser、XML_RSS、XML_Treeが必要になるのでこれらをインストールする。 PEARのダウンロード+インストール †# pear install --alldeps XML_RSS downloading XML_RSS-0.9.2.tgz ... Starting to download XML_RSS-0.9.2.tgz (3,515 bytes) ....done: 3,515 bytes downloading XML_Tree-1.1.tgz ... Starting to download XML_Tree-1.1.tgz (4,826 bytes) ...done: 4,826 bytes install ok: channel://pear.php.net/XML_Tree-1.1 install ok: channel://pear.php.net/XML_RSS-0.9.2 # pear install --alldeps XML_Parser downloading XML_Parser-1.2.8.tgz ... Starting to download XML_Parser-1.2.8.tgz (13,476 bytes) .....done: 13,476 bytes install ok: channel://pear.php.net/XML_Parser-1.2.8 インストールリストの表示 †# pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.1 stable Console_Getopt 1.2 stable PEAR 1.4.11 stable XML_Parser 1.2.8 stable XML_RSS 0.9.2 stable XML_Tree 1.1 stable アンインストール †# pear uninstall XML_Parser uninstall ok: channel://pear.php.net/XML_Parser-1.2.8 アップグレード †インストールされてる、pearパッケージでアップグレード可能なものを表示する。 # pear list-upgrades Available Upgrades (stable): ============================ Package Local Remote Size Mail 1.1.1 1.1.2 12.9kB ↑ upgrade パッケージを指定してアップグレードをする # pear upgrade Mail downloading Mail-1.1.2.tgz ... ...done: 13,156 bytes upgrade ok: Mail 1.1.2 以下のようなエラーが出たら WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update 以下のコマンドを実行 # pear channel-update pear.php.net Updating channel "pear.php.net" Update of Channel "pear.php.net" succeeded このページを参考にした ベータ版のインストール †# pear install --alldeps Archive_Zip Failed to download pear/Archive_Zip within preferred state "stable", latest release is version 0.1.1, stability "beta", use "channel://pear.php.net/Archive_Zip-0.1.1" to install install failed このようにインストール時にベータ版を要求された場合は # pear config-set preferred_state beta config-set succeeded にしてから再度インストール 安定版に戻すには # pear config-set preferred_state stable config-set succeeded インストールパッケージの変更 pear config-set preferred_state <state> [state]
プラグインの作成 †プラグインには4種類(function plugin_<プラグイン名>_convert()、 function plugin_<プラグイン名>_inline()、 function plugin_<プラグイン名>_action()、function plugin_<プラグイン名>_init())ある。 呼び出しは #プラグイン名 また、_inline()は&プラグイン名で呼び出される。これは文章の中に使用できる 実際の作成「_convert()」 †作成したファイル名は(プラグイン名).inc.phpとしてplugin/の下に保存する 今回はrss2vという名前にするので以下のようになる <?php function plugin_rssv2_convert() ^^^^^プラグイン名 { if(func_num_args()>0) { $pnum = func_num_args(); <--引数の数 $array = func_get_args(); for ($i = 0; $i < $pnum - 1 ; $i++){ $rdf[] = $array[$i]; <--第一引数から順に読み出す } $num = $array[$pnum - 1]; } (処理:略) return $outstr; <---戻り値を指定 } ?> 実際の作成「_inline()」 †これだと文中で利用できる <?php function plugin_my_link_inline() //リンクを別Windowで表示 //e.g &my_link([表示名], [JumpURL]); { if(func_num_args()>0) { $pnum = func_num_args(); $array = func_get_args(); for ($i = 0; $i < $pnum; $i++){ $data[] = htmlspecialchars($array[$i]); } } $out = "<a href=\"$data[1]\" target=\"_blank\"> $data[0] </A>"; return $out; } ?> |