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.

Example 10-6. using insert to write a WML Content-Type header

// 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>