动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Cgi/Perl → 阅读文章

 Template Toolkit 入门

作者来源: 
阅读 1826 人次 , 2006-2-16 14:43:00 

PRE/POST_CHOMP

我在 Template Toolkit 的配置选项 写过可以设置 POST_CHOMP 和 PRE_CHOMP 为 1 来去掉 TT 代码所带来的前后空行。不过如果你不想设置这个的话也是可以去掉前后空行的。比如这样:
Hello [% a = 3 %]
World [% a %]
这个输出的话为“Hello \nWorld 3\n”。而这么写可以把里面的 \n 去掉:
Hello [% a = 3 -%]
World [% a -%]
输出为“Hello World 3”。这个在 http://www.stonehenge.com/merlyn/LinuxMag/col60.html 里提到过。

合并两个 TT 代码

[% user.name %][% END %]
可以写成
[% user.name; END %]

INSERT 和 INCLUDE 的区别

INSERT 只是插入文件的内容而不管你是不是另一个 .tt 文件。而 INCLUDE 的话如果是另一个 .tt 文件的话会执行它。
比如你有一个文件叫 footer.tt, 内容为:
Copyright 2004-2005 All Rights Reserved. Powered by <a href="Eplanet.html">Eplanet</a> && <a href='http://catalyst.perl.org'>Catalyst</a> [% CatalystVersion %].
当在另一个文件中调用 [% INSERT footer.tt %] 时输出的结果跟上面的会一样。里面的 [% CatalystVersion %] 是原封不动。而如果是用 [% INCLUDE footer.tt %] 的话里面的 [% CatalystVersion %] 会被执行为这个变量的值。

BLOCK

比如你有段代码要执行两次。比如我有一个导航栏,需要上面放一个下面放一个。那我可以这么写:
[% show_guidebar = BLOCK %]
<p>
[% IF prev_topic %]<<Previous: <a href="[% prev_topic.cms_file %].html">[% prev_topic.cms_title %]</a>[% END %]
[% IF prev_topic and next_topic %] [% END %]
[% IF next_topic %]>>Next: <a href="[% next_topic.cms_file %].html">[% next_topic.cms_title %]</a>[% END %]
</p>
[% END %]

[% show_guidebar %]

...

[% show_guidebar %]

注释

注释很简单,在 [% 后加上 # 那这一行就被注释掉了。唯一值得注意的是下面这两种是不一样的:
[%# a = 77
b = 88
%]
a: [% a %] b: [% b %]
输出 a: b:
而[% 和 # 中间空了一格后就只有注释一行而不是整个 [% %], 如:
[% # a = 77
b = 88
%]
a: [% a %] b: [% b %]
输出 a: b: 88

参考

  
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:Template Toolkit 的配置选项
· 下一篇:我对 Catalyst 的理解和介绍
· CGI教学:CGI安全问题(八)
· Cgi入门教程之:9 BODY部分
· CGI绝对路径和相对路径的简便设置方法
· perl实例分析教程之十一
· Cgi入门教程之:1 Unix环境


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077