Smarty
![]() |
カレンダーを表示、繰り返しの重複。 有名なのでヘルプ、Tipsなどが見つかりやすい。 デバッグに関する機能が充実しているのはとてもありがたい。 基本機能を使うだけで,苦労しそうなほどの多機能ぶり。 大手サイト御用達の安心感には強みがある。 テンプレート内に { } があるとエラーになり、スタイルシートやJavaスクリプトを外部読み込みに。 「エスケープ修正子」 { は {ldelim} } は {rdelim} Smartyの簡単な使い方は[Smartyの使用]をご覧ください。 |
Smarty.php
require_once 'Smarty/Smarty.class.php'; require_once 'rkt_calendar.php'; /* Smartyオブジェクトの生成 */ $tpl = new Smarty; /* カレンダーオブジェクト */ $objcal = new RKT_calendar($date); $cals = $objcal->getCalendar(); $dates = $objcal->getDates(); $days = array(); foreach ($cals as $weekly=>$days){ foreach ($days as $day){ $cal[$weekly]['week'][$week] = array('day'=>$day); } } // foreach ($cals as $weekly=>$days) /* 変数の受け渡し */ $tpl->assign('cal', $cal); $tpl->assign('month', $dates[RKT_MONTH]); /* テンプレートファイルの読み込みと表示 */ $tpl->display('Smarty.tpl');
Smarty.tpl
<table cellpadding="3" cellspacing="0" class="calendar"> <tr class="calendar"> <th class="calendar" colspan="7">{$month}月</th> </tr> <tr class="calendar"> <td class="holiday">日</td> <td class="calendar">月</td> <td class="calendar">火</td> <td class="calendar">水</td> <td class="calendar">木</td> <td class="calendar">金</td> <td class="saturday">土</td> </tr> {section name=cal loop=$cal} <tr class="calendar"> {section name=week loop=$cal[cal].week} <td>{$cal[cal].week[week].day}</td> {/section} </tr> {/section} </table>

