研究室生活のメモ・・・だった過去の遺産。移転先→http://negimochix2.blogspot.com/
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
SmartyはPHPによるテンプレートエンジン.
- Smartyの考え方 -
WebページってHTMLとかPHPとかSQLとかいろんな言語が1つのファイルに書いてあってカオスwww
つーか,デザイン担当とロジック担当が違ったら大変すぎるよな.
・・・じゃあ,最初からデザインとロジックでファイルを分けりゃいいんだ!
こんな感じ.
Smartyの実体はPHPによって書かれたクラスファイル.
よって,PHPが使える環境であればどこでも使える.
レン鯖であっても,
公式:http://www.smarty.net/
のdownloadからDLしたディレクトリを丸ごとうpすればいい.
しかし,その場合,セキュリティ対策は必要.
以下に例.
▼owata.php
owata.phpにアクセスすると,
そのとき,予め,
ここでは,owata.tpl中の{$owata}を「そうだ!樹海に行こう!」に置き換える.
ちなみに,テンプレートファイルのディレクトリ位置は,
これが非常に便利だと考えられるのは,PHPの処理次第でテンプレートを変更できることにある.
例えば,PHPでありがちな,「エントリー」→「内容確認」→「完了」.
<input>タグのaction属性を自分にしておき,ボタンを押したときのPOSTで判断して処理を変える場合,
- Smartyの考え方 -
WebページってHTMLとかPHPとかSQLとかいろんな言語が1つのファイルに書いてあってカオスwww
つーか,デザイン担当とロジック担当が違ったら大変すぎるよな.
・・・じゃあ,最初からデザインとロジックでファイルを分けりゃいいんだ!
こんな感じ.
Smartyの実体はPHPによって書かれたクラスファイル.
よって,PHPが使える環境であればどこでも使える.
レン鯖であっても,
公式:http://www.smarty.net/
のdownloadからDLしたディレクトリを丸ごとうpすればいい.
しかし,その場合,セキュリティ対策は必要.
以下に例.
▼owata.php
<?php require_once 'config/config.inc.php'; // ここにディレクトリ場所とかdefineされてる require_once _DIR_SMARTY_LIBS . 'Smarty.class.php'; $smarty->Smarty(); // Smartyのディレクトリ設定 $smarty->template_dir = _DIR_SMARTY_TEMPLATES; // templeteディレクトリ $smarty->compile_dir = _DIR_SMARTY_COMPILE; // completeディレクトリ $smarty->config_dir = _DIR_SMARTY_CONFIG; // configディレクトリ $smarty->cache_dir = _DIR_SMARTY_CACHE; // cacheディレクトリ $smarty->assign('owata', 'そうだ!樹海に行こう!'); $smarty->display("owata.tpl"); ?>▼owata.tpl
<html> <body> ニートの提案「{$owata}」 </body> </html>▼実行結果(owata.phpにブラウザからアクセス)
ニートの提案「そうだ!樹海に行こう!」
owata.phpにアクセスすると,
$smarty->display("owata.tpl");で,テンプレートファイルowata.tplを読み出して中のHTMLを表示する.
そのとき,予め,
$smarty->assign();で,設定しておいた中身の置き換えを行う.
ここでは,owata.tpl中の{$owata}を「そうだ!樹海に行こう!」に置き換える.
ちなみに,テンプレートファイルのディレクトリ位置は,
$smarty->template_dirで設定したディレクトリ位置となる.
これが非常に便利だと考えられるのは,PHPの処理次第でテンプレートを変更できることにある.
例えば,PHPでありがちな,「エントリー」→「内容確認」→「完了」.
<input>タグのaction属性を自分にしておき,ボタンを押したときのPOSTで判断して処理を変える場合,
if(isset($_POST["entrySubmit"])) { // ~ここにいろいろ処理~ // エントリー内容の確認 $smarty->display("confirm.tpl"); } else if($isset(_POST["confirmSubmit"])) { // ~DBに登録とかいろいろ処理~ // 登録内容の表示 $smarty->display("entryResult.tpl"); } else { // 通常の表示(エントリーページ) $smarty->display("entry.tpl"); }といった感じに,状況に応じてテンプレートファイルを変更することが可能.
PR
この記事にコメントする
Infomation
【中の人】
・くさもち
・ボカロ廃大学院生
・βからのニコ厨
・もちろん非リア充
・ミクZ4 第二期個人スポンサー
【メール】
・negimochi.tabetai(゚Д゚)gmail.com
(゚Д゚)→@
【その他やってるもの】
・くさもち
・ボカロ廃大学院生
・βからのニコ厨
・もちろん非リア充
・ミクZ4 第二期個人スポンサー
【メール】
・negimochi.tabetai(゚Д゚)gmail.com
(゚Д゚)→@
【その他やってるもの】
・Twitter
・これは痛いピアプロ
・過去の遺産smart.fm
【作ったもの】
・製作に参加したDTX GDPメインサイト
で,実際に作ったIRページ
・これは痛いピアプロ
・過去の遺産smart.fm
【作ったもの】
・製作に参加したDTX GDPメインサイト
で,実際に作ったIRページ
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
VOCALOID Ranking Watcher
新曲は常にチェックすべし。
おすすめ記事
jubeat ripples
今更やってみる
最新記事
(05/02)
(01/08)
(11/26)
(11/24)
(11/13)
(11/06)
(11/06)