SOARISTO工房 Logo

【MT5】サムネイルをランダムに表示する (2)

2011/03/27

 前回のエントリでは、サムネイルをランダムに表示するための下準備をしました。今回は、いよいよその本題です。

 まずは、PHPのスクリプト(photogallery.php)です。

 スクリプトの流れとしては、
  • サムネイルのデータベース(thumbnail.dat)を読み込み、配列($AssetImageArray)に格納する。
  • 配列から、所定の個数($ThumbnailImageNum)分、ランダムにサムネイルを選定する。
    (選定の際には、すでに選定されたものが重複して選定されないようにする)
  • 選定したサムネイルへのタグ<IMG>と、サムネイルを含むエントリへのリンクのタグ<A>を出力する。
となります。

#「$BlogBaseURL」と「$BlogBasePath」は、利用する環境に合わせて適当に変更してください。(「$ThumbnailImageNum」は、お好みで)

#「$DebugFlag」を1とすると、実行中にいくつかの状態メッセージを表示することができます。

 上記スクリプトを、MT5の「テンプレートモジュール」に登録し、blogを再構成します。

thumbnail01.jpg

 実行した結果です。

 登録されているアイテム(画像)のサムネイルが表示され、サムネイルをクリックすると、サムネイルを含むエントリにリンクします。

 サムネイルのサイズ($ThumbnailWidthと$ThumbnailHeight)は、当初はサムネイルのデータベース(thumbnail.dat)の中に埋め込んでいました。その方が、blogの運用途中でサムネイルのサイズを変更したとしても、表示側(photogallery.php)で動的に対応できるからです。

 しかし、この方法だと、サムネイルの数が膨大になってくると、サムネイルのデータベースのファイルサイズも膨大になり、読み込み時にblogサーバに負荷が掛かってしまいます。(すべての情報を、一旦配列に読み込むため)

 これを避けるため、サムネイルのサイズは、定数としました。

#よって、blogの運用途中でサムネイルのサイズを変更した場合には、生成側(thumbnail.php)でForceオプションを使って強制的にサムネイルを再作成するとともに、表示側で定数を変更して、blogを再構成してください。

 同様に、サムネイルへのリンク($ThumbnailImagePath)と、サムネイルを含むエントリへのリンク($EntryLinkPath)も、登録されているアイテム(画像)のリンク($AssetImagePath)から生成するようにしました。

 サムネイルのデータベースに埋め込む情報を必要最小限に絞ることで、データベースのファイルサイズをかなりコンパクトにすることができました。

 ということで、ひとまず完成です。0xF9C6

Trackback(0)

Trackback URL: https://www.soaristo.org/mt/mt-tb.cgi/717

Post Comment