XPressME Integration Kit

フォーラム

ブロック表示の文字化け

このトピックには5件の返信が含まれ、2人の参加者がいます。10 年前 toemon さんが最後の更新を行いました。

6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • #2627

    匿名

    はじめまして。

    どうしても解決できないのでご質問させていただきます。

    ブロックの表示についてなのですが、wordpressモジュール内で表示はできるのですが、モジュール外(XOOPSトップページなど)でのブロック表示が文字化けします(最近の記事・カレンダーの曜日・カテゴリーの「未分類」)。

    環境はローカル環境でテスト機としてWINDOWS XPを使用しております。XOOPSを新規インストール後、XPressME Integration Kit + WordPressME2011(EUC)インストールしました。その他モジュール、プラグインはインストールされていません。

    また、レンタルサーバー(Speever)上でも同じ現象が発生します。

    サーバーの設定が何か間違っているのか??ご教授お願い致します。

    ******** システム情報********

    SERVER: Apache/2.0.63 (Win32) PHP/4.4.7

    PHP Version: 4.4.7

    libxml Version: Can’t detect.

    MySQL Version: 4.1.22-community-nt

    XOOPS Version: XOOPS Cube Legacy 2.1.7

    XPressME Version: 2.14

    WordPress Version: 2.0.11-ME

    WP DB Version: 3441

    safemode: OFF

    register_globals: OFF

    magic_quotes_gpc: OFF

    XML extension: ON

    memory_limit:

    post_max_size: 8M

    upload_max_filesize: 2M

    display_errors: OFF

    MB extension: ON

    mbstring.language: neutral

    mbstring.encoding_translation: OFF

    mbstring.internal_encoding:

    mbstring.http_input: pass

    mbstring.http_output: pass

    mbstring.detect_order:

    mbstring.substitute_character: none

    mbstring.func_overload: OFF

    ******** XPressMEがXOOPSより取得した設定値********

    XOOPS_ROOT_PATH: OK

    XOOPS_TRUST_PATH: OK

    XOOPS_URL: OK

    XOOPS_SALT: OK

    XOOPS_DB_HOST: OK

    XOOPS_DB_USER: OK

    XOOPS_DB_PASS: OK

    XOOPS_DB_NAME: OK

    XOOPS_DB_PREFIX: OK

    ******** WordPressで使用中のプラグイン********

    Plugin for XPressME: Version 1.0: (http://ja.xpressme.info)

    ******** ブロックステータス********

     最近の記事内容: OK

     最近の記事: OK

     人気記事リスト: OK

     ページ: OK

     最近のコメント: OK

     サイドバー: OK

     検索: OK

     カレンダー: OK

     アーカイブ: OK

     投稿者: OK

     カテゴリー: OK

     メタ情報: OK

     拡張ブロック: OK

    ******** ユーザーメタ情報********

    ユーザーメタキーは正常です

    ******** 統計********

    カテゴリー数: 1

    記事数: 0

    投稿者数: 0

    よろしくお願いいたします。

    #3018

    toemon
    キーマスター

    hideyanさんこんにちは

    当方のローカル環境では再現できなかったので、詳しくは判りませんが、、

    まず、

    xoopsのcacheディレクトリ内に **_calende_block***.xmlとかの

    xmlファイルがあると思いますが、こちらをエディタで開いていただいて、文字コードがEUCになっているか確認ください。

    また、インストール、あるいはアップデート時に、

    最後にextras/for_wordpressme2011/ja_EUCにあるファイルやフォルダーを上書きしなかった。ということは無いでしょうか?

    参考

    モジュール作成(WP2011編)

    Integration Kit アップデート

    あと、確認のため、同等の環境を作成したいのですが、

    ローカル環境を構築するのに使用されているはXAMPP、XAIO、XSASなど、いずれでしょうか?

    使用されているローカル環境とそのバージョンを教えてください。

    当方のローカル開発環境

    ******** システム情報********

    SERVER: Apache/2.2.9 (Win32) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.6

    PHP Version: 5.2.6

    libxml Version: 2.6.32

    MySQL Version: 5.0.67-community

    XOOPS Version: XOOPS Cube Legacy 2.1.7

    XPressME Version: 2.14

    WordPress Version: 2.0.11-ME

    WP DB Version: 3441

    ローカル開発環境

    XAMPP 1.6.8 (PHP4.4 とPHP5.2の切換はPHP Switch にて)

    および

    XAMPP 1.7.2(PHP5.3確認用)

    #3019

    toemon
    キーマスター

    mbstringの設定を見ていて、多分、これなんじゃないかなと、思うのですが

    include/xpress_block_render.phpの28行目あたり

    <code>if (strstr($xml_data, '<?xml version="1.0" encoding="EUC-JP" ?>') !== false){<br />
    $ans = mb_convert_variables('EUC-JP' , 'UTF-8', &$ret);<br />
    }</code>

    <code>if (strstr($xml_data, '<?xml version="1.0" encoding="EUC-JP" ?>') !== false){<br />
    $internal_encoding = mb_get_info('internal_encoding');<br />
    if (!empty($internal_encoding) && !strcmp($internal_encoding,'EUC-JP')){<br />
    $ans = mb_convert_variables('EUC-JP' , $internal_encoding, &$ret);<br />
    }<br />
    }</code>

    に変更して確認いただけないでしょうか

    追記

    この処理間違ってます。 下の投稿の処理で確認ください。

    #3020

    toemon
    キーマスター

    すみません、やっと原因がわかりました。

    どうも、PHP4 とPHP5 の xml_parseの文字コードの扱いの違いにに起因しているようです。

    先の投稿の修正は、無かったということで、改めて

    include/xpress_block_render.phpの28行目あたり

    <code>if (strstr($xml_data, '<?xml version="1.0" encoding="EUC-JP" ?>') !== false){<br />
    $ans = mb_convert_variables('EUC-JP' , 'UTF-8', &$ret);<br />
    }</code>

    の部分

    <code>if (strstr($xml_data, '<?xml version="1.0" encoding="EUC-JP" ?>') !== false){<br />
    if (version_compare(PHP_VERSION, '5.0.0', '>')) {<br />
    $ans = mb_convert_variables('EUC-JP' , 'UTF-8', &$ret_value);<br />
    }<br />
    }</code>

    に置き換え後、確認ください。

    #3021

    匿名

    表示できました!! 感動です!! すばらしい!!

    apache,php,mysqlの設定をいろいろ変えてみたりしても、どうにもならなかったんです(T_T)

    素人なりにxml関係かな??とは思っていたんですが、phpを全然知らないんでどうにもできなかったんです。

    何か不具合があると原因追求に何日も掛かったりします(何週間も掛かる時も・・・)。

    徐々にイライラしだし・・・頭痛がしてきて・・・やがて爆発します。

    所詮素人なものですから限界があります。

    それがtoemonさんにかかれば!!翌日には!!このとおりです!!

    貴重な時間を割いていただき、素早く対応していただき本当に感謝します。

    ありがとうございました m(__)m

    #3022

    toemon
    キーマスター

    こちらこそ、バグを見つけていただき、ありがとうございました。

    それがtoemonさんにかかれば!!翌日には!!このとおりです!!

    いやーっ!自分が作ったバグですから・・・ ^^;

    こちらのバグはチケット#268に登録、修正させていただきました。

    近日中にリリース予定のVer2.2.0より反映させていただきます。

6件の投稿を表示中 - 1 - 6件目 (全6件中)

このトピックに返信するにはログインが必要です。