模板的使用

11、为什么页面不统计点击数呢?
要统计页面访问率,需在内容模板底部加上“[!—page.stats–]”变量
用户在模板那边选择是否增加此变量

学会了ajax之后,可以通过发送请求来获取数据,从而更新页面信息,输出一些内容。当输出的内容比较少或者结构比较简单的时候,可以将其包裹在标签中,然后以字符串的形式拼接起来。但是当你需要输出大量的内容,这些内容大都结构相同,这个时候你或许就用得上模板了。

摘要:在 Thinkphp(每版本不一样)
模板引擎可以不需要赋值给某个模板变量而直接输出一些系统变量和系统常量、以及系统特殊变量。对于系统变量的输出必须以$Think.
打头,并且仍然可以支持使用函数。下面就分别做一下分享。

如果你是用动态显示点击数的话,用这个即可: script
src=”[!—news.url–]e/public/ViewClick/?classid=[!—classid–]id=[澳门新葡萄京娱乐场,!—id–]addclick=1″/script

使用模板的好处

使用模板能使我们专注于实现 js 部分而不是捣鼓已设计好了的 html
页面结构,不需要再去拼接字符串,省去了出错率最高的一步,能有效帮助我们快速开发。

(1)系统变量:在模板中输出系统变量:包括server、env、session、post、get、request、cookie    
 

如何使用

首先导入封装好的工具类 template.js 然后在 html 中以如下形式定义模板:

 <!-- 导入js插件 模板插件--> <script type="text/javascript" src="js/template-native.js"></script> <!-- 定义模板template-obj --> <script type="text/template" > <!--html内容--> <h1>这是模板标题</h1> <!--定义模板中不同的内容--> <div><%=objContent%></div> </script>

在 script 标签中定义的 html
结构不会被浏览器直接解析,因此可以将页面中大量存在的相同的结构放在如上所示的
script 标签中, 其中不同的内容用 变量
保存起来,格式为:<%=变量名%>如果有多个变量,可以使用
对象·属性 的方式,然后在 js 中传入的对象中具有对应的 key-value
即可。然后在 js 中调用函数自动生成模板:

 $.ajax({url:'ajaxObj.php',type:'get',success:function { //创建对象供template函数接收 var hostObj = { objContent:data }; //获取通过模板函数生成的html结构 var hostString = template('template-obj',hostObj); //更新页面 $contentText.append(hostString); }});

对于 template 方法,接受两个参数:

  • 第一个参数是定义模板时设置的 id 名称
  • 第二个参数接受一个对象类型的参数,其中对象的 key
    值要与定义模板时变量的名称相同,value 值则是变量实际的值。

这个方法返回一个 html 结构的字符串,只需要将字符串添加到原有的 html
结构中就能完成页面更新了。

  • template.js

{$Think.server.script_name} // 输出$_SERVER变量

{$Think.session.session_id|md5} // 输出$_SESSION变量  

{$Think.get.pageNumber} // 输出$_GET变量  

{$Think.cookie.name}  // 输出$_COOKIE变量

以上方式还可以写成:

{$_SERVER.script_name} // 输出$_SERVER变量
 
{$_SESSION.session_id|md5} // 输出$_SESSION变量  

{$_GET.pageNumber} // 输出$_GET变量  

{$_COOKIE.name}  // 输出$_COOKIE变量

系统常量 :使用$Think.const 输出

注意:server、cookie、config不区分大小写,但是变量区分大小写。例如:

{$Think.server.script_name}和{$Think.SERVER.script_name}等效

SESSION 、COOKIE还支持二维数组的输出

例如:

{$Think.CONFIG.user.user_name}

{$Think.session.user.user_name}

系统不支持三维以上的数组输出。
 
 
(2)语言变量:输出项目的当前语言定义值

{$Think.lang.page_error}

{$Think.const.MODULE_NAME}

或者直接使用

{$Think.MODULE_NAME}
 
(3)特殊变量 :由ThinkPHP系统内部定义的常量

{$Think.version}  //版本

{$Think.now} //现在时间   

{$Think.template|basename} //模板页面   

{$Think.LDELIM} //模板标签起始符号   

{$Think.RDELIM} //模板标签结束符号
 
(4)配置参数 :输出项目的配置参数值

{$Think.config.db_charset}

输出的值和 C(‘db_charset’) 的结果是一样的。

(5)thinkphp 的系统常量(注意以下常量也可以直接在 action
控制器中直接使用)

__ROOT__ // 网站根目录地址

__APP__ // 当前项目(入口文件)地址

__URL__ // 当前模块地址

__ACTION__ // 当前操作地址

__SELF__ // 当前 URL 地址

__PUBLIC__ // 网站公共目录

发表评论

电子邮件地址不会被公开。 必填项已用*标注