WAP/WML

WAP/WML шаблоны требуют, чтобы заголовок Content-Type был передан вместе с шаблоном. Простейший путь - написать пользовательскую функцию, которая будет выводить заголовки. Если вы используете кэширование, это не сработает, так что мы сделаем это с помощью тэга {insert}; не забывайте, что тэги {insert} не кэшируются! Убедитесь, что перед шаблоном в браузер ничего не выводится, иначе отправить заголовок не получится.

Example 18.6. Использование {insert} для отправки заголовка Content-Type для WML


<?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">

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