WikiモジュールはWikiの基本的な処理、プラグインの管理などを実装したクラスです。
アクションハンドラプラグインを登録します。
$wiki->add_handler(actionパラメータ,アクションハンドラのクラス名);
フックプラグインを登録します。
$wiki->add_hook(フック名,フックプラグインのクラス名);
インラインプラグインを登録します。
$wiki->add_plugin(プラグイン名,インラインプラグインのクラス名);
プラグインをインストールするために各プラグインのパッケージ毎に用意された インストールモジュール(Install.pm)を読み込みます。
$wiki->install(プラグイン);
ストレージオブジェクトを設定します。デフォルトではWiki::DefaultStorageを使用します。 Wiki::DefaultStorageと同等のメソッドを備えるクラスを作成することで、 RDBMSやバージョニングシステムを利用することが可能になります。
ユーザを追加します。
$wiki->add_user(ID,パスワード,ユーザタイプ);
ユーザタイプには管理者ユーザの場合0、一般ユーザの場合1を指定します。
管理者用のメニューを追加します。管理者ユーザがログインすると表示されます。
$wiki->add_admin_menu(項目名,URL);
管理者用のアクションハンドラを追加します。このメソッドによって追加されたアクションハンドラは 管理者としてログインしている場合のみ実行可能です。それ以外の場合はエラーメッセージを表示します。
エディットフォームプラグインを追加します。
$wiki->add_editform_plugin(エディットフォームプラグインのクラス名,重み);
重みが大きいほど上位に表示されます。
引数で指定したページのソースを取得します。
my $source = $wiki->get_page(ページ名);
ページを保存します。
$wiki->save_page(ページ名,ページ内容);
アクションハンドラ中で画面のタイトルを設定するのに使用します。
$wiki->set_title(タイトル);
ページ名の一覧をリストで取得します。
my @list = $wiki->get_page_list;
ページの最終更新時刻を取得します。
my $modified = $wiki->get_last_modified(ページ名);
メニュー項目を追加します。 既に同じ名前の項目が登録されている場合は上書きします。
$wiki->add_menu(項目名,URL,重み);
重みが大きいほど左側に表示されます。
add_hookメソッドで登録されたフックプラグインを実行します。
$wiki->do_hook(フック名);
add_handlerメソッドで登録されたアクションハンドラを実行します。 アクションハンドラのdo_actionメソッドの戻り値を返します。
my $content = $wiki->call_handler(actionパラメータ);
アクションハンドラ中等でエラーが発生した場合に使用するメソッドです。
sub do_action { my $self = shift; my $wiki = shift; ... return $wiki->error(エラーメッセージ); }
引数で渡したWikiフォーマットの文字列をHTMLに変換して返します。
my $html = $wiki->process_wiki(文字列);
引数で指定したページが存在するかどうかをしらべます。
if($wiki->page_exists(ページ名)){ # ページが存在する場合の処理 } else { # ページが存在しない場合の処理 }
引数で指定したページが凍結中かどうかを調べます。
if($wiki->is_freeze(ページ名)){ ... }
ページを凍結します。
$wiki->freeze_page(ページ名);
ページの凍結を解除します。
$wiki->un_freeze_page(ページ名);
CGIクラスのオブジェクトを取得します。
my $cgi = $wiki->get_CGI;
ログイン情報を取得します。ログインしている場合はログイン情報を含んだハッシュリファレンスを、 ログインしていない場合はundefを返します。
my $info = $wiki->get_login_info(); if(defined($info)){ # ログインしていない場合はundef my $id = $info->{id}; # ログインユーザのID my $type = $info->{type}; # ログインユーザの種別(0:管理者 1:一般) }
引数で渡したページが編集可能かどうかを調べます。 編集不可モード(setup.plで$accept_editが0に設定されている場合)はログインしていれば編集可能、 ページが凍結されている場合は管理者ユーザでログインしている場合に編集可能となります。
if($wiki->can_modify_page(ページ名)){ ... }
Utilモジュールはユーティリティ関数をまとめたモジュールです。
引数で渡した文字列をURLエンコードして返します。
$str = Util::url_encode($str)
引数で渡した文字列をURLデコードして返します。
$str = Util::url_decode($str);
管理者にメールを送信します。 sendmailのパスと管理者のメールアドレスが設定されていない場合は送信されません。
Util::send_mail(件名,本文);
日付を「YYYY年MM月DD日 HH時MM分SS秒」という文字列にフォーマットします。
my $now_date_str = Util::format_date(time());
文字列の両端の空白文字を取り除いた文字列を返します。
my $text = Util::trim($text);
文字列からHTMLタグを削除し、文字列のみを取得します。
my $html = "<B>文字列</B>"; # <B>と</B>を削除し、"文字列"のみ取得 my $text = Util::delete_tag($html);
引数に渡した変数が整数かどうかをチェックします。 整数の場合は真を、そうでない場合は偽を返します。
if(Util::check_numeric($param)){ # 整数の場合の処理 } else { # 整数でない場合の処理 }