NAME

PowerCMS::Util - Powrer CMS for MT utility functions


SYNOPSIS

    use lib qw( plugins/PowerCMS/lib );
    use PowerCMS::Util qw( function1 function2 );

powercms_util_version( )

    PowerCMS::Util のバージョンを返します。

build_tmpl( $app, $tmpl, \%args [, \%params ] )

    コンテクストをセットしてテンプレートのビルド( 再構築 )結果を返します。

args

save_asset( $app, $blog, $params, $cb )

    アイテム ( MT:Assetオブジェクト ) を作成して保存します。

args

upload( $app, $blog, $name, $dir, \%params )

    ブラウザからアップロードされたファイルを保存してアイテムに登録します。
    戻り値はアイテム( MT::Assetオブジェクト )の配列です。
    $params{ no_asset } = 1を指定した場合はファイルパスの配列を返します。
    $params{ singler }  = 1を指定した場合配列ではなくスカラー型で値を返します。

args

convert_gif_png( $image );

    $imageで指定したGIF形式のファイルをPNG形式のファイルに、PNG形式のファイルをGIF形式のファイルに変換します。

association_link( $app, $author, $role, $blog )

    指定したブログに対してユーザーにロールを割り当てます。戻り値はMT::Associationオブジェクトです。

args

create_entry( $app, $blog, \%args, \%params[, $cb] )

    MT::Entryオブジェクトを作成して保存します。
    $params{ no_save } = 1を指定した場合MT::Entryオブジェクトのみを返します( 保存は行いません )。
    この場合、カテゴリーや関連オブジェクトはセットされないことに注意してください。
    $params{ rebuildme } = 1を指定した場合保存後に再構築を実行します。

args

make_entry( $app, $blog, \%args, \%params[, $cb] )

    create_entryへのエイリアスです。

write2file ( $path, $data, $type, $blog )

    フルパス ( フルパス ) とデータを指定してファイルを生成します。

args

read_from_file( $path, $type, $blog )

    ファイルの内容を返します。

args

move_file( $from, $to, $blog )

    $from から $to へファイルを移動します。
    $blogを指定した場合相対パス ( %r や %s を含むパス ) の使用が可能です。

copy_item( $from, $to, $blog )

    $from から $to へファイル ( 又はフォルダ ) をコピーします。
    $blogを指定した場合相対パス ( %r や %s を含むパス ) の使用が可能です。

remove_item( $remove, $blog )

    $remove ( フルパス ) のファイル ( フォルダ ) を削除します。
    $blogを指定した場合相対パス ( %r や %s を含むパス ) の使用が可能です。

relative2path( $path, $blog )

    相対パス ( %r や %s を含むパス ) をフルパスに変換します。

path2relative( $path, $blog )

    フルパスを相対パス ( %r や %s を含むパス ) に変換します。

path2url( $path, $blog )

    フルパスからURLを生成します。

relative2url( $path, $blog )

    相対パス ( %r や %s を含むパス ) をURLに変換します。

url2path( $url, $blog )

    URLからサーバーのフルパスを生成します。

site_path( $blog )

    ブログのサイト・パスを常に末尾の / ( スラッシュ ) を省略して返します。
    アーカイブ・パスの指定がある場合はアーカイブ・パスを返します。

archive_path( $blog )

    ブログのアーカイブ・パスを常に末尾の / ( スラッシュ ) を省略して返します。

site_url( $blog )

    ブログのURLを常に末尾の / ( スラッシュ ) を省略して返します。
    末尾の / を含む完全なURLを返す場合は add_slash 関数をあわせて利用してください。

static_or_support( )

    %s が示すディレクトリ ( MT4ではスタティックパス、MT5ではサポートディレクトリのパス ) を返します。

support_dir( )

    サポートディレクトリのパスを返します。

current_ts( $blog )

    現在のタイムスタンプを YYYYMMDDhhmmss 形式で返します。

next_date( $blog, $ts )

    $ts ( YYYYMMDDhhmmss ) の24時間後のタイムスタンプを返します。

