続き。
MTベースの開発案件の時に「DBのスキーマはどうなりますか? ウチの方でPHPでMySQL叩いて開発とか後でできるでしょうか?」みたいな話が出るので。静的に動的なページを吐き出す(??)サンプル書いてみました。
エントリーを20件リストで表示する、ただそれだけ。直に書いてしまうとせっかくのテンプレートとロジックの分離のメリットが活かされないのですが、部分的に動的な処理を入れたいといった時にはまぁこんなやりかたも出来るということを覚えておいても良いと思います。
インデックス・テンプレートを作成し、「公開→スタティック」「出力ファイル名→foo.php」として保存・再構築。ブログ記事のリストの部分は動的に都度処理されます。それだけですが...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<title>DPAPI Example - <MTBlogName escape="html"></title>
</head>
<body>
<?php
include('<$MTCGIServerPath$>/php/mt.php');
$mt = MT::get_instance(<MTBlogID>, '<$MTCGIServerPath$>/mt-config.cgi');
require_once("MTUtil.php");
$args['class'] = 'entry';
$args['blog_id'] = <MTBlogID>;
$args['offset']=0;
$args['limit']=20;
$entries = $mt->db()->fetch_entries($args);
$max = count($entries);
$i = 0;
foreach ($entries as $entry) {
if ($i==0) {
echo '<ul>';
}
echo '<li>' . encode_html($entry->title) . '</li>';
$i++;
if ($i==$max) {
echo '</ul>';
}
}
?>
</body>
</html>
