Comments
Description
Transcript
Smartyを利用した サイト構築事例の紹介 (株式会社びぎねっと) 目次
Smartyを利用した サイト構築事例の紹介 (株式会社びぎねっと) 元 株式会社びぎねっと 大川英敏 2003/08/30 PHPカンファレンス2003 目次 n びぎねっとWebページ概要 n サイト構築要件 n リクエスト処理の流れ n サイト構築作業フェーズ n エピソード(?) 1 びぎねっとWebページ概要 ユーザー 管理者 Dreamweaver 編集 ニュース n コラム n メンバー登ຉ n ML・メルマガ登ຉ n セミナー等申し込み ऍ的 ファイル 動的 ファイル ध定 n データ サイト構築要件 通常はデザイナーのみによる運用 n DWによるコンテンツデザイン n テンプレートエンジン利用 コード・HTMLの分離 2 リクエスト処理の流れ PEAR DB プログラマ管理 ユーザー 3 foo.php PostgreSQL 4 2 1 (5) 8 7 Smarty MySQL 5 9 foo.tpl.php Apache foo.tpl 6 デザイナー管理 作業フェーズ デザイン コーディング 運用 .tpl .html <html> <title>タイト ル</title> <body> 三澤さんこん にちは </body> </html> 分離 <html> <title>タイトル </title> <body> {$name}さんこ んにちは </body> </html> .phtml <?php require(‘Smarty.php’); $tpl = new Smarty; $tpl->assign(“name”, “三 澤”); $tpl>display(“index.tpl”); ?> Dreamweaver にて管理 3 Dreamweaverで.tplを開く HTMLのブラウザ表示 .tplのDW表示 エピソード→ 4 append()でNull値の扱い(1) html DBのmemberテーブル name mail [email protected] 濱野 [email protected] 三澤 NULL 三澤 [email protected] 大川 [email protected] 大川 id name mail 1 濱野 2 3 Smarty 値がずれる? append()でNull値の扱い(2) .phtml $res=$db->query("SELECTname,mailFROMmember"); while($data=$res->fetchRow(DB_FETCHMODE_ASSOC)){ while(list($key,$value)=each($data)){ $tpl->append($key,$value); } } append()でNull値は ध定されない Ж決 •SQLにて空文字ध定 •append()のオーバー ライド 5 DWのサイトध定 n 二つのサイトध定が必要 n クロークを使用してミスഛ止 ディレクトリ DWクロークध定 HTML,PHP サイト /foo/html .tpl テンプレート サイト /foo/template .html .phtml DWのURLエンコード Smartyテンプレート <ahref="{$uri[link]}"> DWが自動URLエンコード Smartyで認ށ不能 <ahref="%7B$uri%5Blink%5D%7D"> ◆DWのध定で「特殊文字の置換」はOFFに ◆その他置換も基本的にはOFFに(form等) 6 おしまい ごऍ聴ありがとうございました ご意見・ごޑ問・クレーム等は下記まで [email protected] 付ຉ:append()オーバーライド Smartyを継承したクラスを作って拡張すると便利 <?php require_once('Smarty.class.php'); classMySmartyextendsSmarty{ functionappend($tpl_var,$value=NULL){ if(!isset($value)){ $value=""; } parent::append($tpl_var,$value); } } ?> 7