prev_date( $blog, $ts )

    $ts ( YYYYMMDDhhmmss ) の24時間前のタイムスタンプを返します。

valid_ts( $ts )

    $ts ( YYYYMMDDhhmmss ) の書式が妥当で且つ存在している日時の場合 1 を返します。

valid_phone_number( $num )

    $num が電話番号の書式として妥当な場合 1 を返します。

valid_postal_code( $code )

    $code が郵便番号の書式として妥当な場合 1 を返します。

month2int( $month )

    月を表す文字列( 例: January, Jan, jan ) から数字を返します。

send_multipart_mail( \%args )

    添付ファイル付きメールを送信します。

args

mk_multipart_data( \%args )

    添付ファイル付きメール送信時に、send_mailに渡すためのContent-Typeと
    マルチパートなBodyを返します。
    戻り値は、上記のリストです。( $content_type, $new_body )

args

send_mail( $from, $to, $subject, $body [, \@cc, \@bcc, \%params_for_callback ] )

send_mail( \%args, \%params_for_callback )

    指定の $to へメールを送信します。
    $from, $to, $subject, $body のいずれかが空の場合はメール送信せずにリターンします。
    また、実際の送信前にpre_send_mailコールバックを\%args 形式で呼び出します。
    コールバックが0を返した場合は、メール送信せずにリターンします。
    第2の呼び出しインターフェースでは、Content-Typeを指定可能です。

args

trigger callbacks

get_mail( $server, $id, $passwd, $protocol, $delete )

    メールを受信します。戻り値はメールと添付ファイルに関する情報の配列です。例:
    ( { from => $from,
        subject   => $subject1,
        body      => $body1,
        files     => \@files1,
        directory => $workdir1 },
      { from => $from2,
        subject   => $subject2,
        body      => $body2,
        files     => \@files2,
        directory => $workdir2 }
    )

args

make_zip_archive( $directory, $out, $files )

    ディレクトリまたはファイルの配列を指定してZIPアーカイブファイルを作成します。
    戻り値は Archive::Zip モジュールの writeToFileNamed 関数の実行結果です。

args

current_user( $app )

    ログイン中のユーザーの MT::Author オブジェクトを返します。

get_user( $app )

    ログイン中のユーザーの MT::Author オブジェクトを返します。
    MTのユーザー、コメント投稿者、携帯のセッションID、携帯の個別機種IDの順にユーザーをチェックして、
    どれかに該当すればそのユーザーの MT::Author オブジェクトを返します。

current_blog( $app )

    実行中のアプリケーションの MT::Blog オブジェクトを返します。

get_content( $uri, $utf8, $file )

    URLを指定してデータをGETしてコンテンツの内容を返します。

args

get_feed( $uri, $utf8 )

    MT::Feeds::Lite を利用してフィードを取得します。
    戻り値は取得したフィード情報のハッシュ・リファレンスです。例:
    (
        LITE    => $lite, # MT::Feeds::Lite->fetch( $uri )の返り値
        TITLE   => $title,
        LINK    => $link,
        ENTRIES => \%$entries,
        COUNT   => $count,
    );

args

extract_content( $start, $end, $data, $cont )

    開始ポイント、終了ポイントを指定してその間のコンテンツを抽出します。

args

regex_extract( $pattern, $data )

    正規表現パターンを指定してデータを抽出します。

str_replace( $from, $to, $data )

    文字列を置換します。

regex_replace( $pattern, $replace, $data )

    MTのグローバルモディファイア regex_replace の実行結果を返します。

csv_new( )

    Text::CSV_XS または Text::CSVオブジェクトを生成して返します。

ftp_new( $server, $account, $password, $param )

    Net::FTP オブジェクトを生成してFTPサーバーに接続します。

ftp_get( $ftp, $cwd, $rfile, $lfile, $mode )

    FTPサーバーからファイルを取得します。

args

ftp_put( $ftp, $cwd, $file, $mode, $params )

    Net::FTP モジュールを利用してリモートサーバーへファイルをアップロードします。

args

trigger callbacks

ftp_mkdir( $ftp, $cwd, $dir )

    指定したリモートディレクトリ $cwd に ディレクトリ $dir を生成します。

