XPressME Integration Kit

フォーラム

d3blogからのインポート

このトピックには8件の返信が含まれ、2人の参加者がいます。7 年、 9 ヶ月前 匿名 さんが最後の更新を行いました。

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

    匿名

    すいません、xoopsでサイトを作っていますが、まったくの初心者です。

    d3blogからデータをxpressに移したいのですが、どのようにすればよいのでしょうか?

    色々検索も試みましたが分かりませんでした。

    お手数をおかけしますが、ご教授いただければ幸いです。

    宜しくお願いいたします。

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

    SERVER: Apache/1.3.42 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e

    PHP Version: 5.2.17

    libxml Version: 2.7.8

    MySQL Version: 5.5.15-log

    XOOPS Version: XOOPS Cube Legacy 2.2.1 Beta1

    XPressME Version: 2.42

    WordPress Version: 3.2.1

    WP DB Version: 18226

    safemode: OFF

    register_globals: OFF

    allow_url_fopen: ON

    magic_quotes_gpc: ON

    XML extension: ON

    default memory_limit: 128M

    change memory_limit: 128M

    post_max_size: 8M

    upload_max_filesize: 5M

    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: 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で使用中のプラグイン********

    Movable Type and TypePad Importer: Version 0.4: (http://wordpress.org/extend/plugins/movabletype-importer/)

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

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

     最近の記事内容: OK

     最近の記事: OK

     人気記事リスト: OK

     ページ: OK

     最近のコメント: OK

     サイドバー: OK

     検索: OK

     カレンダー: OK

     アーカイブ: OK

     投稿者: OK

     タグクラウド: OK

     カテゴリー: OK

     メタ情報: OK

     ウィジェット: OK

     拡張ブロック: OK

    ******** ブロックオプション********

    アーカイブ : xpress||monthly|0|1|0

    投稿者 : xpress||0|1|0|1

    タグクラウド : xpress||8|22|pt|45|flat|name|ASC||

    カテゴリー : xpress||ALL|name|ASC|0|0|1|1|||1|0

    メタ情報 : xpress||1|1|1|1|1|1|1|1

    ウィジェット : xpress||1|

    拡張ブロック : xpress||

    カレンダー : xpress||#DB0000|#004D99

    サイドバー :

    検索 : xpress||18

    最近のコメント : xpress||10|30|||0

    ページ : xpress||post_title|asc||||0|0|none||1||

    人気記事リスト : xpress||10|0||||0

    最近の記事 : xpress||10|1|7||||0

    最近の記事内容 : xpress||10|0|100||||0|0|0

    ******** グループ権限********

    : (None) : administrator(No) :

    サイト管理者 : (module_admin) : administrator(No) :

    登録ユーザ : (module_inhibit) : inhibit register(No) :

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

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

    ******** ブログ統計********

    カテゴリー数: 1

    記事数: 1

    投稿者数: 1

    #3335

    toemon
    キーマスター

    musickeikoさんこんにちは、

    D3blogのデータベース構成がどのようになっているのかよくわかっていないので直接のインポートについてはお答えできないのですが、

    D3Blogで全文RSSが取得出来るのなら、WordPress側のインポートでRSSからのインポートというのがありますので、そちらを使ってインポートするというのが、一番手っ取り早いような気がします。はじめてWordPress側のRSSインポートを行おうとすると、「プラグインをインストールしてね」とかいわれますけど、必要なプラグインが表示されますので「今すぐインストール」とかでインストールしてあげれば、RSSファイルからのインポートが出来ると思います。

    ただ、自分もRSSからのインポートはやったことがないので、確証は持てないので、今度の土日にでも確認してみみますが、支障がなければ、対象のホームページURLを教えていただけるとありがたいです。公開したくないようであれば、当サイトの、お問い合わせ等を使って、いただいても結構です。

    #3336

    匿名

    toemon様

    早速のお返事ありがとうございます。

    インポートのプラグインの欄に、RSSで呼び込むものがありましたので、d3blogをRSSで出してみましたが全文にはなりませんでした。

    (全エントリー、途中線で区切って続きを読むという形にはしていません)

    d3blogのデータベースでのテーブルはcategory、entry、trackbackの3つあります。

    RSSのテンプレートに関係あるのかないのかわかりませんが、下記に貼ります。

    貼っていいのかもわからないので、支障があればすぐ削除します。

    <?xml version=”1.0″ encoding=”UTF-8″?>

    <rss version=”2.0″>

    <channel>

    <title><{$feed.title}></title>

    <link><{$feed.link}></link>

    <description><{$feed.desc}></description>

    <lastBuildDate><{$feed.lastbuild}></lastBuildDate>

    <docs>http://backend.userland.com/rss/</docs&gt;

    <generator><{$feed.generator}></generator>

    <category><{$feed.category}></category>

    <language><{$feed.lang}></language>

    <{if $logo_url != “”}>

    <image>

    <title><{$feed.title}></title>

    <url><{$feed.logo_url}></url>

    <link><{$feed.link}></link>

    <width><{$feed.logo_width}></width>

    <height><{$feed.logo_height}></height>

    </image>

    <{/if}>

    <{foreach item=item from=$entries}>

    <item>

    <title><{$item.title}></title>

    <link><{$item.link}></link>

    <description><{$item.description}></description>

    <pubDate><{$item.pubdate}></pubDate>

    <guid isPermaLink=”true”><{$item.guid}></guid>

    </item>

    <{/foreach}>

    </channel>

    </rss>

    サイトは http://musickeiko.jp です。

    宜しくお願いいたします。

    #3337

    toemon
    キーマスター

    d3blogをRSSで出してみましたが全文にはなりませんでした。

    (全エントリー、途中線で区切って続きを読むという形にはしていません)

    Hodakaさんのフォーラムでd3blog RSS全文出力の方法が示されていました。

    詳細についてはかかれていませんが、たぶん、XOOPS_TRUST_PATH/modules/d3blog/main/rss.php

    の74行目あたり

    <code>$item['description'] = xoops_convert_encoding($entry->pingExcerpt());</code>

    <code>$item['description'] = xoops_convert_encoding($entry->renderContents(false,'e'));</code>

    に変更しなさいってことだと思います。

    あと、RSSに表示される記事数はd3blogの一般設定のRDFフィード記事数で設定します。

    #3338

    匿名

    toemon様、ありがとうございます。

    教えていただいたとおりにしましたら、全文表示されました。

    が、、途中でエラーが。。

    いつも が最初にあるとエラーになるのですが、今回はそれではなさそうです。

    申し訳ありません、エラーメッセージのPCDATA invalid Charの意味がよく分かりません。

    エントリーに文字の崩れなどはないと思うのです。

    すいません、元の質問とずれてしまいますが、宜しくお願いいたします。

    #3339

    toemon
    キーマスター

    サイト拝見させていただきました。

    RSSの取得では

    [井上雄彦 最後のマンガ展 重版 大阪]

    でエラーとなっているようですね

    不完全ですが取得したRSSからローカルテスト環境にインポートしてみました

    結果として、記事はインポートできますが、カテゴリまではインポートされませんでした。

    RSSエラーについては元データがどうなっているのか不明なので、

    d3blogのデータベースでのテーブルはcategory、entry、trackbackの3つあります

    のデータベーステーブルをphpMyadmin等でエクスポートしたものを

    圧縮いただき

    info@toemon.com宛までメール添付していただければ、当方のローカルテスト環境でテストしてその結果を報告できるかと思います。

    #3340

    匿名

    toemon様

    ありがとうございます。

    お言葉に甘えて送らせていただきました。

    どうぞよろしくお願いいたします

    #3341

    toemon
    キーマスター

    エラーメッセージのPCDATA invalid Char 26

    については不明ですが、

    取得した、XMLファイルのエラー部分を修正したものを、送付させていただきました。

    備考

    ホームページ[井上雄彦 最後のマンガ展 重版 大阪]の文字をコピーして他のエディタに貼り付けてみると、

    「大阪天保山にある」の「あ」と「る」の間に制御コード 0x1A

    「玄関を入ると」の「を」と「入り」の間に制御コード 0x1A 0x7F 0x1A

    が、挿入されています。

    これがどうして入力されたのかは定かではありませんが、

    ローカル環境のD3Blogで同様の文字を入力して再現性はありません。

    D3Blogの編集画面で該当の箇所をBackspaceで消していくと、カーソル位置が変わらず、余計な文字が入っているのが解ると思います。

    RSSインポート用のXMLファイルは以下のようにして取得しました

    1. D3BlogのRSSを全文出力に変更

      XOOPS_TRUST_PATH/modules/d3blog/main/rss.phpの74行目あたり

      <code>$item['description'] = xoops_convert_encoding($entry->pingExcerpt());</code>

      <code>$item['description'] = xoops_convert_encoding($entry->renderContents(false,'e'));</code>

      に変更

    2. 全記事を出力させるのに記事数制限を解除する

      XOOPS_TRUST_PATH/modules/d3blog/main/rss.phpの59行目あたり

      <code>$limit = intval($myModule->getConfig('max_rdf'));</code>

      <code>$limit = 0;</code>

      に変更

    3. インポート用に出力の並びを古い記事から最初に出現するようにする。

      XOOPS_TRUST_PATH/modules/d3blog/main/rss.phpの66行目あたり

      <code>$criteria->setOrder('DESC');</code>

      <code>$criteria->setOrder('ASC');</code>

      に変更

    4. カテゴリーと著者名を取得できるように変更

      • rss.phpにカテゴリーと著者名出力を追加

        XOOPS_TRUST_PATH/modules/d3blog/main/rss.phpの69行目あたり

        <code>foreach($entries as $entry) {<br />
        $item['title'] = xoops_convert_encoding(htmlspecialchars($entry->getVar('title', 'n'), ENT_QUOTES));<br />
        $item['link'] = sprintf('%s/modules/%s/details.php?bid=%d', XOOPS_URL, $mydirname4show, $entry->bid());<br />
        $item['guid'] = sprintf('%s/modules/%s/details.php?bid=%d', XOOPS_URL, $mydirname4show, $entry->bid());<br />
        $item['pubdate'] = d3blog_rfc2822_date($entry->published());<br />
        $item['description'] = xoops_convert_encoding($entry->renderContents(false,'e'));<br />
        $items[] = $item;<br />
        }</code>

        <code>$all_categories =& $cat_handler->getAll();<br />
        foreach($entries as $entry) {<br />
        $category =& $all_categories[$entry->cid()];<br />
        $arr =& $entry->getStructure();<br />
        $item['title'] = xoops_convert_encoding(htmlspecialchars($entry->getVar('title', 'n'), ENT_QUOTES));<br />
        $item['link'] = sprintf('%s/modules/%s/details.php?bid=%d', XOOPS_URL, $mydirname4show, $entry->bid());<br />
        $item['guid'] = sprintf('%s/modules/%s/details.php?bid=%d', XOOPS_URL, $mydirname4show, $entry->bid());<br />
        $item['pubdate'] = d3blog_rfc2822_date($entry->published());<br />
        $item['description'] = xoops_convert_encoding($entry->renderContents(false,'e'));<br />
        $item['category'] = xoops_convert_encoding($category->getVar('name'));<br />
        $item['creator'] = xoops_convert_encoding($arr['blogger']['uname']);<br />
        $items[] = $item;<br />
        }</code>

        に変更

      • テンプレートd3blog_main_rss.xmlにカテゴリーと著者名出力を追加

        テンプレートd3blog_main_rss.xmlを

        <code><?xml version="1.0" encoding="UTF-8"?><br />
        <rss version="2.0"><br />
        <channel><br />
        <title><{$feed.title}></title><br />
        <link><{$feed.link}></link><br />
        <description><{$feed.desc}></description><br />
        <lastBuildDate><{$feed.lastbuild}></lastBuildDate><br />
        <docs>http://backend.userland.com/rss/</docs><br />
        <generator><{$feed.generator}></generator><br />
        <category><{$feed.category}></category><br />
        <language><{$feed.lang}></language><br />
        <{if $logo_url != ""}><br />
        <image><br />
        <title><{$feed.title}></title><br />
        <url><{$feed.logo_url}></url><br />
        <link><{$feed.link}></link><br />
        <width><{$feed.logo_width}></width><br />
        <height><{$feed.logo_height}></height><br />
        </image><br />
        <{/if}><br />
        <br />
        <{foreach item=item from=$entries}><br />
        <item><br />
        <title><{$item.title}></title><br />
        <link><{$item.link}></link><br />
        <pubDate><{$item.pubdate}></pubDate><br />
        <author><{$item.creator}></author><br />
        <category><{$item.category}></category><br />
        <description><{$item.description}></description><br />
        </item><br />
        <br />
        <{/foreach}><br />
        </channel><br />
        </rss></code>

        に修正

    RSSインポートを行う際に、

    件数が多いと、処理に時間がかかり、

    <code>Fatal error: Maximum execution time of ** seconds exceeded in ....</code>

    が表示されることがあります。(**部はサーバーの設定により異なります)

    この場合の対処方法としては、

    • php.iniのmax_execution_timeを設定し直す(0を設定した場合無制限)
    • インポート用のXMLファイルの<item> … </item>の部分をいくつかに分けて複数回に分けて処理する。

    等をおこないインポートします。

    なお、WordPressのRSSインポータは著者名まではインポートしていません。

    #3342

    匿名

    toemon様

    ありがとうございます!

    修正していただいたファイルをいくつかに分けてインポートしました。

    全文 綺麗に移すことができました!

    カテゴリーもきちんとでました!

    色々修正を加えてファイルを作ってくださり感謝いたします。

    以前、記事を書く際、以前はxoopsエディターを使用していましたので、そのリンクが繋がらず画像表示されないということもありますが、これは仕方ないことですよね。

    じっくり書き換えます。

    本当に本当にありがとうございました。

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

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