====== addnewpageプラグインの日本語対応方法 ====== [[doku>plugin:addnewpage|addnewpage]] プラグインを IE6 で使用した場合、日本語の [[doku>wiki:namespaces|namespaces]] (名前空間)とページ名が文字化けするので、以下の修正によって日本語に対応させます。 なおこの修正は、2007-02-22時点での最新ソースにあわせて記述してます。 ===== 文字化けの原因 ===== 今回の問題は、lib/plugins/addnewpage/script.js の中で、addnewpage プラグインのフォームで入力したページ名と選択した名前空間を連結した「完全ページ名」を、そのままの値でクエリ文字列を作成し、
タグの action 属性にURLとして設定していることが問題っぽい。 ===== 対応方法 ===== クエリ文字列の代わりに hidden フィールドを追加し、そこの値に「完全ページ名」を設定するように修正します。 * **Step1:** lib/plugins/addnewpage/syntax.php の 48行目にある タグのaction属性の値を以下のように変更し、カレントパスへリクエストを POST することを明示します。 action="'.wl().'" * **Step2:** 同じく lib/plugins/addnewpage/syntax.php の 52行目に以下のコードを追加します。 $renderer->doc .= ''; * **Step3:** lib/plugins/addnewpage/script.js の 1行目にあるコードを削除し、かわりに以下のコードを追加します。 document.getElementById("addnewpage_id").value = document.getElementById('np_cat').value + ':' + document.getElementById('addnewpage_title').value; syntax.php の 48行目にあるaction属性に指定する値を wl関数((inc/common.phpに定義されており、Wikiページのリンクを生成する関数)) から取得するようにしました。 この方法のだと、DokuWikiの「サイト設定」→「高度な設定」で「URLの書き換え」設定を変更しても、設定にあわせた URL が取得できるので良いです。 == {{tag>dokuwiki scratch plugin}}