PhpRiot
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

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 274. Using {insert} to write a WML Content-Type header



<?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;
}

?>

    

your Smarty template must begin with the insert tag :


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

    

Smarty Template Engine