Smarty
Day01-----smartyの使い方
機能: php+html、プログラム、アートの分離
使い方:
1. ソースコードパッケージをダウンロードする
2. ディレクトリ構造
libs
ソースコードファイル
Smarty.class.php
template //テンプレート ファイル html ファイル
template_c //プログラム実行中に自動的に生成されるテンプレート コンパイル ファイル
3. インスタンス化
require "Smarty.class.php";
$smartyOb=new Smarty() ;
4 . 設定
テンプレート HTML が配置されているディレクトリを Smarty に伝えます
$smartyOb->setTemplateDir(path);
コンパイルされたファイルが配置されているディレクトリを Smarty に伝えます
$smartyOb->setCompileDir(path)
5. テンプレートを表示します
$smartyOb->display("テンプレート名とパス");
テンプレートに値を渡す方法
$smartyOb->assign('name on template', 渡された変数);
テンプレートの呼び出し方法
テンプレートタグ
{$name}
配列
{$array name.subscript}
2 次元配列
array(
0=>array('title'=>'t1','pubtime'=>1234567890, 'author '=>'xiaoli'),
1=>array('title'=>t2','pubtime'=>1334567890,'author'=>'xiaoli'),
array( 'タイトル'=>'t3','pubtime'=>1434567890,'author'=>'xiaoli'),
array('title'=>'t4','pubtime'=>1534567890, 'author '=>'xiaoli'),
)
配列を走査
{foreach 配列名を変数名として}
{$変数名.title}
{/foreach}
添字値
<{$変数名@ キー} > < 最初のループかどうか
<{$変数名@first}>
最後のループかどうか
<{$変数名@last}>
ケース:
インターレース背景色の変更を実装する
<{ if 条件}>
コード
<{/if}>
練習問題:
最後の行を除く各 li に下線 (破線) を付けます
内容を理解します:
<{セクション名=s1 ループ=走査する配列}>
<{$配列[s1].subscript}>
<{/セクション}>
<{$smarty.section.s1.total}>
<{$smarty.section.s1.index}>
<{$smarty.section.s1.iteration}>
<{ $smarty.section.s1.last}>
<{$smarty.section.s1.first}>
演習:
セクションを使用して、さまざまなインターレース背景色を実現します
変数レギュレーター
テンプレートタグ区切り文字の仕様:
<{}>
$smartyOb->right_delimiter="}>";
day02-----------、day01 の内容を復習し、新しい知識を広げます
Smarty 1. Smarty、PHP メインプログラムに配置 2. 設定 $smartyOb->setTemplateDir()
$smartyOb->setCompileDir() $smartyOb->gt;left_delimiter()
$smartyOb-> right_delimiter()
3. テンプレートに値を渡します
$smartyOb->assign("テンプレート変数名", variable);
4. テンプレートを表示します
$smartyOb->display(path);
{$name }
{$array.subscript}
{変数としての foreach 配列名}
{$変数名}
{/foreach}
ラベル属性:
{$変数名@キー}
{$変数名@インデックス}
{$変数名@反復}
{$variablename@total}
{$variablename@first}
{$variablename@last}
{if 条件}
{else}
{/if}
変数レギュレータ:
{ 最初のパラメータ |関数名: 第二引数: .....}
記事詳細ページ:
02_detail.php?id=5
1. Smartyの設定
2. 記事IDの取得
3. pdoのインスタンス化
4. SQL文の綴り
5.実行
6. データを取得
7. テンプレートに値を渡す
8. テンプレートを表示
9. テンプレートのタグを設定し、メインプログラムから渡されたデータを使用する
ページ分割
{include file="テンプレートへのパス"}
関数の登録
function fun1(){
return 'abc';
}
$smartyOb->registerPlugin("function","テンプレート関数名", "登録された関数名");
テンプレートで呼び出される:
{テンプレート関数名=値名=値....}
パラメーターを渡すにはどうすればよいですか? ? ?
1. パラメーターの数は最大 2 つです。
最初のパラメーターは、テンプレートに渡されたすべてのパラメーターを受け取ります。
2 番目のパラメーターは、現在の Smarty オブジェクトを受け取ります。
キャッシュ
データベース内のデータがキャッシュされます。
利点: mysql サーバーの負荷を軽減します
1. キャッシュ ファイルの保存ディレクトリを指定します
$smartyOb->setCacheDir(ROOT."day02/cache");
2. キャッシュをオンにする
$smartyOb->caching =true;
3. キャッシュのライフサイクルを指定します。
$smartyOb->cache_lifetime=100;//秒
関数: キャッシュ ファイルが存在し、有効であるかどうかを判断します
$smartyOb->isCached("テンプレート名とパス",id)
$smartyOb->display( "テンプレート名とパス",id);