ftp_quit( $ftp )

    FTP接続を終了します。

set_upload_filename( $file )

    URLに不適切な文字列を含むパス名( 日本語を含むパス名など ) をランダムな文字列のパスに変換します。

uniq_filename( $file )

    set_upload_filename を実行した後、同名のファイルが存在すれば連番を付けてユニークなファイルパス
    を生成します。

get_children_filenames( $directory, $pattern )

get_children_files( $directory, $pattern )

    ディレクトリ以下 ( サブディレクトリを含む ) のファイルの配列を返します。

args

get_permissions( )

    実行中のアプリケーションのユーザーの MT::Permission オブジェクトをロードして返します。

get_array_uniq( @array )

    配列から重複した値を削除してユニークな値の配列を返します。

ceil( $var )

    値を切り上げます。

floor( $var )

    値を切り捨てます。

round( $var )

    値を四捨五入します。

format_LF( $data )

    文字列の改行コードを LF に統一します。

get_agent ( $app, $wants )

    実行中のアプリケーションへアクセスしている端末のUser-Agent情報を判別する文字列を返します。
    $wants に Smartphone Keitai Mobile いずれかの値を渡した場合、該当する場合に 1 を返します。

if_ua_keitai( $app )

is_ua_keitai( $app )

    実行中のアプリケーションへアクセスしている端末が DoCoMo AU Softbankのいずれかの携帯電話の場合に
    1 を返します。

if_ua_mobile( $app )

is_ua_mobile( $app )

    実行中のアプリケーションへアクセスしている端末が DoCoMo AU Softbankのいずれか、
    もしくは スマートフォン端末の場合に 1 を返します。

if_ua_iPhone( $app )

is_ua_iPhone( $app )

    実行中のアプリケーションへアクセスしている端末が iPhone iPod touchのいずれかの場合に
    1 を返します。

if_ua_iPad( $app )

is_ua_iPad( $app )

    実行中のアプリケーションへアクセスしている端末が iPad の場合に 1 を返します。

if_ua_Android( $app )

is_ua_Android( $app )

    実行中のアプリケーションへアクセスしている端末が Android の場合に 1 を返します。

if_user_can( $blog, $user, $permission )

is_user_can( $blog, $user, $permission )

    ブログに対してユーザーが特定の権限を持っている場合に 1 を返します。

args

if_power_edit( $app )

is_power_edit( $app )

    実行中のアプリケーションの mode ( __mode ) がブログ記事 / ウェブページの一括編集の場合に
    1 を返します。

if_application( $app )

is_application( $app )

    実行中のアプリケーションが MT::App::Foo の場合に 1 を返します。

if_cms( $app )

is_cms( $app )

    実行中のアプリケーションが MT::App::CMS の場合に 1 を返します。

if_windows( )

is_windows( )

    実行中のOS環境が Windows 環境である場合に 1 を返します。

if_blog( $app )

is_blog( $app )

    $app->blog が有効な MT::Blog( MT::Website )オブジェクトである場合に 1 を返します。

if_plugin( $component )

is_plugin( $component )

    プラグイン $component ( プラグイン名 )がインストールされていて有効な場合に 1 を返します。
    例:
    if (! if_plugin( 'PowerCMS' ) ) {
        return 'PowerCMSがインストールされていません。';
    }

if_writable( $path, $blog )

is_writable( $path, $blog )

    指定したパスがアプリケーションから書き込み可能なパスであるかどうかを調べます。
    TempDir ImportPath SupportDirectoryPath PowerCMSFilesDirのいずれか以下のパスである場合に
    1 を返します。
    第二引数 $blog を指定している場合、指定したパスがブログの公開パス以下のパスである場合は
    1 を返します。

file_extension( $file, $nolc )

    ファイルの拡張子を返します。第二引数を省略した場合、値は小文字に変換されて返されます。

file_label( $file )

    ファイルパスからファイル名を抽出し、拡張子を除いたファイルを返します。例:
    file_label( '/path/to/file.jpg' ); # 'file'

