plugindev:extramethod

Nucleusプラグイン 呼出専用メソッド リファレンス

再定義不可能なメソッド。

$this->getAdminURL()

という形で利用する。

便利なメソッド

getID()

このプラグインのIDを返します。このIDはNucleus内部で利用されるものです。

        $editOptionURL = $CONF['AdminURL'] . 'index.php?action=pluginoptions&plugid=' . $this->getID();

getAdminURL()

プラグインの管理エリアが置かれたURLを返します(そのような管理エリアがない場合は、この情報は無効です)。

        echo '<script type="text/javascript" src="'.$this->getAdminURL().'extrascript.js"></script>';

getDirectory()

プラグインの追加ファイルが格納されたサーバーのファイルシステムのパスを返します(そのようなファイルがない場合は、この情報は無効です)。結果は"/home/username/public_html/nucleus/plugins/plugname/"のようになります。

      // include language file for this plugin 
      $language = ereg_replace( '[\\|/]', '', getLanguageName()); 
      if (file_exists($this->getDirectory().'language/'.$language.'.php')) 
         include_once($this->getDirectory().'language/'.$language.'.php'); 
      else 
         include_once($this->getDirectory().'language/'.'english.php'); 

getShortName()

"NP_"部分を省き、全てを小文字にしたプラグインのクラス名を返します。この情報は getAdminURL と getDirectory で使用されます。

オプションについて

プラグインがオプションを設定したり取得したりしやすいように一連のメソッドが用意されています。 これを使って、オプションをNucleusの管理エリア内で直接編集できます。 その為、プラグインが独自の管理エリアを実装する必要がなくなります。 またPHPファイルの中からオプションを設定しなくて済みます。

オプションは次のようなコンテキストで利用可能です:

  1. グローバルなオプション: 「プラグインの管理」画面にあるプラグイン毎の管理エリアで設定できます。
  2. ブログのオプション: Blog設定ページで設定できます。
  3. カテゴリーのオプション: Blog設定ページにある「カテゴリーの編集」ページで設定できます。
  4. メンバーのオプション: 「メンバーの編集」ページで設定できます。
  5. アイテムのオプション: 「アイテムの追加」または「アイテムの編集」ページで設定できます。

オプションのタイプ

オプションには次のようなタイプ(種類)があります。

種類内容
textふつうのテキスト。
yesno値は「yes」または「no」の何れか。(編集時はラジオボタンで表示される。)
passwordテキストフィールド。(編集時は星印でマスクされる。)
textarea(v2.2) 複数行入力できるテキストフィールド。
select(v2.2) ドロップダウンメニュー。次のようなタイプ追加情報が必要です: ラベル1|値1|ラベル2|値2|ラベル3|値3

オプションのメタ情報

Nucleus v3.2から、一部のタイプのオプションを、特定の値に限定できるようになりました。 これにはオプションのメタ情報を使用します。 メタ情報は、セミコロンで区切ってタイプ追加情報に入れます。
注意: selectタイプのオプションの場合、selectの値リストはタイプ追加情報の先頭に置かなければなりません。

キー名使い方
datatypedatatype」を指定すると、扱いたいデータの種類についてNucleusへヒントを与えることができます。現在は「numerical」だけが使用できます。「numerical」が指定されたオプションは数値だけが入力可能になります(クライアントとサーバーの両方でチェックされます)。(指定可能なオプションのタイプ: 「select」および「text」)
accessreadonly」にすると、オプションは編集できなくなります(指定可能なオプションのタイプ: 「text」および「textarea」)。「hidden」にすると、オプションはエンドユーザーから見えなくなります(指定可能なオプションのタイプ: 「text」)。

使用例:

// 数値だけが入力できるテキスト型オプションを作る。
$this->createBlogOption('foobar', '何々カウント', 'text', '0', 'datatype=numerical');
// 数値だけが入力できるselect型オプションを作る。
$this->createItemOption('foobar', '何々スイッチ', 'select', '0', '0|0|1|1|2|2;datatype=numerical');
// 表示専用のtextarea型オプションを作る。
$this->createOption('foobar', '何々メッセージ', 'textarea', 'このテキストは編集できません。', 'access=readonly');

制限事項

  1. オプション名は最長20文字(バイト)。
  2. 説明文は最長255文字(バイト)。
  3. オプションの値に制限はありません(v2.5より前は最長128文字でした)。
  4. 文字「=」、「|」、「;」は、selectオプションの値リストとタイプ追加情報に使用できません。

オプションを扱うメソッド

オプションの作成

createOption($name, $desc, $type, $defValue = '', $typeExtras = '')

グローバルコンテキストに新しいオプションを作ります。

パラメータ内容
$nameオプション名。
$desc説明文。オプションを編集できるページに表示されます。
$typeオプションのタイプ。(オプションのタイプを参照。)
$defValueデフォルト値。
$typeExtrasタイプ追加情報。(オプションのタイプオプションのメタ情報を参照。)

createBlogOption($name, $desc, $type, $defValue = '', $typeExtras = '')

(v2.2) Blogコンテキストに新しいオプションを作ります。 パラメータはcreateOptionを参照して下さい。

createCategoryOption($name, $desc, $type, $defValue = '', $typeExtras = '')

(v2.2) カテゴリーコンテキストに新しいオプションを作ります。 パラメータはcreateOptionを参照して下さい。

