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
最简单的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
梦幻模拟战官服下载v6.13.2110 安卓最新版
角色扮演 1.95G
下载天龙八部手游8868版下载v1.133.2.2 安卓版
角色扮演 1.97G
下载天龙八部游戏下载v1.133.2.2 安卓手机版
动作闯关 1.97G
下载天龙八部手游果盘端下载v1.133.2.2 安卓版
角色扮演 1.97G
下载海贼王燃烧意志官方版下载v3.3.0.492700 安卓正版
角色扮演 1.56G
下载宝宝巴士安慰小宝宝下载v9.87.00.01 安卓版
其它手游 98.0M
下载乐乐捕鱼任达华官方正版下载v10.2.0.0 安卓3d版
休闲益智 579.4M
下载巨兽战场手游下载v3.1.9 安卓版
射击枪战 1.87G
下载放置江湖官方正版下载v2.1.01 安卓版
下载
口袋吉伊卡哇游戏(Chiikawa Pocket)下载v1.3.0 安卓国际版
下载
仙剑奇侠传官方手游下载v1.1.86 安卓最新版本
下载
文豪与炼金术师游戏(文アル)下载v1.1.60 安卓版
下载
新盗墓笔记正版手游下载v1.215.890111 安卓版
下载
宝宝爱交通工具游戏下载v9.87.00.01 安卓官方版
下载
北凉悍刀行互通手游下载v1.98.2.003 安卓版
下载
三国志幻想大陆2枭之歌新版本下载v0.0.18 安卓版
下载