file_basename( $file )

    ファイルパスからファイル名を抽出します。

mime_type( $file )

    ファイルパスからファイルの MIME タイプを返します。例:
    mime_type( '/path/to/file.html' ); # 'text/html'

valid_email( $email )

    メールアドレスが妥当な書式の場合に 1 を返します。

get_mobile_id( $app, $to_hash )

    携帯電話の個別機種ID情報が送信されている時にその値を取得します。
    第二引数を渡すと機種ID情報のSHA1ダイジェストを返します。

valid_ip( $remote_ip, $table )

    指定したIPアドレスが第二引数としてIPアドレスのテーブル(配列)に含まれる場合、
    もしくはテーブルに192.168.11.0/24等の指定があった場合はIPアドレスの範囲に含まれているかを
    調べて妥当な場合に 1 を返します。

get_utf( $text )

    Unicode::Japaneseモジュールを利用して文字列を UTF8 コードで取り出します。
    Perl-5.8.0 以降においては, utf-8 フラグのついた utf-8 文字列として返します。

utf8_on( $text )

    文字列にUTFフラグを付けて返します。

utf8_off( $text )

    文字列のUTFフラグを落とします。

to_utf8( $text )

    MT::I18N::encode_text を呼び出して文字列をUTF8に変換します。

normalize( $text )

    Unicode::Normalize モジュールを利用して文字列を正規化( NFKC )します。

upload_callback( $app, $blog, $asset, $id )

    アイテムを保存した直後に呼ばれる cms_upload_file, cms_upload_image
    コールバックを呼び出します。

args

if_image( $file )

is_image( $file )

    指定したファイルが MT::Asset::Image に登録されている画像フォーマットの場合に 1 を返します。

chomp_dir( $dir )

    ディレクトリのパスから末尾のセパレータ ( '/' または '\\' ) を削除します。

add_slash( $path, $os )

    ディレクトリのパスの末尾にセパレータ ( '/' または '\\' ) を追加します。
    URLを渡した場合は末尾に '/' を追加します。第二引数を省略した場合、OSは自動判別されます。

powercms_files_dir( )

    PowerCMSがファイル( キャッシュ、バックアップ、一時ファイル、設定等 )を保存するディレクトリの
    パスを取得します。
    通常は /path/to/mt_dir/powercms_files です( 環境設定 PowerCMSFilesDir で設定を変更できます )。
    ディレクトリが存在しない場合は自動的に生成されます。

powercms_files_dir_path( )

    PowerCMSがファイル( キャッシュ、バックアップ、一時ファイル、設定等 )を保存するディレクトリの
    パスを取得します(パスの取得のみで生成は行いません)。

make_dir( $dir )

    ディレクトリを作成します。

register_template( $identifier, $path, \%param )

register_template( $identifier, \%path_info, \%param )

    テンプレートモジュールを登録します。
    register_template( 'foo', 'path/to/tmpl' );
    register_template( 'foo', { text => 'path/to/tmpl', subject => 'anotherpath' } );
    register_template( 'foo', 'path/to/tmpl', { blog_id => '3' } );
    register_template( 'foo', 'path/to/tmpl', { component => MT->component( 'Foo' ) } );
    register_template( 'foo', 'path/to/tmpl', { type => 'email' } );
    register_template( 'foo', 'path/to/tmpl', { name => 'Template Name' } );
    登録キー名,ファイルパス,その他 MT::Template の作成に必要なパラメータを渡します。
    未登録ならオブジェクトを作成します。

args

register_templates_to( $blog_id, $component, \%templates )

    特定のブログにテンプレートを一式登録する。例:
    my %info = {
        foo => { path => 'path/to/tmpl' },
        bar => { path => 'path/to/tmpl', blog_id => 0 },
        buz => { path => 'path/to/tmpl', type => 'email' },
    };
    register_templates_to( $blog_id, MT->component( 'Foo' ), \%info );

args

