1. 見る
1. ビューコンポーネントの構成:
1) クラスを見る
クラスを見る
スマートクラス
2) テンプレート
Tpl/プロジェクト/モジュール/***.html
ビュー クラスは、テンプレートのコンテンツを読み取り、文字列置換を実装し、最終的にそれをユーザーに出力する責任があります
2. テンプレートの定義
デフォルトのテンプレートファイル定義ルール:
テンプレートディレクトリ/[グループ名/]モジュール名/オペレーション名+テンプレートサフィックス
TMPL_TEMPLATE_SUFFIX
一般に、テンプレートのサフィックスには次のタイプが使用されます:
.html
.html
.tpl
3. 区切り文字
テンプレート デザイナーごとに習慣が異なるため、「{}」を使用することに慣れている人もいれば、<{}> を使用する人もいます
設定ファイルでは、設定テンプレートの区切り文字を表す次の 2 つの設定オプションを設定できます
'TMPL_L_DELIM'=>'<{',
'TMPL_R_DELIM'=>'}>',
4. テンプレートの割り当てと出力
1) $this->assign(‘テンプレート変数名’, 変数);
$var = '携帯電話';
$this->assign('var',$var);
$this->display('test');
2) $this->assign(配列変数);
<{$配列要素の添字}>
<{$price}>
<{$address}>
$var = '携帯電話';
$this->assign('var',$var);
$arr['価格'] = 33.3;
$arr['住所'] = '北京';
$this->assign($arr);
$this->display('test');
}
3) $this->display(‘オペレーション名’)
現在の module.html テンプレートで指定された操作名
4) $this->display(‘Module: オペレーション名’) // テンプレートはモジュール間で呼び出すことができます
指定したモジュール配下の指定した操作名.htmlテンプレートを参照してください
5) $this->display(‘操作’, ‘出力エンコーディング’, ‘出力タイプ’);
//クロスモジュール出力
$this->display('User:login','utf-8','text/html');
5. テンプレートの置き換え(テンプレート定数)
プロジェクト内で頻繁に引用される CSS、JS、画像などのリソースは引用する必要があります。
__PUBLIC__: 現在の Web サイトのパブリック ディレクトリ
__APP__: 現在のプロジェクトの URL アドレス
__GROUP__: 現在のグループの URL アドレス
__URL__: 現在のモジュールの URL アドレス
__ACTION__: 現在の操作の URL アドレス
tp のテンプレートでは、上記のテンプレート定数を使用できます。通常、URL を参照する必要がある場合は、上記の定数を使用できます。
デフォルト: 訪問した場合:
Localost/index.php/home/product/test、テンプレートが __PUBLIC__ テンプレート定数を使用している場合、その値は Apache の htdocs ディレクトリを指しますが、複数のプロジェクトがある場合、競合が発生します。
解決策:
1) 設定ファイルを変更します
設定ファイルでは、TMPL_PARSE_STRING というオプションを設定できます。これにより、テンプレートで使用されるテンプレート定数の値を定義できます
ホスト ファイルを開きます:
httpd.conf を開きます
httpd-vhosts.conf ファイルを開き、新しい仮想ホスト設定を追加します
Localhost---àapache/htdocs/
Tp.com-----àapache/htdocs/tp/
6、 获取内容
$this->fetch();
Display:读取模板、替换内容、输出
Fetch:读取模板、替换内容、返回字符串(主要用于生成静态页)
二、模板
1、 模板注释:
l {/* 注释内容 */ }
l {// 注释内容 }
Tp中的模板注释主要是给模板设计者或程序设计者来看的
2、 变量输出:
程序向模板中赋值
普通变量
$name
数组变量
$row
对象变量
$obj
代码示例:
Php程序:
模板程序:
3、 系统变量 (模板中的系统变量)
l $Think.server $_SERVER
l $Think.get $_GET
l $Think.post $_POST
l $Think.request $_REQUEST
l $Think.cookie $_COOKIE
l $Think.session $_SESSION
l $Think.config 读取配置文件
4、 使用函数
l 格式
{$name|fn1|fn2=arg1,arg2,###}
5、 默认值
{$变量|default="默认值"}
6、 运算符
l + {$a+$b}
l - {$ab}
l * {$a*$b}
l / {$a/$b}
l % {$a%$b}
l ++ {$a++} 或 {++$a}
l -- {$a--} 或 {--$a}
7、 内置标签
<{$title}>
<标签>
l 闭合标签
l 开放标签
8. ファイルを含める
は、プロジェクトに基づくエントリ ファイルの場所です。
./Tpl/Admin/Public/header.html
Web ページの公開部分を 2 つの公開テンプレート ページ、header.html と footer.html に配置し、インクルードを使用してホームページ上でそれらを参照します
上記のファイルを参照する際、パスが長すぎるのですが、どうすれば解決できますか?
は、現在のプロジェクトの下にある指定されたテンプレート内の指定されたテンプレートを参照することを意味します
「パブリックモジュール」の下にフッターファイルとヘッダーファイルを含めるには include を使用します
Includeタグを使用するとパラメータをテンプレートに渡すことができます
テンプレートコード:
9. ファイルをインポートする
tp では、リソース ファイルへの参照を実装 (簡素化) するためにいくつかのタグが提供されています
l形式:
ファイル (必須): リソース ファイル
type (オプション): リソースファイルのタイプ、デフォルトは js です
開始パスはウェブサイトのパブリック (__PUBLIC__) ディレクトリです
名前空間アプローチを使用しました
ディレクトリ。 ディレクトリ。
配列要素を反復処理するために使用されます
l形式:
<ボリスト名="リスト" id="vo">
{$vo.id}
{$vo.name}
ボリスト>
l 名前 (必須): 走査する配列変数
l ID (必須): 現在の配列要素
l offset: 出力するデータのオフセット
l length: 出力データの長さ、オフセットを指定する必要があります
l キー: ループ インデックス キーの値のデフォルトは i
11、foreachタグ
配列変数を反復処理するために使用されます
文法:
{$vo.id}
{$vo.name}
名前: 走査する配列変数
項目: 現在の要素を保存するために使用される変数名
特別なニーズがある場合は volist を使用し、そうでない場合は foreach を使用してください
12. タグ用
{$i}
プロパティ:
l start (必須): ループ変数の開始値
l end (必須): ループ変数の終了値 (含まれていません)
l name (オプション): ループ変数名、デフォルト値は i
l ステップ (オプション): ステップ値、デフォルト値は 1 です
l形式:
出力内容1
件>
<デフォルト />デフォルトの状況
l
15.タグを割り当てる
l
16、タグの場合
もし
l elseif
他に
判定する際には以下のコネクタを使用する必要があります
l 等しいか:
と等しいl neq または notequal:
と等しくないl gt:
より大きい例:
以上l lt:
未満l elt:
以下l heq:
と常に等しいl nheq:
と常に等しいとは限りません
17、PHPコードを使用する
1)
2)
設定ファイルには、2番目の方法を使用できるかどうかを制御するオプションがあります
TMPL_DENY_PHP は 2 番目の方法を無効にできます
推奨事項: テンプレート内で使用する PHP コードはできるだけ少なくしてください