本篇将解决:将已有的网页添加到thinkPHP项目中。
1.1 模板显示
我们可以在控制器中,调用Action类的display方法,该方法用于显示模版,该方法的api说明如下(了解即可):
/**
89: * 模板显示 调用内置的模板引擎显示方法,
90: * @access protected
91: * @param string $templateFile 指定要调用的模板文件
92: * 默认为空 由系统自动定位模板文件
93: * @param string $charset 输出编码
94: * @param string $contentType 输出类型
95: * @param string $content 输出内容
96: * @return void
97: */
98: protected function display($templateFile='',$charset='',$contentType='',$content='') {
99: $this->initView();
100: $this->view->display($templateFile,$charset,$contentType,$content);
101: }
那么该如何调用该方法呢?很简单,如下:
<?php
class IndexAction extends Action {
public function index(){
$this->display();
}
}
直接使用$this指针进行调用,因为IndexAction继承了Action方法。
然后运行,出现了下面的错误:
通过观察错误提示,我们可以发现,原来模版文件存在的路径为:"./前台项目名称/Tpl/前台项目名称/"。那么接下我们就将已有的index.html放到该目录下(已有模版点击下载)。再次运行,发现index.html被显示出来了,但是其中的css以及js都没有引入。
接下来我们就将介绍如何引入css和js。
我们在项目(不是前台项目)的根目录下,创建一个名为”Public“的文件夹,然后将模版的css,images以及js全部copy到该文件夹下。
然后打开"./前台项目名称/Tpl/前台项目名称/index.html"文件,将所有引用css,图片以及js的地方的路径,例如:”src='./Js/index.js'“。将其中的”.“全部替换为”__PUBLIC__“。
再次运行,模版正常显示。
需要说明的是:”__PUBLIC__“不是常量,它仅仅是一个模版替换。
1.2 模板替换配置项
在1.1中我们将模板的css等文件放在了"项目根目录/Public"目录中,那么是否可以不放在该目录下呢?当然可以。
接下来,在”./前台项目名称/Tpl/“目录下,创建Public文件夹,将css等文件夹copy到该目录下。
然后,修改配置文件config.php,在array数组中,将__PUBLIC__映射到”./前台项目名称/Tpl/Public“,方法如下:
<?php
$config = array(
'TMPL_PARSE_STRING' => array(
'__PUBLIC__' => __ROOT__.'/'.APP_NAME.'/Tpl/Public'),
);
return array_merge(include './Conf/config.php',$config)
?>
再次运行,模板正确显示!