IE11でspawが表示されなくなった

お客さんの所でXOOPSの古いバージョンを使っているところがあり、「IE11にしたら編集画面のツールバーみたいなのが使えなくなった!」という相談があった。
FireFOXでは表示されるらしい。じゃあIEなんて問題児を使わなければいいぢゃん…って思ったけど、いまだにIEのシェアは高いままなので対策を講じてみた。

ここで取った策は3つ。

1.XOOPSのバージョンアップ

これが一番手っ取り早いだろう、と思った。だってバージョンが2.0.13なんだもん。化石みたいなモノつかってりゃ不具合も出るさ、と思った。
しかし2.0.16以降のバージョンアップ(グレードアップ?)が思うように進まない。

いろんなサイトを見ながら手順通りに進めるも、モジュールが表示されず真っ白けになってしまう。

…2日近く悩んだ結果、バージョンアップの道をあきらめた。

2.metaタグの編集

IE7なら表示できているらしい。
つまり互換表示をONにしてやればいいんだな、と思って<head>~</head>内に下記の記述をしてやることにした。

<meta http-equiv="x-ua-compatible" content="IE=7" >
<meta http-equiv="x-ua-compatible" content="IE=EmulateIE7" >

しかし、管理画面のheader部分がなかなか見つからない。
格闘しまくった結果、下記場所に発見。

/home/user_dir/html/include/cp_functions.php

…しかし何も起こらなかった。

3.spawの改造

色々調べた結果、どうやらIE11からユーザーエージェント表示ってヤツが変更になったらしく、ヘッダー部分からMSIEの文言が抜けているらしい。
そしてspawがIEの判定をする時にMSIEの文言のあるなしで判定しているようだった。
なら表示されるように改造してやれ、と言うことでspawのphpを改造。
場所は↓の大体22行目。

/home/user_dir/common/spaw/class/util.class.php
$browser = $_SERVER['HTTP_USER_AGENT'];
    // check if msie
    if (eregi("MSIE[^;]*",$browser,$msie))

このMSIEが無いモノはIE扱いされないようだった。
なのでこんな風に改造。

$browser = $_SERVER['HTTP_USER_AGENT'];
    // check if msie
    if (eregi("Trident[^;]*",$browser,$msie))

これで無事表示されました。

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)