2004-09
29
00:54:00
Nucleusで試してみるテスト


対応表で記載していたように、最近ちょっとだけ旅行びと日記Nucleusで試してみています。
R1.8まででは初期設定時に「必要なメソッドに対応していません」エラーが出て、初期設定から出来ないと思いますが、とりあえず対応可能になるかどうかテスト。
聞いてはいましたが、MT系とかとはかなり要領が違うんですねぇ。最初は色んなサイトでも言われているように躊躇してしまいました。
でも、プラグインやテンプレート、スキンの考え方はMTとかに比べて非常にすっきりとした潔い気もして、この辺が根強い人気のある理由でもあるんでしょうね。
BTO型Blog(CMS)とでも呼びましょうか。
ただ、一から自分の気に入った機能や構成にまで仕立て上げるには、かなりの根気も必要そうです。
ではメモ代わりに、気付いた点を幾つか上げてみます。
因みに3.1ja UTF-8版を使っています。


1. mt.supportedMethodsでMovableType APIしかリストされない
つまりBloggerやmetaWeblog系は対応しているものの、リストされません。
他のBlogではAPI系列に関係なく全てリストされる(中には対応してないくせにリストするものも・・)のですが、結構カルチャーショックでした。
しかしよくよく考えると、確かにMovableType APIなのだからそれしかリストしないというのはある意味、理に適っている訳で。
因みにMovableType APIの仕様ではそこまで深くは述べていない模様で、あいまいな部分でもあるのでしょう。
2. 画像アップロードで「810 アップロードに失敗しました」エラー
うーん、ファイルアップロードがうまく動作しません。
BlogWriteなど他のBlogクライアントや手動でXML-RPCをシミュレーションしても結果は同じ。
実はPHPってこれまで触ったことが無く今回始めてまともにコードを眺めたのですが、どうもnucleus/libs/MEDIA.phpのaddMediaObjectRawでエラーになっているように思われます。どうやらファイル作成でエラーになっていました。
ところが、ブラウザの管理画面からもアップロードが不可でした。
Nucleusにはファイル格納先として、Private(各ユーザー毎のディレクトリ)とshare、commonの三種類があるのですが、XML-RPC機能経由では必ずPrivateに格納されることになっているようです。
ブラウザからだとshareやcommonはOKなのですが、Privateを選択すると「_ERROR_UPLOADMOVE」エラー。どうも環境がおかしかったようです。
そこでググって見つけたのがこのあたり。
http://feles.jp/bb/viewtopic.php?t=427
http://nucleus.datoka.jp/index.php?itemid=69
どうやらPHP特有のセーフモードというパーミッションの問題のようです。レンタルサーバーを使用している場合には常にはまりそうな問題ですね。
そこでPrivate用のディレクトリ(media以下のユーザーID(数字)と一致するディレクトリ)を削除/再作成して試すと、大成功!
これだけで随分悩んでしまいました・・
因みに画像投稿先ディレクトリを指定しても、MTのようにサブディレクトリを作成してくれたりはしません。
但し、例えば「../share」などとするとshareやcommonディレクトリに画像をアップすることが出来ます。
はて。ということは、ひょっとして・・。まあ、ここではあまり深く考えないことにします。権限さえ注意していれば普通は問題ないでしょう。・・きっと。
3. 投稿日付指定ができない
これは特に旅行びと日記には致命的です。投稿日時指定は無視されて、実際に投稿された日時になってしまいます。

ブラウザからでも新規投稿時には日時指定は出来ず、一度投稿して編集しないと任意の日時の記事にはできないようです。

できるみたいです。>コメント参照
これも同様にコードを追ってみると、nucleus/xmlrpc/server.phpに以下のような箇所があります。

function _addItem($blogid, $username, $password, $title, $body, $more, $publish, $closed, $catname = “”) {
  $blog = new BLOG($blogid);
  $timestamp = $blog->getCorrectTime();
  return _addDatedItem($blogid, $username, $password, $title, $body, $more, $publish, $closed, $timestamp, 0, $catname);
}

ということなので多分単純に$timestampをXML-RPCリクエストの構造体引数から取ってくればいいだけではあるのですが、コード修正が必要というのは面倒ですね。
直せそうな気はするんですが、どうフィードバックすればいいんだろ・・。
4. トラックバックPingが打てない
Nucleusではトラックバック機能が標準で準備されていないので、トラックバック用のプラグインを導入して、適時テンプレートを編集しておかなければなりません。
ただし、XML-RPC経由でのポストではトラックバックPing指定は無視されてしまうようです。
これはコアとして実装していないことの弊害と言えるかも知れません。やむを得ないですね。。。
その他、比較的認知されている仕様として、

  • 追記、キーワードなどは無視される
  • mt.supportedTextFiltersは空で返される(元々Nucleusにテキスト・フィルターの概念が無い)

などがあるようです。
ただ、力技?でいろいろ修正されている方たちも多いようですが。
とりあえず今のところは以上ですが、当方Nucleus歴実質二日のため、間違いとかご指摘ほかありましたら、ぜひ頂ければ幸いです。 > 識者の方々
追記
ここまで書いておいて気付くのも何ですが、案の定ウィザシステムさんも同じようなことを試されてたんですね。とりあえずTBしておきます。

Nucleusで試してみるテスト」への2件のフィードバック

  1. bookmarkletは気付いてませんでした。修正しておきます。
    ご指摘ありがとうございました。

  2. トラバありがとうございます。
    ところで新規投稿の日付指定は、ブラウザからならできますよ。たとえばbookmarkletなら、オプション画面に切り替えるとフォームがあります。

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください