默认的视图目录是模块的View目录(模块可以有多个视图文件目录,这取决于你的应用需要),框架的默认视图文件后缀是.html
。 新版模板主题默认是空(表示不启用模板主题功能)。
在每个模板主题下面,是以模块下面的控制器名为目录,然后是每个控制器的具体操作模板文件,例如:
User控制器的add操作 对应的模板文件就应该是:View/User/add.html
系统变量输出
普通的模板变量需要首先赋值后才能在模板中输出,但是系统变量则不需要,可以直接在模板中输出,系统变量的输出通常以{$Think 打头,例如:
{$Think.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量
{$Think.session.user_id} // 输出$_SESSION['user_id']变量
{$Think.get.pageNumber} // 输出$_GET['pageNumber']变量
{$Think.cookie.name} // 输出$_COOKIE['name']变量
支持输出 $_SERVER
、$_ENV
、 $_POST
、 $_GET
、 $_REQUEST
、$_SESSION
和 $_COOKIE
变量。
常量输出
还可以输出常量
{$Think.const.MODULE_NAME}
或者直接使用
{$Think.MODULE_NAME}
配置输出
输出配置参数使用:
{$Think.config.db_charset}
{$Think.config.url_model}
模板继承
模板继承是一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载。
例子:
父模板=>parent.html;
<body> <block name="top"> <div>页面头信息</div> </block> <block name="content"> <div>页面内容</div> </block> <block name="foot"> <div>页面尾信息</div> </block> </body>
子模板=>children.html;
<extend name="parent"/> <block name="content"> <div>子页面自定义内容</div><!--内容模块可以自己定义--> </block>
内置标签
foreach
<?php namespace HomeController; use ThinkController; class DemoController extends Controller { public function showtest() { $attr = array("one"=>100,"two"=>200); $this->assign("attr",$attr);//注册变量 $this->display();//显示模板 } }
在对应的showtest.html模板里:
<!--foreach遍历数组--> <foreach name="attr" item="v"> <div><{$v}></div> </foreach>
if
<if condition = "$a == 10"> <div>等于</div> <if condition = "$a lt 100"> <div>小于</div> <if condition = "$a gt 1"> <div>大于</div> <if condition = "$a ge 10"> <div>>=</div> <if condition = "$a le 10"> <div><=</div> <else /> <div>###</div> </if>