load_registered_template( $identifier, $path, \%param )

    register_template互換の引数を受け取ります。
    登録されたテンプレートオブジェクトがあればそれを、なければファイルパスを返します。
    リストコンテキストでは、キーでソートされたリストを返します。
    複数値の設定に対してスカラコンテキストでの取得はtextのものを返します。例:
    my $tmpl = load_registered_template( 'foo', 'path/to/tmpl' );
    my ( $subject, $body_text ) =
        load_registered_template( 'foo', { text => 'path/to/tmpl',
                                           subject => 'Anotherpath' } );
    my $body_text =
            load_registered_template( 'foo', { text => 'path/to/tmpl',
                                               subject => 'Subject of Tenplate' } );

load_registered_template_for( $blog_id, $component, $identifier, \%templates )

    register_template_to に近い引数を受け取ります。
    blog_id と componentにデフォルトを設定して load_registered_template を呼び出します。
    my %templates_info = (...);
    my $tmpl =
        load_registered_template_for( $blog_id, MT->component('Hoge'), 'hoge',
                                      \%templates_info );

force_background_task( $sub )

    環境変数 FourceBackgroundTasks が指定されている場合に、渡された処理をMTの
    BackgroundTasks として実行します。

get_weblogs( $blog )

    渡された MT::Blog オブジェクトがウェブサイトの場合、ウェブサイト及び配下のブログを配列で返します。
    MT::Blog オブジェクトがブログの場合は、指定された単一のブログが配列として返されます。

get_blog_ids( $blog )

    渡された MT::Blog オブジェクトがブログの場合、ウェブサイト及び自身のブログのIDを配列で返します。
    MT::Blog オブジェクトがウェブサイトの場合は、指定された単一のウェブサイトのIDが配列として返されます。

get_weblog_ids( $blog )

    MT::Blog オブジェクトが渡された場合、オブジェクトがウェブサイトの場合はウェブサイト及び
    配下のブログのIDの配列を、オブジェクトがブログの場合、親ウェブサイト及び配下のブログのIDの
    配列を返します。
    MT::Blog オブジェクトが渡されなかった場合は、すべてのウェブサイト/ブログのIDの配列を返します。

include_exclude_blogs( $ctx, $args )

    ブロックタグのモディファイア blog_ids, include_blogs, exclude_blogs, site_ids,
    include_websites, exclude_websites から対象ブログのIDの配列を返します。

include_blogs( $blog, $include_blogs )

    ブロックタグのモディファイア include_blogsと同じ文字列として渡すことで対象ブログのIDの配列を返します。

get_blogs( $blog )

    渡された MT::Blog オブジェクトがブログの場合、ウェブサイト及び自身のブログを配列で返します。
    MT::Blog オブジェクトがウェブサイトの場合は、指定された単一のウェブサイトが配列として返されます。

get_all_blogs( )

    すべてのウェブサイト/ブログを配列として返します。

first_website( )

    システムに登録されているウェブサイトを一つロードして返します。

str2array( $str, $separator, $remove_space )

    文字列をセパレータ文字列で分割して配列を返します。

args

log2text( $msg, $out )

    テキストログをファイルに( 追記して )出力します。

get_config_inheritance( $plugin, $key, $blog )

    ブログを指定した場合、ブログ、ウェブサイト、システムの順でプラグイン設定 $key の値を検索し、取得出来た時点でその値を返します。
    ウェブサイトを指定した場合、ウェブサイト、システムの順でプラグイン設定 $key の値を検索し、取得出来た時点でその値を返します。
    第三引数を省略した場合、システムプラグイン設定を返します。

args

plugin_template_path( $plugin, $dirname )

    プラグインディレクトリ直下の $dirname ( 省略の場合 'tmpl' ) ディレクトリへのフルパスを返します。

get_asset_from_text( $text, $blog )

    テキストからhttpではじまるURLへのリンクを抽出してテキストに含まれる MT::Asset オブジェクトの配列を返します。

convert2thumbnail( $blog, $text, $type, $embed [ , $link, $dimension, $convert_gif_png ] )

    テキストから IMG要素を抽出してファイルを検索し、存在すればサムネイルを作成します。
    
=head3 args

create_thumbnail( $blog, $asset, %param )

    MT::Asset オブジェクトからサムネイルを作成します。

args