Wiki.pm

WikiモジュールはWikiの基本的な処理、プラグインの管理などを実装したクラスです。

add_handler

アクションハンドラプラグインを登録します。

$wiki->add_handler(actionパラメータ,アクションハンドラのクラス名);

add_hook

フックプラグインを登録します。

$wiki->add_hook(フック名,フックプラグインのクラス名);

add_inline_plugin

インラインプラグインを登録します。プラグインの出力タイプには"WIKI"または"HTML"を指定します。省略した場合は"HTML"を指定したものとみなされます。

$wiki->add_inline_plugin(プラグイン名,プラグインのクラス名,プラグインの出力タイプ);

add_paragraph_plugin

パラグラフプラグインを登録します。プラグインの出力タイプには"WIKI"または"HTML"を指定します。省略した場合は"HTML"を指定したものとみなされます。

$wiki->add_inline_plugin(プラグイン名,プラグインのクラス名,プラグインの出力タイプ);

install

プラグインをインストールするために各プラグインのパッケージ毎に用意されたインストールモジュール(Install.pm)を読み込みます。

$wiki->install(プラグイン);

add_user

ユーザを追加します。

$wiki->add_user(ID,パスワード,ユーザタイプ);

ユーザタイプには管理者ユーザの場合0、一般ユーザの場合1を指定します。なお、このメソッドは実行時にWiki.pmにユーザを追加するためのもので、このメソッドに対してユーザを追加しても永続化は行われません。

add_user_menu

ログインユーザ用のメニューを追加します。一般ユーザがログインすると表示されます。また、管理者にてログインした場合も表示されます。優先度が高いほど上位に表示されます。

$wiki->add_user_menu(項目名,URL,優先度);

add_user_handler

ログインユーザ用のアクションハンドラを追加します。このメソッドによって追加されたアクションハンドラはログインしている場合のみ実行可能です。それ以外の場合はエラーメッセージを表示します。

$wiki->add_user_handler(actionパラメータ,アクションハンドラのクラス名);

add_admin_menu

管理者用のメニューを追加します。管理者ユーザがログインすると表示されます。優先度が高いほど上位に表示されます。

$wiki->add_admin_menu(項目名,URL);

add_admin_handler

管理者用のアクションハンドラを追加します。このメソッドによって追加されたアクションハンドラは管理者としてログインしている場合のみ実行可能です。それ以外の場合はエラーメッセージを表示します。

$wiki->add_admin_handler(actionパラメータ,アクションハンドラのクラス名);

add_editform_plugin

エディットフォームプラグインを追加します。

$wiki->add_editform_plugin(エディットフォームプラグインのクラス名,重み);

重みが大きいほど上位に表示されます。

get_page

引数で指定したページのソースを取得します。

my $source = $wiki->get_page(ページ名);

save_page

ページを保存します。

$wiki->save_page(ページ名,ページ内容);

set_title

アクションハンドラ中で画面のタイトルを設定するのに使用します。

$wiki->set_title(タイトル);

編集系の画面の場合、第二引数に1を指定してください。ロボット対策用に以下のMETAタグが出力されます。

<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">

get_page_list

ページ名の一覧をリストで取得します。引数としてハッシュリファレンスを渡すことで取得内容を指定することが可能です。デフォルトでは全てのページを名前でソートしたリストを返却します。

# 以下の例は参照権のあるページのみ取得し、更新日時でソートします。
my @list = $wiki->get_page_list({-sort   => 'last_modified',
                                 -permit => 'show'});

# 以下の例は全てのページを取得し、名前でソートする。
my @list = $wiki->get_page_list({-sort => 'name'});

# 以下の例は最新の10件を取得する。
my @list = $wiki->get_page_list({-sort=>'last_modified',-max=>10});

get_last_modified

ページの物理的な最終更新時刻(データファイルのタイムスタンプ)を取得します。

my $modified = $wiki->get_last_modified(ページ名);

get_last_modified2

ページの論理的な最終更新時刻を取得します。「タイムスタンプを更新しない」にチェックを入れてページを保存した場合はこのメソッドで返される日時は保存前のものになります。

my $modified = $wiki->get_last_modified2(ページ名);

add_menu

メニュー項目を追加します。既に同じ名前の項目が登録されている場合は上書きします。

