2015-05-27
一、视图
1、 视图组件的构成:
1) 视图类
View类
Smarty类
2) 模板
Tpl/项目/模块/***.html
视图类负责读取模板内容,并实现字符串替换,最终再输出给用户
2、 模板定义
默认的模板文件定义规则:
模板目录/[分组名/]模块名/操作名+模板后缀
TMPL_TEMPLATE_SUFFIX
一般情况下,模板的后缀大体使用以下几种:
.html
.htpl
.tpl
3、 分隔符
因为每个模板设计者的习惯不同,有的人习惯使用“{}” 有的人使用<{}> {**}
在配置文件中,可以设置以下两个配置选项,表示配置模板的分隔符
'TMPL_L_DELIM'=>'<{',
'TMPL_R_DELIM'=>'}>',
4、 模板赋值以及输出
1) $this->assign(‘模板变量名’,变量);
$var = '手机';
$this->assign('var',$var);
$this->display('test');
2) $this->assign(数组变量);
<{$数组元素下标}>
<!-- 直接用数组的下标来取数据 -->
<{$price}><br/>
<{$address}><br/>
$var = '手机';
$this->assign('var',$var);
$arr['price'] = 33.3;
$arr['address'] = '北京';
$this->assign($arr);
$this->display('test');
}
3)$this->display(‘操作名’)
当前模块下的指定操作名.html模板
4)$this->display(‘模块:操作名’); //模板是可以跨模块调用的
引用指定模块下的指定的操作名.html模板
5)$this->display(‘操作’,’输出编码’,’输出类型’);
//跨模块输出
$this->display('User:login','utf-8','text/html');
5、 模板替换(模板常量)
在项目中经常要引用css、js、图片的资源需要引用。
__PUBLIC__:当前网站的公共目录
__APP__: 当前项目的URL地址
__GROUP__:当前分组的URL地址
__URL__:当前模块的URL地址
__ACTION__:当前操作的URL地址
在tp中的模板里,可以使用以上模板常量,它们表示不同的字符串,一般在需要引用url时,可以用到以上常量
默认来讲:如果我们访问:
Localost/index.php/home/product/test,这时模板如使用了__PUBLIC__模板常量,那么它的值指向了apache的htdocs目录下,但是如果我们有多项目,这时会有冲突,如何解决?
解决之道:
1) 修改配置文件
在配置文件中,可以配置一个叫TMPL_PARSE_STRING选项,它可以定义在模板使用的模板常的值
然后,在模板中,可以这样来引用当前项目下的资源文件:
2) 配置虚拟主机
打开host文件:
打开httpd.conf
将上面的配置选项之前的#去掉
打开httpd-vhosts.conf文件,添加新的虚拟主机设置
重启apache
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 闭合标签
<br />
l 开放标签
<div></div>
8、 包含文件
<include file="模板文件名" />
是基于项目的入口文件位置。
./Tpl/Admin/Public/header.html
我们将网页公共部分放到header.html和footer.html两个公共模板页中,在主页中使用include进行引用
上面在引用文件时,路径过长,如何解决?
<include file=“模块名:操作名” title="Think” />
表示引用当前项目下指定模板里的指定的模板
使用include去包含了”Public模块”下的footer和header文件
Include标签允许向模板传递参数
模板代码:
9、 导入文件
在tp中,提供了几个标签实现(简化)对资源文件的引用
<js href="__PUBLIC__/Js/Common.js" />
<css href="__PUBLIC__/Css/common.css" />
<load href="__PUBLIC__/Js/Common.js" />
l 格式:
<importtype=‘type’ file=‘file’ />
file(必须):资源文件
type(可选):资源文件类型,默认为js
起始路径是网站的Public(__PUBLIC__)目录
采用命名空间方式
目录.目录.文件名
10、 volist标签
用于遍历数组元素
l 格式:
<volist name="list" id="vo">
{$vo.id}
{$vo.name}
</volist>
l name(必须):要遍历的数组变量
l id(必须):当前数组元素
l offset: 要输出数据的offset
l length: 输出数据的长度,需要指定offset
l key: 循环索引 key的值默认为 i
11、 foreach标签
用于遍历数组变量
语法:
<foreachname="list" item="vo" >
{$vo.id}
{$vo.name}
</foreach>
Name :要遍历的数组变量
Item:用于保存当前元素的变量名
如果有特殊需求,使用volist,否则使用foreach
12、 for标签
<forstart="1" end="100">
{$i}
</for>
属性:
l start(必须):循环变量开始值
l end(必须):循环变量结束值 (不包括)
l name(可选):循环变量名,默认值为i
l step(可选):步进值,默认值为1
13、 switch标签
l 格式:
<switch name="变量" >
<case value="值1" break="0或1">
输出内容1
</case>
<case value="值2">输出内容2</case>
<default />默认情况
</switch>
14、 empty标签
l <empty name="name">name为空值</empty>
15、 assign标签
l <assign name="var" value="123" />
16、 if标签
l if
l elseif
l else
判断时,需要使用以下连接符
l eq或者 equal:等于
l neq 或者notequal:不等于
l gt:大于
l egt:大于等于
l lt:小于
l elt:小于等于
l heq:恒等于
l nheq:不恒等于
17、 使用php代码
1)<php>echo “hello”;</php>
2)<?php echo “think”; ?>
在配置文件中,有一个选项可以控制第二种方法是否可用
TMPL_DENY_PHP 可以禁用第二种方法
建议:尽量少在模板中使用php代码
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
6
将视频设置为Android手机开机动画的教程
12-11
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
04-12
常用dos命令及语法
2014-09-27
PHP中include和require区别之我见
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
php递归返回值的问题
2014-09-05
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
学ug编程如何快速入门?
2022-03-17
PHP数组函数array
2014-09-05
学习使用C语言/C++编程的7个步骤!超赞~
2022-03-20
零基础的初学者怎样学习java,或者应该先学什么?
2022-03-21
收割者剑客传奇免谷歌汉化版下载v2.0.1 安卓版
其它手游 40.19MB
下载
reaper收割者破解版下载v2.0.1 安卓完美版
其它手游 40.19MB
下载
reaper汉化版下载v2.0.1 安卓中文版
其它手游 40.19MB
下载
死神苍白剑士的传说中文版(Reaper)下载v2.0.1 安卓版
其它手游 40.19MB
下载
宝宝巴士迷宫小镇下载v9.89.99.01 官方安卓版
其它手游 113.4MB
下载
宝宝迷宫大作战游戏下载v9.89.99.01 安卓版
其它手游 113.4MB
下载
宝宝巴士干净的妙妙游戏下载v9.89.99.00 安卓版
其它手游 76.43MB
下载
妙妙爱干净宝宝巴士下载v9.89.99.00 安卓版
其它手游 76.43MB
下载翻炒厨师游戏下载v2.1.3 安卓版
下载
维塔战士游戏最新版下载v976 安卓版
下载
泡泡小镇城堡游戏下载v1.1.5 安卓完整版
下载
3d蚊子模拟器游戏最新版下载v2023.08.22 安卓版
下载
超级机器人英雄游戏下载v1.1.3 安卓版
下载
robot super游戏下载v1.1.3 安卓版
下载
zombie tsunami游戏下载v4.6.8 安卓版
下载
2026僵尸尖叫正版下载v4.6.8 安卓官方版
下载