XPressME Integration Kit Forum

フォーラム

「最近の記事内容」が表示しません。 (12件の投稿)

  1. ozaki
    メンバー
    7ヶ月前の投稿 #

    テストサイトで Ver.2.2.1 にアップデートし、
    バッチリOKでしでしたので。
    ほんちゃんサイトにてインストールすると
    トップページに設定した「最近の記事内容」ブロック内容が
    全く表示致しません

    モジュールページ内やコントロールページ内の各種動作は問題ないです。
    なぜでしょ~~~??

    ちなみに ブロックチャックし、手順通りしても表示内容は変わりません。
    (ほんちゃんサイト、テストサイトともに)
    -------------------------------------------------------------------
    ブロックチェック
    Check xpress block table
    最近の記事内容: OK
     最近の記事: OK
     人気記事リスト: OK
     ページ: OK
     最近のコメント: OK
     サイドバー: OK
     検索: OK
     カレンダー: OK
     アーカイブ: OK
     投稿者: OK
     カテゴリー: OK
     メタ情報: OK
     拡張ブロック: not exist in block table

    異常ブロックがあります。
    以下の手順に従ってブロックを修正してください。

    ステップ 1 :
         注意: モジュールのブロックがデータベースから削除されます。

    ステップ 2 : モジュールをアップデートして、ブロックを再構築します。
         リサブログ モジュールアップデートへ

    ステップ 3 : ブロックの配置とアクセス権限を再設定します。
         リサブログ ブロック権限の設定へ
    -------------------------------------------------------------------
    ※「異常ブロックがあります。」は消えません。

    以下も ほんちゃんサイト、テストサイトともに同じです。
    ******** システム情報********
    SERVER: Apache/2.2.9 (Fedora)
    PHP Version: 5.2.6
    libxml Version: 2.6.32
    MySQL Version: 5.0.45
    XOOPS Version: XOOPS JPEx 1.6
    XPressME Version: 2.21
    WordPress Version: 2.0.11-ME
    WP DB Version: 3441

    safemode: OFF
    register_globals: OFF
    magic_quotes_gpc: OFF
    XML extension: ON
    default memory_limit: 32M
    change memory_limit: 64M
    post_max_size: 8M
    upload_max_filesize: 2M
    display_errors: OFF
    MB extension: ON
    mbstring.language: Japanese
    mbstring.encoding_translation: OFF
    mbstring.internal_encoding: EUC-JP
    mbstring.http_input: pass
    mbstring.http_output: pass
    mbstring.detect_order:
    mbstring.substitute_character:
    mbstring.func_overload: OFF

    ******** XPressMEがXOOPSより取得した設定値********
    XOOPS_ROOT_PATH: OK
    XOOPS_TRUST_PATH: OK
    XOOPS_URL: OK
    XOOPS_SALT: ERROR
    XOOPS_DB_HOST: OK
    XOOPS_DB_USER: OK
    XOOPS_DB_PASS: OK
    XOOPS_DB_NAME: OK
    XOOPS_DB_PREFIX: OK

    ******** WordPressで使用中のプラグイン********
    Akismet: Version 2.1.4: (http://akismet.com/)
    Dean's FCKEditor For Wordpress: Version 1.4: (http://www.deanlee.cn/wordpress/fckeditor-for-wordpress-plugin/)
    WordPress Database Backup: Version 2.1.5: (http://www.ilfilosofo.com/blog/wp-db-backup)
    WP-PageNavi: Version 2.03: (http://www.lesterchan.net/portfolio/programming.php)
    Plugin for XPressME: Version 1.0: (http://ja.xpressme.info)

    ******** ブロックステータス********
     最近の記事内容: OK
     最近の記事: OK
     人気記事リスト: OK
     ページ: OK
     最近のコメント: OK
     サイドバー: OK
     検索: OK
     カレンダー: OK
     アーカイブ: OK
     投稿者: OK
     カテゴリー: OK
     メタ情報: OK
     拡張ブロック: not exist in block table

    ******** ユーザーメタ情報********
    ユーザーメタキーは正常です

  2. toemon
    キーマスター
    7ヶ月前の投稿 #

    ozakiさんこんにちは、

    トップページに設定した「最近の記事内容」ブロック内容が
    全く表示致しません。

    最近の記事内容に対するブロックのアクセス権限を確認いただけないでしょうか?

    拡張ブロック: not exist in block table

    については、アップデート時に「Non Defined Block 拡張ブロック will be deleted」のメッセージを吐き削除されてしまっているようです。
    こちら、まだ原因が判っていません。 引き続き調査します。

  3. toemon
    キーマスター
    7ヶ月前の投稿 #

    拡張ブロック: not exist in block table

    の件ですが、
    WP2011とJPex1.6の組み合わせの場合、
    アップデート時に、ブロック数と、ファンクションNoが合わずに最後の方に定義してある。拡張ブロックが削除されてしまっていました。

    モジュールトップにありますxoops_version.phpの
    258行目

    $b_no++;
    if (wp_version_compare($wp_version, '>=','2.3')){


    if (wp_version_compare($wp_version, '>=','2.3')){
    	$b_no++;


    293行目

    $b_no++;
    if (wp_version_compare($wp_version, '>=','2.7')){


    if (wp_version_compare($wp_version, '>=','2.7')){
    	$b_no++;

    に変更後、
    アップデート
    ブロックチェックでブロックを削除、
    再アップデート、
    ブロック配置、アクセス権の再定義をおこなってください。

    このバグにつきましては、チケット278に登録し、チェンジセット501にて修正させていただきました。

  4. ozaki
    メンバー
    7ヶ月前の投稿 #

    ありがとうございます。
    “拡張ブロック: not exist in block table”の件は解決致しました。

    トップページに設定した「最近の記事内容」ブロック内容が表示しない件ですが、
    (アクセス権限などは問題ありません)
    このほんちゃんサイトの使用状況ですが、

    インストール後非表示にし、以前のブログ「のぶのぶさんのWordPressと
    d3blogをそれぞれRSSファイルとして書き出し、EUCへ変換後、XPressMEへ
    インポートしたのですが、いくつもの文字列が途中で切れていました。
    ※もしかしてこの不完全な取り込みが原因かもしれません。

    なにかヒントを頂けないでしょうか?

  5. toemon
    キーマスター
    7ヶ月前の投稿 #

    お疲れ様です。

    トップページに設定した「最近の記事内容」ブロック内容が表示しない件、
    問合せの内容に近い環境

    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 JPEx 1.6
    XPressME Version::2.21
    WordPress Version::2.0.11-ME
    WP DB Version::3441
    safemode:OFF
    register_globals:OFF
    magic_quotes_gpc:ON
    XML extension:ON
    default memory_limit:16M
    change memory_limit:64M
    post_max_size:16M
    upload_max_filesize:32M
    display_errors:ON
    MB extension:ON
    mbstring.language:japanese
    mbstring.encoding_translation:OFF
    mbstring.internal_encoding:EUC-JP
    mbstring.http_input:pass
    mbstring.http_output:pass
    mbstring.detect_order:
    mbstring.substitute_character:
    mbstring.func_overload:OFF

    にて確認しましたが、問題はないようです

    確認していただきたいこと、

    • 「最近の記事内容」ブロック内容が表示しないというのは、ブロック自体は表示するが、コンテンツが表示されないということでしょうか?
    • 「最近の記事内容」ブロックをモジュール内に配置したとき、正しく表示されますか?
    • XOOPSのcacheディレクトリは書き込み可能ですか?
    • XOOPSのcacheディレクトリ内に***_recent_posts_content_block***.xmlというxmlファイルは作成されていますか?

    以上確認の上、問題がなければ、***_recent_posts_content_block***.xmlファイルを添付の上、問合せフォームよりメールください。

  6. toemon
    キーマスター
    7ヶ月前の投稿 #

    • 「最近の記事内容」ブロック内容が表示しないというのは、ブロック自体は表示するが、コンテンツが表示されないということでしょうか?
    • 「最近の記事内容」ブロックをモジュール内に配置したとき、正しく表示されますか?
    • XOOPSのcacheディレクトリは書き込み可能ですか?
    • XOOPSのcacheディレクトリ内に***_recent_posts_content_block***.xmlというxmlファイルは作成されていますか?

    に問題はないということでxmlファイルを送付いただきました。

    まだ、xmlの確認はとれていませんが、
    先に、他のブロックについても、同様の現象(トップページに配置するとブロック内の内容が表示されない)になるのか、確認お願いいたします。

  7. ozaki
    メンバー
    7ヶ月前の投稿 #

    はい、その他ブロックは自由に配置/表示可能です。

    「最近の記事内容」ブロックのみトップページでは、
    タイトル名とボックス枠のみ表示し、内容は表示されません。
    ブラウザーでの表示ソースを見ても内容がありません。
    (“***_recent_posts_content_block***.xml”には内容が含まれています。)

  8. toemon
    キーマスター
    7ヶ月前の投稿 #

    なるほど、「最近の記事内容」ブロックのみの問題ということですね。

    先の質問で、モジュール内に「最近の記事内容」ブロックを表示させたときはOKとのことでしたので、
    テンプレートの問題でもなさそうですし、

    モジュール外に配置したブロックはキャッシュのxmlを使ってテンプレートにassignするというのは、すべてのブロックで共通なので、キャッシュがある以上「最近の記事内容」ブロックのみ表示できないというのも、解せないですし、

    送付いただいたxmlもパッと見では、問題なさそうなのですが、一度このxmlでブロック表示できるか確認することにします。

  9. toemon
    キーマスター
    7ヶ月前の投稿 #

    送付いただいたxmlファイルをXML_Unserializerに喰わせてみるとPHP5の環境では
    Warning [PHP]: xml_parse() [function.xml-parse]: input conversion failed due to input error, bytes 0x8F 0xA1 0xC1 0x31 in file xml.php line 106
    が発生していました。

    要するにパース出来ない文字コード(0x8F 0xA1 0xC1 0x31)があるのでやめちゃったよ、みたいな感じですね。orz

    文字コード(0x8F 0xA1 0xC1 0x31)については、よくわかりませんが、
    問題のxmlファイルをエディタで開きそのまま、上書き保存すると、この現象は発生しませんので、
    データ移行の際のRSS読み取り、コード変換のいずれかの時点で紛れ込んだコードかもしれません。

    PHP5のXMLは、EUC-JPベースのXMLをXML_Unserializerすると、結果をわざわざUTF-8で返したり、パース出来ない文字コードがあると、処理をやめたり、
    どうも喰わせ物みたいです。そんなに、EUC-JPを毛嫌いしないでも・・・ (T_T)

    そこで、XMLデータがEUCベースでかつPHP5以上の場合は、
    1 XMLデータのXML宣言部分の文字コード宣言をEUC-JPからUTF-8に置換え
    2 XMLデータをEUC-JP->UTF-8変換
    3 XML_Unserializer処理
    4 UnserializeされたデータをUTF-8->EUC-JP変換
    の処理を行うことで回避することにしました。

    具体的にはinclude/xpress_block_render.phpの22行目あたりからの

    function xpress_block_cache_read($mydirname,$block_name)
    {
    		$xml_name = $block_name . '.xml';
    		$xml_data = xpress_cache_read($mydirname,$xml_name);
    
    		$GLOBALS['DO_LIBXML_PATCH'] = get_xpress_mod_config($mydirname,'libxml_patch');
    
    		$ret = @xpress_XML_unserialize($xml_data);
    		if (strstr($xml_data, '<?xml version="1.0" encoding="EUC-JP" ?>') !== false){
    			if (version_compare(PHP_VERSION, '5.0.0', '>')) {
    				$ans = mb_convert_variables('EUC-JP' , 'UTF-8', &$ret); //xpress_XML_unserialize() Return UTF-8 at PHP5
    			}
    		}
    		return $ret;
    }

    の部分を

    function xpress_block_cache_read($mydirname,$block_name)
    {
    	$xml_name = $block_name . '.xml';
    	$xml_data = xpress_cache_read($mydirname,$xml_name);
    
    	$GLOBALS['DO_LIBXML_PATCH'] = get_xpress_mod_config($mydirname,'libxml_patch');
    
    	if ( strstr($xml_data, '<?xml version="1.0" encoding="EUC-JP" ?>') !== false
    		 && version_compare(PHP_VERSION, '5.0.0', '>') )
    	{
    		$xml_data = str_replace('<?xml version="1.0" encoding="EUC-JP" ?>', '<?xml version="1.0" encoding="UTF-8" ?>', $xml_data);
    		$ans = mb_convert_variables('UTF-8' , 'EUC-JP', &$xml_data); //EUC-JP to UTF-8
    		$ret = @xpress_XML_unserialize($xml_data);
    		$ans = mb_convert_variables('EUC-JP' , 'UTF-8', &$ret); //UTF-8 to EUC-JP
    	} else {
    		$ret = xpress_XML_unserialize($xml_data);
    	}
    	return $ret;
    }

    に変更することで、解決されると思います。

  10. toemon
    キーマスター
    7ヶ月前の投稿 #

    上記の対策で解決できるかとは思いますが、

    文字コード(0x8F 0xA1 0xC1 0x31)については、よくわかりませんが、
    問題のxmlファイルをエディタで開きそのまま、上書き保存すると、この現象は発生しませんので、
    データ移行の際のRSS読み取り、コード変換のいずれかの時点で紛れ込んだコードかもしれません。

    のところもう少し詳しく調べてみました。

    EmEditorで上書き保存したものと、上書き保存しする前のデータをExamDiff Proでバイナリーレベルでの比較を行ってみた結果、

    記事 「真相報道 バンキシャ!誤報」検証番組から の本文
    「08月24日(月) 0:50�1:30 何でこんな時間に・・・」
    部分にある�の部分でエラーが発生していることが判りました。

    「0:50�1:30」はozakiさんのサイトで確認させていただいた表記です。
    XMLファイルをEmEdirorで見たときは「0:50潤`1:30」となってます

    参考、該当部分のExamDiff Proでの表記
    上書き前 「0:50升チ1:30」
    上書き後 「0:50ス畫1:30」

    元データがどのようなものか判りませんが、ご参考まで

  11. ozaki
    メンバー
    7ヶ月前の投稿 #

    ありがとうございます。
    表示することができました。
    m(_ _)m

    RSSファイルの取り込みをもっと「詳細に確認」しながらやるべきでした。
    「反省」(T_T)

    お手数をお掛けし、本当にありがとうございました。

  12. toemon
    キーマスター
    7ヶ月前の投稿 #

    確認ありがとうございました。

    修正内容をサイトにて確認させていただきましたが、「~」が化けていたみたいですね。

    「最近の記事内容」ブロックのみトップページでは、
    タイトル名とボックス枠のみ表示し、内容は表示されません。

    この問題に対する対策は、
    チケット279に登録、チェンジセット502にて修正されました。

返信

ログイン しなければ投稿できません。

About this Topic

Tags

タグ: