template_dir = "./templates";
$smarty->compile_dir = "./templates_c";
//---------------------- 設定相關的 SESSION 變數 --------------------
//如果 SESSION 的 admin 與 adminUser 變數尚未建立, 則初始化之
if ( ! isset($_SESSION['admin']) ) {
$_SESSION['admin'] = FALSE;
$_SESSION['adminUser'] = '';
}
//將 SESSION 的 admin 與 adminUser 變數指定給樣版變數,
//以便讓樣版顯示管理模式應有的功能
$smarty->assign('admin',$_SESSION['admin']);
$smarty->assign('adminUser',$_SESSION['adminUser']);
//$_SESSION['totalRows'] 代表留言的總筆數, 如果尚未設定,
//則查詢資料庫取得筆數, 然後指定給 $_SESSION['totalRows']
if (! isset($_SESSION['totalRows']) ) {
$result=mysql_query("SELECT `留言編號` FROM $tbGuestbook");
$_SESSION['totalRows']=mysql_numRows($result);
}
$smarty->assign('totalRows',$_SESSION['totalRows']);
//---------------------- 取得分頁資料 -------------------------------
//如果在分頁連結上選擇其他頁, 連結中會傳遞 "pageID=要瀏覽的頁碼"
if ( ! isset($_GET['pageID']) || empty($_GET['pageID']) ){
//如果 $_GET['pageID'] 未設定或是沒有值, 則將
//代表目前頁碼的 $currentPage 變數設定為 1
$currentPage=1;
}
else {
//如果 $_GET['pageID'] 有值, 則將其值設定給
//代表目前頁碼的 $currentPage 變數
$currentPage=myStripslashes($_GET['pageID']);
}
//稍後的 SQL 敘述中會使用 $currentPage 的值, 所以
//使用 mysql_real_escape_string() 過濾不合法的字元
$currentPage=mysql_real_escape_string($currentPage);
$rangeStart=( $currentPage - 1) * $perPage;
//查詢資料表, 取得目前頁碼範圍內的資料
$sql="SELECT * FROM $tbGuestbook ORDER BY `留言編號` DESC
LIMIT $rangeStart, $perPage";
$result=mysql_query($sql);
//逐筆讀出目前頁碼範圍內各留言的資料, 放入 $all 二維陣列
while ($row = mysql_fetch_array($result)) {
//將姓名中的特殊字元轉成 HTML 碼
$name=htmlspecialchars($row['姓名'], ENT_QUOTES);
//將留言中的特殊字元、換行字元、與空白轉成 HTML 碼
$message=htmlspecialchars($row['留言'], ENT_QUOTES);
$message=str_replace(' ', ' ', nl2br($message));
//將此筆留言的所有資料加入 $all 陣列
$all[] = array('id'=>$row['留言編號'],
'name'=>$name,
'time'=>$row['日期時間'],
'msg' =>$message );
}
//將 $all 陣列指定給樣版變數 $all, 讓樣版顯示目前頁碼的分頁內容
$smarty->assign('all',$all);
//---------------------- 建立分頁連結 -------------------------------
//設定分頁參數
$params = array(
'mode' => 'Sliding',
'perPage' => $perPage,
'totalItems' => $_SESSION['totalRows']
);
//建立分頁
$pager = Pager::factory($params);
//取得分頁連結
$links = $pager->getLinks();
//將分頁連結指定給樣版變數 $pageLinks
$smarty->assign('pageLinks',$links['all']);
$smarty->display('index.tpl');
?>