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>