Util

FSWiki全体で使用されるユーティリティ関数群を提供するモジュールです。

url_encode

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

 $str = Util::url_encode($str)

url_decode

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

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

cookie_path

Cookieのpathに指定する文字列を取得します。

 $path = Util::cookie_path($wiki);

make_filename

ディレクトリ、ファイル名、拡張子を結合してファイル名を生成します。

 my $filename = Util::make_filename(ディレクトリ名,ファイル名,拡張子);

escapeHTML

引数で渡された文字列のHTMLタグをエスケープして返します。

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

format_date

日付を"yyyy年mm月dd日 hh時mi分ss秒"形式にフォーマットします。

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

trim

文字列の両端の空白を切り落とします。

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

delete_tag

タグを削除して文字列のみを取得します。

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

check_numeric

数値かどうかチェックします。数値の場合は真、そうでない場合は偽を返します。

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

send_mail

管理者にメールを送信します。 setup.datの設定内容に応じてsendmailコマンドもしくはSMTP通信によってメールが送信されます。 どちらも設定されていない場合は送信を行わず、エラーにもなりません。 SMTPで送信する場合、このメソッドを呼び出した時点でNet::SMTPがuseされます。

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

handyphone

クライアントが携帯電話かどうかチェックします。 携帯電話の場合は真、そうでない場合は偽を返します。

 if(Util::handyphone()){
   # 携帯電話の場合の処理
 } else {
   # 携帯電話でない場合の処理
 }

load_config_hash

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

 my $hashref = Util::load_config_hash($wiki,"hoge.dat");

load_config_text

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

 my $content = Util::load_config_text($wiki,"hoge.dat");

save_config_hash

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

 Util::save_config_hash(ファイル名,ハッシュリファレンス);

save_config_text

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

 Util::save_config_hash(ファイル名,テキスト);

error

インラインプラグインからエラーメッセージを返す場合に使用してください。

このメソッドは3.4系との互換性を維持するために残されました。 3.6で廃止するものとします。

inline_error

インラインプラグインからエラーメッセージを返す場合に使用してください。

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

paragraph_error

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

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

get_response

指定のURLにGETリクエストを発行し、レスポンスのボディ部を返却します。 この関数を呼び出した時点でLWP::UserAgentがuseされます。

 my $response = Util::get_response($wiki,URL);

get_module_file

モジュール名からファイル名を取得します。 例えばplugin::core::Installを渡すとplugin/core/Install.pmが返却されます。

 $file = Util::get_module_file(モジュール名);

debug

デバッグログ(debug.log)をカレントディレクトリに出力します。 Wiki::DEBUG=1の場合のみ出力を行います。

md5

Digest::Perl::MD5を用いたパスワードの暗号化を行います。 第一引数にパスワード、第二引数にアカウントを渡します。 このメソッドを呼び出した時点でDigest::Perl::MD5がuseされます。

 my $md5pass = Util::md5($pass,$account);

create_archive

tarファイルを作成します。

 Util::compress($filename,@filelist);

@filelistにはアーカイブに含めるファイル、またはディレクトリのリストを指定します。 ディレクトリを指定した場合、配下のファイル・ディレクトリ群は再帰的にアーカイブに 追加されます。この関数を呼び出した時点でArcive::Tarがuseされます。

また、この関数内では排他制御は行われません。 同時書き込みを回避するためには外部で何らかの排他制御,もしくは一意なファイル名で アーカイブを生成するなどの処理を行う必要があります。