目次

addnewpageプラグインの日本語対応方法

addnewpage プラグインを IE6 で使用した場合、日本語の namespaces (名前空間)とページ名が文字化けするので、以下の修正によって日本語に対応させます。

なおこの修正は、2007-02-22時点での最新ソースにあわせて記述してます。

文字化けの原因

今回の問題は、lib/plugins/addnewpage/script.js の中で、addnewpage プラグインのフォームで入力したページ名と選択した名前空間を連結した「完全ページ名」を、そのままの値でクエリ文字列を作成し、<form>タグの action 属性にURLとして設定していることが問題っぽい。

対応方法

クエリ文字列の代わりに hidden フィールドを追加し、そこの値に「完全ページ名」を設定するように修正します。

lib/plugins/addnewpage/syntax.php

action="'.wl().'"

lib/plugins/addnewpage/syntax.php

$renderer->doc .= 
  '<input type="hidden" name="id" id="addnewpage_id" value="" />';

lib/plugins/addnewpage/script.js

document.getElementById("addnewpage_id").value = 
  document.getElementById('np_cat').value + 
  ':' +
  document.getElementById('addnewpage_title').value;

syntax.php の 48行目にあるaction属性に指定する値を wl関数1) から取得するようにしました。 この方法のだと、DokuWikiの「サイト設定」→「高度な設定」で「URLの書き換え」設定を変更しても、設定にあわせた URL が取得できるので良いです。

1) inc/common.phpに定義されており、Wikiページのリンクを生成する関数