一、模板的使用   
    a、规则
        模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html(.tpl)

更换模板文件的后缀名(修改配置文件)
        'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件后缀名

b、修改模板文件目录层次 (一般不用)
        'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次
        在tpl文件下Index_index.html  就等于Index/index.html

c、模板主题
        'DEFAULT_THEME'=>'your',//设置默认模板主题
        需要在TPL下面新建一个your文件夹作为模板主题文件夹

如何动态修改模板主题?
        1、在后台准备一个功能,修改config.php文件中的默认模板项
        2、通过url传递 t=主题 参数可以修改不同的模板
            'DEFAULT_THEME'=>'your',//设置默认模板主题
            'TMPL_DETECT_THEME'=>true,//自动侦测模板主题
            'THEME_LIST'=>'your,my',//支持的模板主题列表
        
二、输出模板内容 
    a、display
        1.display中没有参数
            $this->display();
        2.可以带参数
            $this->display(本模块文件夹下的其他模板文件);
            $this->display('index2');

$this->display(其他文件夹下的模板文件);
            $this->display('Public:error');//注意,仅仅需要在Tpl下有Public文件夹以及其中的 error.html即可,不需要一定有Public模块

$this->display(其他主题下的 文件夹下的 模板文件);//需要开启主题支持 ('DEFAULT_THEME'=>'your')
            $this->display('my:Index:index');

    $this->display(一个url路径);
            $this->display('./Public/error.html');

$this->display('./Public/error.html','utf-8','text/xml');

3.fetch方法
            获得模板文件中的内容,以字符串形式返回
            $content=$this->fetch('Public:error');
        4.show方法
            不需要模板文件,可以直接输出模板内容
                $content=$this->fetch('Public:error');
                dump($content);
                $content=str_replace('h1','i',$content);
                $this->show($content);
三、模板中的赋值     
        //$this->assign('name','赵桐正');
        $this->name='赵桐正2';
        $this->display();

$array['name']    =    'thinkphp';
        $array['email']    =    'liu21st@gmail.com';
        $array['phone']    =    '12335678';
        $this->assign($array);
        使用时 直接 {$name}

四、模板替换 
  __PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public
  __ROOT__: 会替换成当前网站的地址(不含域名) /think
  __APP__: 会替换成当前项目的URL地址 (不含域名)/think/index.php
  __GROUP__:会替换成当前分组的URL地址 (不含域名)
  __URL__: 会替换成当前模块的URL地址(不含域名)  /think/index.php/Index
  __ACTION__:会替换成当前操作的URL地址 (不含域名)  /think/index.php/Index/index
  __SELF__: 会替换成当前的页面URL  /think/index.php?m=Index&a=index
        
        更换模板变量规则,修改配置项
        'TMPL_PARSE_STRING'=>array(           //添加自己的模板变量规则
          '__CSS__'=>__ROOT__.'/Public/Css',
          '__JS__'=>__ROOT__.'/Public/Js',
      ),

thinkPHP 视图的更多相关文章

  1. ThinkPHP视图查询详解

    ThinkPHP视图查询详解 参考http://www.jb51.net/article/51674.htm   这篇文章主要介绍了ThinkPHP视图查询,需要的朋友可以参考下     ThinkP ...

  2. ThinkPHP视图查询

    ThinkPHP视图查询 一.总结 1.这里的视图查询和多表查询很像,当然多表查询的话肯定要支持左右链接查询 2.view:视图的使用,关键字是view 3.sql视图功能支持:thinkphp支持视 ...

  3. thinkphp 视图定义

    视图定义 视图通常是指数据库的视图,视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的 ...

  4. thinkphp 视图模型使用分析

    <?php /** * 视图模型 * */ class ViewBatchModel extends ViewModel{ public $viewFields = array( 'Jinxia ...

  5. thinkphp 视图(二)变量输出、赋值和替换

    view下的html文件会编译成php文件 编译的文件在runtime 下的temp目录 <p>{$email}</p> 会编译成 <?php echo $email; ...

  6. thinkphp 视图(一)

    视图 View <?php namespace app\index\controller; class Index{ public function index(){ return view() ...

  7. Thinkphp 视图模型

    1.创建视图模型 2.定义视图模型 class BlogViewModel extends ViewModel { public $viewFields = array( 'Blog'=>arr ...

  8. ThinkPHP视图css和js加上版本号防止缓存

    前台模块中,我的所有控制器都继承BaseController,虽然ThinkPHP中我们提供了两个配置项 'TMPL_CACHE_ON' => false,// 禁止模板编译缓存 'HTML_C ...

  9. thinkphp 视图view

    一. 继承Controller类 <?php namespace app\index\controller; use http\Params; use think\Config; use thi ...

随机推荐

  1. web学习:Spring2.5+Hibernate3.3+Struts1.3整合小例子

    写android有段时间了,感觉思维越写越狭窄,考虑问题越来越局限了,看不到一个项目整体的设计和构架,觉得很有必要多多写一些大型的框架性的东西来提高自己的视野. 从接触java到现在一年多了,在我的印 ...

  2. Android平台中实现对XML的三种解析方式

    本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...

  3. FIFO 和 LRU 调度算法

    在一个采用页式虚拟存储管理的系统中(字地址序列.页号.块号均从零开始编址),有一用户作业,它依次要访问的字地址序列是:15,128,300,388,246,402,223,142,360,267,若该 ...

  4. int main(int argc,char *argv[])参数的应用

    #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/sta ...

  5. Codevs 5590 A+B 问题 超级版

    5590 A+B 问题 超级版 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 青铜 Bronze 题目描述 Description 不用+-*/%计算A+B 输入描述 Input De ...

  6. openjdk

    apt-get install mercurial hg clone http://hg.openjdk.java.net/jdk8u/jdk8u20/ jdk8u20 ./get_source.sh

  7. php 命名空间的目的

    php引入命名空间的目的,就是为了防止不同的文件 标识符同名的问题,比如类.函数.变量同名导致冲突的问题.这才是根本的根本,了解指点,带着这个观念去学习php命名空间的相关知识,就不会云里雾里了,会比 ...

  8. SQLSERVER设置行号

    select row_number()over(order by columnname)as rownum,* from tablename 按照columnname列进行排列

  9. CSS文字垂直居中和font-family属性

    1.单行文字的垂直居中 单行文字垂直居中比较简单,直接让行高==盒子高度即可. 2.多行文字居中 多行文字居中,只需简单计算一下盒子的上padding即可.计算公式:padding-top=(盒子的高 ...

  10. 用java.util.Observable实现Observer模式

    http://blog.csdn.net/dada360778512/article/details/6977758 http://blog.csdn.net/luoweifu/article/det ...