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>