WAP/WML

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

例 21.6. WML Content-Type ヘッダを出力するために {insert} を使用する


<?php

// apache で拡張子.wml の設定がされている事を確認して下さい!
// この関数をアプリケーション内あるいは Smarty.addons.php で定義します
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">

<!-- 新しい wml のデッキ -->
<wml>
 <!-- 最初のカード -->
 <card>
  <do type="accept">
   <go href="#two"/>
  </do>
  <p>
   Smarty 版の WAP へようこそ!
   OK を押すと次に進みます……
  </p>
 </card>
 <!-- 二枚目のカード -->
 <card id="two">
  <p>
   どう?簡単でしょ?
  </p>
 </card>
</wml>