Google Analyticsのサイト内検索で文字化け
これを修正する方法を、あるサイトから見つけた。
UTF-8しか対応していないのは、まあ良いとしてそれでも文字化けをするのは、どうやら文字数が関係しているらしい。
文字数が少ない時に文字化けするらしい。この文字数は6文字以上なら大丈夫らしい。
なので、検索フォームのあるところすべてにJacaScriptでダミーのクエリパラメータを追加する。
<script type=”text/javascript”>
function setQuery(){
document.forms[‘qs’].elements[‘dm’].value = “サイト内検索 ” + document.qs.query.value;
}
</script>
----------–
<form name=”qs” OnSubmit=”setQuery();” style=”margin-top: 0px; text-align: right;” action=”<{$xoops_url}>/search.php” method=”get”>
<{xoops_input type=text name=query size=25}>
<{xoops_input type=hidden name=dm value=””}>
formに名前をつける(この場合「qs」としている)のと、hiddenでパラメータ「dm」を確保しておく
それで、JSの方から、「dm」に”サイト内検索 +” と「query」の値を足して追加してあげる。
そうすれば、パラメータ「dm」で文字数が増えたものが出来る。
後は、GoogleAnalytics側のクエリーパラメータの設定で「query」を除外してあげて、「dm」を設定してあげる。
これを、すべての検索フォームがあるところに設定してあげる。
フォームのテンプレート(legacy_search_form.html)はもちろんだが、フォームブロックやテーマに直接書き込んでいるならそちら側も修正する必要がある。
それとテーマ側の修正をする場合には、JSの変数がバッティングしないようにform名を変更しておく必要がある。そのばあいにはJSの関数ないに使われている変数も変更したform名に合わせておく必要がある。
と、まあこんなことをすればうまくいくらしい。
先ほど設定したので、確認できるのは明日になる。