メインメニュー
Valid XHTML 1.0 Transitional Valid CSS!
XOOPS : XwordsをUTF-8対応にする
投稿者 : root 投稿日時: 2010/01/07 (12553 ヒット)

Xwords(バージョン0.46)は、マルチカテゴリー辞典「Wordbook」を日本語向けに特化させた辞典モジュールです。
しかし、本家XOOPS用のモジュールで、ホダ塾ディストリビューションなどUTF-8で動かすには、以下の修正が必要になります。

UTF-8用のlanguageファイルを追加する

  • languageフォルダの下にja_utf8フォルダを作成し、japaneseフォルダのファイルを全てコピーします。
  • コピーしたファイルの文字コードをUTF-8に変換します。

モジュールのインストールで警告が出る

修正ファイル:xwords/class/xwords.textsanitizer.php
47行目のコンストラクタに親クラス「MyTextSanitizer」のコンストラクタを追加します。

修正前:
  1. function XwordsTextSanitizer()
  2.     {
  3.     }
修正後:
  1. function XwordsTextSanitizer()
  2.     {
  3.         parent::MyTextSanitizer();
  4.     }

頭文字(イニシャル)での検索が機能しない

修正ファイル:xwords/include/functions.php
151行目と161行目の「substr」を「mb_substr」に変更します。

修正前:
  1. elseif (!ereg('^[[:blank:]]|[[:cntrl:]]',$term) && $term)
  2.     {
  3.     $init_t = substr($term, 0, 2);
  4.     }
  1. elseif (!ereg('^[[:blank:]]|[[:cntrl:]]',$proc) && $proc)
  2.     {
  3.     $init_p = substr($proc, 0, 2);
  4.     }
修正後:
  1. elseif (!ereg('^[[:blank:]]|[[:cntrl:]]',$term) && $term)
  2.     {
  3.     $init_t = mb_substr($term, 0, 2);
  4.     }
  1. elseif (!ereg('^[[:blank:]]|[[:cntrl:]]',$proc) && $proc)
  2.     {
  3.     $init_p = mb_substr($proc, 0, 2);
  4.     }

修正ファイル:xwords/letter.php
71行目のSQLのWHERE句から「binary」を削除します。

修正前:
  1. " ON e.categoryID = c.categoryID) ".
  2. " WHERE e.init regexp binary '".$init_str."' AND e.datesub < '".time()."' AND e.datesub > '0' AND e.submit = '0' AND e.offline = '0' AND e.request = '0' ".
  3. "$cID ORDER BY binary e.proc ASC";
修正後:
  1. " ON e.categoryID = c.categoryID) ".
  2. " WHERE e.init regexp '".$init_str."' AND e.datesub < '".time()."' AND e.datesub > '0' AND e.submit = '0' AND e.offline = '0' AND e.request = '0' ".
  3. "$cID ORDER BY binary e.proc ASC";

管理画面から登録するとカテゴリが入らない

修正ファイル:xwords/admin/entry.php
130行目の「addElement」の行を削除します。

修正前:
  1. ob_start();
  2. $sform -> addElement( new XoopsFormHidden( 'categoryID', intval($categoryID) ) );
  3. $mytree -> makeMySelBox( "name", "weight", $categoryID );
修正後:
  1. ob_start();
  2. $mytree -> makeMySelBox( "name", "weight", $categoryID );

検索画面の検索語が文字化けする

修正ファイル:xwords/search.php
50行目と215行目に文字コードの変換を追加します。

修正前:
  1. $queryarray = array();
  1. $xoopsTpl -> assign ( 'h1id', $myts -> makeTboxData4Show( $xoopsModuleConfig["h1id"] ) );
  2. $xoopsTpl -> assign ( 'searchform', showSearchForm($query,$type,$catID,$andor));
修正後:
  1. $query = mb_convert_encoding($query, "EUC-JP", "UTF-8");
  2. $queryarray = array();
  1. $xoopsTpl -> assign ( 'h1id', $myts -> makeTboxData4Show( $xoopsModuleConfig["h1id"] ) );
  2. $query = mb_convert_encoding($query, "UTF-8", "EUC-JP");
  3. $xoopsTpl -> assign ( 'searchform', showSearchForm($query,$type,$catID,$andor));


印刷用ページ