2014-09-05
一、视图
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
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
04-12
6
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
PHP中include和require区别之我见
09-05
常用dos命令及语法
2014-09-27
将视频设置为Android手机开机动画的教程
2014-12-11
php递归返回值的问题
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
java中的info是什么意思
2022-03-24
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
IcePHP框架中的快速后台中的通用CRUD功能框架
2014-09-05
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP数组函数array
2014-09-05
学ug编程如何快速入门?
2022-03-17
原始征途九游版下载v1.0.95 安卓版
动作闯关 404.9M
下载龙族卡塞尔之门手游下载v1.3.1 安卓版
卡牌对战 734.0M
下载爆炒江湖官服下载v1.43 安卓版
角色扮演 842.8M
下载宝宝学abc宝宝巴士游戏下载v10.00.24.11 安卓官方版
其它手游 171.1M
下载奇妙商场嘉年华最新版本(改名奇妙故事创造家)下载v9.87.58.00 安卓版
其它手游 221.1M
下载最佳球会九游版下载v2.5.161 安卓官方版
经营养成 1.87G
下载热血传奇跨服新大陆官方手游下载v1.9.134.15150 安卓最新版本
角色扮演 1.50G
下载波比的游戏时间第四章玩家自制版(PlaytimeStarterKit)下载v9.1 安卓版
其它手游 1.14G
下载方块枪战block gun游戏下载v9.8 安卓版
下载
zepeto中文版(更名崽崽ZEPETO)下载v4.2.210 安卓版
下载
现代战舰手游下载v0.94.3.120515958 安卓手机版
下载
Modern Warships现代战舰国际服官方正版下载v0.94.3.120515958 安卓最新版
下载
2025指尖捕鱼新版下载v10.2.44.7.0 安卓正版
下载
指尖捕鱼赢话费版下载v10.2.44.7.0 安卓版
下载
指尖捕鱼高爆率多人捕鱼游戏下载v10.2.44.7.0 安卓版
下载
指尖捕鱼吴孟达版下载v10.2.44.7.0 安卓最新版
下载