FreeStyleWiki API

Farm

FarmモジュールはWiki.pmを継承し、WikiFarmの実装に必要なメソッドを提供します。

Wiki

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(プラグイン);

set_storage

ストレージオブジェクトを設定します。デフォルトではWiki::DefaultStorageを使用します。 Wiki::DefaultStorageと同等のメソッドを備えるクラスを作成することで、 RDBMSやバージョニングシステムを利用することが可能になります。

add_user

ユーザを追加します。

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

ユーザタイプには管理者ユーザの場合0、一般ユーザの場合1を指定します。

add_admin_menu

管理者用のメニューを追加します。管理者ユーザがログインすると表示されます。

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

add_admin_handler

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

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;

get_last_modified

ページの最終更新時刻を取得します。

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

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プラグインを使用している場合のみ使用可能です。

Util

Utilモジュールはユーティリティ関数をまとめたモジュールです。

url_encode

引数で渡した文字列をURLエンコードして返します。

 $str = Util::url_encode($str)

url_decode

引数で渡した文字列をURLデコードして返します。

 $str = Util::url_decode($str);

send_mail

管理者にメールを送信します。 sendmailのパスと管理者のメールアドレスが設定されていない場合は送信されません。

 Util::send_mail(件名,本文);

format_date

日付を「YYYY年MM月DD日 HH時MM分SS秒」という文字列にフォーマットします。

 my $now_date_str = Util::format_date(time());

trim

文字列の両端の空白文字を取り除いた文字列を返します。

 my $text = Util::trim($text);

delete_tag

文字列からHTMLタグを削除し、文字列のみを取得します。

 my $html = "<B>文字列</B>";
 # <B>と</B>を削除し、"文字列"のみ取得
 my $text = Util::delete_tag($html);

check_numeric

引数に渡した変数が整数かどうかをチェックします。 整数の場合は真を、そうでない場合は偽を返します。

 if(Util::check_numeric($param)){
   # 整数の場合の処理
 } else {
   # 整数でない場合の処理
 }

inline_error

インラインプラグインからエラーメッセージを返す場合に使用します。

 return Util::inline_error('プロジェクト名が指定されていません。');

paragraph_error

パラグラフプラグインからエラーメッセージを返す場合に使用します。

 return Util::paragraph_error('プロジェクト名が指定されていません。');

load_config_text

設定ファイルを格納するディレクトリ(デフォルトでは./config)から指定したファイルを読み込み、 ファイル内容を文字列として取得します。第一引数には$wikiを渡し、第二引数でファイル名を指定します。

 my $content = $wiki->load_config_text($wiki,"hoge.dat");

load_config_hash

設定ファイルを格納するディレクトリ(デフォルトでは./config)から指定したファイルを読み込み、 ハッシュリファレンスとして取得します。第一引数には$wikiを渡し、第二引数でファイル名を指定します。

 my $hashref = $wiki->load_config_hash($wiki,"hoge.dat");

save_config_text

引数で渡したテキストを設定ファイルを格納するディレクトリ(デフォルトでは./config)に 指定したファイル名で保存します。第一引数には$wikiを渡し、第二引数でファイル名を指定します。

 $wiki->save_config_text($wiki,$content);

save_config_hash

引数で渡したハッシュリファレンスを設定ファイルを格納するディレクトリ(デフォルトでは./config)に 指定したファイル名で保存します。第一引数には$wikiを渡し、第二引数でファイル名を指定します。

 $wiki->save_config_text($wiki,$hashref);

TOP