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