Smartyで商品バナーや広告バナーをランダムに表示させる方法

きれいなジャイアン

なぜかプログラムネタが続いてすみません。
自分にちゃんとブログ書けよと言いたいです。かるかやさとしです。
ちなみに画像は、ぼくが持ってる「きれいなジャイアン」です。昔ドラえもんのテレビで1度だけ出てきたことがあるキャラクターです。それはまあ、いいとして。

ぼくは趣味でプログラムを書くのが好きなのです。今回はSmarty。

よく、ページによっては、アクセスするたびに画像がランダムで表示されるようなサイトがあると思います。
そのランダムの画像を表示させる方法ですが、PHPで書くのはまあてきとうに書くとして、今回は、Smartyだけでできないかなぁと思って考えてみました。

ほんとは、当然、PHPのファイル側で書いてSmartyに渡すのがスムーズなんだけど、今回はSmartyだけで書きたくて、夏。
あ、夏じゃないけど。

ランダムってことでrandを使おうと思うわけですが、

{assign var=bnrno value=1|rand:3}
<img src="img/gazou{$bnrno}.jpg" />

ってすると、画像はランダムで表示されるようになります。
$bnrnoに1から3の数字を入れて、imgディレクトリにアップしてあるgazou1.jpg~gazou3.jpgを表示させようって感じ。

でもショッピングでの商品バナーとか、どっかの広告バナーを貼ろうと思うと、当然その画像に合ったリンク先に飛ばさないといけないわけで。
上のランダムだけで考えると、

<a href="syouhin{$bnrno}.html"><img src="syouhinimg{$bnrno}.jpg" alt="" /></a>

こんな風にすれば、syouhinimg1.jpgが表示されるときは、syouhin1.htmlにリンクする。
って感じにできるわけですが、リンク先がそんなに素直に1~3の番号ファイルだけってことにもなるわけなく、、。
やっぱPHP側でランダム処理を行ってSmartyに渡すべきかなとも思ったんだけど、あ!そうだ!って思って、こんな感じに書いてみました。

{assign var=bnrno value=1|rand:3}

{if $bnrno == 1}
<a href="doraemon.html"><img src="doraemon_img.jpg" alt="ドラえもん" /></a>
{elseif $bnrno == 2}
<a href="nobita.html"><img src="nobita_img.jpg" alt="のび太" /></a>
{else}
<a href="shizuka.html"><img src="shizuka_img.jpg" alt="しずか" /></a>
{/if}

まず最初の行で、$bnrnoに1~3の数字を入れるってのは一緒です。
で、数字が入ったところで、if文で分けてやればいいじゃんって思いまして。
$bnrnoが1の時は、doraemon.htmlにリンクを張ったドラえもんの画像を貼るってことです。
2の時はのび太くん。3の時はしずかちゃん。

今回てきとうにドラえもんってことにして、サンプルを書いてみましたが、たかがサンプル文を書くだけでぼくはもう1個悩んでしまいました。

しずかちゃん。
しずかちゃんって、静香ちゃん?シズカちゃん?しずかちゃん?しず香ちゃん?あれ~、どれだっけ?

コメントを残す

メールアドレスが公開されることはありません。