プラグインの作成例

更新日 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]

レベル概要
stable安定版
betaベータ版
alphaアルファー版
devel開発版
snapshotスナップショット版

プラグインの作成

プラグインには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; 

}

?>

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-08-25 (水) 09:22:13 (2737d)