WAP/WML
WAP/WML templates require a php Content-Type header to be passed along with
the template. The easist way to do this would be to write a custom function
that prints the header. If you are using caching, that won't work so we'll
do it using the insert tag (remember insert tags are not cached!) Be sure
that there is nothing output to the browser before the template, or else the
header may fail.
WAP/WML模板需要一個說明文件內容形式的文件頭和模板同時傳遞出去。最容易的方式就是編寫一個客戶型的函數用來輸出這個文件頭。如果你使用緩沖,那將不會起作用,所以我們使用一些插入標記(記?。翰迦霕擞洸皇蔷彌_!)。請確保在你的模板輸出到瀏覽器之前沒有任何東西被輸出,否則文件頭將實效。
?
Example 18-6. using insert to write a WML Content-Type header
例 18-6. 使用插入來寫一個WML類型的文件頭
// be sure apache is configure for the .wml extensions!
// put this function somewhere in your application, or in Smarty.addons.php
function insert_header() {
// this function expects $content argument
extract(func_get_arg(0));
if(empty($content))
return;
header($content);
return;
}
// your Smarty template _must_ begin with the insert tag example:
{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>
|
|