createMemberOption($name, $desc, $type, $defValue = '', $typeExtras = '')

(v2.2) メンバーコンテキストに新しいオプションを作ります。 パラメータはcreateOptionを参照して下さい。

($name, $desc, $type, $defValue = '', $typeExtras = '')

(v2.2) アイテムコンテキストに新しいオプションを作ります。 パラメータはcreateOptionを参照して下さい。

オプションの値を設定

setOption($name, $value)

既にデータベースにあるグローバルオプションの値を変更します。

パラメータ内容
$nameオプション名。
$descオプションの新しい値。

setBlogOption($blogid, $name, $value)

(v2.2) Blogオプションの値を変更します。パラメータblogidはオプションが有効なBlogを示します。 他のパラメータはsetOptionを参照して下さい。

setCategoryOption($catid, $name, $value)

(v2.2) カテゴリーオプションの値を変更します。パラメータcatidはオプションが有効なカテゴリーを示します。 他のパラメータはsetOptionを参照して下さい。

setMemberOption($memberid, $name, $value)

(v2.2) メンバーオプションの値を変更します。パラメータmemberidはオプションが有効なメンバーを示します。 他のパラメータはsetOptionを参照して下さい。

setItemOption($itemid, $name, $value)

(v3.2) アイテムオプションの値を変更します。パラメータitemidはオプションが有効なアイテムを示します。 他のパラメータはsetOptionを参照して下さい。

オプションの値を取得

getOption($name)

データベースにあるグローバルオプションの値を取得します。

パラメータ内容
$nameオプション名。

getBlogOption($blogid, $name)

(v2.2) Blogオプションの値を取得します。パラメータblogidは値を取り出すBlogを示します。 他のパラメータはgetOptionを参照して下さい。

getCategoryOption($catid, $name)

(v2.2) カテゴリーオプションの値を取得します。パラメータcatidは値を取り出すカテゴリーを示します。 他のパラメータはgetOptionを参照して下さい。

getMemberOption($memberid, $name)

(v2.2) メンバーオプションの値を取得します。パラメータmemberidは値を取り出すメンバーを示します。 他のパラメータはgetOptionを参照して下さい。

getItemOption($itemid, $name)

(v3.2) アイテムオプションの値を取得します。パラメータitemidは値を取り出すアイテムを示します。 他のパラメータはgetOptionを参照して下さい。

オプションの削除

deleteOption($name)

データベースからグローバルオプションを削除します。

パラメータ内容
$nameオプション名。

deleteBlogOption($name)

(v2.2) Blogオプションを削除します。 パラメータはdeleteOptionを参照して下さい。

deleteCategoryOption($name)

(v2.2) メンバーオプションを削除します。 パラメータはdeleteOptionを参照して下さい。

deleteMemberOption($name)

(v2.2) カテゴリーオプションを削除します。 パラメータはdeleteOptionを参照して下さい。

deleteItemOption($name)

(v3.2) アイテムオプションを削除します。 パラメータはdeleteOptionを参照して下さい。

オプションの値をすべて取得

getAllBlogOptions($name)

(v2.2) あるBlogオプションのすべての値を取得します。Blog毎の値が連想配列として返されます。キーはBlogのIDです。

getAllCategoryOptions($name)

(v2.2) あるメンバーオプションのすべての値を取得します。メンバー毎の値が連想配列として返されます。キーはメンバーのIDです。

getAllMemberOptions($name)

(v2.2) あるカテゴリーオプションのすべての値を取得します。カテゴリー毎の値が連想配列として返されます。キーはカテゴリーのIDです。

getAllItemOptions($name)

(v3.2) あるアイテムオプションのすべての値を取得します。アイテム毎の値が連想配列として返されます。キーはアイテムのIDです。

オプションの値を指定順に幾つか取得

getBlogOptionTop($name, $amount = 10, $sort = 'desc')

(v3.2) あるBlogオプションの値を指定順に幾つか取得します。結果は配列として返されます。配列の各要素は、値('value')とそのBlogのID('id')を入れた配列です。

パラメータ内容
$nameオプション名。
$amount取得したいオプションの個数。
$sort昇順「asc」または降順「desc」を指定。

getCategoryOptionTop($name, $amount = 10, $sort = 'desc')

(v3.2) あるメンバーオプションの値を指定順に幾つか取得します。結果は配列として返されます。配列の各要素は、値('value')とそのメンバーのID('id')を入れた配列です。 パラメータはgetBlogOptionTopを参照して下さい。

getMemberOptionTop($name, $amount = 10, $sort = 'desc')

(v3.2) あるカテゴリーオプションの値を指定順に幾つか取得します。結果は配列として返されます。配列の各要素は、値('value')とそのカテゴリーのID('id')を入れた配列です。 パラメータはgetBlogOptionTopを参照して下さい。

getItemOptionTop($name, $amount = 10, $sort = 'desc')

(v3.2) あるアイテムオプションの値を指定順に幾つか取得します。結果は配列として返されます。配列の各要素は、値('value')とそのアイテムのID('id')を入れた配列です。 パラメータはgetBlogOptionTopを参照して下さい。

注意

プラグインクラスのコンストラクタ内で、これらの関数を呼び出すことはできません。
プラグインがロードされた後にこれらを実行したい時は、init()メソッド内に記述します。
 
plugindev/extramethod.txt · 最終更新: 2011/05/15 00:38 (外部編集)