WAP/WML

WAP/WMLテンプレートはテンプレートコンテンツに加え、phpによってContent-Typeヘッダが渡される必要があります。これを実行する容易な方法は、ヘッダを出力するカスタム関数を記述する事です。もしキャッシュを有効にしている場合はキャッシュは機能しないので、insertタグを用いて出力を行います(insertタグはキャッシュされない事を覚えていて下さい)。もしテンプレートの前にブラウザに何か出力されていると、ヘッダの出力は失敗する可能性があります。

例 17-6. WML Content-Typeヘッダを出力するためにinsertタグを使用する

<?php

// apacheに .wml extensionのための設定がされている事を確認して下さい!
// この関数をプラグイン又はアプリケーション内のどこかで定義する
function insert_header($params)
{
   
// この関数は、パラメータ$contentを期待します
   
if (empty($params['content'])) {
       return;
   }
   
header($params['content']);
   return;
}

?>

Smartyテンプレートは次のようにinsertタグから始まる必要があります:

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