$wiki->add_menu(項目名,URL,重み);

重みが大きいほど左側に表示されます。

do_hook

add_hookメソッドで登録されたフックプラグインを実行します。

$wiki->do_hook(フック名);

call_handler

add_handlerメソッドで登録されたアクションハンドラを実行します。アクションハンドラのdo_actionメソッドの戻り値を返します。

my $content = $wiki->call_handler(actionパラメータ);

error

アクションハンドラ中等でエラーが発生した場合に使用するメソッドです。

sub do_action {
  my $self = shift;
  my $wiki = shift;
  ...
  return $wiki->error(エラーメッセージ);
}

process_wiki

引数で渡したWikiフォーマットの文字列をHTMLに変換して返します。

my $html = $wiki->process_wiki(文字列);

page_exists

引数で指定したページが存在するかどうかをしらべます。

if($wiki->page_exists(ページ名)){
  # ページが存在する場合の処理
} else {
  # ページが存在しない場合の処理
}

is_freeze

引数で指定したページが凍結中かどうかを調べます。

if($wiki->is_freeze(ページ名)){
  ...
}

freeze_page

ページを凍結します。

$wiki->freeze_page(ページ名);

un_freeze_page

ページの凍結を解除します。

$wiki->un_freeze_page(ページ名);

get_CGI

CGIクラスのオブジェクトを取得します。

my $cgi = $wiki->get_CGI;

get_login_info

ログイン情報を取得します。ログインしている場合はログイン情報を含んだハッシュリファレンスを、ログインしていない場合はundefを返します。

my $info = $wiki->get_login_info();
if(defined($info)){          # ログインしていない場合はundef
  my $id   = $info->{id};    # ログインユーザのID
  my $type = $info->{type};  # ログインユーザの種別(0:管理者 1:一般)
}

can_modify_page

引数で渡したページが編集可能かどうかを調べます。編集不可モード(setup.plで$accept_editが0に設定されている場合)はログインしていれば編集可能、ページが凍結されている場合は管理者ユーザでログインしている場合に編集可能となります。

if($wiki->can_modify_page(ページ名)){
  ...
}

set_page_level

ページの公開レベルを指定します。公開レベルは0=全員に公開、1=ログインユーザに公開、2=管理者のみに公開のいずれかを指定します。

$wiki->set_page_level(ページ名,公開レベル);

get_page_level

ページの公開レベルを取得します。0=全員に公開、1=ログインユーザに公開、2=管理者のみに公開のいずれかが返却されます。

my $level = $get_page_level(ページ名);

can_show

ページが参照可能かどうかを判定します。

if($wiki->can_show(ページ名)){
  # 参照可能
} else {
  # 参照不可能
}

config

設定内容を取得または上書きします。

# データファイルを格納するディレクトリ
my $data_dir = $wiki->config('data_dir');

# 設定を$data_dirで上書き
$wiki->config('data_dir',$data_dir);

redirect

引数で渡したページにリダイレクトします。ページの保存後にページを再表示する場合はこのメソッドを使用して下さい。なお、このメソッドを呼び出すとそこでスクリプトの実行は終了し、呼び出し元に制御は戻りません。

$wiki->redirect("FrontPage");

create_wiki

子Wikiを作成します。引数にはWikiの名前、作成するWikiサイトの管理者ID、パスワードを渡します。このメソッド内ではWikiサイト名のバリデーションや重複チェックは行われません。事前に行う必要があります。このメソッドはfarmプラグインを使用している場合のみ使用可能です。

$wiki->create_wiki(Wikiサイト名,管理者ID,パスワード);

remove_wiki

子Wikiを削除します。引数には削除するWikiサイトのパス(PATH_INFO部分)を渡します。このメソッドはfarmプラグインを使用している場合のみ使用可能です。

$wiki->remove_wiki(Wikiサイトのパス);

wiki_exists

引数で渡した名称の子Wikiが存在するかどうかを調べます。このメソッドはfarmプラグインを使用している場合のみ使用可能です。

$wiki->wiki_exists(Wikiサイト名);

get_wiki_list

子Wikiを配列で取得します。孫Wiki、曾孫Wikiは配列のリファレンスとして格納されています。このメソッドはfarmプラグインを使用している場合のみ使用可能です。