Smarty 是什么?
为何要使用它?
用例和工作流程
语法比较
模板继承
最佳实践
速成课程
WAP/WML 模板需要一个 php Content-Type 头信息,并且需要在此头信息与模板一起传递。最简单的方法是编写一个打印头信息的自定义函数。如果您使用缓存,该方法将无效,因此我们将使用{insert}标签来实现;记住{insert}标签不会被缓存!请确保在模板前浏览器没有输出任何内容,否则头信息可能无法正常工作。
示例 21.6 使用 {insert} 编写 WML Content-Type 头信息
<?php
// be sure apache is configure for the .wml extensions!
// put this function somewhere in your application, or in Smarty.addons.php
function insert_header($params)
{
// this function expects $content argument
if (empty($params['content'])) {
return;
}
header($params['content']);
return;
}
?>
您的 Smarty 模板必须以插入标签开头
{insert name=header content="Content-Type: text/vnd.wap.wml"}
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<!-- begin new wml deck -->
<wml>
<!-- begin first card -->
<card>
<do type="accept">
<go href="#two"/>
</do>
<p>
Welcome to WAP with Smarty!
Press OK to continue...
</p>
</card>
<!-- begin second card -->
<card id="two">
<p>
Pretty easy isn't it?
</p>
</card>
</wml>