2011年02月23日に投稿

[Movable Type]PageButeプラグインのMTPageMaxCountタグの注意点

エントリーの件数に応じて、再構築時にページ分割を行ってくれるプラグイン「PageBute」について仕様上の注意点がありました。

MTPageContentsタグのモディファイアをcount=10とすると、10件ごとにページ分割されます。
仮にエントリーの数が125件あったとすると、13ページに分割されることになります。
分割を行うテンプレート内で分割したページ数を表示したい場合、MTPageMaxCountを使うことになるのですが、
上記の例では13が表示されることを期待するはずです。
ですが、そのまま使用すると11が表示されてしまいます。

これを正しい表示にするためにはnavi_countモディファイアを使用します。
このモディファイアはマニュアルには「MTPageListsで出力されるページリンク数を変更する為のアトリビュートになります。
指定しなかった場合は11が初期値となります。」とありますが、MTPageMaxCountの上限も影響されているようなのです。
従ってnavi_count=”10000″というように上限の数値を増やすことで、正常な数値を表示させることができます。
(ただ、10000という数値を書くのはなんか気が引けます。)

そして最終的なコードは下記となります。
[HTML]

do something…

[/HTML]

2011年02月23日に投稿

[Movable Type]日時指定投稿を行う

動作確認:Movable Type Pro 4.261

MTには日時を指定して記事を公開する機能があります。この機能を使用するにはcrontabを利用します。
手順は下記の通りです。

パスを控える
MTを構成するファイル群の中にrun-periodic-tasksというファイルがあります。
MTをインストールしたディレクトリの絶対パスを /var/www/html/mt とすると、
このファイルの位置は/var/www/html/mt/tools/run-periodic-tasksになります。
このファイルまでの絶対パスをメモしておきます。

パーミッションの変更
run-periodic-tasksのパーミッションを755に変更します。

タスクの登録
crontabにタスクを登録します。
ここで、15分おきや30分おきなど実行タイミングに関する設定を行います。
実行コマンドはcd /var/www/html/mt; ./tools/run-periodic-tasksとします。
以上で終了です。実際に記事を時間指定投稿して動作確認を行って下さい。

※実行コマンドはcdコマンドを使ってカレンドディレクトリを変更する必要があるようです。
 cdコマンドを使用せずに /var/www/html/mt/tools/run-periodic-tasks でタスクを登録すると
 動作しませんでした。

2011年02月17日に投稿

[PHP]配列の中に特定の文字列が含まれているかどうかをチェックする

配列の中に特定の値が含まれるかどうかを確認するにはin_array関数を使用します。in_array関数は第一引数に検索を行う文字列を、第ニ引数に検索対象となる配列を指定します。下記にサンプルコードを示します。

[php]

[/php]

上記のサンプルでも記述しましたが、部分一致では無く完全一致であるようです。第一引数に正規表現が使用できると便利なのですが、PHPマニュアルを見たところそのような記述はありませんでした。

2011年02月12日に投稿

[PHP]includeとrequireの違い

外部に用意したライブラリやファイルを読み込む時に使用するincludeとrequireですが、どちらも読み込みを行う動作は同じです。ですが読み込もうとした対象が存在しない場合に異なる動作をします。includeはwarningが表示され処理が中断されませんがrequireはfatal errorとなり、処理が中断されます。

参考
http://jp2.php.net/manual/ja/function.include.php

2011年02月12日に投稿

[PHP]配列に格納されている全ての値を、指定した関数に引数として渡す

配列の中身それぞれに対して、ある処理を実行したい時があります。そのような時はarray_map関数を使用すると便利です。下記に示すサンプルコードは配列の中身全てを2倍して出力します。

[php]

[/php]

array_map関数は第一引数に引数を渡す関数名を、第二引数に対象とする配列を指定します。上記のサンプルでは、配列arrに格納されている11、22、33という3個の数値をそれぞれ2倍して、配列$outに格納しています。第一引数には関数の名前を渡すことに注意して下さい。

実行結果
[html]
Array ( [0] => 22 [1] => 44 [2] => 66 )
[/html]

2011年02月07日に投稿

[Excel]画像や図形などのオブジェクトをセルの罫線に合わせて動かす

Excelを開くとデフォルトで薄いグレーの罫線が表示されています。挿入した画像や図形をこの罫線(升目)に合わせて、綺麗に設置したい場合はAlltキーを押しながらオブジェクトをドラッグして下さい。罫線にへばりつくように動いてくれるのが分かると思います。


▲神経質な人にとって必須のテクニックですよね

2011年01月31日に投稿

[PHP]var_dump関数の出力結果をファイルに保存する

連想配列の中身を確認する時はvar_dump関数を使用すると便利ですが、この結果をブラウザではなくファイルに出力したい場合があります。
配列をそのままファイルに書きこむとarrayとなってしまい中身を確認することができません。
そんな時はob_start関数を使用することで解決できます。連想配列をファイルに書き込みを行うサンプルコードを下記に示します。

ob.php
[PHP]
‘ほげ’,
‘sore’ => ‘それ’,
‘dore’ => ‘どれ’
);

ob_start();
var_dump($arr);
$result =ob_get_contents();
ob_end_clean();

$fp = fopen(“./dump.txt”, “a+” );
fputs($fp, $result);
fclose( $fp );
?>
[/PHP]
ob_start関数はマニュアルによると、通常ブラウザに出力される情報をバッファと呼ばれる領域に保存しあとから取り出すことができるようにする関数のようです。出力を行う前にob_start()を実行し、var_dump($arr)で配列の中身をバッファに出力します。この時点ではブラウザに出力されません。その後にバッファからデータを取り出すことができる関数のob_get_contents()を実行し、結果を$resultに保存します。$resultにはvar_dump($arr)の結果が保存されます。最後にob_end_clean()でバッファの中身を削除します。

あとは、通常通り$resultの中身をdump.txtへ書き込みます。dump.txtの中身は下記の通りです。
dump.txt
[php]
array(3) {
[“hoge”]=>
string(4) “ほげ”
[“sore”]=>
string(4) “それ”
[“dore”]=>
string(4) “どれ”
}
[/php]
var_dump($arr)の実行結果がそのまま保存されているのが分かります。