« MySQL | Main | Flash 7.2 アップデータ。 »

August 20, 2004

ecto で Nucleus

ectoicon2
現在製作中の某サイトはNucleusを使って作っています。
で、やっぱり便利なectoを使いたい。だって購入しちゃったし・・・
Nucleusはxml-rpcインターフェイスを持っていて、Blogger、metaWeblogやMovable TypeのAPIにも対応しています。
ectoの方も、Blogger、metaWeblog、Movable Type、Typepadに対応しているけど、追記などが使えるのはMTとTypepadの場合のみ。
んじゃ、NucleusをectoのMT用設定で使えばOKじゃん。と思っていたけど、「追記」の部分がectoからNucleusに送っても反映されない・・・
ectoのコンソールウィンドウを眺めながらいろいろ試してみた結果、対応していないのはNucleusの方でした。Nucleusのソースを見てみたら一応 Todo の中には入っているみたいでしたが、
せっかちなので改造してみました。

以下改造法です。


※ectoを使いたいがための改造です。それ以外のXML-RPC投稿アプリケーションなどでは試してませんので、どう動くかわかりません。また、Nucleusの構成ファイルそのものをいじるので、将来のNucleusのアップデートなどのことは今の所考慮してません。


改造するファイルは nucleus/xmlrpc/の中の「api_metaweblog.inc.php」です。念のためバックアップを。
では、上記ファイルをエディタで開き、



  • 39行目:$title =_getStructVal($struct, 'title'); の下に
    $textmore = _getStructVal($struct, 'mt_text_more'); を追加

  • 48行目:return _addItem($blogid, $username, $password, $title, $content, $textmore, $publish, 0, $category); に変更

  • 118行目:$title =_getStructVal($struct, 'title'); の下に
    $textmore = _getStructVal($struct, 'mt_text_more'); を追加

  • 153行目:return _edititem($itemid, $username, $password, $catid, $title, $content, $textmore, $wasdraft, $publish, $old['closed']);
     に変更

  • 229行目:行末付近、cname as category の後に , imore を追加("の前)

  • 248行目:"title" => new xmlrpcval($row['title'],"string"), の後に
    "mt_text_more" => new xmlrpcval($row['imore'],"string"), を追加

  • 392行目:"title" => new xmlrpcval($item['title'],"string"), の後に
    "mt_text_more" => new xmlrpcval($item['more'],"string"), を追加


以上です。行番号は挿入したら変わっちゃうかもしれないので、その付近を探してみてください。ブラウザ上の表示の関係で2行以上になっている所もあるかもしれないですけど、1行ずつです。テキストエディタ等にコピペしてからやった方が良いかも。
これでectoでばっちり追記部分も編集できます。


あと、NucleusではectoからトラックバックURIを送っても効かない・・・という問題もありますね。
こちらもなんとかならないかなとは思ったんですけど、Nucleusのトラックバックはプラグインで実装している。ということもあり一筋縄ではいかなそうです。

|

« MySQL | Main | Flash 7.2 アップデータ。 »

パソコン・インターネット」カテゴリの記事