KnowledgeTreeプラグイン作成1

| コメント(0) | トラックバック(0)

KnowledgeTreeを触り始めた。バージョン間の差分が取れればいいなぁと思ってプラグインを書いてみる事にした。

その後気づいたけど、同様の機能は有償版には含まれているらしいね。ただ、KnowledgeTreeの日本語の情報って少ないし、プラグインの情報なんてもっと少ないので、せっかくだし勉強がてらプラグインを書いてその情報を載っけていこうかと。これからプラグイン書こうという人の参考になればいいかな。

今回作るのは「Action」というもの。プラグインには色んな種類があるけど(英語だけどこの辺を参考に)、Actionは文書やフォルダに対する何らかの処理を行うもの。文書を選択すると右の方のメニューで「Archive」とか「Copy」とかが表示されているけど、それらがAction。

Actionの作り方は同じく英語ページのここに載ってるんだけど、正直言ってこれだけじゃよく分からなくて、既存のプラグインのソースを見ながら見よう見まねで作り始めた。

とりあえず2つクラスを作る必要がある必要らしい。

  • KTPluginクラスの子クラス
  • KTDocumentActionクラスの子クラス

1つずつ説明。

<?php
require_once(KT_LIB_DIR . '/plugins/plugin.inc.php');
require_once(KT_LIB_DIR . '/plugins/pluginregistry.inc.php');

class DocumentDiffPlugin extends KTPlugin {
  var $sNamespace = 'kz.documentdiff.plugin';

  function DocumentDiffPlugin($sFilename = null) {
    $res = parent::KTPlugin($sFilename);
    $this->sFriendlyName = _kt('Document Diff Plugin');
    return $res;
  }

  function setup() {
    $this->registerAction('documentaction', 'DocumentDiffAction', 'kz.documentdiff.plugin.document.diff', 'DocumentDiffAction.php');
  }
}

$oPluginRegistry =& KTPluginRegistry::getSingleton();
$oPluginRegistry->registerPlugin('DocumentDiffPlugin', 'kz.documentdiff.plugin', __FILE__);

?>

注意点のみ


  • 最初の2行のrequire_onceで必要なファイルを読み込んでる。
  • namespaceは適当に。
  • コンストラクタで親クラスのコンストラクタを呼んで、$resてのを返す必要があるっぽい。もしくはコンストラクタを作らなければ、勝手に親クラスのコンストラクタが使われる(はず←PHPのオブジェクト指向関連はあまり詳しくない)
  • setupというメソッドで、後述のKTDocumentActionクラスの子クラスを登録する。

これでとりあえずプラグイン一覧画面に表示されるようになる。

<?php
require_once(KT_LIB_DIR . '/actions/documentaction.inc.php');

class DocumentDiffAction extends KTDocumentAction {
  var $sName = 'kz.documentdiff.plugin.document.diff';
  var $_sShowPermission = "ktcore.permissions.read";
  var $sDisplayName = "Diff";

  function DocumentDiffAction($oDocument = null, $oUser = null, $oPlugin = null)  {
    parent::KTDocumentAction($oDocument, $oUser, $oPlugin);
    $this->sDisplayName=_kt('Diff');
  }

  function getName() {
    return _kt('Diff');
  }

  function do_main() {
    //これから・・・
  }
}
?>

Actionの方はこれから勉強して書いていく...

トラックバック(0)

トラックバックURL: http://www.kazu.tv/blog-mgr/mt-tb.cgi/716

コメントする

このブログの作者

名前:kazu
仕事:IT関係の何でも屋
メール:kazu 後幕 kazu どと tv
詳しくはこの辺

このブログ記事について

このページは、kazuが2008年12月13日 12:18に書いたブログ記事です。

ひとつ前のブログ記事は「KnowledgeTree」です。

次のブログ記事は「PreparedStatement、ORDER BYの中には?は使えない。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