PHPerのための Movable Type 講座(その6)
公開日 : 2014-04-17 12:12:41
まだ続きます。MTUtil.phpについて
- PHPerのための Movable Type 講座(その1)
- PHPerのための Movable Type 講座(その2)
- PHPerのための Movable Type 講座(その3)
- PHPerのための Movable Type 講座(その4)
- PHPerのための Movable Type 講座(その5)
さて、MTUtil.php編です。日付関係とかエンコードデコードとか、いわゆるユーティリティ的な関数群。
require_once( 'MTUtil.php' );
日付関係
datetime_to_timestamp
Unixタイムスタンプへの変換。 2014-04-17 10:08:57 → 1397696937
$epoc = datetime_to_timestamp( $blog->blog_children_modified_on );
start_end_ts
年(YYYY)、年月(YYYYMM)を渡すと、それぞれ年、月の最初と最後のタイムスタンプを返す。DBで範囲指定をする時などに利用。
list( $start, $end ) = start_end_ts( 20140416 );
//->20140416000000
//->20140416235959
start_end_month
月の最初と最後のタイムスタンプを返す。以下、結果的にはstart_end_tsと同じ。
list( $start, $end ) = start_end_month( 20140416 );
//->20140416000000
//->20140416235959
days_in
その月が、何日まであるか。月、年の順に引数を渡す。
$d = days_in( 4, 2014 );
//->30
start_end_day
その日の最初と終わり。
list( $start, $end ) = start_end_day( 20140416 );
//->20140416000000
//->20140416235959
start_end_year
その年の最初と終わり。
list( $start, $end ) = start_end_year( 20140416 );
start_end_week
その週の最初と終わり。週別アーカイブとか、みんな使ってます?
list( $start, $end ) = start_end_week( 20140416 );
is_leap_year
閏年かどうか。
$leap_year = is_leap_year( 2014 );
var_dump( $leap_year ); // false
gmtime
グリニッジ標準時間 (GMT)を返す(配列で)。引数にタイムスタンプを渡せる。省略時は現在時刻。
var_dump( gmtime() );
array(9) { [0]=> int(59) [1]=> int(30) [2]=> int(2) [3]=> int(17) [4]=> int(3) [5]=> int(114) [6]=> int(4) [7]=> int(106) [8]=> int(0) }
返り値の構造については→PHP: localtime - Manual
offset_time_list
ブログ/ウェブサイトのゾーン設定を反映した時刻を返す。
$ts = offset_time_list( time(), $blog );
$timestamp = sprintf( "%04d%02d%02d%02d%02d%02d",
$ts[5]+1900, $ts[4]+1, $ts[3], $ts[2], $ts[1], $ts[0] );
//->20140417113635
wday_from_ts
今日は何曜日?
$wday = wday_from_ts( 2014, 4, 17 );
//->4(木曜日)
yday_from_ts
今日は今年の何日目?
$wday = yday_from_ts( 2014, 4, 17 );
echo $wday;
//->107(日目、おっと、もう100日以上経過してんのか!)
文字列関係
dirify
basenameの組み立て的な。
$dirify = dirify( 'This is it', '_' );
//->this_is_it
encode_xml
XMLフォーマットに適した形式にエンコードします。データがHTML要素やタグを含んでいる場合、CDATAブロックで囲んで出力。
decode_xml
XML エンティティをデコード。
encode_js
javascriptエンコード。
strip_hyphen
連続した'-(ハイフン)'(SGML注釈宣言内で禁止されている)をハイフン1つに変換。
first_n_text
テキスト,数字を引数に渡して↓
言語設定を日本語にしているときは、ブログ記事の本文から、指定した N 文字分だけ抜き出します。もし、言語設定を英語にしているなら、ブログ記事の本文から、N 語 (単語) 分だけ抜き出します。
注意点は、言語設定を日本語にしている環境で、本文に英語の文章を含むときです。この場合、本文から N 語分抜き出すのではなく、N 文字分抜き出します。
html_text_transform
テキストを引数に渡すと、「改行を変換」処理後のテキストが返る。
munge_comment
使われてない? っぽいのですが、第一引数にテキスト、第二引数に$blogオブジェクトを渡して、コメントHTMLを許可する云々の処理をしてくれるっぽい。URLをリンクに変換したり。
length_text
mb_strlen もしくは使えない場合 strlen の結果を返す。
substr_text
mb_substr もしくは使えない場合 substr の結果を返す。
tag_split_delim
第一引数に区切り文字、第二引数に文字列を渡して、配列を返す(要するに、タグ付けのためのもの)。
tag_split_delim( ',', 'MT, Movable Type, PowerCMS' );
MT固有? のもの
cat_path_to_category
カテゴリのパスから、カテゴリ(Category)オブジェクトの配列を返します。第三匹数は category か、folder。
$cats = cat_path_to_category( 'category/sub_category', $blog_ctx_arg, 'category' );
同じ名前のカテゴリが別の階層にある場合は、親カテゴリ/サブカテゴリと記述して、異なるカテゴリを指定します。
static_path(static_file_path)
mt-staticディレクトリのパス
support_directory_url(support_directory_path)
サポートディレクトリのパス(URL)。
get_thumbnail_file
サムネイルファイルを生成して、パスや情報を返す。$argsに渡せるのは、MTAssetThumbnailURLタグのモディファイアに指定できる値。
width、height、scale、squareを渡せる
list( $thumb, $width, $height, $res ) = get_thumbnail_file( $asset, $blog, $args );
_strip_index
第一引数にURL、第二引数にブログ(Blog)オブジェクトを渡すと、インデックスベースネームと拡張子設定なんかを反映したURL(通常はindex.htmlを補完するような形式になる)を返します。社内で指摘が(> <。逆だった。index.htmlなんかを削除します。
with_index="1" 1の値を設定した場合、出力されたURLにインデックスファイル名(通常index.html)を付与します。
↑の、逆
common_loop_vars
ブロックタグを生成するとき、$localvars を初期化する際に、ブロックタグ共通の __counter__、__odd__、__even__、__first__、__last__、__key__、__value__ を配列で返してくれます。