Os templates WAP/WML exigem um cabeçalho com o tipo de conteúdo (Content-Type) PHP para serem passados junto com o template. O modo mais fácil de se fazer isso seria escrever uma função personalizada que envia-se este cabeçalho. Se você está usando cache, isto não irá funcionar, então nós faremos isso usando a tag insert (lembre-se que tags de insert não são guardadas no cache!). Certifique-se de que nada é enviado ao navegador antes do template, caso contrário o cabeçalho não irá funcionar.
Example 18.6. Usando insert para escrever um cabeçalho WML Content-Type
<?php // certifique-se que o apache está configurado para reconhecer extensões .wml! // coloque esta função em algum lugar de seu aplicativo, ou no arquivo Smarty.addons.php function insert_header($params) { // esta função espera o argumento $content if (empty($params['content'])) { return; } header($params['content']); return; } ?>
seu template do Smarty deve começar com a tag insert, veja o exemplo à seguir:
{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> Bem-vindo ao WAP com Smarty! Pressione OK para continuar... </p> </card> <!-- begin second card --> <card id="two"> <p> Bem fácil isso, não é? </p> </card> </wml>