Movable Type 最近の画像を表示するプラグイン

感想おまちしてます!

pic20050306_2104.gif

(写真)フォトログ 愚者の宝物リニューアル
デジカメで撮った写真を、WEBサイトでアルバム風に表示していたが、静的サイトの更新はとてもめんどくさい。そこで、ブログを改良してフォトログを作成してみることにした。
bird.dip.jpさんのところでCollect Pluginが紹介されていたので、これを使ってフォトログぽい画面を作ってみることにした。(参考:Collect Plugin
このプラグインは、写真を表示するためにあるだけではないらしい、Six Apart ProNetのドキュメントを見てみると、Collectとあるようにいろいろなタグだけを取得することができるらしい。これをりようすれば、Blogのエントリーに書いたリンク集や、引用した言葉リストなどを作成することができる。(引用リストはいいかもしれないな?。)
いつものようにpluginフォルダにplファイルをPutするだけで、MTCollectタグが利用可能になる。フォトログでは一日に1画像をエントリーしているので、その画像を取得してサムネイル風に表示することにした。一番最近の写真は大きく表示し、画像サイズを計算して、たての幅を動的にそろえたい。INDEXテンプレートはPHPにしているので、そのあたりはPHPでがんばってもらおう。
以下は作成したソースだ。

// ソース
<div id=”topImgBlock”>
<MTEntries lastn=”9″>
<MTCollect tags=”img”>
<MTCollectThis show=”0″>
<$MTEntryBody$>
</MTCollectThis>
<MTIfCollected tags=”img”>
<MTCollected tags=”img” lastn=”1″>
<?php
$count++;
// 一つ目のエントリだけ大き目のサイズにする
if($count == 1){
$num = 300;
}else{
$num = 90;
}
$img_width = <$MTCollectedAttr attr=”width”$>;
$img_height = <$MTCollectedAttr attr=”height”$>;
$width = null;
$height = $num;
$mag = $num / $img_height;
$width = round($img_width * $mag);
if($count == 1){
?>
<div class=”thumbFirst”>
<MTDateHeader>
<h3 id=”a<$MTEntryID pad=”1″$>”>
<a href=”<$MTEntryLink$>”><$MTEntryTitle$></a>
<$MTEntryDate format=”%y/%m/%d”$>
</h3>
</MTDateHeader>
<a href=”<$MTEntryLink$>”>
<img src=”<$MTCollectedAttr attr=”src”$>”
width=”<?=$width?>” height=”<?=$height?>” alt=”<$MTCollectedAttr attr=”alt”$>” />
</a>
</div>
<?php
}else{
?>
<div class=”thumb”>
<a href=”<$MTEntryLink$>”>
<img src=”<$MTCollectedAttr attr=”src”$>”
width=”<?=$width?>” height=”<?=$height?>” alt=”<$MTCollectedAttr attr=”alt”$>” />
</a>
<div class=”thumbDate”>
<MTDateHeader>
<a href=”<$MTEntryLink$>”><$MTEntryTitle trim_to=”12″$></a><br/>
<$MTEntryDate format=”%y/%m/%d”$>
</MTDateHeader>
</div>
</div>
<?php
}
?>
</MTCollected>
</MTIfCollected>
</MTCollect>
</MTEntries>
</div>
<!– TopImageBlockエンド –>

縦の長さを調節したほうがきれいに見えると思い、$numに表示したい幅を指定する。一番初めの画像という判定はPHPの変数をつかうしかないのかな?。MovableTypeのページをPHPにすると、「MTタグの実行」>「PHP」という順番に実行されると思ったので、こういう書き方ができるのだろうと試してみると見事成功。
カテゴリのページでサムネイルがうまく並ばないので、気が向いたら直そ?っと。