bonjour
je te remercie de toutes ces pistes je vais essayer de les comprendre et de
les appliquer correctement.
bonne continuation
Emmanuel
"Christian Lefebvre" <christian.lefebvre@atosorigin.com> a écrit dans le
message de news:1066287351.7459.18.camel@pmd-pc38.dev.atos.fr...
Le Wed 15/10/2003 à 23:59, man a écrit :
Par conséquent je souhaite savoir s'il existe un script ou autres modules
ou
un thème spécifique pour transférer le site au format wap mais aussi imode
?
En imode, il "suffit" de faire du html light, c'est donc faisable avec des
squelettes classiques, modulo quelques constraintes.
En plus, tu peux vouloir gérer les emoji et les accessKeys.
Voila par exemple un bout de code pour sortir l'emoji des touches 0 à 9
à utiliser devant un lien avec un attribut accessKey :
function charTouche($t) {
if($t==0) { $t=10; }
return "&#".(59105+$t).";";
}
Par contre, pour du wap, ça se complique, puisque le wml est beaucoup
plus strict (il faut que ça soit du xml valide) et que le squelette
d'ensemble ne ressemble plus tellement à du html.
Il y a un tas d'autres contraintes à prévoir (mime type, entête ...)
Voila déjà un bout de code que j'ai mis dans mes_fonctions.php3 pour
convertir la sortie de #TEXTE en quelque chose de valide pour wml, mais
ça ne traite pas les tableaux, puces et autres intertitres.
function wmliser($texte) {
if(!ereg("^[[:space:]]*<p", $texte)) { $texte="<p>".$texte."</p>"; }
$texte=str_replace("<p class=\"spip\">", "<p>", $texte);
$texte=str_replace("<br>", "<br/>", $texte);
return $texte;
}
Enfin, l'idéal est d'avoir un site qui détecte le browser pour en
déduire le squelette à utiliser (imode, wml, html ...)
Voici un exemple :
if( stristr($HTTP_USER_AGENT, "nokia")
|| stristr($HTTP_USER_AGENT, "OPWV-SDK")) {
$browser="wap";
$dossier_squelettes="LOOK_WAP";
header("Content-Type: text/vnd.wap.wml");
} elseif( stristr($HTTP_USER_AGENT, "ts21")
|| stristr($HTTP_USER_AGENT, "n21")
|| stristr($HTTP_USER_AGENT, "n22")) {
$browser="imode";
$dossier_squelettes="LOOK_IMODE";
} elseif( stristr($HTTP_USER_AGENT, "linux")
|| stristr($HTTP_USER_AGENT, "windows")
|| stristr($HTTP_USER_AGENT, "Mozilla")) {
$browser="html";
} else {
$browser="html";
}
Les tests à la fin peuvent être changé pour tester les
versions wap et imode selon qu'on arrive par IE ou mozilla.
Ça permet de tester en interne sans passer tout le temps par un
téléphone ou un émulateur (dont la qualité est généralement
désespérante ...)
Reste à mettre les squelettes spécifiques dans des répertoires
LOOK_IMODE, LOOK_WAP ...
J'avais également patché un peu spip pour qu'il aille chercher
mes_fonctions.php3 dans le répertoire dossier_squelettes, comme ça,
par exemple, la fonction emoji n'est définie que pour imode.
À+, Pif.
PS: Tout ça n'est qu'une série de pistes à suivre, excuse moi si je
ne suis pas plus précis, mais j'ai fait ça dans le cadre d'un projet
professionnel (qui n'a finalement jamais été au bout) sur lequel
je ne peux pas trop déballer de détails.
----------------------------------------------------------------------------
----