KnowledgeTreeプラグイン作成2

引き続きボチボチやってる。

プラグイン作成とかで難しいのは、そのプラットフォームの仕組みを理解する事。いったん仕組みが分かっちゃえば後は普通のプログラミング。KnowledgeTree (KT)の場合はPHP。

今回はプラグインに関連するテーブルの簡単な解説。

1つめはpluginsテーブル。プラグイン一覧できるテーブル。主なフィールドは以下の通り。

namespace
前回の例で行くと、DocumentDiffPluginクラス内、$oPluginRegistry->registerPluginの第2引数
path
pluginの実体のPHPファイル。$oPluginRegistry->registerPluginの第3引数
friendly_name
DocumentDiffPlugin参照

このテーブル内のレコードははpluginsディレクトリ内にあるファイルから自動される

2つめはplugin_helperテーブル。プラグインの動作などを規定するっぽい。主なフィールドは以下の通り(順番は前後する)。

classtype
プラグインの種別。今回作成してるのはaction
namespace
前回の例で行くと、DocumentDiffActionクラスのnamespaceが入る(kz.documentdiff.plugin.document.diff)
plugin
今回の例で言うと、actionを登録したpluginのnamespaceであるkz.documentdiff.plugin
classname
クラス名。DocumentDiffAction
path
今回の場合、actionが定義されているPHPファイル。plugins/docdiff/DocumentDiffAction.php
object
他のフィールドの値を「|」でつないだだけもの? documentaction|DocumentDiffAction|kz.documentdiff.plugin.document.diff|plugins/docdiff/DocumentDiffAction.php|kz.documentdiff.pluginという値が入っていた。

これらのテーブルの値は、プラグインの管理画面の「Reread plugins」と「Update」を押した時に追加・更新されると思うけど、一度登録されたプラグインのnamespaceなどはプラグインの無効化・有効化とかしても変更されないので、pluginが画面に現れない、呼び出されないと言った時にはこれらのテーブルの値を確認すべき。

自分はこれで結構ハマった…No such action exists in KnowledgeTreeとか出た時があったけど、最終的にはDBのデータを直接修正した。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です